渗透测试思路总结
一、说明
《Metasploit渗透测试魔鬼训练营》等书已经对渗透测试的步骤流程划分得比较合理透彻了,但感觉在多次通读该类书藉之后仍总感觉不得要领----要对一台给定的主机进行渗透还是不懂到底该如何着手。想来主要是存在以下两个问题。
第一个是在渗透操作系统时,最为关键的从漏洞分析到渗透攻击这一步很难跨越。因为按书中漏洞分析基本只有openvas等漏洞扫描器一条途径,漏洞利用只有Metasploit搜索一条途径;而漏洞扫描器扫出漏洞Metasploit中又正好有利用模块更是少之又少。
第二个是在渗透web系统时,还是和其他很多书藉一样只讲漏洞,而并不能很明确地指出面对一个web系统我怎么知道在哪我应该检测哪些漏洞。
本文一是肯定和总结现在主流的渗透测试的步骤,二是拓展渗透操作系统时从漏洞分析到渗透攻击的途径,三是指出渗透web系统可采用“功能--功能对应检测点”这种触发式渗透方式。
另外可参考SecWiki安全思维导图:https://github.com/SecWiki/sec-chart
二、渗透操作系统(服务版本号漏洞检索法)
操作系统类漏洞一般都是大神们通过代码审计/逆向分析挖掘的漏洞,这需要高深的知识储备,对于一般的渗透而言利用已知漏洞即可,不用也不要自己去挖掘这类漏洞。而查找操作系统类漏洞关键的操作就是确定端口后边的软件及软件版本,然后得用得到的软件名+软件版本到各漏洞库去查找其存在的漏洞乃至exp。这里不妨称之为“服务版本号漏洞检索法”。
2.1 获取正在监听端口的软件及该软件的版本号
比如假设我们探测到8080端口为tomcat监听,版本号为8.5.14
2.2 搜索已有漏洞库,获取该软件及相应版本存在的漏洞列表
2.2.1 搜索CVE漏洞库,获取软件及相应版本存在的漏洞列表
Vendor, Product and Version Search
这样我们就找到了tomcat 8.5.14版本存在的几个漏洞,后边以CVE-2017-12617为例
2.3 查看CVE具体信息
2.3.1 在cvedetails查看CVE具体信息
CVE security vulnerability database. Security vulnerabilities, exploits, references and more
2.3.2 在mitre查看CVE具体信息