2018年3月26日 星期一

Kali實戰 - 主動資訊收集 筆記

課程地址:Kali实战-主动信息收集

1.二層掃描(ARP)


優點:速度快


缺點:不可路由


nmap -sn <ip>/24 #不做 port scan


netdiscover -i eth0 -r <ip>/24 #主動掃描


netdiscover -p #被動掃描



2.三層掃描(IP、ICMP)


優點:可路由、速度快


缺點:速度比二層慢、經常被邊界防火牆過濾


tracerout <target>、ping -R <target> #找出到目標之間的所有路由資訊



3.四層掃描(TCP、UDP)


優點:可路由、結果可靠、不易被防火牆過濾、可發現所有 port 都過濾的主機


缺點:基於狀態過濾的防火牆可能過濾掃描、port 掃描速度慢


TCP掃瞄原理:檢查目標是否回 RST


UDP掃瞄原理:檢查目標是否回 ICMP 無法接收


nmap <ip> -PU/A/S/Y/E/P/O<port> -sn #發UDP/TCP ACK/TCP SYN/SCTP/ICMP echo/timestamp/請求目標ip的netmask/IP協議的ping

hping3 --udp <ip> -c 1 #只發一次UDP

hping3 <ip> -c 1 #只發一次TCP(把所有的TCP flag設為0)


4.端口掃描

查看本機開放端口:netstat -pantu | grep tcp/udp

(1)UDP

若目標回應 ICMP port-unreachable 則表示 port 為關閉;若目標不回應 ICMP port-unreachable 則可能產生誤判。準確度高、耗時高。

nmap -sU <ip> -p-

(2)TCP

基於三次握手的變化判斷目標 port 狀態。

  • 全連接掃描

建立完整的連接。

nmap -sT -p- <ip> 

nc -nv -w 1 -z <ip> 1-65535

  • 隱蔽掃描

隱蔽掃描(只發syn,確認是否收到目標的ack):不建立完整連接、應用層日誌不紀錄掃描行為(網路層仍會紀錄)。

攻擊者向目標主機發 SYN,目標主機回傳 SYN/ACK,攻擊者再向目標主機發 RST 斷開連接。

nmap -sS -p- <ip>

hping3 <ip> --scan 0-65535 -S

  • 殭屍掃描

殭屍掃描前置條件:殭屍機可偽造來源 IP、殭屍機須為閒置狀態(否則IPID會不斷增加)、IPID須為遞增(均為0或隨機產生則無法利用)

殭屍掃描流程:


port 為開放狀態
(1)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST(包含 IPID=x)
(2)攻擊者向目標主機發 SYN(偽造來源地址為殭屍機),目標主機向殭屍機回 SYN/ACK,殭屍機再回傳目標主機 RST(IPID=x+1)
(3)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST,若 IPID=x+2,則代表目標 port 為開放
port 為關閉狀態

(1)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST(包含 IPID=x)
(2)攻擊者向目標主機發 SYN(偽造來源地址為殭屍機),目標主機向殭屍機回傳 RST

(3)攻擊者向殭屍機發 SYN/ACK,殭屍機回傳 RST,若 IPID=x+1,則代表目標 port 為關閉

找出殭屍機:nmap -p <ip> --script=ipidseq.nse #確認ipidseq為Incremental才可作為殭屍機


殭屍掃描:nmap <殭屍機ip> -sl <ip> -Pn -p-


5.banner 掃描

nc -nv <ip> <port>

nmap -sT <ip> -p- --script=banner.nse #須建立完整連接,故只能用sT

amap -B <ip> 1-65535 | grep on


6.服務辨識

nmap -sV <ip> -p-

amap <ip> 1-65535 -qb


7.OS 辨識

TTL 起始值:
Windows:65 - 128
Linux / Unix:1 - 64、255

nmap -O <ip>

被動掃描:p0f


8.SNMP 掃描

snmpwalk <ip> -v 2c #掃描目標主機的snmp,版本分為1、v2c、3

snmpwalk <ip> -v 2c <oid> #針對oid做詳細掃描

snmpcheck -t <ip> -v 2 #1、2、3

onesixtyone -c /usr/share/doc/onesixtyone/dict.txt   <ip> -w 100 #爆破community string for snmpv1、2

hydra -P <dictionary> <ip> snmp #爆破community string for snmpv1、2

nmap -sU -v --script snmp-brute --script-args passdb=passwords.lst <ip> #爆破community string for snmpv1、2

nmap -sU -v --script snmp-brute --script-args userdb=usernames.lst,passdb=passwords.lst <ip> #爆破username、pwd for snmpv3


9.SMB 掃描

SMBv1:Windows 2000 / Windows 2003 / XP
SMBv2:Windows Vista / Windows 2008
SMBv2.1:Windows 7 / Windows 2008 R2
SMBv3:Windows 8 / Windows 2012 

nmap <ip> -p --script=smb-os-discovery.nse

nmap -v -p --script=smb-check-vulns --script-args=unsafe=1 <ip> #unsafe=1可能讓目標主機當機,保險起見可使用safe=1
https://github.com/jwilkins/nmap/blob/master/scripts/smb-check-vulns.nse

nbtscan -r <ip>/24 #可跨網段掃描

enum4linux -a <ip> #掃描資訊較其他工具詳細

10.SMTP 掃描


nmap <host> -p <port> --script=smtp-enum-users.nse --script-args=smtp-enum-users.methods={VRFY}

nmap <host> -p <port> --script=smtp-open-relay.nse


11.負載平衡辨識

lbd <host> or <ip


12.WAF 辨識

wafw00f <host>

nmap <host> --script=http-waf-detect.nse


13.nmap 特殊參數

--exclude <ip> 去除指定ip

--excludefile <file> 去除指定檔案的ip

-sV --version-all 顯示最詳細的版本資訊

--script-updatedb 更新腳本db

--script-help-<file.nse>

--min-hostgroup <size> 先將多個IP分組,再並行掃描多個群組。掃C段時建議設256,若掃較少的port,建議使用>=2048

--min-rate <num>

-D <ip1> <ip2> <ip3> <target_ip> 大量假ip的掩護

-S <fakeip> -e eth0 <target_ip> 使用假ip做掩護

-g<fakeport> <target_ip> 使用假port作做掩護

--spoof-mac <fakemac> 使用假mac做掩護

--badsum 發送錯誤的checksum bypass waf
補充資料:Freebuf - Nmap备忘单:从探索到漏洞利用

沒有留言:

張貼留言