朋友扔过来的一个公司,域名是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查看

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客户端连接这个地址,成功连接上,这次终于可以成功的访问内部网络了。
0x04 内网渗透
登陆vpn后查看route details看到内部的ip地址段:
net use aaainc.ad password /user:aaainc.adusername
,这条命令是对域名进行net use连接认证,这样一来就相当于我当前这个cmd是一台用username登陆过的域内主机,可以直接访问域内其他资源了。
Net view aaainc.ad看下域控制器的共享情况,有NETLOGON和SYSVOL,

xcopy aaainc.adnetlogon netlogon /i /e /c
全部拷贝回来,等会慢慢分析。
SYSVOL文件夹里面则是组策略分发时的一些东西,默认也是可以直接访问的,根据Exploiting Windows 2008 Group Policy Preferences
(也就是一般说的GPP,详细见文末参考),在Groups.xml
ServicesServices.xml
ScheduledTasksScheduledTasks.xml
PrintersPrinters.xml
DrivesDrives.xml
DataSourcesDataSources.xml
这些文件里面有可能会有本地的账号密码。当然这些文件也不是一定有的,第一个发现这个漏洞的老外是从groups.xml里面找到了本地的账号密码,但groups.xml这个文件只有域管理员通过分发域组策略对计算机添加本地账户或者更改本地账户的密码时才会出现。我之前也并没有用这种方法成功过,这次也权当是例行公事,毕竟你不去尝试就什么都不会得到,你尝试了就有可能会有收获,对吧?
先执行dir aaainc.adSYSVOL /s /a > sysvol.txt
,然后findstr /i “groups.xml” sysvol.txt
,居然真的有groups.xml这个文件,赶紧copy回本地,从groups.xml的内容来看,这是添加了一个本地管理员账号。

set-executionPolicy bypass
,因为默认是不允许运行ps脚本的。


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