本期文章由華章IT贊助,未經允許,禁止轉發,本片筆記內容來源於書籍《kali Linux 高級滲透測試》,如有需要,可以購買閱讀。
本片筆記作者:不見長安 編輯:天均 排版:天均
公眾號二維碼部分
信息收集是從公開可用資源獲取所有相關信息的一種方式,是與目標網絡和設備交互過程的一部分,涉及開源情報(Open Sourcew Intelligence,OSINT)。在進行滲透測試時信息收集是整個流程的第一步,在實際測試目標網絡前進行的,收集的結果會給出需要額外收集的方向或者直接指出接下來在漏洞利用截斷可利用的漏洞。信息收集可以分為兩種類型:被動偵察(passive reconnaissance)和主動偵察(reconnaissance)。
被動偵察一般是指分析公開的信息,這些信息包括目標本身的信息、在線的公共資源信息。在獲取這些信息是,測試者不會與目標產生交互,請求與活動不會被日誌記錄,無法直接定位測試者。因此在被動信息收集中應當儘可能減少與目標的交互。
主動偵察為了儘可能多的收集與目標有關的信息以幫助攻擊實施,主動偵察是建立在被動偵察之上,側重於使用探測來到達目標的路徑,暴露目標的攻擊面(attack surface)。一般來說,複雜的系統有更大的攻擊面並且每個面都可能被利用和再利用。主動偵察會產生更多更有用的信息,但是由於與目標系統的相互作用可能會被記錄,並且可能會通過防火牆、入侵檢測系統(IDS)、入侵阻止系統(IPS)等防護設備觸發報警,所以攻擊者在獲取到更多有用的信息的同時,被檢測到的風險同樣增加!
第二章 被動信息收集2.1.原則被動信息收集並不與目標網絡產生直接的交互,攻擊者的源IP位址和活動不會被日誌記錄,被動信息收集可以看作與目標的正常交互
OSINT是指從公共的資源進行信息收集。OSINT可以分為進攻型和防守型。進攻性需要分析對防範目標進行攻擊所需的所有數據,而防禦型只是收集以前的數據與目標相關的其他安全事件。
需要收集的信息依賴於滲透測試的初始目標。
l域名:域名是OSINT中最關鍵的元素,外部場景中識別攻擊者或滲透測試人員的目標是通過域名開始的。
lDNS收集與路由映射:一旦確定目標在線,下一步就是識別目標的IP位址和路由。識別誰擁有一個特定域或一系列IP位址,定義域名的DNS信息和標識目標的IP位址。
2.1.2.MaltegoMaltego社區版隨著kali Linux發行,是一款強大的信息收集GUI工具集,通過各種方法收集個人在網際網路上公開的信息,還能枚舉域名系統,破解普通DNS;在kali終端輸入maltego訪問程序。
產品類型:
Maltego XLMaltego XL是最高的解決方案,可以運行10000個以上的可視化圖例。
Maltego Classic這是商業版本,可以可視化10000個以下圖形實例。
Maltego CE社區版免費,功能受限,可以轉換圖形,無法使用任何商業目的。
Maltego CaseFileMaltego CaseFile免費,但只能手動創建圖,而且不能轉換,可用於商業目的。我們選擇社區版
下一步
單擊finsh就可以使用Maltego了。新建任務,輸入域名:
右擊目標選擇模塊進行transform,
擴展結果:
被Google訪問過的東西都會被備份為快照放在Google緩存中,通常情況下可以根據搜索查詢Google快照來獲取目標敏感信息。即便是目標網站已經從網際網路上消失,利用快照仍能為攻擊者提供大量信息,如用戶名、hash、密碼策略、郵箱等。
2.1.4.抓取攻擊者提取從網站獲取的大量數據集存儲到本地文件系統中。2.1.5.收集姓名與郵件信息Python腳本TheHarvester利用搜尋引擎進行信息收集。能夠收集電子郵件帳號、用戶名、主機名和子域名等信息。它通過Google、Bing、PGP、LinkedIn、Baidu、Yandex、People123、Jigsaw、Shodan等公開資源整理收集這些信息。這些信息將在後期的滲透測試階段發揮巨大的作用。
-b:用於確定提取信息的來源。
baidu,bing, bingapi, censys, crtsh, dogpile,
Google,google-certificates, googleCSE, googleplus, google-profiles,linkedin, netcraft, pgp, threatcrowd,
twitter, vhost, virustotal, yahoo等等
-s:從結果X開始(默認為0)
-v:通過DNS解析驗證主機名,搜索虛擬主機
-f:將結果保存到HTML和XML文件中(兩者都)
-n:對發現的所有範圍執行DNS反向查詢
-c:對域名執行DNS蠻力
-t:執行DNS TLD擴展發現
使用這個DNS伺服器
-p:埠掃描檢測到的主機並檢查是否被接管(80,443,22,21,8080)
limit:限制results:結果
-l限制並發搜索結果
-d 後跟伺服器域名 163.com hotmail.com gmail.com
例子:
python2 theharvester.py -d qq.com -l 500 -b baidu myresults.xml
收集的郵箱
主機
Shodan讓攻擊者通過過濾語法連結到網際網路的設備。例如過濾網際網路上運行IIS6.0的伺服器
也可以利用scan.io api或censys.io作相關信息採集。它們能夠提供IPv4地址、網站認證的更多信息以及其他存儲的信息。https://censys.io/
Google是人們搜索任何未知動,收集相關主題的通用工具。通過dork腳本利用Google會有意想不到的結果。
2.2.1.使用dork腳本查詢Google防守型OSINT通常可以看到已經被掌控的內容,根據這些數據可以很方便的初步識別到已經掌握的類似目標。大多數組織只修復受影響的平臺或主機,很多時候並沒有考慮到其他類似的環境。防守型OSINT大致在三個地方搜索:
①暗網:暗網是tor伺服器及客戶端之間存在的加密網絡,他提供一些資料庫和一些web服務可用於信息收集。
②安全漏洞:指通過繞過底層安全機制,未經授權訪問數據、應用程式、服務、網絡或設備的任何事件。
http://zone-h.com,https://haveibeenpwned.com
③威脅情報:威脅情報是控制、計算、提煉一個組織的潛在信息,信息包括威脅、滲透、攻擊一個組織的內容。這種情報的主要目的是確保組織意識到當前的風險,如(APT,0 DAY,其他嚴重的外部威脅)
第三章 主動信息收集主動信息收集涉及直接查詢或其他交互活動,這些活動可能會觸發系統警報,被攻擊的目標也能獲取攻擊者的IP位址和活動信息
3.1.隱形掃描策略直接與目標發生交互使測試人員的測試時間、數據戳、源IP位址及其他附加信息都直接暴露在目標日誌上。所以即便是主動信息收集,也要儘量採用隱形技術以降低被發覺的概率。隱形技術偵察要做到以下幾點:
偽裝工具籤名逃避檢測和觸發警報
將攻擊隱藏於合法流量內
修改攻擊,隱藏其流量的來源和類型
使用非標準的流量類型或加密
隱形掃描技術包括以下幾個方面:
調整源IP和工具識別設置
修改數據包參數
使用代理池匿名訪問目標
3.1.1.調整源IP棧和工具識別設置在測試之前應當儘量禁用或關閉kali不必要的服務。例如:本地運行的DHCP服務可能與目標系統產生交互從而被記錄,甚至發出報警。
一些滲透工具在使用時用一個標識序列標記他們的數據包,這樣由一個特定的測試工具發起的事件可以直接與系統的事件日誌進行比較,可以確定網絡偵測情況並響應攻擊,對測試後分析系統的事件日誌由很大的幫助。但是這些工具的標識序列數據包也有可能觸發入侵檢測系統,為了繞過防護系統需要修改這標識數據包。例如MSF修改user-agent:
在Metasploit框架中,可以通過修改auxiliary/fuzzers/http/http_form_field模塊選項以修改MSF的user-agent,達到偽造Google索引蜘蛛(Googlebot)的目的。
msf5 > use auxiliary/fuzzers/http/http_form_field
msf5 auxiliary(fuzzers/http/http_form_field) > set useragent
useragent => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
msf5 auxiliary(fuzzers/http/http_form_field) > set useragent Googlebot/2.1
useragent => Googlebot/2.1
常用工具user-agent修改:
使用wireshark工具捕獲攻擊者和目標虛擬機之間的信息,搜索抓包(packet capture)文件,尋找測試工具產生的關鍵字(工具名稱、供應商、證書序列號等)。可以定位該測試工具的特徵數據包。
①sqlmap
默認情況下sqlmap的HTTP請求頭中User-Agent值是:sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
可以使用參數--user-agent 修改UA:
sqlmap -u www.xx.com/index.php?id=1 --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
也可以使用--random-agent使用隨機選定的UA:
sqlmap -u www.xx.com/index.php?id=1 --random-agent
②nmap
通過--script-args參數修改user-agent
nmap 192.168.1.1 --script-args
③dirbuster。
Dirbuster默認的UA:
DirBuster-1.0-RC1 (http://www.owasp.org/index.php/Category:OWASP_DirBuster_Project)
修改配置即可:options>advanced options>http options ,修改為百度小蜘蛛:
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
對目標進行掃描,即向目標發送定義的數據包,利用返回的數據包獲取信息。常見的工具如nmap。掃描的注意事項:
儘可能縮小發送數據包的數和量
儘量避免與目標系統直接連接的掃描,儘量避免可能洩露數據的掃描。如使用SYN或非常規數據包掃描
隨機化或欺騙分組設置源IP、埠、MAC地址
減小掃描速度以減緩目標端的包
通過包的分解或附加隨機數據該百年包的大小,混淆設備對數據包的檢測
例如nmap史上最慢掃描:
nmap --spoof-mac-Cisco --data-length 24 -T paranoid --max-hostgroup 1 --max-parallelism 10 -Pn -f -D 10.1.20.5,RND:5,ME --v -n -sS -sV -oA /desktop/pentest/nmap/out -p T:1-1024 --random-hosts 10.1.1.10 10.1.1.15 127.0.0.1
Tor提供免費接入的匿名網絡代理,他通過保護用戶的IP流源地址和目的地址抵禦流量分析。Privoxy作為Tor的web代理伺服器,利用過濾技術在保護隱私的同時將數據包發送給目標伺服器。
1.安裝tor
apt-get update 更新軟體源中的所有軟體列表。
apt-get upgrade 更新軟體
apt-get dist-upgrade 更新系統版本
apt-get install tor
2.配置proxychains.conf文件
該文件規定了使用在tor網絡系統上的測試系統使用代理伺服器的數量和順序。禁用strict_chains,啟用dynamic_chains,防止proxychain失效保證連接被路由。
3.編輯[ProxyList]部分,確保socket代理存在
4.啟動Tor
service tor start
5.查看tor狀態,驗證tor是否提供匿名連接
service tor status
6.匿名訪問
proxychains firefox www.baidu.com
7.主義事件
Tor提供匿名服務,但它不保證完全隱私。出口節點能夠嗅出流量,有可能訪問用戶憑據
ProxyChains不處理UDP流量
部分程序無法在這樣的環境下運行。如MSF,另外nmap的SYN掃描會被ProxyChains終止,調用連接掃描可能會洩露信息
瀏覽器的某些應用程式可能會獲取真實IP,如ActiveX、PDF、Flash、Java、QuickTime、RealPlay
ProxyChains會從tor IP列表中隨機獲取IP位址,很難從源頭跟蹤流量。在/etc/proxychains.conf文件中禁用dynamic_chains啟用ramdom_chain可解決此問題。
3.2.DNS偵察和路由映射DNS偵察,識別誰擁有一個特定域或一系列IP位址,定義實際域名的DNS信息和目標的IP位址,以及在測試者與最終目標之間的路由。這些信息有一部分是開源的,另一部分則來自於第三方實體(如DNS註冊機構)。
3.2.1.Whois信息通過whois命令識別分配給目標網站的地址,允許查詢到網際網路中相關的信息,例如註冊用戶的域名、IP位址、註冊用戶姓名、物理地址、電話號碼、郵箱地址、DNS伺服器名稱。當然也有一些實體為了保護隱私會隱藏數據。如.gov和.mil可能不會被公共域訪問。注意:執行查找的站點可能會記錄查詢的IP位址。
愛站https://whois.aizhan.com/baidu.com/
DMitry是常用的綜合偵察命令行工具,可以執行whois查詢操作,檢索netcraft.com信息,搜索子域、電子郵件地址,TCP掃描等等。
dmitry -winsepo output.txt www.cyberhia.com
DMitry工具能進行綜合的信息收集,但是無法擴展。recon-ng是結合了主動收集和被動收集的開源框架,和MSF類似,它將cmd解釋器分為多個模塊,每個模塊執行特定任務。recon-ng工具利用第三方API進行一些評估,所以採用recon-ng進行的活動可能會被第三方追蹤。可自定義User-Agent
Kali已經默認安裝recon-ng工具,更新安裝apt-get install recon-ng。然後在終端輸入recon-ng啟動:
命令 options list 顯示當前設置,通過 options set 可以更改參數(如域名解析伺服器、代理、線程)
marketplace refresh 更新模塊列表
marketplace info all 可以所有模塊包括描述
marketplace search hackertarget 搜索模塊例如 「hackertarget」
加載指定模塊:modules load+模塊名稱。相關模塊的工作原理:info,必要時獲取API密鑰
一旦模塊被加載,就可以使用options set source sina.com命令設置選項,run命令進行執行。
1.添加密鑰
keys add shodan_api
2.搜索shodan模塊
marketplace search shodan
3.如果沒有安裝該模塊,先安裝
marketplace install recon/hosts-ports/shodan_ip
4.加載模塊
modules load recon/netblocks-hosts/shodan_net
options set SOURCE 192.168.1.1/24
run