第四章 信息收集
作者:Julian Paul Assange
簡介
攻擊的重要階段之一就是信息收集。為了能夠?qū)嵤┕?,我們需要收集關(guān)于目標(biāo)的基本信息。我們獲得的信息越多,攻擊成功的概率就越高。
我也強調(diào)這一階段的一個重要方面,它就是記錄。在編寫這本書的時候,最新的Kali發(fā)行版包含了一組工具用于幫助我們核對和組織來自目標(biāo)的數(shù)據(jù),以便我們更好地偵查目標(biāo)。類似Maltego CaseFile和 KeepNote的工具就是一個例子。
4.1 服務(wù)枚舉
在這個秘籍中,我們將會展示一些服務(wù)枚舉的小技巧。枚舉是我們從網(wǎng)絡(luò)收集信息的過程。我們將要研究DNS枚舉和SNMP枚舉技術(shù)。DNS枚舉是定位某個組織的所有DNS服務(wù)器和DNS條目的過程。DNS枚舉允許我們收集有關(guān)該組織的重要信息,例如用戶名、計算機名稱、IP地址以及其它。為了完成這些任務(wù)我們會使用DNSenum。對于SNMP枚舉,我們會使用叫做SnmpEnum的工具,它是一個強大的SNMP枚舉工具,允許我們分析網(wǎng)絡(luò)上的SNMP流量。
操作步驟
讓我們以DNS枚舉作為開始:
-
我們使用DNSenum進行DNS枚舉。為了開始DNS枚舉,打開Gnome終端,并且輸入以下命令:
cd /usr/bin./dnsenum --enum adomainnameontheinternet.com
請不要在不屬于你的公共網(wǎng)站或者不是你自己的服務(wù)器上運行這個工具。這里我們將
adomainnameontheinternet.com
作為一個例子,你應(yīng)該替換掉這個目標(biāo)。要當(dāng)心! -
我們需要獲取信息輸出,例如主機、名稱服務(wù)器、郵件服務(wù)器,如果幸運的話還可以得到區(qū)域轉(zhuǎn)換:
-
我們可以使用一些額外的選項來運行DNSenum,它們包括這些東西:
-
-- threads [number]
允許你設(shè)置一次所運行的線程數(shù)量。 -
-r
允許你開啟遞歸查找。 -
-d
允許你設(shè)置在WHOIS請求之間的時間延遲,單位為秒。 -
-o
允許我們制定輸出位置。 -
-w
允許我們開啟WHOIS查詢。
更多WHOIS上的例子,請見WHOIS的維基百科。
-
-
我們可以使用另一個命令
snmpwalk
來檢測Windows主機。Snmpwalk是一個使用SNMP GETNEXT請求在網(wǎng)絡(luò)實體中查詢信息樹的SNMP應(yīng)用。在命令行中鍵入下列命令:snmpwalk -c public 192.168.10.200 -v 2c
-
我們也可以枚舉安裝的軟件:
snmpwalk -c public 192.168.10.200 -v 1 | grep hrSWInstalledNameHOST-RESOURCES-MIB::hrSWInstalledName.1 = STRING: "VMware Tools"HOST-RESOURCES-MIB::hrSWInstalledName.2 = STRING: "WebFldrs"
-
以及使用相同工具枚舉開放的TCP端口:
snmpwalk -c public 192.168.10.200 -v 1 | grep tcpConnState | cut -d"." -f6 | sort –nu212580443
-
另一個通過SNMP收集信息的工具叫做
snmpcheck
:cd /usr/binsnmpcheck -t 192.168.10.200
-
為了使用fierce(一個嘗試多種技術(shù)來尋找所有目標(biāo)所用的IP地址和域名的工具)進行域名掃描,我們可以鍵入以下命令:
cd /usr/binfierce -dns adomainnameontheinternet.com
請不要在不屬于你的公共網(wǎng)站或者不是你自己的服務(wù)器上運行這個工具。這里我們將
adomainnameontheinternet.com
作為一個例子,你應(yīng)該替換掉這個目標(biāo)。要當(dāng)心! -
為了以指定的詞語列表進行相同的操作,鍵入以下命令:
fierce -dns adomainnameontheinternet.com -wordlist hosts.txt -file /tmp/output.txt
-
為了在SMTP服務(wù)器上啟動用戶的SMTP枚舉,鍵入以下命令:
```
smtp-user-enum -M VRFY -U /tmp/users.txt -t 192.168.10.200
```
- 我們現(xiàn)在可以記錄所獲得的結(jié)果了。
4.2 判斷網(wǎng)絡(luò)范圍
使用上一節(jié)中我們所收集的信息,我們就能著眼于判斷目標(biāo)網(wǎng)絡(luò)的IP地址范圍。在這個秘籍中我們將要探索完成它所用的工具。
操作步驟
讓我們通過打開終端窗口來開始判斷網(wǎng)絡(luò)范圍:
-
打開新的終端窗口,并且鍵入以下命令:
dmitry -wnspb targethost.com -o /root/Desktop/dmitry-result
-
完成之后,我們應(yīng)該在桌面上得到了一個文本文件,名稱為
dmitry-result.txt
,含有收集到的目標(biāo)信息: -
鍵入以下命令來執(zhí)行ICMP netmask請求:
netmask -s targethost.com
-
使用scapy,我們就可以執(zhí)行并行路由跟蹤。鍵入以下命令來啟動它:
scapy
-
scapy啟動之后,我們現(xiàn)在可以輸入以下函數(shù):
ans,unans=sr(IP(dst="www.targethost.com/30", ttl=(1,6))/TCP()
-
我們可以輸入以下函數(shù)來將結(jié)果展示為表格:
ans.make_table( lambda (s,r): (s.dst, s.ttl, r.src) )
結(jié)果如下:
216.27.130.162 216.27.130.163 216.27.130.164 216.27.130.165 1 192.168.10.1 192.168.10.1 192.168.10.1 192.168.10.1 2 51.37.219.254 51.37.219.254 51.37.219.254 51.37.219.254 3 223.243.4.254 223.243.4.254 223.243.4.254 223.243.4.254 4 223.243.2.6 223.243.2.6 223.243.2.6 223.243.2.6 5 192.251.254.1 192.251.251.80 192.251.254.1 192.251.251.80
-
我們需要鍵入以下函數(shù)來使用scapy獲得TCP路由蹤跡:
res,unans=traceroute(["www.google.com","www.Kali- linux.org","www.targethost.com"],dport=[80,443],maxttl=20, retry=-2)
-
我們只需要鍵入以下函數(shù)來將結(jié)果展示為圖片:
res.graph()
-
保存圖片只需要下列命令:
res.graph(target="> /tmp/graph.svg")
-
我們可以生成3D展示的圖片,通過鍵入下列函數(shù)來實現(xiàn):
```
res.trace3D()
```
- 鍵入以下命令來退出scapy:
```
exit()
```
- 在獲得結(jié)果之后,我們現(xiàn)在可以對其做記錄。
工作原理
在步驟1中,我們使用了dmitry
來獲取目標(biāo)信息。參數(shù)-wnspub
允許我們在域名上執(zhí)行WHOIS查詢,檢索Netcraft.com
的信息,搜索可能的子域名,以及掃描TCP端口。選項-o
允許我們將結(jié)果保存到文本文件中。在步驟3中,我們建立了一個簡單的ICMP netmask請求,帶有-s
選項,來輸出IP地址和子網(wǎng)掩碼。接下來,我們使用scapy來執(zhí)行目標(biāo)上的并行路由跟蹤,并在表格中展示結(jié)果。在步驟7中,我們在不同主機的80和443端口上執(zhí)行了TCP路由跟蹤,并且將最大TTL設(shè)置為20來停止這個過程。在獲得結(jié)果之后,我們創(chuàng)建了它的圖片表示,將它保存到臨時目錄中,同時創(chuàng)建了相同結(jié)果的3D表示。最后,我們退出了scapy。
4.3 識別活動主機
在嘗試滲透之前,我們首先需要識別目標(biāo)網(wǎng)絡(luò)范圍內(nèi)的活動主機。
一個簡單的方法就是對目標(biāo)網(wǎng)絡(luò)執(zhí)行ping
操作。當(dāng)然,這可以被主機拒絕或忽略,這不是我們希望的。
操作步驟
讓我們打開終端窗口,開始定位活動主機:
-
我們可以使用Nmap來判斷某個主機是否打開或關(guān)閉,像下面這樣:
nmap -sP 216.27.130.162Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-04-27 23:30 CDTNmap scan report for test-target.net (216.27.130.162)Host is up (0.00058s latency).Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
-
我們也可以使用Nping(Nmap組件),它提供給我們更詳細的結(jié)果:
nping --echo-client "public" echo.nmap.org
-
我們也可以向指定端口發(fā)送一些十六進制數(shù)據(jù):
nping -tcp -p 445 –data AF56A43D 216.27.130.162
4.4 尋找開放端口
在了解目標(biāo)網(wǎng)絡(luò)范圍和活動主機之后,我們需要執(zhí)行端口掃描操作來檢索開放的TCP和UDP端口和接入點。
準(zhǔn)備
完成這個秘籍需要啟動Apache Web服務(wù)器。
操作步驟
讓我們通過打開終端窗口,開始尋找開放端口:
-
運行終端窗口并輸入下列命令作為開始:
nmap 192.168.56.101
-
我們也可以顯式指定要掃描的端口(這里我們指定了1000個端口):
nmap -p 1-1000 192.168.56.101
-
或指定Nmap來掃描某個組織所有網(wǎng)絡(luò)的TCP 22端口:
nmap -p 22 192.168.56.*
-
或者以特定格式輸出結(jié)果:
nmap -p 22 192.168.10.* -oG /tmp/nmap-targethost-tcp445.tx
工作原理
這個秘籍中,我們使用Nmap來掃描我們網(wǎng)絡(luò)上的目標(biāo)主機,并判斷開放了哪個端口。
更多
Nmap的GUI版本叫做Zenmap,它可以通過在終端上執(zhí)行zenmap
命令,或者訪問Applications | Kali Linux | Information Gathering | Network Scanners | zenmap
來啟動。
4.5 操作系統(tǒng)指紋識別
到信息收集的這個步驟,我們應(yīng)該記錄了一些IP地址,活動主機,以及所識別的目標(biāo)組織的開放端口。下一步就是判斷活動主機上運行的操作系統(tǒng),以便了解我們所滲透的系統(tǒng)類型。
準(zhǔn)備
需要用到Wireshark捕獲文件來完成這個秘籍的步驟2。
操作步驟
讓我們在終端窗口中進行OS指紋識別:
-
我們可以使用Nmap執(zhí)行下列命令,帶有
-O
命令來開啟OS檢測功能:nmap -O 192.168.56.102
-
使用
p0f
來分析Wireshark捕獲文件:p0f -s /tmp/targethost.pcap -o p0f-result.log -lp0f - passive os fingerprinting utility, version 2.0.8(C) M. Zalewski <lcamtuf@dione.cc>, W. Stearns <wstearns@pobox.com>p0f: listening (SYN) on 'targethost.pcap', 230 sigs (16 generic), rule: 'all'.[+] End of input file.
4.6 服務(wù)指紋識別
判斷運行在特定端口上的服務(wù)是目標(biāo)網(wǎng)絡(luò)上成功滲透的保障。它也會排除任何由OS指紋之別產(chǎn)生的疑惑。
操作步驟
讓我們通過開始終端窗口來進行服務(wù)指紋識別:
-
打開終端窗口并鍵入以下命令:
nmap -sV 192.168.10.200Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-03-28 05:10 CDTInteresting ports on 192.168.10.200:Not shown: 1665 closed portsPORT STATE SERVICE VERSION21/tcp open ftp Microsoft ftpd 5.025/tcp open smtp Microsoft ESMTP 5.0.2195.671380/tcp open http Microsoft IIS webserver 5.0119/tcp open nntp Microsoft NNTP Service 5.0.2195.6702 (posting ok)135/tcp open msrpc Microsoft Windows RPC139/tcp open netbios-ssn443/tcp open https?445/tcp open microsoft-ds Microsoft Windows 2000 microsoft-ds1025/tcp open mstask Microsoft mstask1026/tcp open msrpc Microsoft Windows RPC1027/tcp open msrpc Microsoft Windows RPC1755/tcp open wms?3372/tcp open msdtc?6666/tcp open nsunicast Microsoft Windows Media Unicast Service (nsum.exe)MAC Address: 00:50:5600:01 (VMware)Service Info: Host: DC; OS: WindowsNmap finished: 1 IP address (1 host up) scanned in 63.311 seconds
-
我們也可以使用
amap
來識別運行在特定端口或端口范圍內(nèi)的應(yīng)用,比如下面這個例子:amap -bq 192.168.10.200 200-300amap v5.4 (www.thc.org/thc-amap) started at 2012-03-28 06:05:30 - MAPPING modeProtocol on 127.0.0.1:212/tcp matches ssh - banner: SSH-2.0- OpenSSH_3.9p1\nProtocol on 127.0.0.1:212/tcp matches ssh-openssh - banner: SSH-2.0-OpenSSH_3.9p1\namap v5.0 finished at 2005-07-14 23:02:11
4.7 Maltego 風(fēng)險評估
在這個秘籍中,我們將要開始使用Maltego的特殊Kali版本,它可以在信息收集階段協(xié)助我們,通過將獲得的信息以易于理解的形式展示。Maltego是開源的風(fēng)險評估工具,被設(shè)計用來演示網(wǎng)絡(luò)上故障單點的復(fù)雜性和嚴重性。它也具有從內(nèi)部和外部來源聚合信息來提供簡潔的風(fēng)險圖表的能力。
準(zhǔn)備
需要一個賬號來使用Maltego。訪問https://www.paterva.com/web6/community/來注冊賬號。
操作步驟
讓我們從啟動Maltego開始:
-
訪問
Applications | Kali Linux | Information Gathering | OSINT Analysis | maltego
來啟動Maltego。窗口如下: -
點擊開始向?qū)У?code>Next來查看登錄細節(jié):
-
點擊
Next
來驗證我們的登錄憑證。驗證之后,點擊Next
以繼續(xù): -
選擇transform seed設(shè)置,之后點擊
Next
: -
這個向?qū)г谔较聜€頁面之前會執(zhí)行多次操作。完成之后,選擇
Open a blank graph and let me play around
并點擊Finish
。 -
最開始,將
Domain
實體從Palette
組件拖放到New Graph
標(biāo)簽頁中。 -
通過點擊創(chuàng)建的
Domain
實體來設(shè)置目標(biāo)域名,并且編輯Property View
中的Domain Name
屬性。 -
目標(biāo)一旦設(shè)置好,我們就可以開始收集信息了。最開始,右鍵點擊創(chuàng)建的
Domain
實體,并且選擇Run Transform
來顯示可用的選項: -
我們可以選擇查找DNS名稱,執(zhí)行WHOIS查詢,獲得郵件地址,以及其它?;蛘呶覀冞€可以選擇運行下面展示的全部轉(zhuǎn)換。
-
我們甚至可以通過在鏈接的子節(jié)點上執(zhí)行相同操作,來獲得更多信息,直到我們找到了想要的信息。
工作原理
在這個秘籍中,我們使用Maltego來映射網(wǎng)絡(luò)。Maltego是一個開源工具,用于信息收集和取證,由Paterva出品。我們通過完成開始向?qū)黹_始這個秘籍。之后我們使用Domain
實體,通過將它拖到我們的圖表中。最后,我們讓Maltego完成我們的圖表,并且查找各種來源來完成任務(wù)。Maltego十分有用,因為我們可以利用這一自動化的特性來快速收集目標(biāo)信息,例如收集郵件地址、服務(wù)器的信息、執(zhí)行WHOIS查詢,以及其它。
社區(qū)版只允許我們在信息收集中使用75個轉(zhuǎn)換。Maltego的完整版需要$650。
更多
啟用和禁用轉(zhuǎn)換可以通過Manage
標(biāo)簽欄下方的Transform Manager
窗口設(shè)置:
一些轉(zhuǎn)換首先需要接受才可以使用。
4.8 映射網(wǎng)絡(luò)
使用前面幾個秘籍獲得的信息,我們就可以創(chuàng)建該組織網(wǎng)絡(luò)的藍圖。在這一章的最后一個·秘籍中,我們會了解如何使用Maltego CaseFile來可視化地編譯和整理所獲得的信息。
CaseFile
就像開發(fā)者的網(wǎng)站上那樣,相當(dāng)于不帶轉(zhuǎn)換的Maltego,但擁有大量特性。多數(shù)特性會在這個秘籍的“操作步驟”一節(jié)中展示。
操作步驟
當(dāng)我們從啟動CaseFile來開始:
-
訪問
Applications | Kali Linux | Reporting Tools | Evidence Management | casefile
來啟動CaseFile。 -
點擊CaseFile應(yīng)用菜單的
New
來創(chuàng)建新的圖表: -
就像Maltego那樣,我們將每個實體從
Palette
組建拖放到圖表標(biāo)簽頁中。讓我們從拖放Domain
實體以及修改Domain Name
屬性來開始。 -
將鼠標(biāo)指針置于實體上方,并且雙擊注解圖標(biāo)來添加注解。
-
讓我們拖放另一個實體來記錄目標(biāo)的DNS信息:
-
鏈接實體只需要在實體之前拖出一條線:
-
按需自定義鏈接的屬性:
-
重復(fù)步驟5~7來向圖中添加更多關(guān)于該組織網(wǎng)絡(luò)的信息。
-
最后我們保存了信息圖表。圖表的記錄可以在之后打開和編輯,如果我們需要的話,和我們從已知目標(biāo)獲得更多信息的情況一樣。
工作原理
在這個秘籍中,我們使用Maltego CaseFile來映射網(wǎng)絡(luò)。CaseFile是個可視化的智能應(yīng)用,可以用于判斷數(shù)百個不同類型信息之間的關(guān)系和現(xiàn)實世界的聯(lián)系。它的本質(zhì)是離線情報,也就是說它是個手動的過程。我們以啟動CaseFile并且創(chuàng)建新的圖表作為開始。接下來,我們使用了收集到或已知的目標(biāo)網(wǎng)絡(luò)信息,并且開始向圖表中添加組件來做一些設(shè)置。最后保存圖表來結(jié)束這個秘籍。文章來源:http://www.zghlxwxcb.cn/news/detail-820581.html
更多
我們也可以加密圖表記錄,使它在公眾眼里更安全。為了加密圖表,需要在保存的時候選擇Encrypt (AES-128)
復(fù)選框并提供一個密碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-820581.html
到了這里,關(guān)于第四章 信息收集 - 《駭客修成秘籍》的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!