(1)扫描某个网段内存在的主机
(2)扫描主机开放的端口和服务
(3)扫描主机的操作系统和版本号
(4)扫描主机可能存在的已知漏洞
(1)查询域名和子域名信息
(2)查询whoid信息
(3)扫描Web应用的URL路径
(4)扫描Web应用后台管理入口
(5)规漏洞扫描
(1)分析前台页面的登录注册功能
(2)根据用户注册提示确定可用账号
(3)尝试进行注册并登录,确认各项功能
(4)确定前台页面的URL跳转、用户评论、文件引用、文件上传、文件下载等强交互功能点
(5)确定后台是否存在文件上传、查询功能、命令功能、系统配置等
(6)确定用户是否存在密码重置功能,确认是否存在逻辑漏洞
(1)对前端页面的源代码进行分析,确认是否存在敏感信息或接口
(2)对关键功能进行抓包分析,预判后台基本实现逻辑
(3)对系统功能交互过程的编码和加密进行分析,如是否使用Base64编码、时间戳、Hash加密
(4)对通信过程的Session和Cookie进行分析,判断为什么此处要这么用
(1)主机扫描: NMap、Nessus
(2)Web扫描: XRay+Rad、AVWS、AppScan、SQLMap、XSStrike、dirb、御剑等
(3)在线搜集: zoomeye.org、fofa.so、shodan.io、微步、域名注册商如万网等
根据信息搜集结果,直接网上寻找对应开发框架或CMS的成熟漏洞利用工具,如struts2的全家桶。
适用于验证码可绕过,使用top1000等各类字典,也可以根据搜集到的密码规则匹配相应账号使用hashcat自行创建字典,
burpsuite的暴力破解模块也提供了多样化的字典生成功能,或使用专有工具如 Hydra, SNetCracker等,或根据业务需要自己编写Python脚本。
尤其是密码重置,很关键,根据经验来看,至少可从七个方面攻击密码找回功能:
重置凭证接收端可改、重置凭证泄漏、重置凭证未校验、重置凭证可暴破、用户混淆、应中存在影响后续逻辑的状态参数、token 可预测。
在逻辑漏洞的分析中,重点观察跟你用户名有关的请求,尝试在各种请求中将你的用户名或身份认证替换成他人的。
一般内部系统的网站JS可能会存有用户接口,我们可以通过接口发现用户信息。也可以分析js的代码,构造出后台路径和参数逻辑。
除了在信息搜集中提到的上传功能(上传webshell) 、查询功能(Sql注入)、命令功能(命令注入)外,其他web安全漏洞都最好根据功能逐一尝试。
如果拿到源码,可以根据审计结果构造payload
(1)渗透测试: Hydra,Medusa、MetaSploit Framework(MSF)、反序列化工具、各类专项工具
(2)代码审计: RIPS、Fortify SCA
(3)Shell管理: 菜刀、冰蝎、蚁剑、哥斯拉、PSTool等
漏洞利用成功时,通常会在目标机上获得一个webshel,但是webshel虽然执行金今和管理文件,但些章不是真正的shel,而目也不稳定,因此就需要反弹shell到一个稳定的环境中。
反弹命令不存在、禁止出口流量、限定向外访问端口、流量审查
(1)反弹命令不存在: 命令有很多,常用命今有nc/n.openbsd/nc.traditional、bash/sh/dash、python/perl/PHP/ruby、exec,因此命令不存在的概率很小;在服务器上使用whereis nc bash php perl python ruby 就能知道命令是否存在
(2)禁止出口流量:某些标在防火墙上限制了出口流量,禁止目标主动向外发起网络请求,可以通过带外(0ut Of Band) 的方式讲行验证。大致逻辑是,在攻击者自己的 VPS 上监测某种协议的网络请求,在标上用这种协议访问 VPS,若在 VPS 上看到该协议的请求日志,则可推断出目标允许出口流量;
(3)限定向外访问端口:某些目标限定访问外部端口,常见黑名单和白名单两种方式,黑名单,比如,禁止目标机器向外访问 MSF 默认的 4444端口;白名单,比如,只允许向外访问 we 常见的 80 端口。黑名单的情况好绕过,随便指定一个端口号就行,白名单的话就只能探测可允许端口,常见就是80和443,需要想办法利用。
(4)流量审查:目标环境会对所有流量进行检查,检查的时候会发现流量中的恶意代码信息。这种情况可以结合上面的443端口,使用攻击者的VPS创建Ss 证书公钥/私钥对,VPS开启openss 听,然后使用openss 对反弹she的流量进行加,这样就能防止流量审查反弹成功。
(1)确认具体的操作系统版本和已经安装的服务,可以运行的脚本环境,可以通过的端口等(具体根据权限而定)
(2)根据当前环境,按照需要制作复杂木马,甚至想办法保持连接的稳定,不被防火墙和管理员发现和封锁等
MetaSploit Framework、Cobalt Strike等
Webshell中的90%都是www-data权限,需要想尽办法提升至root权限,可以用的办法有利用内核栈溢出提权、搜寻配置文件中的明文密码、环境变量劫持高权限程序、不安全的服务、借助权能(POSIX capabilities) 提权、Sudo 误配、SUID 滥用等等。
这些可以查阅网上相关资料和方法,下载对应的exp完成。
在获取了超级管理员权限后,还得想办法要将权限维持住
在后渗透阶段,攻击进入一台目标主机是远远不够的,还需要通过内网横向移动来完成对核心目标的访问和渗透,此时通过内网穿透保持个可靠连接,随时可以通过穿透功能进入目标主机。这一过程同样需要注意如何规避防病毒软件或防火墙的发现。
当能够保持超级管理员的权限并进行维持后,此时便可以开展内网渗透工作,整体过程与外网渗透比较类似,但是面临的实际情况并不完全一样,需要借助各类工具和经验进行处理。作为渗透测试的工作而非红方攻击来说,内网渗透并非最必要的一步,但是可以一试,进一步确定目标主机的漏洞及影响范围。
(1)权限提升: MSF、漏扫、各类专项渗透工具等
(2)内网渗透: Cobalt Strike、Ladon、PSTools等
(3)内网穿透: Frp、冰蝎、Cobalt Strike、代理等