1. 程式人生 > >metasploit 滲透測試魔鬼訓練營 筆記(二)第三章 情報收集系統 (上)

metasploit 滲透測試魔鬼訓練營 筆記(二)第三章 情報收集系統 (上)

第三章情報蒐集系統 (上)

3.1 外圍資訊收集

3.1.1 通過DNS 和IP地址挖掘目標的網路資訊。
1. whois域名註冊資訊查詢
通過whois,我們能夠獲取到testfire.net的一些基本資訊。管理員的email,傳真,電話,域名伺服器。
whois能截獲的資訊:Domain、Organization Name(s),Address,Admin Email,
Admin Fax,phone,Tech Name,Name Server,Name Server等
備註:查詢的時候把WWW和ftp等去掉。
2. 用nslookup與dig查詢
Nslookup 能夠提供非權威的解答,使用方法
Nslookup [enter]set type=A[enter]testfire.net || set type=MX能夠檢視郵件轉發伺服器,ls -d example.com命令可以檢視所有DNS記 錄,從而暴露拓撲結構
Dig 能夠提供權威的回答,使用方法為 Dig @

3.2 主機探測與埠掃描

【別忘了好好配置環境】

3.2.1 活躍主機掃描
檢視主機是否活躍是網路管理員經常做的事情。但是我們找到活躍主機的方式,除了用ping的方式之外,還可以用metasploit中的主機發現模組。
我們常用 :
arp_sweep 用ARP請求列舉本地區域網中所有活躍主機
udp_sweep用傳送UDP資料包探查主機是否活躍並發現主機上的UDP服務
這裡寫圖片描述

這是伺服器關閉的狀態 (關閉了OWASP)

這裡寫圖片描述

這是伺服器開啟的狀態。

<關於THREAD設定: 較大可以提高掃描度,較小可以讓過程更加隱蔽>
Arp_sweep侷限:只能探測同一子網中的活躍主機,對於遠端網路,只能用Nmap
3.2.1.3 Nmap進行主機探測
【接下來我們隆重介紹 網路探測的瑞士軍刀nmap】
用法:
nmap [Scan Type(s)] [Options] {target specification}
{target specification} 支援:域名,IP地址和列表,IP網段(CIDR網段)
[Scan Type(s)]選項:
-sL

: 活躍主機發現的簡單掃描(arp_sweep)
-sn: 不進行埠掃描
-s +S +T +A +W+M+U
-p 掃描埠
-sV :服務版本探測
-sC :基於指令碼掃描
】書中有一個地方打錯了 P84 應該是 nmap -sn 10.10.10.0/24 作者把 sn打成sh了【
Internet環境中,推薦用-Pn選項,如果要加快速度,可以用-sn告訴nmap只要探測存活的主機
探測過程:

    ```
    Starting Nmap 7.60 ( https://nmap.org ) at 2017-12-27
21:34 CST Nmap scan report for 10.10.10.1 Host is up (0.00011s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 10.10.10.2 Host is up (0.00014s latency). MAC Address: 00:50:56:F7:46:C4 (VMware) Nmap scan report for www.dvssc.com (10.10.10.129) Host is up (-0.10s latency). MAC Address: 00:0C:29:34:29:5A (VMware) Nmap scan report for 10.10.10.254 Host is up (0.00024s latency). MAC Address: 00:0C:29:73:FB:26 (VMware) Nmap scan report for service.dvssc.com (10.10.10.130) Host is up. ```

果然,我們發現了DMZ區中的四臺活躍主機,分別是10.10.10.128,129,130。等等254呢?
但是我用arp_sweep掃到了這個埠呀?用 -sh和-PU -sn為啥找不到呢?
難道有什麼貓膩? 好吧,我們列舉掃描吧
用 -v -sh掃描,掃描到了 10.10.10.254

...
Nmap scan report for www.dvssc.com (10.10.10.129)
Host is up (-0.10s latency).
MAC Address: 00:0C:29:34:29:5A (VMware)
...
Nmap scan report for 10.10.10.254
Host is up (-0.10s latency).
MAC Address: 00:0C:29:73:FB:26 (VMware)
Nmap scan report for 10.10.10.255 [host down]
Nmap scan report for service.dvssc.com (10.10.10.130)
Host is up.
Read data files from: /usr/bin/../share/nmap
Nmap done: 256 IP addresses (5 hosts up) scanned in 3.98 seconds
           Raw packets sent: 510 (14.280KB) | Rcvd: 10 (280B)

這倒是把 254掃描到了。(可能是誤判為關閉埠)
於是我把所有的虛擬機器都打開了。<之前我就開了伺服器>
然後254就用-sh掃描到了。<在開啟Linux之後>
[吶嚕吼兜…]
3.2.2 作業系統辨識
獲取了網路的活躍主機之後,我們還想知道這個主機安裝了什麼系統。從而對其進行鍼對性攻擊,用-O的選項能夠找到對方的作業系統。
命令 nmap -O 10.10.10.129

Starting Nmap 7.60 ( https://nmap.org ) at 2017-12-27 22:10 CST
Nmap scan report for www.dvssc.com (10.10.10.129)
Host is up (0.00052s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http-proxy
MAC Address: 00:0C:29:34:29:5A (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.17 - 2.6.36
Network Distance: 1 hop
-A可以獲得更加多的資訊

3.2.3 埠掃描與服務型別探測
之前我們在探測主機,現在我們來掃描埠了。
常見的埠掃描技術有 TCP Connect ,TCP SYN, TCP ACK,TCP FIN 還有更加高階的埠掃描技術,比如TCP IDLE (這個是不是空閒掃描啊?)
最愚蠢,最低效but 最精確 TCP Connect 這個相當於我們在python裡面寫的try:
s.connect()差不多。最容易被主機記錄到日誌中去了。而SYN,ACK,FIN是用了TCP協議柞的特性,通過傳送包含特殊標誌位的包來返回端 口,最為高階玩家,還是用這些好。

  1. Metasploit 中的埠掃描器 search portscan可以找到這些。
    這裡寫圖片描述
    大概看下,ftpbounce (好像在測試指南上看到過,應該是名詞叫反彈TCP啥啥的)在就的Solaris 和FreeBSD系統上很好用。Xmas,嗯沒錯,看上去很高大上,隱蔽,可以躲過高階TCP標記檢測器的過濾。
(Xmas) > run
[*]  TCP OPEN|FILTERED 10.10.10.129:21
[*]  TCP OPEN|FILTERED 10.10.10.129:22
[*]  TCP OPEN|FILTERED 10.10.10.129:80
[*]  TCP OPEN|FILTERED 10.10.10.129:139
[*]  TCP OPEN|FILTERED 10.10.10.129:143
*你看,xmas就是比較細緻的

2. Nmap埠掃描
埠的狀態型別 open,closed,filtered,unfiltered,open|filtered,closed|filtered
對於未過濾的埠,windows,syn,fin會進一步確認。

掃描引數
sT TCP Connect  sF,sX,sN 特殊標誌服避開檢測掃描
sS TCP SYN  -sP ICMP echo (和ping一個原理)  -sU UDP -sA  TCP ACK

掃描選項
-Pn 不要傳送ICMP echo來檢測是否活躍(一般不用,畢竟我們在之前的主機檢測時候已經確定好了)
-O 檢視作業系統型別
-F 快速掃描,只掃描services中列出的埠
-p<埠範圍> 想要的埠 如 1~1023(書中錯了,應該用-而不是~)

掃描測試: 口令 nmap -sS -Pn 10.10.10.129

Starting Nmap 7.60 ( https://nmap.org ) at 2017-12-27 22:58 CST
Nmap scan report for www.dvssc.com (10.10.10.129)
Host is up (0.00085s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http-proxy
MAC Address: 00:0C:29:34:29:5A (VMware)
備註:-sS SYN模組,塊並且不會被記錄下來。我們可以加上-sU把UDP埠也掃出來。速度會慢一些。 用-sV 可以列出更加詳細的資訊

3.2.4 Autoscan
Kali(BT5)上有著非常方便的視覺化介面Autoscanner 但是沒有nmap好用,這裡不多贅述。

3.2.5 探測掃描結果分析(也是作業)

map scan report for service.dvssc.com (10.10.10.130)
Host is up (0.00051s latency).
Not shown: 985 closed ports
PORT     STATE SERVICE         VERSION
21/tcp   open  ftp             Microsoft ftpd
80/tcp   open  http            Microsoft IIS httpd 6.0
135/tcp  open  msrpc           Microsoft Windows RPC
139/tcp  open  netbios-ssn     Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds    Microsoft Windows 2003 or 2008 microsoft-ds
777/tcp  open  multiling-http?
1025/tcp open  msrpc           Microsoft Windows RPC
1026/tcp open  msrpc           Microsoft Windows RPC
1030/tcp open  msrpc           Microsoft Windows RPC
1031/tcp open  msrpc           Microsoft Windows RPC
1521/tcp open  oracle-tns      Oracle TNS Listener 10.2.0.1.0 (for 32-bit Windows)
6002/tcp open  http            SafeNet Sentinel Protection Server 7.3
7001/tcp open  afs3-callback?
7002/tcp open  http            SafeNet Sentinel Keys License Monitor httpd 1.0 (Java Console)
8099/tcp open  http            Microsoft IIS httpd 6.0

3.3 服務掃描與查點

通過對特定服務的掃描,我們可以少走彎路,直接滲透,通產對埠上所有執行服務的資訊進行深入挖掘,成為服務查點
在meta的scanner莫魁岸中,有著很多服務掃描與查點的工具,這些工具常常以[]_version或者[]_login命名;
[]_version 可以遍歷網路中包含某種服務的主機,並進一步確定服務的版本(這就好像我們在搜尋活躍的主機)
[]_login 可以對某種服務進行口令探測攻擊
(備註:如果你要找SQL 服務的話,應該用mssql_ping模組)
3.3.1 常見網路服務掃描
1. Telnet掃描
Telnet 是一個很不安全的卻歷史悠久的網路服務,現在已經逐漸用ssh協議替代它。但是很多交換機,路由器任然在使用。這為我們滲透提供了便利。
通過telnet掃描,我們找到了10.10.10.254這個玩意兒(我把Ubuntu重啟了一下又能用了)
[+] 10.10.10.254:23 - 10.10.10.254:23 TELNET Ubuntu 8.04\x0ametasploitable login:
2. SSH服務掃描
SSH是類unix系統上最常見的遠端管理服務,採用安全的機密資訊方式,但是如果沒有其他安全增強的配置,那麼只要獲得登入口令,就可以用SSH客戶端登入伺服器,獲得我們夢寐以求的管理員許可權了。

[+] 10.10.10.129:22 - SSH server version: SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4 ( service.version=5.3p1 openssh.comment=Debian-3ubuntu4 service.vendor=OpenBSD service.family=OpenSSH service.product=OpenSSH os.vendor=Ubuntu os.device=General os.family=Linux os.product=Linux os.version=10.04 service.protocol=ssh fingerprint_db=ssh.banner )

[+] 10.10.10.254:22 - SSH server version: SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1 ( service.version=4.7p1 openssh.comment=Debian-8ubuntu1 service.vendor=OpenBSD service.family=OpenSSH service.product=OpenSSH os.vendor=Ubuntu os.device=General os.family=Linux os.product=Linux os.version=8.04 service.protocol=ssh fingerprint_db=ssh.banner )

(備註:最終我找到了解決方案,10.10.10.254 有時候連不上的話,重啟就可以了。我推測是螢幕變暗的問題,但是把熄屏cancel了之後好像並不能解決問題,現在就先將就著了)

很好,我們找到了129和254兩個伺服器與它們的具體版本號。這為我們之後猜SSH口令提供了極大的便利。

  1. Oracle資料庫服務查點
    各種網路資料庫的網路埠是漏洞頻發的“重災區”,比如微軟SQL服務的1433埠,以及Oracle SQL監聽器的1521埠,可以用mssql_ping模組和tnslsnr_version模組查詢網路中開放的上述兩種服務。
    尋找oracle資料庫
    [*] Scanned 101 of 256 hosts (39% complete)
    [+] 10.10.10.130:1521 - 10.10.10.130:1521 Oracle - Version: 32-bit Windows: Version 10.2.0.1.0 - Production
    尋找 MSSQL服務
    (好吧沒找到)<其實書上yemeiyou>

  2. 開放代理探測與利用
    為了不讓別人知道我們的身份,隱藏自己是很必要。最簡單是利用代理伺服器。
    在open_proxy模組中,你可以通過配置代理的方法來進行滲透測試。
    這邊就不多說open_proxy模組的操作了
    更加geek的方法,應該是在自己控制的主機上架設OPENVPN服務,這些vpn採用加密的方式轉發你的滲透測試資料包,無需擔心你的攻擊發起源被追蹤到。

3.3.2 口令猜測與嗅探
1. SSH服務口令猜測
有ssh_login模組,可以幫你暴力破解ssh服務口令。
備註:在原始碼裡並沒有words.txt檔案,所以自己瞎寫個密碼本丟進去吧
暴力猜密碼的方法真low,我們來看看別的猜密碼的方法。

  1. psnuffle口令嗅探。《在第九章中會有更加高階的嗅探技巧》
    psnuffle是唯一meta自帶的口令嗅探工具。
    之後的玩法我們會在第九章中說明

之前的筆記
第二章筆記

筆記序言