資訊收集
1、被動收集
利用第三方的服務對目標進行訪問了解。公開的渠道獲得目標主機的資訊,不直接與系統互動,避免留下痕跡。例如google搜尋
1.1 域名資訊收集
kali自帶whois 天眼查 ICP備案查詢網
whois查詢
https://whois.aliyun.com、http://whois.chinaz.com
https://whois.aizhan.com https://www.whois365.com/cn
https://www.virustotal.com/gui/home/url https://www.webscan.cc
備案資訊查詢
https://beian.miit.gov.cn https://www.tianyancha.com
1.2 敏感資訊收集
Google Hacking https://www.exploit-db.com/google-hacking-database
Google語法
關鍵字 | 說明 |
---|---|
site | 指定域名 |
inurl | url中存在關鍵字的網頁 例:inurl:admin_login.asp(登入介面) |
intext | 網頁正文中的關鍵字 |
filetype | 指定檔案型別(torrent是種子檔案)例:kali filetype:torrent |
info | 查詢指定站點的一些基本資訊 |
intitle | 網頁標題中的關鍵字 intitle:index.of .bash history |
link | 返回所有和該域名做了連結的url |
cache | 搜尋Google裡關於某些內容的快取,一些頁面被刪除但還是可以找到 |
index.of | 網頁內容開放 |
敏感目錄檔案收集工具:DirBuster等
1.3 shodan暗黑谷歌搜尋引擎
webcam 網路攝像頭 set:ip city: 北京 port:80
1.4 子域名收集
1.4.1 子域名收集站點
https://dnsdumpster.com、http://dns.aizhan.com、https://phpinfo.me/domain、http://tool.chinaz.com
1.4.2 證照透明度公開日誌列舉
https://crt.sh、https://censys.io
1.4.3 收集工具
登入到https://www.maltego.com/ce-registration/ 用gmail註冊賬號(方便接收啟用資訊)然後到kali登入
layer子域名挖掘機
subDomainsbrute
基本命令
python subDomainsbrute.py xxx.com
kali自帶模組fierce(適用於kali 2021.1)
fierce --domain xxx.com
1.5 CMS指紋識別
站點:https://github.com/Ms0x0/Dayu
https://www.yunsee.cn
http://whatweb.bugscaner.com
工具:御劍web指紋識別、輕量WEB指紋識別
1.6 查詢真實IP
CDN
http://ping.chinaz.com、https://viewdns.info
https://api.asm.saas.broadcom.com、https://ip138.com
2、主動收集
通過直接訪問、掃描網站,將流量流經網站。直接與目標系統互動通訊、無法避免留下訪問痕跡、使用肉雞探測做好被封殺的準備、掃描傳送不同的探測根據返回結果判斷目標狀態。nmap 等
2.1 OSI模型掃描
TCP/IP五層模型 | 對應網路裝置 | 對應協議 |
---|---|---|
應用層(為應用程式提供服務)、表示層(資料格式轉化、資料加密)、會話層(建立、管理和維護會話) | 應用層 | HTTP Telnet FTP DNS TFTP SMTP |
傳輸層(建立、管理和維護端到端的連線) | 四層交換機、四層路由器 | TCP UDP |
網路層(IP地址及路由選擇) | 路由器、三層交換機 | IP ICMP RIP IGMP |
資料鏈路層(提供介質訪問和鏈路管理) | 網橋、乙太網交換機、網路卡 | ARP RARP IEEE802.3 PPP CSMA/CD |
物理層 | 中繼器、集線器、雙絞線 | FE自協商 Manchester MLT-3 PAM5 |
二層掃描:掃描速度快、可靠、不可路由
三層掃描:可路由、速度較快比二層掃描慢、經常被邊界防火牆過濾、使用IP、ICMP協議
四層掃描:可路由、結果可靠、不太可能被防火牆過濾、可以發現所有埠都被過濾的主機、基於狀態過濾的防火牆可能過濾掃描、全埠掃描慢
2.2 ping探測伺服器存活(基於二層掃描)
2.2.1 簡單ping
ping ip -c 1 //-c 1 只ping一次
traceroute baidu.com //路由跟蹤
2.2.2 arping(排查黑客是否冒充閘道器進行中間攻擊)
arping ip 出現兩個mac地址對應一個IP地址就是有ARP攻擊
netdiscover:主動/被動的arp偵查工具
netdiscover -i etho -r 192.168.1.0/24 //-i:指定網路裝置 -r:掃描範圍。-P被動掃描
2.2.3 Hping3 對伺服器進行dos攻擊每次掃描一個目標(壓力測試)
hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source xxx.xxx
-c 1000 傳送的資料包的數量
-d 120 傳送到目標機器的每個資料包的大小單位位元組
-S syn資料包
-w 64 tcp視窗大小
-p 80 目的地埠
--flood 儘可能快的傳送資料包不需要考慮顯示入站回覆(洪水攻擊模式) --rand-source 使用隨機性的源頭ip地址。在區域網中偽造。通過路由器後還是會還原成真實的ip地址
2.3 nmap半連線掃描-nc掃描埠
kali系統中自帶nmap和nc工具,命令用法如下
nmap -sS 192.168.1.64 -p 80,81,21,25,110,443 //-sS表示使用SYN半連線掃描。掃描速度快。
nmap -sS 192.168.1.64 -p 1-1024
nc -nv -w 1 -z 192.168.1.64 1-1024 //-nv表示我們掃描的目標是個ip地址不做域名解析 -w表示超時時間 -z表示埠掃描
埠掃描的其他工具:御劍高速TCP埠掃描工具
2.4 scapy定製arp和icmp資料包掃描
scapy是一個可以讓使用者傳送、偵聽和解析並偽裝網路報文的python程式。可以製作偵測、掃描和攻擊網路的工具
scapy
exit() //退出
INF0: Can't import matplotlib. Won't be able to plot. //報錯
apt-get install python-matplotlib //解決方案
2.4.1 定義ARP包 arp函式使用方法
>>> ARP().display()
###[ ARP ]###
hwtype= 0x1 硬體型別
ptype= IPv4 協議型別
hwlen= None 硬體地址長度(MAX)
plen= None 協議地址長度(IP)
op= who-has who-has查詢
hwsrc= 00:0c:29:a3:ba:39 源MAX地址
psrc= 192.168.88.132 源IP地址
hwdst= 00:00:00:00:00:00 目的MAX地址
pdst= 0.0.0.0 目的IP地址,向誰傳送查詢請求
例:使用sr1函式(傳送和接收資料包)生成一個ARP請求包詢問誰是192.168.1.1
>>> sr1(ARP(pdst="192.168.88.143"))
Begin emission:
Finished sending 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
<ARP hwtype=0x1 ptype=IPv4 hwlen=6 plen=4 op=is-at hwsrc=00:0c:29:d9:16:2d psrc=192.168.88.10\x00\x00\x00\x00\x00\x00' |>>
2.4.2 定義ping包
IP()生成ping包的原IP和目標IP,ICMP()生成ping包的型別。使用IP()和ICMP()兩個函式可以生成ping包,進行探測。(修改IP包頭的dst,也就是目的地址,然後拼接上ICMP的資料包型別,最後使用sr1進行傳送資料包並接受)
>>> sr1(IP(dst="192.168.88.143")/ICMP(),timeout=1)
Begin emission:
Finished sending 1 packets.
..*
Received 3 packets, got 1 answers, remaining 0 packets
<IP version=4 ihl=5 tos=0x0 len=28 id=9545 flags= frag=0 ttl=128 proto=icmp chksum=0xe333 src=192.168.88.143 dst=192.168.88.132 |<ICMP type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |<Padding load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |>>>
2.5 scapy定製TCP協議SYN請求和UDP請求
2.5.1 定製TCP協議
>>> sr1(IP(dst="192.168.88.143")/TCP(flags='S',dport=80),timeout=1)
Begin emission:
Finished sending 1 packets.
..*
Received 3 packets, got 1 answers, remaining 0 packets
<IP version=4 ihl=5 tos=0x0 len=40 id=10238 flags=DF frag=0 ttl=128 proto=tcp chksum=0xa06d src=192.168.88.143 dst=192.168.88.132 |<TCP sport=http dport=ftp_data seq=0 ack=1 dataofs=5 reserved=0 flags=RA window=0 chksum=0x7d07 urgptr=0 |<Padding load='\x00\x00\x00\x00\x00\x00' |>>>
我們得到一個flags=SA的資料包,即SYN+ACK.我們收到伺服器tcp三次握手中的第二個包,表示埠開放(相對於直接訪問不會被伺服器記錄,基於TCP的半連線掃描,更隱祕,更不容易被發現)
2.5.2 定製UDP協議
沒有收到回應包,表示埠開放,收到回應包,表示UDP埠關閉或者此埠是非UDP埠。UDP協議不是那麼的可靠
>>> sr1(IP(dst="192.168.88.143")/UDP(dport=80),timeout=2)
Begin emission:
Finished sending 1 packets.
.*
Received 2 packets, got 1 answers, remaining 0 packets
<IP version=4 ihl=5 tos=0x0 len=56 id=9362 flags= frag=0 ttl=128 proto=icmp chksum=0xe3ce src=192.168.88.143 dst=192.168.88.132 |<ICMP type=dest-unreach code=port-unreachable chksum=0x2f7b reserved=0 length=0 nexthopmtu=0 |<IPerror version=4 ihl=5 tos=0x0 len=28 id=1 flags= frag=0 ttl=64 proto=udp chksum=0x486c src=192.168.88.132 dst=192.168.88.143 |<UDPerror sport=domain dport=80 len=8 chksum=0xccf4 |>>>>
>>>
┌──(root?kali)-[~/桌面]
└─# nmap -sS 192.168.88.143 -p 80
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-11 16:35 CST
Nmap scan report for 192.168.88.143
Host is up (0.00094s latency).
PORT STATE SERVICE
80/tcp closed http
MAC Address: 00:0C:29:D9:16:2D (VMware)
2.6 社會工程學
取得得關鍵人的信任,挖掘出重要資訊。
工具:社工庫