滲透測試——資訊收集

知己呀發表於2021-05-28

資訊收集

1、被動收集

利用第三方的服務對目標進行訪問了解。公開的渠道獲得目標主機的資訊,不直接與系統互動,避免留下痕跡。例如google搜尋

1.1 域名資訊收集

kali自帶whois 天眼查 ICP備案查詢網

whois查詢

https://whois.aliyun.comhttp://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.comhttp://dns.aizhan.comhttps://phpinfo.me/domainhttp://tool.chinaz.com

1.4.2 證照透明度公開日誌列舉

https://crt.shhttps://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.comhttps://viewdns.info

https://api.asm.saas.broadcom.comhttps://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 社會工程學

取得得關鍵人的信任,挖掘出重要資訊。
工具:社工庫

相關文章