第51篇:某运营商外网打点到内网横向渗透的全过程
2023-2-12 22:11:9 Author: Z2O安全攻防(查看原文) 阅读量:26 收藏

 Part1 前言 

大家好,我是ABC_123,不知不觉,我一个人已经连续写了51篇原创文章了。本期复盘一次之前做过的某运营商的外网打点到内网横向过程,由于是好多年前的了,很多细节记不清了,但是关键步骤还记得。这次渗透过程的特点是内网很大,打到了域控及核心数据库区,但是却没用到什么高深技术,用的都是常规手段,经验很重要。接下来就把完整过程分享给大家,希望对大家有一些帮助。

欢迎关注我的公众号"ABC123安全研究实验室",ABC_123坚持99%原创,不抄袭文章,不发水文,不发广告

 Part2 技术研究过程 

  • 渗透测试流程图

首先放出一张我做的渗透测试流程图,方便大家理解整个过程。

  • 外网信息收集过程

首先客户给出了一个excel的资产列表,这个资产类表已经被各个厂商搞过好几轮了,基本上在外网发现一个代码执行漏洞是很难的,但是不能给自己提前下结论,渗透测试该走的流程还是得走,也许就会有意外收获。于是我做了以下的工作:

 1   把客户给的各种域名解析成ip地址,结合Excel表中已有的ip地址,合并去重,整理成一个ip地址的列表。

 2   对上述ip地址进行全端口扫描,然后使用nmap进行服务识别,重点整理开放了HTTP/HTTPS的ip地址,形成URL列表。

 3   各种漏洞测试与查找,结果在外网没有发现有价值的漏洞,于是我接下来又做了以下两件事情。

 4   把前面整理的ip地址列表,扩充整理成C段列表,比如说出现了12.12.12.19、12.12.12.46等地址,那么我们就统一整理成一个C段12.12.12.1/24。

 5   经过初步扫描,发现了一个属于客户的资产,但是客户自己却不知道。点开页面源码中有.action地址,直接用struts2工具就可以拿下权限。

 6   对上述整理的URL列表挨个手工查看,通过经验一层层地翻看各种js文件和链接,又发现了一个废弃的3级域名的站点,上面直接一个struts2漏洞,然后又是拿下权限。

小结: 其中有一个Struts2漏洞,客户扫过好几轮了都没发现。原因是这个网站如果发现攻击行为超过3次,后续一段时间内就会直接返回另一个正常页面,导致工具继续扫描扫不出漏洞,因此这个Struts2漏洞只能手工测试才能发现,当然你用轮换代理的方式也能发现

  • 架设第一层代理

 1   获取两个webshell之后,接下来就是搭建通往内网的代理通道了,这两个webshell都是不出网的,于是上传了reGeorg脚本,通过http隧道对内网进行渗透。这两台服务器都是Windows主机,IP属于192.168.x.x段。

 2   接下来在其中一台Windows主机上传了一个爆破密码的小工具,另一台Windows主机不作任何扫描,如果权限丢失,至少还有一个入口存活。一般不建议在本地用Proxifier挂上代理的方式进行扫描,因为http隧道代理通常不稳定,这样做容易导致扫描结果大量漏报。这样很快通过SMB口令、SQLServer口令提权、SSH口令、RMI 1099代码执行等方式,获取了几台内网主机权限。

 3   接下来通过拿到的权限,收集本地shadow文件、linux环境变量、linux的history文件、浏览器记录、服务器上的数据库配置文件等,继续做成密码字典,重新进行内网各种口令爆破,继续拿权限,这样周而复始做过几轮之后,拿了很多权限,有windows主机,也有Linux主机。

 4   通过整理已经获取的主机权限发现,内网获取的权限集中在192.168.x段,内网各段功能划分比较规整,比如在192.168.1.1/24网段内,存放的都是Linux的FTP服务器,提供一些操作系统镜像文件、常用软件、各种文档的下载;在192.168.19.1/24网段内,有一些win7系统,还有一些打印机设备,推测是一些员工机器。

  • 内网寻找通往10.x段的机器

接下来需要想办法获取10.x的机器,一般重要的系统都放在10.x网段。于是在获取的主机权限上,挨个执行ipconfig /all命令并分析结果,挑选了一台双网卡机器作为跳板机,它同时能通192.168.x和10.x网段,接下来面临的问题就是怎么找到10.x网段的存活机器,因为这个网段太大了。

我记得当时试过了nmap判断内网存活主机的命令,我记得命令很长很长,各种参数,但是这个命令怎么说呢,有效果,但是在当时的内网环境中效果一般,很多机器是禁ping的扫不出来。

最终研究了好长时间,最终在跳板机上上传一个扫描snmp弱口令的工具,很快找到了10.x网段内的10几个snmp服务弱口令,通过一个snmp信息查看工具,每一个snmp口令登陆之后通过OID查看各种信息,有的SNMP服务可以看到很多内网IP地址,比如说10.10.2.13、10.23.1.106、10.16.0.121等等,于是我把这些10.x网段的IP地址整理成列表,然后扩充成相应的C段,然后对这些C段列表扫描常用的几个端口,用这种方法快速得到10.x的一些存活机器,接下来又是放上扫描工具扫描一下试试。

  • 找到最关键的一台主机

使用工具在10.x段内进行漏洞扫描,通过各种口令、通过各种漏洞获取了很多内网服务器权限,部分机器是有多个管理员账号的,本地提取shadow文件,对hash进行破解,找到了两个疑似运维账号的弱口令yunwei:[email protected][email protected],接下来使用这两个密码,在内网重新扫描,最终发现了一台最为关键的linux主机,在这个主机执行netstat -an发现,连接着众多的10.x段服务器,最终在这台机子上,上传一个二级代理,后续的内网横向就以此为跳板机。把netstat -an结果中的很多10.x的网段进行整理,重新进行漏洞扫描及密码爆破。这个二级代理所在的网段,大概许久没人进来过,所以权限非常好拿,各种漏洞很多,没啥技术含量,最终找到了一台非常大的mysql数据库权限,后续又进入了Oracle核心数据库区,这里就不展开说了。

  • 域控权限获取

最后说一下域控权限获取,放在最后讲是怕给大家误导。有一天有一个管理员登录了我在内网的一个跳板机,在3389连接框上面显示了从未见过的账号,于是赶紧用mimikatz提取哈希,发现是一个高权限的域管账号。

拿了域控自然是很高兴,但是别高兴得太早,这个域控能控制大约800多台主机,我记得当时域内有很多英文的操作系统,还有一些有关HP的服务器,我在里面转了一晚上,没找到有价值的业务系统,最后我也没搞明白这么多机器是用来做什么的。所以这个域控拿到手,看起来很高大上,对进一步内网横向工作用处不大,所以果断放弃,寻求其它思路继续进行内网横向工作。

 Part3 总结 

1.  外网打点需要注重信息收集,客户给的资产不一定准确,需要自己收集扩充。

2.  漏洞的利用除了用好工具以外,手工测试也是必要的。

3.  通过ipconfig /all 及 netstat -an等简单的命令,在内网中定位了关键跳板机。

4.  本次内网横向的主要手段就是内网密码收集及密码整理爆破,不断扩充字典,以滚雪球方式扩大战果。

5.  在查找10.x网段的存活主机时,借助了snmp弱口令来确定内网存活ip段。

技术交流

知识星球

致力于红蓝对抗,实战攻防,星球不定时更新内外网攻防渗透技巧,以及最新学习研究成果等。常态化更新最新安全动态。专题更新奇技淫巧小Tips及实战案例。

涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全。星球中已发布 200+ 安全资源,针对网络安全成员的普遍水平,并为星友提供了教程、工具、POC&EXP以及各种学习笔记等等。

交流群

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

关注我们

关注福利:

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

回复“资料" 获取 网络安全、渗透测试相关资料文档

往期文章

我是如何摸鱼到红队的

命令执行漏洞[无]回显[不]出网利用技巧

MSSQL提权全总结

Powershell 免杀过 defender 火绒,附自动化工具

一篇文章带你学会容器逃逸

域渗透 | kerberos认证及过程中产生的攻击

通过DCERPC和ntlmssp获取Windows远程主机信息


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2ODYxMzY3OQ==&mid=2247491974&idx=1&sn=7841f67a2efa2421dd2ef927f7007f15&chksm=ceab0ac6f9dc83d08eaadaff29a849abb297665c0422fb144446a2440426d30f62882a611eb2#rd
如有侵权请联系:admin#unsafe.sh