记一次内网渗透检测

记一次内网渗透检测

朋友扔过来的一个公司,域名是aaainc.com,什么信息也没有。Google搜了下,只有主域名上面有个网站,还是托管在其他地方的,用的是开源的cms,没什么漏洞。

0x01 信息收集


先看看这公司是不是有自己的对外办公网络吧,Nslookup看了下mx记录,发现是mx.aaainc.com,mx0.aaainc.com,也就是说这是他们自己的邮件服务器,而不是用的腾讯,微软或者谷歌之类的企业邮箱。看来有点希望,因为一般这种情况下邮件服务器所在的ip地址段就是目标公司真实的ip地址段。将mx.aaainc.com解析出来的ip地址拿去http://bgp.he.net上whois查询,果然得到了公司的IP地址段:
      network:Network-Name:aaa--Inc-12-34-56-78
      network:IP-Network:12.34.56.78/26
有ip地址段就好办一点了,先看看具体的对外服务情况,用nmap扫描了下这个ip地址段,结果用有几个开放80、443端口,没有其他的信息。依次去访问那几个ip,得到一个email登陆口,是微软的outlook web access,两个cisco的vpn登陆口,还有一个是sharepoint的二级域名intranet,访问时会弹出来基础认证的密码框,提示信息里面有显示aaainc.ad,看来里面有个域,这里面肯定是公司的内网无疑了。
没什么多的可用的信息,web也就一个主站,估计去爆二级域名也不会有什么新的web出现。无聊又去公司的主站上看了看,想找找看有没有新发现。看到了有雇员介绍的页面,有相关的员工介绍和email地址,于是收集下来,看看能不能社工到密码。

0x02 爆破outlook


拿这些邮箱去百度、谷歌都搜了下,排除大部分搜索不到信息的,最后剩几个,找到了网上常用的用户名。在本地搭好的库里面查询,找到了一些密码,有两个人设置的密码比较有规律,于是利用查到的信息组合了下做成一个字典,然后准备去email登陆口那里跑一下。
爆破owa的话metasploit里面有一个owa_login模块,是专门用来进行outlook登陆爆破的,而且支持outlook2003 2007 和2010,目标的是2007。于是打开kali,开启metasploit准备爆破。
这里插句话,kali的metasploit是开机启动的,但是postgresql不是开机启动的,这就导致运行msfconsole时会出现连不上数据库的情况。而postgresql又特别蛋疼,必须要在metasploit前启动才行,所以每次启动metasploit时都要先停掉metasploit,然后启动postgresql,再重新启动metasploit才行。具体命令如下:

service metasploit stop

service postgresql start

service metasploit start

Metasploit里面search owa就可以找到owa_login这个模块,这个模块除了常用的参数外,还有个ACTION是不在show options里面的,可以用show actions查看
clip_image001[4]
Owa爆破的结果证明了我的人品还是不错的,我成功的拿到了一个账号密码,可以登录email,也应该可以登录vpn。

 

0x03 曲折的vpn


拿去尝试之前的两个vpn登陆口,那两个登陆口是cisco的vpn,需要安装anyconnect的客户端,装好后发现有一个能登录成功,另一个不能登录。登陆成功后,我用ipconfig /all看了下,有一个的搜索域,是aaainc.ad与之前sharepoint登录口提示信息相符,看来是进入到了域内网络,分配到了内网的ip地址,没有网关,有一个dns服务器。但是随后我发现这个vpn很奇怪,我ping那个dns服务器ping不通,ping 这个域的名字xxxinc.ad也是不通,我甚至都ping不通分配给我自己的那个ip地址,显示一般故障。去群里问了一堆大牛,说是以前有人遇到过,扫53端口或者445之类的其他端口试试看,但是我试了下扫描,开着wireshark,结果显示居然没有任何网络数据包通过那个vpn。看来这个vpn是完全不能访问到内网的任何东西。
没办法,去登录email看看能不能翻到东西,登录进去后搜索vpn,密码等关键字,没有找到相关的信息,到处翻了下也没有一丝丝有用的玩意儿。想起来之前还有个sharepoint的站,用这个账号密码试了下那个站,可以登录进去,里面是一堆业务处理、工作任务、公司介绍什么的东西,翻了很久,找到IT部门相关的介绍也没有关于vpn登录的信息。
随后看到一个新进员工培训的东西,是几个视频,其中有一个是IT部门做的,觉得这里面有可能有介绍vpn的使用,就拖着看了下,果然在视频中有讲到vpn的登录。原来vpn的登录地址并不是我之前扫描到那个那个地址,而是一个域名是sslvpn.aaainc.com的地址,看来之前那个登陆口有可能是废弃了的老登陆口。赶紧用cisco客户端连接这个地址,成功连接上,这次终于可以成功的访问内部网络了。
clip_image002[4]

0x04 内网渗透


登陆vpn后查看route details看到内部的ip地址段:
clip_image003[4]
这时候我才刚刚进入到内部网络,一个小职员的账号没有任何权限。还是先收集域内的信息吧。
先net use \\aaainc.ad password /user:aaainc.ad\username,这条命令是对域名进行net use连接认证,这样一来就相当于我当前这个cmd是一台用username登陆过的域内主机,可以直接访问域内其他资源了。
Net view \\aaainc.ad看下域控制器的共享情况,有NETLOGON和SYSVOL,
clip_image004[4]
NETLOGON里面是域内的登录脚本之类的,这里可是个好东西,默认普通用户权限就可以访问,运气好管理员会在登录脚本里面写账号密码的。用命令xcopy \\aaainc.ad\netlogon  netlogon  /i  /e  /c全部拷贝回来,等会慢慢分析。
SYSVOL文件夹里面则是组策略分发时的一些东西,默认也是可以直接访问的,根据Exploiting Windows 2008 Group Policy Preferences(也就是一般说的GPP,详细见文末参考),在Groups.xml, Services\Services.xml,ScheduledTasks\ScheduledTasks.xml ,Printers\Printers.xml,Drives\Drives.xml,DataSources\DataSources.xml这些文件里面有可能会有本地的账号密码。当然这些文件也不是一定有的,第一个发现这个漏洞的老外是从groups.xml里面找到了本地的账号密码,但groups.xml这个文件只有域管理员通过分发域组策略对计算机添加本地账户或者更改本地账户的密码时才会出现。我之前也并没有用这种方法成功过,这次也权当是例行公事,毕竟你不去尝试就什么都不会得到,你尝试了就有可能会有收获,对吧?
先执行dir \\aaainc.ad\SYSVOL /s /a > sysvol.txt,然后findstr /i “groups.xml” sysvol.txt,居然真的有groups.xml这个文件,赶紧copy回本地,从groups.xml的内容来看,这是添加了一个本地管理员账号。
clip_image006[4]
注意看我框起来的地方:cpassword=GkLX/gJ8uTIBqAPeb+4dMhOPgPQJEaRJYC1921X
拿这一串去解密(解密脚本见文末的参考),得到一个密码。我是用powershell那个脚本解密的,Powershell运行脚本时需要先用管理员权限运行powershell,执行set-executionPolicy bypass,因为默认是不允许运行ps脚本的。
clip_image008[4]
把之前从vpn客户端得到的内网ip地址段计算成ip地址文件,一行一个ip地址,先写个bat测试这些ip地址的存活性,把存活的ip分离出来,得到200多个存活的ip地址。然后写一个bat用刚才获得的本地账号批量进行net use登录测试,如果能登录成功,那么自动copy抓密码的程序过去抓取明文密码,然后顺便把注册表也导出来(导注册表是为了获取本地账户的hash以及导出mscache)。等了大半个小时bat跑完了,然后成功登录了25台服务器,抓到了不少账号密码。
clip_image009[4]
利用新搞到的域内账户密码和wmi.vbs获取一个域内权限的cmdshell,把域内的信息域管理员组,域内计算机信息列表,域内用户列表什么的都弄回来一份。然后去抓到的明文密码里面比对,成功的捉到了一只域管理员,有了域管理员后面就不用多说了,大家都懂。

0x05 参考


http://rewtdance.blogspot.ca/2012/06/exploiting-windows-2008-group-policy.html
http://carnal0wnage.attackresearch.com/2012/10/group-policy-preferences-and-getting.html
我用的解密脚本是从这里改的,第一个链接里面有个ruby版本的
https://github.com/mattifestation/PowerSploit/blob/master/Exfiltration/Get-GPPPassword.ps1#L33

Twi1ight https://www.t00ls.net/thread-24638-1-1.html