12種公開資源情報(OSINT)信息收集技巧分享

前言

公開資源情報計劃(Open source intelligence ),簡稱OSINT,是美國中央情報局(CIA)的一種情報蒐集手段,從各種公開的信息資源中尋找和獲取有價值的情報。

有各種各樣的數據可以被歸類為OSINT數據,但從滲透測試者的角度來看所有這些數據都不重要。作為滲透測試人員,我們更感興趣的是那些可以為我們實際所利用的數據信息。例如:

可增加攻擊面的信息(域,網塊等);

憑據(電子郵件地址,用戶名,密碼,API密鑰等);

敏感信息(客戶詳細信息,財務報告等);

基礎架構詳情(技術棧,使用的硬件設備等);


12種公開資源情報(OSINT)信息收集技巧分享


12種OSINT信息收集技巧

1. SSL/TLS證書通常都會包含域名,子域名和電子郵件地址。這使得它成為了攻擊者眼中的一座寶庫。

證書透明度Certificate Transparency是谷歌力推的一項擬在確保證書系統安全的透明審查技術,只有支持CT技術簽發的EV SSL證書,谷歌瀏覽器才會顯示綠色單位名稱,否則chrome瀏覽器不顯示綠色單位名稱。

新的簽發流程規定:證書必須記錄到可公開驗證、不可篡改且只能附加內容的日誌中,用戶的網絡瀏覽器才會將其視為有效。通過要求將證書記錄到這些公開的 CT 日誌中,任何感興趣的相關方都可以查看由授權中心簽發的所有證書。這意味著任何人都可以公開獲取和查看這些日誌。為此,我專門編寫了一個用於從給定域CT日誌中找到的SSL/TLS證書中提取子域的腳本。


12種公開資源情報(OSINT)信息收集技巧分享


另外,再推薦大家一款工具SSLScrape。這是一款將網絡塊(CIDR)作為輸入,來查詢各個IP地址獲取SSL/TLS證書,並從返回的SSL證書中提取主機名的工具。

sudo python sslScrape.py TARGET_CIDR


12種公開資源情報(OSINT)信息收集技巧分享


2. WHOIS服務在滲透測試期間,通常用於查詢註冊用戶的相關信息,例如域名或IP地址(塊)。WHOIS枚舉對於在互聯網上擁有大量資源的組織尤為有效。

一些公共WHOIS服務器支持高級查詢,我們可以利用這些查詢來收集目標組織的各種信息。

下面我以icann.org為例,通過查詢ARIN WHOIS server獲取目標域所有包含email地址的條目,並從中提取email地址。

whois -h whois.arin.net "e @ icann.org" | grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0–9.-]+\.[a-zA-Z0–9.-]+\b" | uniq


12種公開資源情報(OSINT)信息收集技巧分享


通過查詢RADB WHOIS server獲取屬於自治系統號(ASN)的所有網絡塊。

whois -h whois.radb.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq


12種公開資源情報(OSINT)信息收集技巧分享


通過查詢ARIN WHOIS server獲取給定關鍵字的所有POC,ASN,組織和終端用戶。

whois -h whois.arin.net "z wikimedia"


12種公開資源情報(OSINT)信息收集技巧分享


3. 自治系統(AS)號可以幫我們識別屬於組織的網絡塊,以及發現網絡塊中主機上運行的服務。

使用dig或host解析給定域的IP地址:

dig +short google.com

獲取給定IP的ASN:

curl -s http://ip-api.com/json/IP_ADDRESS | jq -r .as

我們可以使用WHOIS服務或NSE腳本,來識別屬於ASN號碼的所有網絡塊:

nmap --script targets-asn --script-args targets-asn.asn=15169


12種公開資源情報(OSINT)信息收集技巧分享


4. 如今使用雲存儲的企業越來越多,尤其是對象/塊存儲服務,如Amazon S3,DigitalOcean Spaces和Azure Blob Storage。但在過去的幾年裡,由於S3 buckets錯誤配置導致的數據洩露事件頻出。

根據我們的經驗,我們看到人們將各種數據存儲在安全性較差的第三方服務上,從純文本中的憑據到他們私人的寵物照片。

這裡有一些工具例如Slurp、AWSBucketDump和Spaces Finder,可用於搜索可公開訪問的對象存儲實例。Slurp和Bucket Stream等工具將證書透明度日誌數據與基於置換的發現相結合,以識別可公開訪問的S3 buckets。


12種公開資源情報(OSINT)信息收集技巧分享


12種公開資源情報(OSINT)信息收集技巧分享


5. Wayback Machine是一個國外的網站,它是互聯網的一個備份工具,被稱為互聯網時光機,自從1996年以來Wayback Machine已經累計備份了超過4350億個網頁。

你只要在它的網站上輸入一個網站地址,就能看到這個網站在過去的不同時期分別長什麼樣。通過Wayback CDX Server API我們可以輕鬆的搜索存檔。waybackurls是一個用於搜索目標站點相關數據的工具。

挖掘Wayback Machine存檔對我們識別給定域的子域,敏感目錄,敏感文件和應用中的參數非常有用。

go get github.com/tomnomnom/waybackurls waybackurls icann.org


12種公開資源情報(OSINT)信息收集技巧分享


6. Common Crawl網站為我們提供了包含超過50億份的網頁數據,並且任何人都可以免費訪問和分析這些數據。

我們可以通過Common Crawl API在索引的抓取數據中搜索我們感興趣的站點。這裡有一個小腳本(cc.py)可以幫你完成搜索任務。

python cc.py -o cc_archive_results_icann.org icann.org


12種公開資源情報(OSINT)信息收集技巧分享


7. Censys是一款用以搜索聯網設備信息的新型搜索引擎,安全專家可以使用它來評估他們實現方案的安全性,而黑客則可以使用它作為前期偵查攻擊目標、收集目標信息的強大利器。

Censys將數據集分為三種類型 – IPv4主機,網站和SSL/TLS證書。如果你能熟練的掌握Censys的搜索技巧,那麼它將發揮與Shodan不相上下的強大作用。

Censys為我們提供了一個API,我們可以用它來查詢數據集。這裡我編寫了一個連接調用Censys API的Python腳本,用於查詢給定域的SSL/TLS證書,並提取屬於該域的子域和電子郵件地址,點此獲取。


12種公開資源情報(OSINT)信息收集技巧分享


12種公開資源情報(OSINT)信息收集技巧分享


8. Censys會從多個數據源來收集SSL/TLS證書。

使用的技術之一是探測443端口上的公共IPv4地址空間上的所有計算機,並聚合它們返回的SSL/TLS證書。Censys提供了一種關聯提供證書的IPv4主機獲取的SSL/TLS證書的方法。

通過關聯SSL/TLS證書和提供證書的IPv4主機,可以找到受Cloudflare等服務保護的域的源服務器。


12種公開資源情報(OSINT)信息收集技巧分享


9. 源碼對於安全評估來說是一座信息寶庫。

通過源碼我們可以獲取到大量信息,例如憑據,潛在漏洞,基礎架構等信息。GitHub是一個非常受歡迎的版本控制和協作平臺,在上面存有大量組織的源碼。另外,Gitlab和Bitbucket同樣也非常的受歡迎。總之,不要錯過任何可能的地方。

GitHubCloner可以自動化的為我們克隆Github帳戶下所有的存儲庫。

$ python githubcloner.py --org organization -o /tmp/output

除了GitHubCloner之外,你還可以嘗試使用Gitrob,truffleHog,git-all-secrets等工具。

10. Forward DNS dataset是作為Rapid7 Open Data項目的一部分發布的。

數據格式為gzip壓縮的JSON文件。雖然數據集很大(20+GB壓縮,300+GB未壓縮),但我們仍可以解析數據集並查找給定域的子域。最近,數據集已根據數據包含的DNS記錄類型被分為了多個文件。


12種公開資源情報(OSINT)信息收集技巧分享


11. 內容安全策略(CSP)定義Content-Security-Policy HTTP頭,允許我們創建可信內容源的白名單,並指示瀏覽器僅從這些可信源執行或呈現資源。

Content-Security-Policy頭將為我們列出作為攻擊者可能感興趣的一堆源(域)。這裡我編寫了一個用來解析CSP頭中列出域名的簡單腳本,點此獲取該腳本。


12種公開資源情報(OSINT)信息收集技巧分享


12. SPF是為了防垃圾郵件的一種DNS記錄類型,是一種TXT類型的記錄。

SPF記錄的本質就是向收件人宣告本域名的郵件從清單上所列IP發出的都是合法郵件,並非冒充的垃圾郵件,可以防止別人偽造你來發郵件,是一個反偽造性郵件的解決方案。

簡而言之,SPF記錄為我們列出了所有授權發送電子郵件的主機。有時,SPF記錄還會洩漏內部網絡塊和域名。

一些服務如Security Trails可以為我們提供DNS記錄的歷史快照。我們可以通過查看歷史SPF記錄,發現SPF記錄中列出的給定域的內部網絡塊和域名。


12種公開資源情報(OSINT)信息收集技巧分享


這裡有一個我們編寫的腳本,可以幫助你從給定域的SPF記錄中提取網絡塊和域名。當使用-a選項運行時,該腳本還可以為我們返回ASN詳細信息,點此獲取該腳本。

python assets_from_spf.py icann.org -a | jq .


12種公開資源情報(OSINT)信息收集技巧分享


總結

在本文中,我為大家介紹了我們在日常安全評估中經常用到的一些信息收集的方法。雖然涵蓋面很廣,但仍有許多需要補充的地方。因此,如果你有更好的技巧方法,歡迎你在評論中與我分享!

參考文獻:

https://blog.appsecco.com/open-source-intelligence-gathering-101-d2861d4429e3

https://blog.appsecco.com/certificate-transparency-part-3-the-dark-side-9d401809b025

https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6

https://www.certificate-transparency.org

https://www.arin.net/resources/services/whois_guide.html

https://index.commoncrawl.org/

https://www.upguard.com/breaches/cloud-leak-accenture

https://www.0xpatrik.com/censys-guide/

https://www.0xpatrik.com/osint-domains/

https://opendata.rapid7.com/sonar.fdns_v2/


分享到:


相關文章: