一.渗透测试步骤与思路
一.信息收集
1.主机扫描
(1)扫描某个网段内存在的主机
(2)扫描主机开放的端口和服务
(3)扫描主机的操作系统和版本号
(4)扫描主机可能存在的已知漏洞
2.web扫描
(1)查询域名和子域名信息
(2)查询whoid信息
(3)扫描Web应用的URL路径
(4)扫描Web应用的后台管理入口
(5)常规漏洞扫描
3.功能分析
(1)分析前台页面的登录注册功能
(2)根据用户注册提示确定可用账号
(3)尝试进行注册并登录,确认各项功能
(4)确认前台页面的URL跳转,用户评论,文件引用,文件上传,文件下载等强交互功能点
(5)确认后台是否存在文件上传,查询功能,命令功能,系统配置等
4.抓包分析
(1)对前端页面的源代码进行分析,确认是否存在敏感信息或接口
(2)对关键功能进行分析,预判后台基本实现逻辑
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.逻辑漏洞
尤其是密码重置,很关键。根据经验来看,至少可以从七个方面攻击密码找回功能:重置凭证接收端可篡改,重置凭证泄露,重置凭证未校验,
重置凭证可爆破,用户混淆,应答中存在影响后续逻辑的状态参数,token可预测。在逻辑漏洞的找寻中,重点观察跟你用户名有关的请求,尝试
在各种请求中将你的用户名或身份认证替换成他人的。
4.JS信息泄露
一般内部系统的网站JS可能会存有用户接口,我们可以通过接口发现用户信息。也可以分析JS的代码,构造出后台路径和参数逻辑。
5.后台WEB漏洞
除了在信息搜集中提到的上传功能(上传webshell),查询功能(sql注入),命令功能(命令注入)外,其他web安全漏洞都最好根
据功能逐一尝试。
6.代码审计
拿到后台源码,分析逻辑
7.使用工具
(1)渗透测试:Hydra,Medusa,MetaSploit Framework,反序列化工具,各类专项工具
(2)代码审计:RIPS,Fortify SCA
(3)Shell管理:菜刀,冰蝎,蚁剑,哥斯拉,PStool等