紅藍對抗之信息收集

這篇文章發表在了朋友的公眾號上,大家也可以移步公眾號閱讀,今天想起來備份到博客上
//mp.weixin.qq.com/s?__biz=Mzg5NzY1NTI2OQ==&mid=2247483751&idx=1&sn=d3b2ffcd2134e6d66d4935bf56c8115d&chksm=c06fc9edf71840fb5072f905e9ae8444a242cbb865bff2436c0d74818530e923adfb4f3343d4&token=1058397600&lang=zh_CN#rd

簡介

隨着網絡攻防技術的提升,通常的對單一系統的滲透測試已逐漸滿足不了客戶市場。現在企業內部的紅藍對抗,各個地區的護網行動如雨後春筍一般飛速發展。

這篇文章是針對這紅藍對抗項目的第一步「資產信息收集」進行一個總結和方法技巧的梳理。

企業信息收集

紅藍對抗中往往只會給你目標企業的名稱,以及對應的靶標系統地址,而很少有直接從靶標系統入手獲取權限的情況,這時候我們需要進行對企業的信息進行收集。

天眼查 //www.tianyancha.com/

企查查 //www.qcc.com/

啟信寶 //www.qixin.com/

以天眼查為例
首先我們需要收集一個企業的從屬企業,如子公司,分支,甚至供應商,因為子公司分支公司可能與我們目標的內網有所連接,供應商的系統中擁有着我們目標的數據,比如人員信息,賬號等方便下一步利用

查詢子公司,一般控股在51%以上就可以算隸屬於該目標的資產

查詢分支公司

查供應商,供應商我們需要着重關注採購佔比高的供應商,因為比例高說明該供應商的產品大部分都是我們靶標的

查了完了從屬公司後我們下一步是去查對應公司的資產,也就是我們要從這些資產中去發現漏洞

查詢公眾號

查詢app

查備案,備案有時候是ip的形式,有時候是域名的形式,我們拿到域名可以進行子域名收集,拿到ip可進行歸納,看看是不是大多屬於同一個網段,如果是則可以對該網段進行一個收集

備案號查詢

工信部備案號查詢地址 //beian.miit.gov.cn/#/Integrated/recordQuery

icp備案信息查詢工具 //www.icplist.com/

在有些較小的目標時,天眼查這類不一定能夠搜索到備案信息

我們通過百度還是能找到南京衛健委的官網的

接下來我們可以看到在官網底部存在備案信息

我們把-7去掉,查詢就是支持單位的備案域名,這裡南京衛健委的網站是南京市信息中心統一管理的,那麼有一定的概率南京市信息中心其他站點與衛健委站點內網相連

子域名

子域名收集無非是2種途徑,一種是通過api接口如shodan,fofa之類的去查詢,一種是通過dns解析去爆破子域名

這裡推薦幾個工具

subfinder(api收集子域名)

//github.com/projectdiscovery/subfinder

# 單目標
subfinder -all -o doamin_result.txt -d xxx.com

# 多目標
subfinder -all -o results.txt -dL target.txt

shuffledns(子域名爆破)

需要先安裝massdns

//github.com/projectdiscovery/shuffledns

words.txt為爆破子域名字典,resolver.txt為dns服務器ip文件

shuffledns -massdns /usr/local/bin/massdns -w words.txt -r resolver.txt -o result.txt -d vivo.com

subfinder與shuffledns組合使用

結果保存在results.txt裏面

#bash腳本,多目標
subfinder -all -dL $1 -o tmp/subfinder_$1.txt
shuffledns -massdns /usr/local/bin/massdns -w words.txt -r resolver.txt -list $1 -o shufflendns_$1.txt
cat tmp/subfinder_$1.txt | tee -a tmp/shufflendns_$1.txt
sort -u tmp/subfinder_$1.txt -o results.txt
rm -rf tmp/subfinder_$1.txt tmp/shufflendns_$1.txt
echo 'subscan over'

使用方法

sh scan.sh qq.com

集成工具oneforall

這裡貼個連接,oneforall集合了很多資產收集工具,它的github文檔寫的很詳細,讀者可自行了解下

//github.com/shmilylty/OneForAll

ip資產收集

現在有些企業的系統更新迭代迅速,往往有些目標的系統沒有域名,並且為了免去備案過程的繁瑣,它往往會把系統開在非80,443端口,備案信息也查不到

這時候思路一般是通過fofa,鍾馗之眼這類的資產查詢平台去收集,當然fofa上的資產不一定是及時有效的,我們拿到目標ip還可以進行一次全端口掃描,往往也可以發現一些fofa上沒有記載的端口

直接搜索關鍵字

以江蘇移動為例

(title="中國移動" || body="中國移動") && region="Jiangsu"

打開第一個鏈接,即為目標資產

當然該種方法任然會有很多其他的資產,這時候根據實際情況進行過濾

(title="中國移動" || body="中國移動") && region="Jiangsu" && (body="江蘇" || title="江蘇")

當然也會遺漏一些數據,這個就需要自己進行一個取捨了

根據已有資產去搜集c段

在初步信息收集結束後,手上會有備案過的ip地址,子域名解析對應的ip地址,進行歸納整理後,對其c段進行收集

我們根據備案信息,發現183.207.100.1/24 或者說183.207.100.1/16網段中多個ip都是屬於目標資產的

我們可以對該網段進行一個信息收集

ip="183.207.100.223/16" && (title="中國移動" || body="中國移動")

根據證書收集資產

在通過fofa收集目標資產的時候,在左邊就有證書信息

我們可以點擊該鏈接,他會自動幫我們自動填寫語法

cert.subject="中國移動通信集團江蘇有限公司"

通過iconhash來收集

有些企業會將favicon.ico弄成相同的,比如移動的icon

//github.com/Becivells/iconhash

我們通過iconhash工具進行計算

iconhash //www.10086.cn/favicon.ico

也可以保存下來進行hash計算

iconhash -file favicon.ico

fofa需要高級會員才能使用icon進行搜索

根據header特徵收集

比如有些站點他的Set-Cookie有對應特徵字段,或者csp信息有域名等等,以tencent為例

header="tencent.com"

或者說搜索set-cookie

header="Domain=.cloud.tencent.com"

小結

上述幾種方法讀者可根據情況自行的進行組合使用,但也不排除有些資產web確實沒有特徵

資產確認

fofa掃C段有個問題是在於,確實發現漏洞了,但是怎麼向紅藍對抗的裁判去證明該站點是我們的目標站點

可以從以下幾個途徑入手

站長之家-ip信息查詢 //ip.tool.chinaz.com/

該方法可以查到該ip的地理位置,如果是國外的話,那麼一般可以排除

查詢網-ip反查詢 //site.ip138.com/

我們不知道ip地址對應的域名是什麼,但不代表他沒有域名,我們可以通過該方法對ip地址進行反查

下圖jscmcc.cn是江蘇移動的域名,則可以推斷出該ip就是江蘇移動資產

威脅情報中心(微步) //x.threatbook.cn/

威脅情況中心一般是用來應急響應溯源ip用的,他甚至包含了該ip的歷史dns解析記錄,在ip反查查不到的情況下用威脅情報中心進行一次反查往往能夠有意想不到的收穫

端口掃描

在紅藍對抗高強度,時間短的情況下,拿nmap去掃全端口等到天荒地老都不一定有結果,這裡推薦2個快速掃描端口的工具
naabu

//github.com/projectdiscovery/naabu

如果探測端口服務需要安裝nmap,很慢建議可在vps上運行,下面是全端口掃描的命令

# 多目標全端口
naabu -p - -nmap-cli "nmap -sT -Pn -T4 -o result.txt" -iL target.txt

# 單目標全端口
naabu -p - -nmap-cli "nmap -sT -Pn -T4 -o result.txt" -host xxx.com

masscan

//github.com/robertdavidgraham/masscan

#在linux下
apt-get install masscan
yum install masscan
#在mac下
brew install masscan

運行

masscan -p 1-65535 ip --rate 10000

服務識別

在端口掃描的時候就能幫我們識別一些服務了,比如mysql,http,ssh等等

但是有些存在非常用端口存在web站點而nmap識別出來是unknown的情況,而web通常是我們的常見突破口

httpx

//github.com/projectdiscovery/httpx

我們可以使用httpx來識別web服務

httpx -status-code -content-length -title -l target.txt

我們的target.txt文件每行只需要域名或者ip,如果探測其他端口可以帶上端口

在識別到存在web了之後我們可以進一步去識別目標的服務,在紅藍對抗中往往一些通用組件的漏洞是突破口
Ehole

//github.com/EdgeSecurityTeam/EHole

和whatweb這種指紋識別工具比起來,一般可以識別出各種oa,各種國內用的系統等等,在國內紅藍對抗中往往更加有效果,文件一般是web的url連接(帶http協議的寫法)

Ehole -l 1.txt

結語

資產收集的方法還有很多,比如從apk中提取url地址,從dns服務器上查詢解析記錄等等方式。

如今在紅藍對抗中掉點率是越來越高,並且大部分資產都有設備waf等等,稍微掃一下路徑就被封ip,而信息收集收集到防守方沒有梳理歸納劃入防守方的資產的時候,這種信息差往往會成為進入內網的突破口。