資訊收集11——nmap

wollow-liang發表於2020-11-19

目錄

 

1.走進nmap

2.活躍主機發現

1.活躍主機發現技術

2.基於ARP協議的活躍主機發現技術(與目標在同一網段使用)

3.基於ICMP協議的活躍主機發現技術

4.基於TCP協議的活躍主機發現技術

5.基於UDP協議的活躍主機發現技術

6.基於SCTP協議的活躍主機發現技術

7.使用IP協議進行主機發現

8.活躍主機發現中與DNS協議相關的選項

 

3.埠掃描技術

1.SYM掃描

2.UDP掃描

3.TCP FIN掃描

4.NULL掃描

6.idle掃描

3.2指定掃描的埠

4.遠端作業系統與服務檢測

1.掃描系統指紋

2.1版本探測

5.安全檢測躲避技術

6.使用NSE指令碼

1.列舉web伺服器上執行的服務

2.向NSE指令碼中傳遞引數

3.1targets-sniffer.NSE指令碼

3.2密碼審計類指令碼

3.3漏洞掃描指令碼

 

7.nmap格式化輸出


 

1.走進nmap

1.對單個主機掃描

nmap 192.168.0.105

2.對連續範圍內的ip進行掃描

nmap -sn 192.168.0.100-255

3.對整個子網進行掃描

nmap -sn 192.168.0.0/24

4.對多個不連續的主機進行掃描

nmap -sn 192.168.0.1 192.168.0.110

5.在掃描的時候排除指定的目標

nmap -sn 192.168.0.0/24 --exclude 192.168.0.1

6.對一個文字檔案中的地址列表進行掃描

nmap -sn -iL test.txt

7.隨機確定掃描目標

nmap -sn -iR 3
#隨機地在網際網路上對3個ip地址掃描

8.速度控制

速度控制
-T0-5
--scan-delay
--min-rate/ --max-rate
被卡住的主機(大範圍地址空間)
--host-timeout 10m ( 10s、10h )#卡住超過10分鐘跳過

 

 

2.活躍主機發現

  • 網路協議與活躍主機發現技術
  • 基於ARP協議的活躍主機發現技術
  • 基於ICMP協議的活躍主機發現技術
  • 基於TCP協議的活躍主機發現技術
  • 基於UDP協議的活躍主機發現技術
  • 基於SCTP協議的活躍主機發現技術
  • Nmap活躍主機發現中與DNS協議相關的選項

1.活躍主機發現技術

 

 

2.基於ARP協議的活躍主機發現技術(與目標在同一網段使用)

nmap -sn -PR 192.168.0.100

 

3.基於ICMP協議的活躍主機發現技術

nmap -sn -PE 140.205.220.96    #通過響應請求和應答發現主機
nmap -sn -PP 140.205.220.96    #時間戳請求和應答發現主機
nmap -sn -PM 140.205.220.96    #地址掩碼請求和應答發現主機

4.基於TCP協議的活躍主機發現技術

nmap -sn -PS 192.168.0.100    #SYN掃描
nmap -sn -PA 192.168.0.100    #ACK掃描,很容易被安全檢測裝置過濾掉

5.基於UDP協議的活躍主機發現技術

nmap -sn -PU 192.168.0.110

6.基於SCTP協議的活躍主機發現技術

nmap -sn -PY 192.168.0.1

7.使用IP協議進行主機發現

nmap -sn -PO 192.168.0.1           #PO預設為使用ICMP使用ICMP,IGMP,IP-in-IP三個協議
nmap -sn -PO 1,2,4 192.168.0.1     #和上邊的相同

ip協議:                            1->ICMP;2->IGMP;6->TCP;17->UDP

nmap -sn -PO 6,17 target-ip        #使用tcp,udp掃描,很容易被檢測
nmap --data-length 25 target-ip    #新增隨機資料的資料包

8.活躍主機發現中與DNS協議相關的選項

nmap -R 192.168.0.1        #列出ip的對應域名
nmap -n 192.168.0.1        #掃描時取消對域名的轉換

nmap --packet-trace -R 192.168.0.1 --dns-servers 114.114.114.114 指定dns伺服器來掃描

 

3.埠掃描技術

 

nmap對埠狀態的定義
open如果目標埠的狀態為open,這表明在該埠有應用程式接收TCP連線或者UDP報文
closed如果目標埠的狀態為closed,這裡要注意closed並不意味著沒有任何反應,狀態為closed的埠是可訪問的,這種埠可以接收Nmap探測報文並做出響應。相比較而言,沒有應用程式在open上監聽
filtered如果目標埠的狀態為closed,這裡要注意closed並不意味著沒有任何反應,狀態為closed的埠是可訪問的,這種埠可以接收Nmap探測報文並做出響應。相比較而言,沒有應用程式在open上監聽
 unfiltered 這種結果很少見,它表明目標埠是可以訪問的,但是Nmap卻無法判斷它到底是open還是closed的。通常只有在進行ACK掃描時才會出現這種狀態
open | fltered無法確定埠是開放的還是被過濾了,開放的埠不響應就是一個例子
closed|filtered無法確定埠是關閉的還是被過濾了。只有在使用idle掃描時才會發生這種情況

1.SYM掃描

SYN掃描時目標主機的應答與對應埠的狀態
目標主機的應答對應埠的狀態
如果目標主機給出了一個SYNACK應答open
如果目標主機給出了一個RST應答closed
如果目標主機沒有給出應答filtered
ICMP無法抵達錯誤(型別3,程式碼1,2,3,4, 10, 13)filtered
nmap -sS 192.168.0.100

 

1.2 Connect掃描(建立TCP三次握手)

nmap -sT 192.168.0.100 -p80

 

 

 

2.UDP掃描

在使用UDP掃描(使用-sU選項)對一個埠進行UDP掃描時,結果是open、closed 和filtered三者之一。

 

對目標進行UDP掃描時目標的應答與對應埠的狀態
目標主機的應答目標埠的狀態
從目標埠得到任意的UDP應答open
如果目標主機沒有給出應答open|filtered
ICMP埠無法抵達錯誤(型別3,程式碼3)closed

ICMP無法抵達錯誤(型別3,程式碼1, 2, 9,10,13)
filtered
nmap -sU 192.168.0.100 

3.TCP FIN掃描

向目標傳送一個FIN資料包,對於所有關閉的埠,根據RFC 793的規定,目標系統應該返回RST標誌。

nmap -sF 192.168.0.100

 

4.NULL掃描

向目標埠傳送一個不包含任何標誌的資料包,對於所有關閉的埠,目標系統應該返回RST標誌。

nmap -sN 192.168.0.100

5.Xmas Tree掃描

向目標埠傳送一個含有FIN,URG和PUSH標誌的資料包,按照RFC 793規定,對於所有關閉的埠,返回RST

nmap -sX 192.168.0.110

6.idle掃描

  1. 檢測第三方的IP ID值並記錄下來。
  2. 在本機上偽造-一個源地址 為第三方主機的資料包,並將資料包傳送給目標主機埠,根據目標埠狀態的不同,目標主機可能會導致第三方主機的IP ID值增加。
  3. 再回來檢查第三方主機的IP ID值。比較這兩次的值。
nmap -Pn -p- -sI 192.168.0.128 192.168.0.100

#-sI指定一個第三方主機192.168.0.128對目標主機192.168.0.100進行埠掃描,-p-是全埠掃描

 

 

3.2指定掃描的埠

1.掃描最常見的100個埠

nmap -F 192.168.0.100

2.指定埠進行掃描

nmap 192.168.0.100 -p 3306

3.使用名字來指定掃描埠

nmap -p http,mysql 192.168.0.100

4.使用協議來指定掃描埠

root@kali:/home/kali# nmap -sU -sT -p U:53,T:25 192.168.0.100
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-18 21:49 EST
Nmap scan report for 192.168.0.100 (192.168.0.100)
Host is up (0.00032s latency).

PORT   STATE SERVICE
25/tcp open  smtp
53/udp open  domain

5.掃描所有埠

nmap -p* 192.168.0.100
nmap -p- 192.168.0.100

6.常用埠掃描

root@kali:/home/kali# nmap --top-ports 10 192.168.0.100
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-18 21:51 EST
Nmap scan report for 192.168.0.100 (192.168.0.100)
Host is up (0.00024s latency).

PORT     STATE  SERVICE
21/tcp   open   ftp
22/tcp   open   ssh
23/tcp   open   telnet
25/tcp   open   smtp
80/tcp   open   http
110/tcp  closed pop3
139/tcp  open   netbios-ssn
443/tcp  closed https
445/tcp  open   microsoft-ds
3389/tcp closed ms-wbt-server

 

4.遠端作業系統與服務檢測

1.掃描系統指紋

nmap -O -F --fuzzy --osscan-guess 192.168.0.128
nmap -O -Fvvv --fuzzy --osscan-guess 192.168.0.128    #檢視詳細資訊

 

2.1版本探測

nmap -sV 192.168.0.100    #版本探測
--allports                #不為版本探測排除任何埠
--version-intensity       #0-9 預設是7
--version-light           #輕量級模式,相當於--version-intensity 2
--version-all             #嘗試每一個探測
--version-trace           #跟蹤版本掃描活動
-sR                       #RPC掃描

 

5.安全檢測躲避技術

-f             IP資料段分片( 8位元組一片)
-D             偽造多個源IP真實IP隱藏起中
-S             偽造源地址
-g             指定源埠
--proxies      url1,url2 : HTTP/SOCKS4代理
--data         附加16進位制payload ( AABB02、\xAA\xBB\x02、 0x
--data-string  附加ASCII字元"asd asd asd'
--ip-options   指定IP 協議
--ttl          指定TTL
-spoof-mac     偽造mac地址
--badsum       指定錯誤checksum

6.使用NSE指令碼

nmap指令碼的分類
分類描述
auth這個分類中包含的都是負責處理鑑權證書(繞開鑑權)的指令碼這個分類中包含的都是負責處理鑑權證書(繞開鑑權)的指令碼
broadcast這個分類中包含的都是在區域網內探查更多服務開啟狀況,如CHCP、DNS、SQLServer
brute這些都是針對常見的應用,如HTTP/FTP等使用暴力破解密碼的指令碼
default這是使用sC或-A引數掃描時預設的指令碼,提供基本指令碼掃描能力
discovery對網路進行更多的資訊收集,如SMB列舉、SNMP查詢等
dos用來發起拒絕服務攻擊的指令碼
exploit用來完成對目標系統安全漏洞滲透的指令碼
external針對第三方服務的指令碼
fuzzer進行模糊測試的指令碼,傳送異常的包到目標機,探測出潛在漏洞
intrusive可能會引起目標系統崩潰或者對目標網路造成極大負擔的指令碼。這類指令碼很容易被對方的防火牆或者IDS發現
malware用來檢測惡意軟體的指令碼
safe在任何情況下都是安全無害的指令碼
version負責增強服務與版本掃描(Version Detection)功能的指令碼
vuln負責檢查目標機是否有常見的漏洞,如是否有著名的MS08-067

 

1.列舉web伺服器上執行的服務

nmap -p80 --script http-methods 192.168.0.100

 

2.向NSE指令碼中傳遞引數

nmap -p80 --script http-methods --script-args http.useragent="Mozilla/5.0" 192.168.0.100

 

 

 

3.1targets-sniffer.NSE指令碼

nmap --script targets-sniffer 192.168.0.0/24

 

3.2密碼審計類指令碼

1.mysql-brute.NSE

nmap -p 3306 --packet-trace --script mysql-brute 192.168.0.128

2.smtp爆破

nmap -p 25 --script smtp-brute 192.168.0.128
nmap -p 25 --script smtp-brute --script-args userdb=/username.txt passdb=/password.txt 192.168.0.128
nmap -p 25 --script smtp-brute --script-args brute.firstOnly 192.168.0.128    #獲取一個正確賬號就停止


brute.mode指定破解順序
brute.mode=user        選取一個使用者名稱,所有密碼匹配,依次往下
brute.mode=pass        選取一個密碼,所有使用者名稱

3.3漏洞掃描指令碼

nmap --script /usr/share/nmap/scripts/smb-vuln-ms08-067.nse 192.168.0.1
nmap --script "smb-vuln-ms08-067" 192.168.0.128
nmap --script "smb*" 192.168.0.128

 

7.nmap格式化輸出

nmap 192.168.0.100 -oN "/A.txt"
nmap 192.168.0.100 -oX a.xml
nmap 192.168.0.100 -oG AAAA.grep

 

 

 

 

相關文章