安全工具系列 -- 信息收集(二)
1、whois查詢網站及服務器信息
如果知道目標的域名,你首先要做的就是通過Whois數據庫查詢域名的注冊信息,Whois數據庫是提供域名的注冊人信息,包括聯系方式,管理員名字,管理員郵箱等等,其中也包括DNS服務器的信息。
默認情況下,Kali已經安裝了Whois。你只需要輸入要查詢的域名即可:
利用以上收集到的郵箱、QQ、電話號碼、姓名、以及服務商,可以針對性進行攻擊,利用社工庫進行查找相關管理員信息,另外也可以對相關DNS服務商進行滲透,查看是否有漏洞,利用第三方漏洞平臺,查看相關漏洞。
2、Dig使用
可以使用dig命令對DNS服務器進行挖掘。
Dig命令后面直接跟域名,回車即可
Dig常用選項
- -c?選項,可以設置協議類型(class),包括IN(默認)、CH和HS。
- -f?選項,dig支持從一個文件里讀取內容進行批量查詢,這個非常體貼和方便。文件的內容要求一行為一個查詢請求。來個實際例子吧:
- -4?和-6?兩個選項,用于設置僅適用哪一種作為查詢包傳輸協議,分別對應著IPv4和IPv6。
- -t?選項,用來設置查詢類型,默認情況下是A,也可以設置MX等類型,來一個例子:
- -q?選項,其實它本身是一個多余的選項,但是它在復雜的dig命令中又是那么的有用。-q選項可以顯式設置你要查詢的域名,這樣可以避免和其他眾多的參數、選項相混淆,提高了命令的可讀性,來個例子:
- -x?選項,是逆向查詢選項。可以查詢IP地址到域名的映射關系。舉一個例子:
跟蹤dig全過程
dig非常著名的一個查詢選項就是+trace,當使用這個查詢選項后,dig會從根域查詢一直跟蹤直到查詢到最終結果,并將整個過程信息輸出出來
精簡dig輸出
使用+nocmd的話,可以節省輸出dig版本信息。
Dig可以用來查域傳送漏洞,前面介紹了dig的使用,若將查詢類型設定為axfr,就能得到域傳送數據。這也是我們要用來測試DNS域傳送泄露的命令.
3、Nslookup用法
nslookup是站長較為常用的工具之一,它甚至比同類工具dig的使用人數更多,原因是它的運行環境是windows,并且不需要我們再另外安裝什么東西。dig是在linux環境里運行的命令,不過也可以在windows環境里使用,只是需要安裝dig windows版本的程序。
Nslookup命令以兩種方式運行:非交互式和交互式。
本文第一次提到“交互式”的概念,簡單說明:交互式系統是指執行過程中允許用戶輸入數據和命令的系統。而非交互式系統,是指一旦開始運行,不需要人干預就可以自行結束的系統。因此,nslookup以非交互式方式運行,就是指運行后自行結束。而交互式,是指開始運行后,會要求使用者進一步輸入數據和命令。
類型
- A 地址記錄
- AAAA 地址記錄
- AFSDB Andrew文件系統數據庫服務器記錄
- ATMA ATM地址記錄
- CNAME 別名記錄
- HINFO 硬件配置記錄,包括CPU、操作系統信息
- ISDN 域名對應的ISDN號碼
- MB 存放指定郵箱的服務器
- MG 郵件組記錄
- MINFO 郵件組和郵箱的信息記錄
- MR 改名的郵箱記錄
- MX 郵件服務器記錄
- NS 名字服務器記錄
- PTR 反向記錄
- RP 負責人記錄
- RT 路由穿透記錄
- SRV TCP服務器信息記錄
- TXT 域名對應的文本信息
- X25 域名對應的X.25地址記錄
例如
1.設置類型為ns
2.下面的例子查詢baidu.com使用的DNS服務器名稱:
3.下面的例子展示如何查詢baidu.com的郵件交換記錄:
4.查看網站cname值。
5.查看郵件服務器記錄(-qt=MX)
6.同樣nslookup也可以驗證是否存在域傳送漏洞,步驟如下:
4、fierce工具
在進行了基本域名收集以后,如果能通過主域名得到所有子域名信息,再通過子域名查詢其對應的主機IP,這樣我們能得到一個較為完整的信息。除了默認使用,我們還可以自己定義字典來進行域名爆破。
使用fierce工具,可以進行域名列表查詢:fierce -dns domainName
輸出結果表明,程序首先進行了域傳送測試,域傳送通過一條命令就能獲取服務器上所有的域名信息。如果一次就能簡單獲取服務器上所有記錄域名信息,就不再暴力破解。
但從結果上看,“Unsucessful in zone transfer”,
域傳送測試是失敗了。接著執行暴力破解,測試的數量取決于字典中提供的字符串數量,上例中沒有指定字典,在默認情況下在Kali中使用/usr/share/fierce/hosts.txt。
一個內部網絡的DNS域名服務器可以提供大量信息,這些信息可以在以后評估網絡漏洞。
5、theHarvester的使用
theHarvester是一個社會工程學工具,它通過搜索引擎、PGP服務器以及SHODAN數據庫收集用戶的email,子域名,主機,雇員名,開放端口和banner信息。
- -d?服務器域名
- -l?限制顯示數目
- -b?調用搜索引擎(baidu,google,bing,bingapi,pgp,linkedin,googleplus,jigsaw,all)
- -f?結果保存為HTML和XML文件
- -h?使用傻蛋數據庫查詢發現主機信息
實例1
theHarvester -d sec-redclub.com -l 100 -b baidu實戰2
輸出到html文件中,可以更清晰的看到搜索的網站信息的模型。
theHarvester -d sec-redclub.com -l 100 -b baidu -f myresults.html6、DNS枚舉工具DNSenum
DNSenum是一款非常強大的域名信息收集工具。它能夠通過谷歌或者字典文件猜測可能存在的域名,并對一個網段進行反向查詢。它不僅可以查詢網站的主機地址信息、域名服務器和郵件交換記錄,還可以在域名服務器上執行axfr請求,然后通過谷歌腳本得到擴展域名信息,提取子域名并查詢,最后計算C類地址并執行whois查詢,執行反向查詢,把地址段寫入文件。
本小節將介紹使用DNSenum工具檢查DNS枚舉。在終端執行如下所示的命令:
輸出的信息顯示了DNS服務的詳細信息。其中,包括主機地址、域名服務地址和郵件服務地址,最后會嘗試是否存在域傳送漏洞。
使用DNSenum工具檢查DNS枚舉時,可以使用dnsenum的一些附加選項,如下所示。
- --threads [number]:設置用戶同時運行多個進程數。
- -r:允許用戶啟用遞歸查詢。
- -d:允許用戶設置WHOIS請求之間時間延遲數(單位為秒)。
- -o:允許用戶指定輸出位置。
- -w:允許用戶啟用WHOIS請求。
7、subDomainsbrute二級域名收集
二級域名是指頂級域名之下的域名,在國際頂級域名下,它是指域名注冊人的網上名稱;在國家頂級域名下,它是表示注冊企業類別的符號。
我國在國際互聯網絡信息中心(Inter NIC) 正式注冊并運行的頂級域名是CN,這也是我國的一級域名。
在頂級域名之下,我國的二級域名又分為類別域名和行政區域名兩類。類別域名共7個,包括用于科研機構的ac;國際通用域名com、top;用于教育機構的edu;用于政府部門的gov;用于互聯網絡信息中心和運行中心的net;用于非盈利組織的org。而行政區域名有34個,分別對應于我國各省、自治區和直轄市。
以上為工具默認參數,如果是新手,請直接跟主域名即可,不用進行其它設置。
Python subDomainsbrute.py sec-redclub.com
就可以直接運行,等待結果,最后在工具文件夾下面存在txt文件,直接導入掃描工具就可以進行掃描了。
8、layer子域名檢測工具
layer子域名檢測工具主要是windows一款二級域名檢測工具,利用爆破形式。
工具作者:http://www.cnseay.com/4193/
域名對話框直接輸入域名就可以進行掃描了,工具顯示比較細致,有域名、解析ip、cnd列表、web服務器和網站狀態,這些對于一個安全測試人員,非常重要。如下操作:
會顯示大部分主要二級域名。
9、Nmap
Nmap是一個網絡連接端口掃描軟件,用來掃描網上電腦開放的網絡連接端口。確定哪些服務運行在哪些連接端口,并且推斷計算機運行哪個操作系統。它是網絡管理員必用的軟件之一,以及用以評估網絡系統安全。
功能
- 主機發現
- 端口掃描
- 版本偵測
- OS偵測
部署方式
- Kail集成環境
- 單獨安裝(使用yum、apt-get工具直接安裝)
- PentestBox環境
- Windows版等等
Nmap使用
Nmap的參數和選項繁多,功能非常豐富。我們先來看一下Nmap的通用命令格式:Nmap<掃描選項><掃描目標>(詳細教程及下載方式參見:http://nmap.org/)
主機發現的原理與Ping命令類似,發送探測包到目標主機,如果收到回復,那么說明目標主機是開啟的。Nmap支持十多種不同的主機探測方式,比如發送ICMP ECHO/TIMESTAMP/NETMASK報文、發送TCPSYN/ACK包、發送SCTP INIT/COOKIE-ECHO包,用戶可以在不同的條件下靈活選用不同的方式來探測目標機。
主機發現的基本用法
- -sL: List Scan 列表掃描,僅將指定的目標的IP列舉出來,不進行主機發現。
- -sn: Ping Scan 只進行主機發現,不進行端口掃描。
- -Pn: 將所有指定的主機視作開啟的,跳過主機發現的過程。
- -PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式進行發現。
- -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 請求包發現主機。
- -PO[protocollist]: 使用IP協議包探測對方主機是否開啟。
- -sP: Ping 指定范圍內的 IP 地址
- -n/-R: -n表示不進行DNS解析;-R表示總是進行DNS解析。
- --dns-servers <serv1[,serv2],...>: 指定DNS服務器。
- --system-dns: 指定使用系統的DNS服務器
- --traceroute: 追蹤每個路由節點
掃描局域網192.168.80.1/24范圍內哪些IP的主機是活動的。命令如下:nmap –sn 192.168.80.1/24
由圖可知:192.168.80.1、192.168.80.254、192.168.80.166三臺主機處于存活狀態。
掃描局域網192.168.80.100-200范圍內哪些IP的主機是活動的。命令如下:nmap –sP 192.168.80.100-200
端口掃描是Nmap最基本最核心的功能,用于確定目標主機的TCP/UDP端口的開放情況。默認情況下,Nmap會掃描1000個最有可能開放的TCP端口。Nmap通過探測將端口劃分為6個狀態:
- open:端口是開放的。
- closed:端口是關閉的。
- filtered:端口被防火墻IDS/IPS屏蔽,無法確定其狀態。
- unfiltered:端口沒有被屏蔽,但是否開放需要進一步確定。
- open|filtered:端口是開放的或被屏蔽。
- closed|filtered:端口是關閉的或被屏蔽。
端口掃描方面非常強大,提供了很多的探測方式:
- TCP SYN scanning
- TCP connect scanning
- TCP ACK scanning
- TCP FIN/Xmas/NULL scanning
- UDP scanning
- 其他方式
- -sS/sT/sA/sW/sM: 指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目標主機進行掃描。
- -sU: 指定使用UDP掃描方式確定目標主機的UDP端口狀況。
- -sN/sF/sX: 指定使用TCP Null,FIN,and Xmas?scans秘密掃描方式來協助探測對方的TCP端口狀態。
- --scanflags <flags>: 定制TCP包的flags。
- -sI?zombiehost[:probeport]: 指定使用idle scan方式來掃描目標主機(前提需要找到合適的zombie host)
- -sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議端口的開放的情況。
- -sO: 使用IP protocol 掃描確定目標機支持的協議類型。
- -b <FTP relay host>: 使用FTP bounce scan掃描方式
- -p: 指定端口掃描
在此,我們以主機192.168.80.166為例。命令如下:nmap -sS -p0-65535 -T4 192.168.80.166
參數-sS表示使用TCP SYN方式掃描TCP端口;-p0-65535表示掃描所有端口;-T4表示時間級別配置4級;
掃描特定端口是否開放:nmap -p21,80,445,3306 192.168.80.166
簡要的介紹版本的偵測原理。版本偵測主要分為以下幾個步驟:
- 首先檢查open與open|filtered狀態的端口是否在排除端口列表內。如果在排除列表,將該端口剔除。
- 如果是TCP端口,嘗試建立TCP連接。嘗試等待片刻(通常6秒或更多,具體時間可以查詢文件nmap-services-probes中Probe TCP NULL q||對應的totalwaitms)。通常在等待時間內,會接收到目標機發送的“WelcomeBanner”信息。nmap將接收到的Banner與nmap-services-probes中NULLprobe中的簽名進行對比。查找對應應用程序的名字與版本信息。
- 如果通過“Welcome Banner”無法確定應用程序版本,那么nmap再嘗試發送其他的探測包(即從nmap-services-probes中挑選合適的probe),將probe得到回復包與數據庫中的簽名進行對比。如果反復探測都無法得出具體應用,那么打印出應用返回報文,讓用戶自行進一步判定。
- 如果是UDP端口,那么直接使用nmap-services-probes中探測包進行探測匹配。根據結果對比分析出UDP應用服務類型。
- 如果探測到應用程序是SSL,那么調用openSSL進一步的偵查運行在SSL之上的具體的應用類型。
- 如果探測到應用程序是SunRPC,那么調用brute-force RPC grinder進一步探測具體服務。
- -sV: 指定讓Nmap進行版本偵測
- --version-intensity <level>: 指定版本偵測強度(0-9),默認為7。數值越高,探測出的服務越準確,但是運行時間會比較長。
- --version-light: 指定使用輕量偵測方式 (intensity 2)
- --version-all: 嘗試使用所有的probes進行偵測 (intensity 9)
- --version-trace: 顯示出詳細的版本偵測過程信息。
對主機192.168.80.166進行版本偵測。命令如下:nmap -sV -p0-65535 -T4 192.168.80.166
Nmap使用TCP/IP協議棧指紋來識別不同的操作系統和設備。在RFC規范中,有些地方對TCP/IP的實現并沒有強制規定,由此不同的TCP/IP方案中可能都有自己的特定方式。Nmap主要是根據這些細節上的差異來判斷操作系統的類型的。
Nmap內部包含了2600多已知系統的指紋特征(在文件nmap-os-db文件中)。將此指紋數據庫作為進行指紋對比的樣本庫。分別挑選一個open和closed的端口,向其發送經過精心設計的TCP/UDP/ICMP數據包,根據返回的數據包生成一份系統指紋。將探測生成的指紋與nmap-os-db中指紋進行對比,查找匹配的系統。如果無法匹配,以概率形式列舉出可能的系統。
- -O: 指定Nmap進行OS偵測。
- --osscan-limit: 限制Nmap只對確定的主機的進行OS探測(至少需確知該主機分別有一個open和closed的端口)。
- --osscan-guess: 大膽猜測對方的主機的系統類型。由此準確性會下降不少,但會盡可能多為用戶提供潛在的操作系統。
命令:nmap –O 192.168.80.166
- -vv: 詳細顯示掃描狀態
nmap -p21,80,445,3306 -vv 192.168.80.166
- --script: 使用nse腳本,也可自行編寫nse腳本,nmap有580多個腳本
nmap --script=auth 192.168.80.166
- --script=brute: 對弱口令進行暴力破解
nmap --script=brute 192.168.80.166
- --script=default: 使用默認nse腳本搜集應用的信息
nmap --script=default 192.168.80.166
- --script=vuln: 檢測常見漏洞
nmap --script=vuln 192.168.80.166
優劣勢
優勢:
- 功能靈活強大,支持多種目標,大量計算機的同時掃描;
- 開源,相關幫助文檔十分詳細;
- 流行,由于其具有強大的掃描機探測功能,,已被成千上萬安全專家使用。
劣勢:
- Nmap參數眾多,難以一一記憶;
10、DirBuster
DirBuster是一款路徑及網頁暴力破解的工具,可以破解出一直沒有訪問過或者管理員后臺的界面路徑。Java運行環境+DirBuster程序包
- 雙擊運行DirBuster.jar
- 在URL中輸入目標URL或者主機IP地址
- 在file with list of dirs/files?欄后點擊browse,選擇破解的字典庫為directory-list-2.3-small.txt
- 將File extension中填入正確的文件后綴,默認為php,如果為jsp、asp、aspx頁面,需要填入jsp、asp、aspx
- 同樣可以選擇自己設置字典,線程等等
- 其他選項不變,點擊右下角的start,啟動目錄查找
- 觀察返回結果,可點擊右下角的report,生成目錄報告
- 敏感目錄發掘能力強
- OWASP安全機構極力推薦
- 探測目錄依賴字典文件
總結
以上是生活随笔為你收集整理的安全工具系列 -- 信息收集(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言以科学计数法的格式打印
- 下一篇: sqk,按分钟统计平均值