渗透测试思路总结

一、说明

《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漏洞库,获取软件及相应版本存在的漏洞列表

http://www.cvedetails.com/version-search.php

这样我们就找到了tomcat 8.5.14版本存在的几个漏洞,后边以CVE-2017-12617为例

 

2.3 查看CVE具体信息

2.3.1 在cvedetails查看CVE具体信息

https://www.cvedetails.com/

 

2.3.2 在mitre查看CVE具体信息

http://cve.mitre.org/cve/search_cve_list.html

 

 

2.4 通过CVE查找EXP
2.4.1 在上边的cvedetails或mitre结果中拉到后边的References For CVE-xxx参考区里边有可能有exp链接

在上边已经可看到CVE-2017-12617对应的exploit-db和metasploit中的exp链接

 

2.4.2 在上边的cvedetails中直接点击搜索twitter/youtube/google

 

 

2.4.3 到metasploit数据库查找exp(msfconsole中search可能需要更新)

https://www.rapid7.com/db/modules/

 

2.4.4 到exploit数据库查找exp(不爬墙验证码一般出不来,那只能kali中searchsploit了)

https://www.exploit-db.com/search/

 

2.4.5 到github查找exp

https://github.com/search

 

2.4.6 openvas等系统漏洞扫描器

 

三、渗透web系统(功能触发式检测法)

web系统也可以利用现成的漏洞,如各类CMS的漏洞(比如ecshop)、各类插件的漏洞(比如wordpress的各类插件漏洞)、各类框架的漏洞(比如struts反序列化)、各类中间件漏洞(比如weblogic反序列化),这类漏洞在确认web系统使用了该CMS、该插件、该框架、该中间件之后和操作系统类漏洞一样到各漏洞库去找利用方式即可。web渗透更多地是自己去挖掘出其存在的漏洞。

web漏洞我个个喜欢分为业务逻辑漏洞和技术型漏洞两类,业务逻辑漏洞的定性是没有现成扫描器可以扫描发现的漏洞,技术型漏洞的定性是可以使用现成扫描器进行扫描发现的漏洞(其实看下也没分得那么清还没想得很清楚)。

很多教程都是东一榔头西一棒槌讲各类漏洞也讲得挺清楚,但要去渗透时总感觉一是给定一类漏洞不知道可以去哪些位置找二是给定一个位置又不知道可能会存在哪些漏洞。结合自己的经验我觉得可以自己构建一个“功能----功能对应检测点”的表,以后自己去渗透只要看到web系统有某个功能就去检测其对应检测点即可。这里暂且称之为“功能触发式检测法”。

 

3.1 信息收集(信收集的目地是锁定可用手段的范围)

网站真实IP--站长、nslookup、dig、www.cz88.net、tcroute

操作系统--TTL、index.PHP、访问不存在页面

网站语言--index等一众页面的后缀、respone包头

服务器--访问不存在页面、respone包头、whatweb

数据库--注入报错、telnet端口

主机端口--Nmap、arp_swwep、portscan

子域名查询--subdomain.chaxun.la

网站CMS--Power By、site+“CMS”;百度”xxx CMS漏洞“

攻击面解析--awvs等爬虫式发现页面、御剑/dirb等暴破式发现隐藏页面、如果是某种标准协议则查看协议查找隐藏接口或隐藏参数

 

3.2 业务漏洞检测(各项业务都可攻击)

阶段功能功能对应检测点
身份认证用户注册是否可以重复注册
身份认证密码修改修改密码逻辑是否有问题
身份认证密码重置重置密码逻辑是否有问题
身份认证短信验证码短信炸弹
身份认证短信验证码短信验证码是否可暴破
身份认证图片验证码验证码是否可重复使用
身份认证登录登录逻辑是否有问题
会话管理登录会话ID生成机制是否有问题
会话管理登录是否有超时自动退出机制
会话管理退出退出后会话ID是否真的失效
访问控制用户信息查看是否可以水平越权访问其他用户页面
访问控制具有管理员界面是否可以垂直越权访问管理员页面
访问控制具有管理员接口普通用户直接发包是否也会响应
业务逻辑购买修改价格后端是否会再次校验
业务逻辑多步功能能否跳过其中某些步
业务逻辑请求次数限制服务端如何限制是否可以绕过

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.3 技术型漏洞检测

功能功能对应检测点相关工具
从数据库读取数据是否存在sql注入sqlmap
用户输入被返回前端页面是否存在xssawvs等
功能使用的是请求/响应模式是否存在csrfawvs等
文件上传是否有文件类型、大小限制 
文件下载是否存在目录遍历 
文件浏览是否存在目录遍历 
调用系统命令是否存在命令注入 
重定向是否存在重定向注入 
参数参数超长是否会导致溢出 
参数参数有特殊字符是否会导致程序报错 
参数参数缺失是否会导致程序报错 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

四、其他类型渗透

4.1 客户端攻击

原理:利用软件的解析错误溢出执行装于文件中的exp

browser_autopwd模块构造网页自劝溢出攻击浏览器

ms10_087模块配置生成畸型文件弄到靶机打开

adobe_cooltype_sing生成畸型pdf攻击adobe

 

4.2 社会工程学

利用msfvenom生成各平台的包含了payload的木马

利用setoolkit制作钩鱼网站或有畸形文件的邮件

UitraISO+Hacksaw制作木马启动盘

拿着姓名/手机/邮箱等到各网站搜一圈看注册信息

 

4.5 无线安全

aircrack-ng破解wifi密码

Airmom-ng假冒ap,并利用karma架设假冒服务

 

4.6 后渗透攻击

所谓后渗透就是拿到主机shell后,提权/清除日志/增加更稳定后门/内网渗透等工作

Meterpreter可以理解为是windows的cmd,linux的shell

日志--C:\Windows\System32\winevt\Logs、/var/log

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值