前序
我觉得渗透测试有点像机械化的过程,遇到一个目标时,就要按照某个流程都走一遍,工具什么的都用上,当都弄完还没有思路,就需要有些其他的思想了,我想先大致总结一波这个机械化的流程该怎么走,然后收集一些好的渗透思路,学习别人的渗透路径,而前面那个机械化流程是肯定必须要走的。
要干什么?
主要还是在这个渗透测试流程里面总结一些外围打点经历的流程和需要使用的工具,以及优质的博客教程,这还是很重要的,我就不专门写一个工具专题来阐述,一些比较大型的非常好用的工具,我会另外开启page来记述,完全就是为了提升我的渗透测试能力。
经验总结
渗透测试是门技术,也是一门艺术。
所以说渗透测试的思路是非常重要,尤其是在前期的外围打点的过程中,我觉得有个博客里说的特别好,就是下面这段话,所以说你有了一些招式和工具还不够,还达不到让你能够百战百胜,一些创新的思想和方式,真的非常管用,真的是个艺术 🐶,怎么说呢,需要不断经历,学习,总结。
💡 分享的思路就像一本书的索引一样,并不是每个点都有详细的技巧和各种原理分析,而是咱们如何下手如何一步步深入,在每个点上咱们知道了思路可以在每个点上查阅资料来攻破,继续前进。好比武功的招式套路,在总体套路不变的前提的下招招精进,也可以重组创新。
渗透测试流程
下面只是简单地总结一下大概的流程,其实这个流程会有很多,涉及到的工具,方法等等非常多,所以说到时候遇到不同的情况,可以采用不同的应对措施
信息收集
域名信息收集
- 子域名搜集工具:OneForAll
google hack
- 利用google ,bing,fofa(好用)等搜索工具,轻量级的搜索出一些遗留后门,不想被发现的后台入口,中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等等。
C段扫描
要注意这里希望是目标网站的真实ip,而不是前面的云waf或者cdn的ip地址
域名历史解析
- 网站归属whois
- IP反查域名:
目录扫描
- 使用dirsearch工具,挺好用的
隐藏链接发现
- JS文件我们在渗透测试中也是经常用到的东西,有时候我们可以在JS文件中找到我们平时看不到的东西,例如重置密码的JS,发送短信的JS,都是有可能未授权可访问的。JS扫描的话推荐使用JSFind: https://github.com/Threezh1/JSFinder,同时它也会提取页面中的URL
渗透测试
暴力破解 or 弱口令
- 爆破密码,弱密码方法(cs牛逼)(可以利用百度API来识别验证码)
- 验证码爆破:https://blog.csdn.net/xiayu729100940/article/details/107557214
- 搞了半天,还是没搞好,这个验证码目前还是没有好用的工具,到时候再搞吧
- 按照某些信息的字典生成:https://github.com/Mebus/cupp
注册与忘记密码模块
这里有两个短信接受平台,让大家免去烦恼,因为注册需要手机号,避免自己的手机号泄露
web漏洞
对于渗透思路,个人总结的主要有两条主线,即:
1、按系统功能:每个功能(如查询)可能存在的漏洞;
2、按漏洞类型:先前总结的漏洞可能出现的场景,一一对应;
sql注入判定
其他类型
构造测试 预期结果 变种 a' //触发错误,返回数据库错误 a' or '1'='1 //永真条件,返回所有记录 a') or ('1'=1 a' or '1'='2 //空条件,返回原来相同结果 a') or ('1'=2 a' and '1'='2 //永假条件,不返回记录 a') and ('1'='2
数字类型
构造测试 预期结果 变种 ' //触发错误,返回数据库错误 1+1 //返回原来相同的结果 3-1 1+0 //返回原来相同的结果 1 or 1=1 //永真条件,返回所有记录 1) or (1=1 1 or 1=2 //空条件,返回原来相同的结果 1) or (1=2 1 and 1=2 //永假条件,不返回记录 1) and (1=2
getshell
一句话木马getshell
网上有各种版本的一句话木马
- 现在收集中国蚁剑的一个jsp木马,蚁剑也可以自己生成
还有其他的大马啥的,网上都可以搜到
端口渗透
常见端口
未授权访问漏洞
常见未授权访问漏洞总结: https://xz.aliyun.com/t/6103#toc-13
Redis 未授权访问漏洞=>6379 MongoDB 未授权访问漏洞=>27017 Jenkins 未授权访问漏洞=>8080 Memcached 未授权访问漏洞=>11211 JBOSS 未授权访问漏洞=>8080 VNC 未授权访问漏洞=>5900~5999 Docker 未授权访问漏洞=> ZooKeeper 未授权访问漏洞=>2181 Rsync 未授权访问漏洞=>873 Atlassian Crowd 未授权访问漏洞=>8095 CouchDB 未授权访问漏洞=>5984 Elasticsearch 未授权访问漏洞=>9200 Hadoop 未授权访问漏洞=>8088 Jupyter Notebook 未授权访问漏洞=>8888
网络空间搜索引擎
因为扫描端口服务很慢嘛,有时候并不是每个端口都看了,现在就可以用下面的搜索引擎来进行搜索,这样会事半功倍,其中fofa很强,有专门的语法啥的,比如利用ip查,就ip=”0.0.0.0”等。
权限提升
- 使用JuicyPotato提权(Windows提权工具)
- 直接下载后上传 https://github.com/ohpe/juicy-potato
- 教程:https://zeo.cool/2020/05/25/烂土豆Juicypotato提权原理和利用/#0x03-WEBSHELL版本
- 上面那个链接还不能直接用,因为提权的过程中会弹出新的cmd窗口
- 所以需要webshell版本的烂土豆,下载地址:https://github.com/shanfenglan/test/tree/master/juicypotato
内网渗透
信息收集
当我们通过渗透进入内网环境后,面对的是一片未知区域。对当前机器角色判断,对机器所处区域分析。
- 判断当前机器区域
- 判断机器所处于网络拓扑哪个区域,是在DMZ区、办公区、核心区。区域界限是相对的
- 机器角色判断
- 文件服务器:配合社工,生成payload捆绑到文件服务器公用文件上,可批量上线主机
- DNS服务器:端口53,可通过DNS服务器获取内网web系统信息,或者探测域信息
- DHCP服务器:查看内网多组网段信息,更多的获取拓补信息
- 开发测试服务器:获取源码,新的信息资产,多存在弱口令
- 代理服务器:获取服务器账号,拿到各种密码
- web服务器:可能需要提权
- 个人PC:查看是否存在域环境
- 本机信息收集
- 收集命令
- 域环境信息收集
- Ping探测主机存活(ICMP)
- 翻翻配置文件
- 工具收集
- 抓取浏览器密码的工具:https://github.com/QAX-A-Team/BrowserGhost
- 抓取计算机密码:https://github.com/AlessandroZ/LaZagne
- 域渗透神器:https://github.com/byt3bl33d3r/CrackMapExec
- 可以利用拿到的密码去撞其他内网的库
- 可以免杀上传下载东西:https://github.com/360-Linton-Lab/WMIHACKER
- PowerSploit是GitHub上面的一个安全项目,上面有很多powershell攻击脚本,它们主要被用来渗透中的信息侦察、权限提升、权限维持:https://github.com/PowerShellMafia/PowerSploit
- 域渗透思路:(https://github.com/imp0wd3r/active-directory-pentest)
- 获取一台域主机上的一个低权限用户,比如通过Webshell
- 信息收集(贯穿始终,使用扫描器fscan等等去扫描)
- 权限提升(提升到高权限来尝试获取其他域用户的登录凭据)
- 横向渗透(利用已经获得的登录凭据对其他域内主机进行渗透,或将当前机器作为代理,对域内其他机器进行扫描)
- 重复上述步骤直至控制域控
历史渗透总结
站点一(固定)
- 弱密码,普通账户
- 目录扫描
- 隐藏接口,发现是spring boot
- 发现接口,越权访问,重置管理员密码
- 登录发现文件上传接口
- 上传webshell
- 主机横向渗透
站点二
- 资产收集,确定目标
- google hack一些未授权访问和sql注入,无法开启os-shell,没有权限
- SQL注入拿到数据,进入oa
- 找到其他sql注入接口,拿到os-shell
- 写入webshell
- 密码碰撞,拿到一些主机
站点三
- 资产收集,确定目标
- 目录扫描,用户名爆破,密码爆破
- 多个系统,弱密码123456
- 找到sql注入接口,文件上传接口
- 写入webshell
- 拿到主机管理员密码,进行横向碰撞
- 利用该账号登录其他重要系统,拿下数据中台
站点四
- 资产收集
- 找到目录遍历
- 下载文件找到mysql账户密码
- mysql写日志方式写入shell
- 获得主机权限
站点五
- 资产收集
- 弱密码
- 文件上传
- 内网资产扫描,漏洞扫描,密码碰撞
站点六
- 资产收集
- 确定strust2漏洞
- 命令执行,写入写文件的shell(杀软非常厉害)
- 写入加密免杀的shell
- 获得主机权限