查看原文
其他

某运营商外网打点到内网横向渗透的全过程

听风安全 2023-11-28

The following article is from 希潭实验室 Author abc123info

免责声明
由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

公众号现在只对常读和星标的公众号才展示大图推送,

建议大家把听风安全设为星标,否则可能就看不到啦!

----------------------------------------------------------------------

 Part1 前言 

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


 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:Yunwei@123、P@ssw0rd01,接下来使用这两个密码,在内网重新扫描,最终发现了一台最为关键的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段。


不可错过的往期推荐哦


从外网绕过沙箱逃逸再到内网权限提升的一次常规渗透项目

巧用OpenSSH进行域内权限维持

一次市hvv及省hvv的思路总结

越南海莲花APT针对中国大陆的邮件钓鱼技战术手法总结

对抗临近 | 红队大佬的私人秘籍:EDR绕过技术曝光!

带防护的Windows域渗透

渗透实战|NPS反制之绕过登陆验证

干货|从无到有学习Golang编写poc&exp

点击下方名片,关注我们

觉得内容不错,就点下“”和“在看

如果不想错过新的内容推送可以设为星标
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存