滲透測試之進行信息收集方法

 滲透測試之進行信息收集方法linux

攻擊的重要階段之一就是信息收集。爲了可以實施攻擊,咱們須要收集關於目標的基本信息。咱們得到的信息越多,攻擊成功的機率就越高。ios

  1.1 服務枚舉web

在這個中,咱們將會展現一些服務枚舉的小技巧。枚舉是咱們從網絡收集信息的過程。安全

咱們將要研究DNS枚舉和SNMP枚舉技術。DNS枚舉是定位某個組織的全部DNS服務器和DNS條目的過程。DNS枚舉容許咱們收集有關該組織的重要信息,例如用戶名、計算機名稱、IP地址以及其它。爲了完成這些任務咱們會使用DNSenum。對於SNMP枚舉,咱們會使用叫作SnmpEnum的工具,它是一個強大的SNMP枚舉工具,容許咱們分析網絡上的SNMP流量。服務器

操做步驟網絡

讓咱們以DNS枚舉做爲開始:dom

  1. 咱們使用DNSenum進行DNS枚舉。爲了開始DNS枚舉,打開Gnome終端,而且輸入以ssh

下命令:tcp

cd /usr/binide

./dnsenum --enum adomainnameontheinternet.com

請不要在不屬於你的公共網站或者不是你本身的服務器上運行這個工具。這裏咱們

將 adomainnameontheinternet.com 做爲一個例子,你應該替換掉這個目標。要小心!

  2. 咱們須要獲取信息輸出,例如主機、名稱服務器、郵件服務器,若是幸運的話還能夠得

到區域轉換:

  3. 咱們可使用一些額外的選項來運行DNSenum,它們包括這些東西:

-- threads [number] 容許你設置一次所運行的線程數量。

-r 容許你開啓遞歸查找。

-d 容許你設置在WHOIS請求之間的時間延遲,單位爲秒。

-o 容許咱們制定輸出位置。

-w 容許咱們開啓WHOIS查詢。

更多WHOIS上的例子,請見WHOIS的維基百科。

  4. 咱們可使用另外一個命令 snmpwalk 來檢測Windows主機。Snmpwalk是一個使用SNMP

GETNEXT請求在網絡實體中查詢信息樹的SNMP應用。在命令行中鍵入下列命令:

snmpwalk -c public 192.168.10.200 -v 2c

  5. 咱們也能夠枚舉安裝的軟件:

snmpwalk -c public 192.168.10.200 -v 1 | grep hrSWInstalledName

HOST-RESOURCES-MIB::hrSWInstalledName.1 = STRING: "VMware Tools"

HOST-RESOURCES-MIB::hrSWInstalledName.2 = STRING: "WebFldrs"

  6. 以及使用相同工具枚舉開放的TCP端口:

58snmpwalk -c public 192.168.10.200 -v 1 | grep tcpConnState | cut -d"." -f6 | sort

–nu 21 25 80 443

  7. 另外一個經過SNMP收集信息的工具叫作 snmpcheck :

cd /usr/bin

snmpcheck -t 192.168.10.200

  8. 爲了使用fierce(一個嘗試多種技術來尋找全部目標所用的IP地址和域名的工具)進行域

名掃描,咱們能夠鍵入如下命令:

cd /usr/bin

fierce -dns adomainnameontheinternet.com

請不要在不屬於你的公共網站或者不是你本身的服務器上運行這個工具。這裏咱們

將 adomainnameontheinternet.com 做爲一個例子,你應該替換掉這個目標。要小心!

  9. 爲了以指定的詞語列表進行相同的操做,鍵入如下命令:

fierce -dns adomainnameontheinternet.com -wordlist hosts.txt -file /tmp/output.tx

t

  10. 爲了在SMTP服務器上啓動用戶的SMTP枚舉,鍵入如下命令:

smtp-user-enum -M VRFY -U /tmp/users.txt -t 192.168.10.200

  11. 咱們如今能夠記錄所得到的結果了。

  1.2 判斷網絡範圍

使用上一節中咱們所收集的信息,咱們就能着眼於判斷目標網絡的IP地址範圍。在這個中咱們將要探索完成它所用的工具。操做步驟

讓咱們經過打開終端窗口來開始判斷網絡範圍:

  1. 打開新的終端窗口,而且鍵入如下命令:

 

59dmitry -wnspb targethost.com -o /root/Desktop/dmitry-result

  2. 完成以後,咱們應該在桌面上獲得了一個文本文件,名稱爲 dmitry-result.txt ,含有收

集到的目標信息:

  3. 鍵入如下命令來執行ICMP netmask請求:

netmask -s targethost.com

  4. 使用scapy,咱們就能夠執行並行路由跟蹤。鍵入如下命令來啓動它:

scapy

  5. scapy啓動以後,咱們如今能夠輸入如下函數:

ans,unans=sr(IP(dst="www.targethost.com/30", ttl=(1,6))/TCP()

  6. 咱們能夠輸入如下函數來將結果展現爲表格:

ans.make_table( lambda (s,r): (s.dst, s.ttl, r.src) )

結果以下:

 

60216.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.1.254 223.243.1.254 223.243.1.254 223.243.1.254

4 223.243.2.6 223.243.2.6 223.243.2.6 223.243.2.6

5 192.251.251.1 192.251.251.80 192.251.251.1 192.251.251.80

  7. 咱們須要鍵入如下函數來使用scapy得到TCP路由蹤影:

res,unans=traceroute(["www.google.com","www.Kali- linux.org","www.targethost.com"]

,dport=[80,443],maxttl=20, retry=-2)

  8. 咱們只須要鍵入如下函數來將結果展現爲圖片:

res.graph()

  9. 保存圖片只須要下列命令:

res.graph(target="> /tmp/graph.svg")

  10. 咱們能夠生成3D展現的圖片,經過鍵入下列函數來實現:

res.trace3D()

  11. 鍵入如下命令來退出scapy:

exit()

  12. 在得到結果以後,咱們如今能夠對其作記錄。

工做原理

在步驟1中,咱們使用了 dmitry 來獲取目標信息。參數 -wnspub 容許咱們在域名上執行

WHOIS查詢,檢索 Netcraft.com 的信息,搜索可能的子域名,以及掃描TCP端口。選

項 -o 容許咱們將結果保存到文本文件中。在步驟3中,咱們創建了一個簡單的ICMP netmask請求,帶有 -s 選項,來輸出IP地址和子網掩碼。接下來,咱們使用scapy來執行目標上的並行路由跟蹤,並在表格中展現結果。在步驟7中,咱們在不一樣主機的80和443端口上執行了61TCP路由跟蹤,而且將最大TTL設置爲20來中止這個過程。在得到結果以後,咱們建立了它的圖片表示,將它保存到臨時目錄中,同時建立了相同結果的3D表示。最後,咱們退出了scapy。

  1.3 識別活動主機

在嘗試滲透以前,咱們首先須要識別目標網絡範圍內的活動主機。一個簡單的方法就是對目標網絡執行 ping 操做。固然,這能夠被主機拒絕或忽略,這不是我

們但願的。操做步驟讓咱們打開終端窗口,開始定位活動主機:

  1. 咱們可使用Nmap來判斷某個主機是否打開或關閉,像下面這樣:

nmap -sP 216.27.130.162

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-04-27 23:30 CDT

Nmap 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

  2. 咱們也可使用Nping(Nmap組件),它提供給咱們更詳細的結果:

nping --echo-client "public" echo.nmap.org

  3. 咱們也能夠向指定端口發送一些十六進制數據:

nping -tcp -p 445 –data AF56A43D 216.27.130.162

 

  1.1 尋找開放端口

在瞭解目標網絡範圍和活動主機以後,咱們須要執行端口掃描操做來檢索開放的TCP和UDP

端口和接入點。

準備完成這個須要啓動Apache Web服務器。

操做步驟

讓咱們經過打開終端窗口,開始尋找開放端口:

  1. 運行終端窗口並輸入下列命令做爲開始:

nmap 192.168.56.101

  2. 咱們也能夠顯式指定要掃描的端口(這裏咱們指定了1000個端口):

nmap -p 1-1000 192.168.56.101

 

  3. 或指定Nmap來掃描某個組織全部網絡的TCP 22端口:

nmap -p 22 192.168.56.*

 

  1. 或者以特定格式輸出結果:

nmap -p 22 192.168.10.* -oG /tmp/nmap-targethost-tcp445.tx

工做原理

這個中,咱們使用Nmap來掃描咱們網絡上的目標主機,並判斷開放了哪一個端口。

更多

Nmap的GUI版本叫作Zenmap,它能夠經過在終端上執行 zenmap 命令,或者訪

問 Applications | Kali Linux | Information Gathering | Network Scanners | zenmap 來啓動。1.5 操做系統指紋識別

到信息收集的這個步驟,咱們應該記錄了一些IP地址,活動主機,以及所識別的目標組織的開放端口。下一步就是判斷活動主機上運行的操做系統,以便了解咱們所滲透的系統類型。

準備須要用到Wireshark捕獲文件來完成這個的步驟2。

操做步驟

讓咱們在終端窗口中進行OS指紋識別:

  1. 咱們可使用Nmap執行下列命令,帶有 -O 命令來開啓OS檢測功能:

nmap -O 192.168.56.102

  2. 使用 p0f 來分析Wireshark捕獲文件:

p0f -s /tmp/targethost.pcap -o p0f-result.log -l

p0f - 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.

  1.6 服務指紋識別

判斷運行在特定端口上的服務是目標網絡上成功滲透的保障。它也會排除任何由OS指紋之別產生的疑惑。

操做步驟

讓咱們經過開始終端窗口來進行服務指紋識別:

  1. 打開終端窗口並鍵入如下命令:

 

68nmap -sV 192.168.10.200

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-03-28 05:10 CDT

Interesting ports on 192.168.10.200:

Not shown: 1665 closed ports

PORT STATE SERVICE VERSION

21/tcp open ftp Microsoft ftpd 5.0

25/tcp open smtp Microsoft ESMTP 5.0.2195.6713

80/tcp open http Microsoft IIS webserver 5.0

119/tcp open nntp Microsoft NNTP Service 5.0.2195.6702 (posting ok)

135/tcp open msrpc Microsoft Windows RPC

139/tcp open netbios-ssn

443/tcp open https?

445/tcp open microsoft-ds Microsoft Windows 2000 microsoft-ds

1025/tcp open mstask Microsoft mstask

1026/tcp open msrpc Microsoft Windows RPC

1027/tcp open msrpc Microsoft Windows RPC

1755/tcp open wms?

3372/tcp open msdtc?

6666/tcp open nsunicast Microsoft Windows Media Unicast Service (nsum.exe)

MAC Address: 00:50:56:C6:00:01 (VMware)

Service Info: Host: DC; OS: Windows

Nmap finished: 1 IP address (1 host up) scanned in 63.311 seconds

  2. 咱們也可使用 amap 來識別運行在特定端口或端口範圍內的應用,好比下面這個例子:

amap -bq 192.168.10.200 200-300

amap v5.1 (www.thc.org/thc-amap) started at 2012-03-28 06:05:30 - MAPPING mode

Protocol on 127.0.0.1:212/tcp matches ssh - banner: SSH-2.0- OpenSSH_3.9p1\n

Protocol on 127.0.0.1:212/tcp matches ssh-openssh - banner: SSH-2.0-OpenSSH_3.9p1

\n

amap v5.0 finished at 2005-07-14 23:02:11

  1.7 Maltego 風險評估

在這個中,咱們將要開始使用Maltego的特殊Kali版本,它能夠在信息收集階段協助我

們,經過將得到的信息以易於理解的形式展現。Maltego是開源的風險評估工具,被設計用來

演示網絡上故障單點的複雜性和嚴重性。它也具備從內部和外部來源聚合信息來提供簡潔的

風險圖表的能力。

準備須要一個帳號來使用Maltego。訪問https://www.paterva.com/web6/community/來註冊帳號。

操做步驟

讓咱們從啓動Maltego開始:

  1. 訪問 Applications | Kali Linux | Information Gathering | OSINT Analysis | maltego 來

啓動Maltego。

  2. 點擊開始嚮導的 Next 來查看登陸細節:

  3. 點擊 Next 來驗證咱們的登陸憑證。驗證以後,點擊 Next 以繼續:

  4. 選擇transform seed設置,以後點擊 Next

  5. 這個嚮導在跳到下個頁面以前會執行屢次操做。完成以後,選

擇 Open a blank graph and let me play around 並點擊 Finish 。

  6. 最開始,將 Domain 實體從 Palette 組件拖放到 New Graph 標籤頁中。

  7. 經過點擊建立的 Domain 實體來設置目標域名,而且編輯 Property View 中

的 Domain Name 屬性。

  8. 目標一旦設置好,咱們就能夠開始收集信息了。最開始,右鍵點擊建立的 Domain 實體,

而且選擇 Run Transform 來顯示可用的選項:

  9. 咱們能夠選擇查找DNS名稱,執行WHOIS查詢,得到郵件地址,以及其它。或者咱們還

能夠選擇運行下面展現的所有轉換。

  10. 咱們甚至能夠經過在連接的子節點上執行相同操做,來得到更多信息,直到咱們找到了

想要的信息。

工做原理

在這個中,咱們使用Maltego來映射網絡。Maltego是一個開源工具,用於信息收集和取證,由Paterva出品。咱們經過完成開始嚮導來開始這個。以後咱們使用 Domain 實體,經過將它拖到咱們的圖表中。最後,咱們讓Maltego完成咱們的圖表,而且查找各類來源來完成任務。Maltego十分有用,由於咱們能夠利用這一自動化的特性來快速收集目標信息,例如收集郵件地址、服務器的信息、執行WHOIS查詢,以及其它。社區版只容許咱們在信息收集中使用75個轉換。Maltego的完整版須要$650。

更多啓用和禁用轉換能夠經過 Manage 標籤欄下方的 Transform Manager 窗口設置:

一些轉換首先須要接受纔可使用。

  1.8 映射網絡

使用前面幾個得到的信息,咱們就能夠建立該組織網絡的藍圖。在這一章的最後一個·祕

籍中,咱們會了解如何使用Maltego CaseFile來可視化地編譯和整理所得到的信息。

CaseFile 就像開發者的網站上那樣,至關於不帶轉換的Maltego,但擁有大量特性。多數特性會在這個的「操做步驟」一節中展現。

操做步驟當咱們從啓動CaseFile來開始:

  1. 訪問 Applications | Kali Linux | Reporting Tools | Evidence Management | casefile 來

啓動CaseFile。

  2. 點擊CaseFile應用菜單的 New 來建立新的圖表:

  3. 就像Maltego那樣,咱們將每一個實體從 Palette 組建拖放到圖表標籤頁中。讓咱們從拖

放 Domain 實體以及修改 Domain Name 屬性來開始。

  4. 將鼠標指針置於實體上方,而且雙擊註解圖標來添加註解。

  5. 讓咱們拖放另外一個實體來記錄目標的DNS信息:

  6. 連接實體只須要在實體以前拖出一條線:

  7. 按需自定義連接的屬性:

  8. 重複步驟5~7來向圖中添加更多關於該組織網絡的信息。

  9. 最後咱們保存了信息圖表。圖表的記錄能夠在以後打開和編輯,若是咱們須要的話,和咱們從已知目標得到更多信息的狀況同樣。工做原理

咱們使用Maltego CaseFile來映射網絡。CaseFile是個可視化的智能應用,可

以用於判斷數百個不一樣類型信息之間的關係和現實世界的聯繫。它的本質是離線情報,也就

是說它是個手動的過程。咱們以啓動CaseFile而且建立新的圖表做爲開始。接下來,咱們使用了收集到或已知的目標網絡信息,而且開始向圖表中添加組件來作一些設置。最後保存圖表來結束這個。更多咱們也能夠加密圖表記錄,使它在公衆眼裏更安全。爲了加密圖表,須要在保存的時候選擇 Encrypt (AES-128) 複選框並提供一個密碼。

相關文章
相關標籤/搜索