淺談紅隊中的外網信息收集(一)
前言
最近在對以往所學習的有關紅隊的知識點進行梳理總結,這里主要參考了 ATT&CK 矩陣模型,不過對其進行了簡化,同時加入了一些國內特有的情況放了進去。
大體上會按照外網信息收集、打點、權限維持、提權、內網信息收集、橫向移動、痕跡清理這樣的順序展開。

因為是梳理總結性的文章,所以文章的側重點在于「面」而不在于具體的某個「點」,因此文中的具體技術細節不會展開去談,不然內容會很多。
想了解具體細節的讀者可以去看看我的個人公眾號 TeamsSix 里的歷史文章,里面會有針對一些點展開描述的文章。
受限于個人水平,文中難免會出現錯誤或者描述不當的地方,還望在評論處指出,望諒解。
確定目標
當開始做信息收集之前,肯定是要先確定目標的,在紅隊項目或者 HW 項目中,一般目標都是一個公司的名稱,然后通過這個公司的名稱獲取各種信息,接著開展外網打點、內網滲透等等工作。
在我們得知目標公司名稱后,就可以開展信息收集的工作了。
外網信息收集
我這里梳理了大概以下這些信息收集的方式,當然肯定是不全的,歡迎大家在評論區一起補充討論:

1、組織股權結構
拿到公司名稱后,先不用急著查備案、找域名,而是先看看這家公司的股權構成,因為一般一家公司的子公司也是可以作為目標去打的,不過有時是要求 50% 持股或者 100% 持股,這個就要看具體實際情況了。
比較常見的查詢公司組織股權結構的網站有天眼查、企查查、愛企查、小藍本、釘釘企典等等。
如果目標持股公司不多,可以直接看股權穿透圖,比較直觀;如果持股公司比較多,股權穿透圖看著就比較費力了。

除了股權穿透之外,還可以看它的對外投資信息

這兩個地方都可以查到有目標持股的公司。
如果目標比較少一個一個子公司的去看還好,但如果目標很多,那這效率就很低了,好在現在也有了現成的工具。
ENScanGo
ENScanGo 是現有開源項目 ENScan 的升級版本,工具地址:https://github.com/wgpsec/ENScan_GO

這是一款由狼組安全團隊的 Keac 師傅寫的專門用來解決企業信息收集難的問題的工具,可以一鍵收集目標及其控股公司的 ICP 備案、APP、小程序、微信公眾號等信息然后聚合導出。
例如我這里搜集「北京百度網訊科技有限公司」以及他持股了 50% 的公司信息。
enscan -n 北京百度網訊科技有限公司 -invest-num 50
收集后的結果如下:

這樣一來,直接省去了收集 ICP 備案的步驟,一鍵獲得了目標公司及其子公司的公司名稱、app、微信公眾號、ICP 備案等信息。
2、主域名查詢
主域名查詢可以分為備案域名查詢和未備案域名查詢。
備案域名查詢
除了上面從企業信息查詢網站中獲取到備案信息外,最全也是最準確的方法就是去國家的備案信息查詢網站里查詢了,地址為:https://beian.miit.gov.cn。
除了官方的渠道外,還有一些第三方的備案域名查詢站點,比如站長之家等等。
未備案域名查詢
- 通過目標已知的網站獲取。
有些企業會把自己的其他業務站點放在網站尾部,里面也許會包含未備案的站點。

- 通過 Fofa 等空間引擎進行證書、圖標關聯搜索,然后指定搜索規則 is_domain=true,即表示只返回域名。

3、子域獲取
比較常見的工具就是 OneForAll,除此之外還有 amass、subfinder、xray、ksubdomain 等等。
如果提前知道目標,還可以提前收集一波子域,然后項目快開始的時候,再收集一波子域,將兩次收集的結果做下對比,優先打新增子域。
4、端口掃描
一般比較常見的可能就是 nmap 和 masscan 了,這里分享一個 nmap 快速掃描全部端口的命令。
nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -p 1-65535 -iL ip.txt -oX output.xml
不過除了這些方法外,fscan 其實也可以拿來做外網的端口掃描,而且速度更快。
比如用 fscan 只掃描端口,不做漏洞掃描
fscan -hf hosts.txt --nopoc -t 100
fscan 默認線程是 600,因為是外網掃描 600 的線程就比較大了,所以這里設置了 100,如果感覺掃描結果不理想,線程還可以設置的再小點。
端口掃描可以結合空間搜索引擎的結果,如果通過空間搜索引擎發現目標存在很多的高位端口,那么在進行端口掃描的時候就要記得也把這些高位端口加上。
5、指紋識別
指紋識別是我個人覺著非常重要的一點,因為指紋識別的結果對打點的幫助是很大的,可以讓打點更有針對性,同時也會節省很多時間。
比較常見的在線指紋查詢網站有 godeye 和云悉等,工具有 observer_ward 和 Ehole 等。

6、空間搜索引擎
擅用空間搜索引擎,有時可以在最初剛拿確定目標的時候就發現目標弱點。
目前比較常見的空間搜索引擎有 Fofa、Shodan、360 夸克、奇安信全球鷹、知道創宇 ZoomEye 等等。
常見的工具有 Fofa_Viewer、FofaX、Kunyu,其中 Fofa_Viewer 為圖形化界面,使用友好。
下載地址:
https://github.com/wgpsec/fofa_viewer

FofaX 為命令行界面,FofaX 可以結合其他工具聯動使用,除了這兩個工具調用 Fofa 接口外,上面提到的 Ehole 也可以調用 Fofa 查詢。
Kunyu 調用的是 ZoomEye 的接口,工具下載地址:
https://github.com/knownsec/Kunyu

7、api 接口
獲取 api 接口常用的工具有 jsinfo、findsomething、jsfinder、BurpJSLinkFinder 等等。
如果找到了一些未授權接口,也許就可以搞到一些高價值信息,比如大量敏感信息泄露之類的。
另外在翻 js 文件的時候,可以關注下有沒有以 runtime 命名的 js 文件,因為在這種 js 文件中會包含其他 js 文件的名稱(包括當前頁面沒有加載的 js 文件),這樣利用 runtime js 文件就發現了更多的 js 文件,使得找到 api 接口的概率又大了些。

8、目錄獲取
目錄掃描比較常用的工具有 dirsearch、ffuf
ffuf 更側重于 FFUZ,不過不管是目錄掃描還是 FFUZ ,掃描的結果都在于字典,Github 上 4k 多個 star 的字典:
https://github.com/TheKingOfDuck/fuzzDicts
9、郵箱地址獲取
郵箱地址比較常用的方法有直接通過搜索引擎找網上公開的郵箱信息,這種往往會指向目標的網站中,比如目標某個網頁的附件中包含有郵箱等信息。
之外還可以使用 Github 搜索目標公司開發者在代碼中注釋的郵箱信息,其實不太明白為什么開發者都喜歡把自己的郵箱注釋到代碼里。
也可以通過領英找到目標公司的員工姓名,通過「拼音+@公司域名」的方法去構造員工郵箱。
也有一些網站可以查詢郵箱,這種比較方便,比如以下網站:
- https://www.skymem.info/
- https://app.snov.io/domain-search
- https://www.email-format.com/i/search/
另外如果收集到了目標的 outlook 站點,也可以嘗試去爆破郵箱用戶名。
10、網盤信息
網盤信息里有時也會發現不少好東西,這類網站也很多,可以在愛達雜貨鋪導航站里找到很多網盤搜索類站點。
11、其他信息
其他的信息比如 app、小程序、供應商、外包合作商、公眾號等,或多或少都可以從上面的組織股權架構類網站中查詢到,或者使用 ENScan 也可以。
其中比較值得注意是的供應商和外包合作商,如果拿下供應商也許可以直接進入目標內網,如果拿下外包合作商則可以借助這一層關系進行社工或者嘗試進入目標內網等操作。
后記
紅隊中的信息收集當然遠不止上面說到的,其他比較常用的還有資產監控平臺、社工庫、自動化信息收集工具(比如 ShuiZe)以及各種內部紅隊平臺等等,這里篇幅有限就不再展開了。