渗透测试全流程总结

#网络安全 #渗透测试 #信息搜集 #漏洞利用 #建立据点 #权限提升 #内网渗透 #渗透测试工具

一、信息搜集

1、主机扫描

(1)扫描某个网段内存在的主机

(2)扫描主机开放的端口和服务

(3)扫描主机的操作系统和版本号

(4)扫描主机可能存在的已知漏洞

2、Web扫描

(1)查询域名和子域名信息

(2)查询whois信息

(3)扫描Web应用的URL路径

(4)扫描Web应用后台管理入口

(5)常规漏洞扫描

3、功能分析

(1)分析前台页面的登录注册功能

(2)根据用户注册提示确定可用账号

(3)尝试进行注册并登录,确认各项功能

(4)确定前台页面的UL跳转、用户评论、文件引用、文件上传、文件下载等强交互功能点

(5)确定后台是否存在文件上传、查询功能、命令功能、系统配置等

4、抓包分折

(1)对前端页面的源代码进行分析,确认是否存在敏感信息或接口

(2)对关键功能进行抓包分析,预判后台基本实现逻辑

(3)对系统功能交互过程的编码和加密进行分析,如是否使用Base64编码、时间戳、Hash加密

(4)对通信过程的Session和Cookie进行分析,判断为什么此处要这么用

5、使用的工具

(1)主机扫描:NMap、Nessus

(2)Web扫描:XRay+Rad、AVWS、AppScan、SQLMap、XSStrike、dirb、御剑等

(3)在线搜集:zoomeye.org、fofa.so、shodan.io、微步、域名注册商如万网等

二、漏洞利用

1、已知exp使用

根据信息搜集结果,直接网上寻找对应开发框架或CMS的成熟漏洞利用工具,如struts2的全家桶。

2、暴力破解

适用于验证码可绕过,使用top1000等各类字典,也可以根据搜集到的密码规则匹配相应账号使用hashcat自行创建字典。burpsuite的暴力破解模块也提供了多样化的字典生成功能。或使用专有工具如Hydra、SNetCracker等,或根据业务需要自己编写Python脚本。

3、逻辑漏洞

尤其是密码重置,很关键。根据经验来看,至少可从七个方面攻击密码找回功能:重置凭证接收端可算改、重置凭证泄漏、重置凭证未校验、重置凭证可暴破、用户混淆、应答中存在影响后续逻辑的状态参数、tokn可预测。在逻辑漏洞的找寻中,重点观察跟你用户名有关的请求,尝试在各种请求中将你的用户名或身份认证替换成他人的。

4、JS信息泄露

一般内部系统的网站JS可能会存有用户接口,我们可以通过接口发现用户信息。也可以分析JS的代码,构造出后台路径和参数逻辑。

5、后台WEB漏洞

除了在信息搜集中提到的上传功能(上传webshell)、查询功能(sql注入)、命令功能(命令注入)外,其他web安全漏洞都最好根据功能逐一尝试。

6、代码审计

如果拿到源码,可以根据审计结果构造payload

7、使用到的工具

(1)渗透测试:Hydra,Medusa、MetaSploit Framework、反序列化工具、各类专项工具
(2)代码审计:RIPS、Fortify SCA
(3)Shell管理:菜刀、冰蝎、蚁剑、哥斯拉、PSTool等

三、建立据点

1、反弹shell

漏洞利用成功时,通常会在目标机上获得一个webshell,但是webshell虽然能执行命令和管理文件,但毕竟不是真正的shell,而且也不稳定,因此就需要反弹shell到一个稳定的环境中。

2、反弹shell时候可能遇到的问题

反弹命令不存在、禁止出口流量、限定向外访问端口、流量审查

(1)反弹命令不存在:命令有很多,常用命令有nc/nc.openbsd/nc.traditionalbash/sh/dashpython/perl/PHP/rubyexec,因此命令不存在的概率很小;在服务器上使用whereis nc bash php perl python ruby就能知道命令是否存在:

(2)禁止出口流量:某些目标在防火墙上限制了出口流量,禁止目标主动向外发起网络请求,可以通过带外(Out Of Band)的方式进行验证。大致逻辑是,在攻击者自己的VPS上监测某种协议的网络请求,在目标上用这种协议访问VPS,若在VPS上看到该协议的请求日志,则可推断出目标允许出口流量;

(3)限定向外访问端口:某些目标限定访问外部端口,常见黑名单和白名单两种方式。黑名单,比如,禁止目标机器向外访问MSF默认的4444端口;白名单,比如,只允许向外访问web常见的80端口。黑名单的情况好绕过,随便指定一个端口号就行,白名单的话就只能探测可允许端口,常见就是80和443,需要想办法利用。

(4)流量审查:目标环境会对所有流量进行检查,检查的时候会发现流量中的恶意代码信息。这种情况可以结合上面的443端口,使用攻击者的VPS创建ssl证书公钥/私钥对,VPS开启openssl监听,然后使用openssl对反弹shell的流量进行加密,这样就能防止流量审查反弹成功。

3、确认环境并制作木马

(1)确认具体的操作系统版本和已经安装的服务,可以运行的脚本环境,可以通过的端口等(具体根据权限而定)。

(2)根据当前环境,按照需要制作复杂木马,甚至想办法保持连接的稳定,不被防火墙和管理员发现和封锁等。

4、使用的工具

MetaSploit Framework、Cobalt Strike等

四、权限提升和内网渗透

1、权限提升

Webshell中的90%都是www-data权限,需要想尽办法提升至root权限,可以用的办法有利用内核栈溢出提权、搜寻配置文件中的明文密码、环境变量劫持高权限程序、不安全的服务、借助权能(POSIX capabilities)提权、sudo误配、SUID滥用等等。这些可以查阅网上相关资料和方法,下载对应的exp完成。

2、权限维持

在获取了超级管理员权限后,还得想办法要将权限维持住,

3、内网穿透

在后渗透阶段,攻击进入一台目标主机是远远不够的,还需要通过内网横向移动来完成对核心目标的访问和渗透,此时通过内网穿透保持一个可靠连接,随时可以通过穿透功能进入目标主机。这一过程同样需要注意如何规避防病毒软件或防火墙的发现。

4、内网渗透

当能够保持超级管理员的权限并进行维持后,此时便可以开展内网渗透工作,整体过程与外网渗透比较类似,但是面临的实际情况并不完全一样,需要借助各类工具和经验进行处理。作为渗透测试的工作而非红方攻击来说,内网渗透并非最必要的一步,但是可以一试,进一步确定目标主机的漏洞及影响范围。

5、使用的工具

(1)权限提升:MSF、漏扫、各类专项渗透工具等
(2)内网渗透:Cobalt Strike、Ladon、PSToolss等
(3)内网穿透:Frp、冰蝎、Cobalt Strike、代理等


渗透测试全流程总结
https://blog.pppfz.com/posts/16.html
作者
PPPFZ
发布于
2024年5月5日
许可协议