有些时候渗透测试搞着搞着就陷入了无解状态,不知道再从哪儿下手了 故对渗透测试思路做个整理,后续有新的见解持续更新
先上诸葛建伟老师的思维导图镇楼
首先明确渗透测试的目标和渗透深入程度,正规渗透要获取授权,然后整个流程大致如下:
1. 技术侦查 -> DNS侦查 -> 子域名枚举 -> 端口扫描 -> 目录枚举 -> cms侦查 -> Google Hacker
2. 社会工程学 -> 弱口令top1000 -> 数据泄露 -> Whois查询 -> 邮箱收集 -> 公开仓库分析(Github等) -> 代码注释 -> {邮件|网站|?}钓鱼
3. 分析建模 -> 建立草稿 -> 整理思路
4. 公开漏洞匹配 -> 服务器漏洞匹配 -> web漏洞匹配
5. 漏洞挖掘分析 -> 测试范围{服务器|pc客户端|网站|微信服务号|微信小程序|Android应用...}
6. 进阶测试 -> pass
7. 证据搜集
8. 风险评估 -> 漏洞分级 -> 漏洞详情介绍 -> 漏洞参考
9. 生成报告
信息收集大概包括以下这些内容:
常见的方法可参见:信息搜集方法小结(持续更新)
编程语言可以测试index.{php,asp,aspx,jsp,do,action}也可以在返回头信息看到
以 .do、 .action 都可以测试下Struts2漏洞
确定网站类型来梳理渗透思路
了解公司业务也就是寻找可能的漏洞点:
主要是社会工程学和一些常规信息搜索:
中间件漏洞太常见了
几种中间件:
IIS在低版本常见的漏洞有:
*.asp;.jsp*.asp 那么这个文件名下面的所有文件就会解析为asp文件*.asa、 *.cer 、*.cdxIIS7.0/IIS7.5/Nginx<8.03 畸形解析漏洞
/*.php 如:xxx.com/upload/1.jpg/1.php*.php.123.234 或 *.php.123;*.php.jpg..jps 以此类推下去直到解析为php,asp,aspx(适量)Apache在低版本常见的漏洞有:
*.php.rar.jpg.png 等等把常见后缀都写上去直到解析为止(适量)*.php 改为*.php1,*.php2,*.php3,*.php4 以此类推下去直到解析为止(适量)google 永远滴神
site 允许你搜索仅仅位于一个特定服务器上的或者在一个特定域名里的页面
filetype 搜索特定后缀的文件
link 包含指定网页的链接的网页
inanchor 寻找链接的锚点
cache 显示页面的缓存版本
numberange 搜索一个数字 例如:numberange:12344-12346
daterange 搜索在特定日期范围内发布的页
....举例:
site:xxxxx.com
intitle:index.of site:xxxxx.com
intitle:login
intext:版权信息
inurl:php?id=
filetype:mdb inurl:xxxxx.com
link:xxxxx.com
filetype:log inurl:log # 日志查找
...可参考:
查找敏感信息,网站后台,网站源码或数据库的备份文件,上传地址等信息可以更近一步的进行渗透测试
例如:
/robots.txt
/admin.php
/admin_login.php
/admin/login.php
/user_login.php
/upload.php
/up2.php
/phpmyadmin
/dede
/www.rar
/wwwroot.rar
/备份.rar
/*.sql
/.git
/.svn
...尤其是最好的语言 PHP 可参考:PHP Bug Tracking System
# 本地测试的是5.5以下版本都可以# 本地测试的是5.5以下版本都可以
/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (PHP信息列表)
/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 (PHP的LOGO)
/?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 (Zend LOGO)
/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 (PHP LOGO 蓝色大象)
## 官方声明这不是一个安全漏洞,你可以通过下面的方法关闭
# 在 php.ini中设置 expose_php = Off确定网站的CMS及版本信息可以查找0day进行攻击 如果开源可以进行白盒测试,否则只能黑盒测试了
门户:
地方门户:DZ,phpcms ...
小型企业门户:xiaocms ...
论坛:
国内论坛基本都是:dede,DZ,winphp,帝国 ...
博客:
wordpress,Zblog,typecho,emlog ...
商场:
ecshop ...BTW,CMS真的都是洞
使用神器 Nmap 对服务器进行端口扫描,查询其开放的服务
常见端口有:
21 ftp
弱口令,爆破
匿名访问
22 SSH
弱口令,爆破
按28次Backspace键漏洞
OpenSSH用户枚举漏洞(CVE-2018-15473)
23 Telnet
弱口令登录
137,139 Smaba服务
弱口令,爆破
未授权访问
远程代码执行漏洞(CVE-2015-0240)
389 LDAP 轻量目录访问协议
爆破,弱口令
443 SSL 心脏滴血/HTTPS
OpenSSL心脏滴血漏洞(CVE-2014-0160)
445
1080 socket 代理
1433 MSSQL
弱口令,爆破
1521 Oracle
弱口令,爆破
3306 MySQL
弱口令,爆破
5432 PostgreSQL
弱口令,爆破
6379 redis
未授权访问
弱口令
27017 Mongodb
弱口令,爆破
5000 DB2
弱口令,爆破
7001 WebLogic
弱口令(weblogic,weblogic|system,weblogic或weblogic123|portaladmin,guest)
爆破
后台部署war包getshell
java反序列
SSRF
2601 zebra路由
弱口令,默认密码zebra
3389 远程桌面
弱口令,爆破
shift 后门
8080 tomcat
弱口令
2181 Zookeeper
未授权访问
echo envi |nc 127.0.0.1 2181 # 输出关于服务环境的详细信息(区别于 conf 命令)
echo conf | nc 127.0.0.1 2181 # 输出相关服务配置的详细信息
echo stat|nc 127.0.0.1 2181 # 来查看哪个节点被选择作为follower或者leader
echo ruok|nc 127.0.0.1 2181 # 测试是否启动了该Server,若回复imok表示已经启动
echo dump| nc 127.0.0.1 2181 # 列出未经处理的会话和临时节点
echo kill | nc 127.0.0.1 2181 # 关掉server
echo cons | nc 127.0.0.1 2181 # 列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息
echo reqs | nc 127.0.0.1 2181 # 列出未经处理的请求
echo wchs | nc 127.0.0.1 2181 # 列出服务器 watch 的详细信息
echo wchc | nc 127.0.0.1 2181 # 通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表
echo wchp | nc 127.0.0.1 2181 # 通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径
11211 memcache
未授权访问
......几个常用CVE:
没什么多说的 就是 二级/三级 域名 扩展渗透的范围
fofa是个好搜索引擎 C 段可以有效扩展渗透的范围
收集好目标系统的情报后,不要急于渗透目标系统,要与渗透团队进行头脑风暴。往往一个人的力量是不够的,团队集合起交流的力量是非常强大的。因为团队里面每一个人所拥有的特点和特长都会不一样。大家交流的话,可以取长补短。所以与团队交流这个阶段可以确定更快,更容易地制定入侵目标系统的方案,确定出最可行的攻击通道。
综合以上所有的阶段收集回来的情报,特别是漏洞扫描结果,服务器的配置,防火墙的使用情况情报最为重要。通过分析确定可利用的漏洞和挖掘未知漏洞,根据情况选择有针对性的工具或者开发出必要的渗透代码。
验证漏洞是否存在,最终getshell或拿到管理后台
可参考:一文了解系列,对web渗透的常见漏洞总结(持续更新)
参见一文了解提权:溢出提权和第三方组件提权
参见:内网渗透系列:内网渗透思路整理
大概有以下需要考虑的事情:
归纳了下渗透测试思路
红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。