1. 程式人生 > >滲透入侵檢測工具nmap

滲透入侵檢測工具nmap

nmap 滲透入侵 端口掃描


== nmap介紹 ==

Nmap是一款網絡掃描和主機檢測的非常有用的工具。Nmap是不局限於僅僅收集信息和枚舉,同時可以用來作為一個漏洞探測器或安全掃描器。它可以適用於winodws,linux,mac等操作系統

Nmap是一款非常強大的實用工具,可用於:


1、檢測活在網絡上的主機(主機發現)


2、檢測主機上開放的端口(端口發現或枚舉)


3、檢測到相應的端口(服務發現)的軟件和版本


4、檢測操作系統,硬件地址,以及軟件版本

檢測脆弱性的漏洞(Nmap的腳本)


Nmap是一個非常普遍的工具,它有命令行界面和圖形用戶界面。本文包括以下方面的內容:


介紹Nmap簡單命令


掃描中的重要參數


操作系統檢測


== Nmap簡單命令 ==

掃描單一的一個主機,命令如下:

nmap ckt.com


nmap 192.168.71.130

掃描整個子網,命令如下:

nmap 192.168.71.1/24

掃描多個目標,命令如下:

nmap 192.168.71.130 192.168.71.5

掃描一個範圍內的目標,如下:

nmap 192.168.71.1-100 (掃描IP地址為192.168.71.1-192.168.71.100內的所有主機)

如果有一個ip地址列表,將這個保存為一個txt文件,和namp在同一目錄下,掃描這個txt內的所有主機,命令如下:

nmap -iL target.txt

如果你想看到你掃描的所有主機的列表,用以下命令:

nmap -sL 192.168.71.1/24

掃描除過某一個ip外的所有子網主機,命令:

nmap 192.168.71.1/24 -exclude 192.168.71.1

掃描除過某一個文件中的ip外的子網主機命令

nmap 192.168.71.1/24 -excludefile xxx.txt (xxx.txt中的文件將會從掃描的主機中排除)

掃描特定主機上的80,21,23端口,命令如下

nmap -p 80,21,23 192.168.71.1


== 掃描中的重要參數 ==

Tcp SYN Scan (sS)


這是一個基本的掃描方式,它被稱為半開放掃描,因為這種技術使得Nmap不需要通過完整的握手,就能獲得遠程主機的信息。Nmap發送SYN包到遠程主機,但是它不會產生任何會話.因此不會在目標主機上產生任何日誌記錄,因為沒有形成會話。這個就是SYN掃描的優勢.如果Nmap命令中沒有指出掃描類型,默認的就是Tcp SYN.但是它需要root/administrator權限.<syntaxhighlight lang="bash">

[email protected]:~# nmap -sS 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 09:58 CST

Nmap scan report for 192.168.71.130

Host is up (0.00011s latency).

Not shown: 998 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http


Nmap done: 1 IP address (1 host up) scanned in 102.93 seconds

</syntaxhighlight>


Tcp connect() scan(sT)

如果不選擇SYN掃描,TCP connect()掃描就是默認的掃描模式.不同於Tcp SYN掃描,Tcp connect()掃描需要完成三次握手,並且要求調用系統的connect().Tcp connect()掃描技術只適用於找出TCP和UDP端口.<syntaxhighlight lang="bash">

[email protected]:~# nmap -sT 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 09:59 CST

Nmap scan report for 192.168.71.130

Host is up (0.00036s latency).

Not shown: 998 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http


</syntaxhighlight>


Udp scan(sU)

顧名思義,這種掃描技術用來尋找目標主機打開的UDP端口.它不需要發送任何的SYN包,因為這種技術是針對UDP端口的。UDP掃描發送UDP數據包到目標主機,並等待響應,如果返回ICMP不可達的錯誤消息,說明端口是關閉的,如果得到正確的適當的回應,說明端口是開放的.<syntaxhighlight lang="bash">

[email protected]:~# nmap -sU 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 09:59 CST

Nmap scan report for 192.168.71.130

Host is up (0.00012s latency).

Not shown: 998 closed ports

PORT STATE SERVICE

68/udp open|filtered dhcpc

123/udp open ntp


Nmap done: 1 IP address (1 host up) scanned in 199.70 seconds

</syntaxhighlight>


FINscan(sF)


有時候TcpSYN掃描不是最佳的掃描模式,因為有防火墻的存在.目標主機有時候可能有IDS和IPS系統的存在,防火墻會阻止掉SYN數據包。發送一個設置了FIN標誌的數據包並不需要完成TCP的握手.<syntaxhighlight lang="bash">

[email protected]:~# nmap -sF 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 10:02 CST

Nmap scan report for 192.168.71.130

Host is up (0.000070s latency).

Not shown: 998 closed ports

PORT STATE SERVICE

22/tcp open|filtered ssh

80/tcp open|filtered http


Nmap done: 1 IP address (1 host up) scanned in 97.46 seconds

</syntaxhighlight>


FIN掃描也不會在目標主機上創建日誌(FIN掃描的優勢之一).個類型的掃描都是具有差異性的,FIN掃描發送的包只包含FIN標識,NULL掃描不發送數據包上的任何字節,XMAS掃描發送FIN、PSH和URG標識的數據包.


PINGScan(sP)

PING掃描不同於其它的掃描方式,因為它只用於找出主機是否是存在在網絡中的.它不是用來發現是否開放端口的.PING掃描需要ROOT權限,如果用戶沒有ROOT權限,PING掃描將會使用connect()調用.<syntaxhighlight lang="bash">

[email protected]:~# nmap -sP 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 10:03 CST

Nmap scan report for 192.168.71.130

Host is up.

Nmap done: 1 IP address (1 host up) scanned in 13.01 seconds

</syntaxhighlight>


版本檢測(sV)

版本檢測是用來掃描目標主機和端口上運行的軟件的版本.它不同於其它的掃描技術,它不是用來掃描目標主機上開放的端口,不過它需要從開放的端口獲取信息來判斷軟件的版本.使用版本檢測掃描之前需要先用TCPSYN掃描開放了哪些端口.<syntaxhighlight lang="bash">

[email protected]:~# nmap -sV 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 10:03 CST

Nmap scan report for 192.168.71.130

Host is up (0.0000050s latency).

Not shown: 998 closed ports

PORT STATE SERVICE VERSION

22/tcp open ssh (protocol 2.0)

80/tcp open http nginx 1.4.6 (Ubuntu)

1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :

SF-Port22-TCP:V=6.40%I=7%D=7/17%Time=596C1B0A%P=x86_64-pc-linux-gnu%r(NULL

SF:,2B,"SSH-2\.0-OpenSSH_6\.6\.1p1\x20Ubuntu-2ubuntu2\.8\r\n");

Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel


Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 20.78 seconds


</syntaxhighlight>


Idlescan(sL)


Idlescan是一種先進的掃描技術,它不是用你真實的主機Ip發送數據包,而是使用另外一個目標網絡的主機發送數據包.這個地方我使用的時候總是提示0 hosts up,目前暫未搞清楚。<syntaxhighlight lang="bash">

[email protected]:~# nmap -sL 192.168.71.131 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 10:07 CST

Nmap scan report for 192.168.71.131

Nmap scan report for 192.168.71.130

Nmap done: 2 IP addresses (0 hosts up) scanned in 13.01 seconds


</syntaxhighlight>

Idlescan是一種理想的匿名掃描技術,通過目標網絡中的192.168.71.131向主機192.168.71.130發送數據,來獲取192.168.71.130開放的端口


有需要其它的掃描技術,如FTPbounce(FTP反彈),fragmentationscan(碎片掃描),IPprotocolscan(IP協議掃描),以上討論的是幾種最主要的掃描方式.


== Nmap的OS檢測(O) ==

Nmap最重要的特點之一是能夠遠程檢測操作系統和軟件,Nmap的OS檢測技術在滲透測試中用來了解遠程主機的操作系統和軟件是非常有用的,通過獲取的信息你可以知道已知的漏洞。Nmap有一個名為的nmap-OS-DB數據庫,該數據庫包含超過2600操作系統的信息。Nmap把TCP和UDP數據包發送到目標機器上,然後檢查結果和數據庫對照。


Nmap的操作系統指紋識別技術:


設備類型(路由器,工作組等)


運行(運行的操作系統)


操作系統的詳細信息(操作系統的名稱和版本)


網絡距離(目標和攻擊者之間的距離跳)


如果遠程主機有防火墻,IDS和IPS系統,你可以使用-PN命令來確保不ping遠程主機,因為有時候防火墻會組織掉ping請求.-PN命令告訴Nmap不用ping遠程主機。<syntaxhighlight lang="bash">

[email protected]:~# nmap -O -PN 192.168.71.1/24


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 10:09 CST


[email protected]:~# nmap -O -PN 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 10:12 CST

Nmap scan report for 192.168.71.130

Host is up (0.000073s latency).

Not shown: 998 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).

TCP/IP fingerprint:

OS:SCAN(V=6.40%E=4%D=7/17%OT=22%CT=1%CU=42907%PV=Y%DS=0%DC=L%G=Y%TM=596C1D1

OS:C%P=x86_64-pc-linux-gnu)SEQ(SP=107%GCD=1%ISR=10C%TI=Z%CI=I%TS=8)OPS(O1=M

OS:FFD7ST11NW7%O2=MFFD7ST11NW7%O3=MFFD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFFD7ST1

OS:1NW7%O6=MFFD7ST11)WIN(W1=AAAA%W2=AAAA%W3=AAAA%W4=AAAA%W5=AAAA%W6=AAAA)EC

OS:N(R=Y%DF=Y%T=40%W=AAAA%O=MFFD7NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F

OS:=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5

OS:(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z

OS:%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=

OS:N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%

OS:CD=S)


Network Distance: 0 hops


OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 32.29 seconds


</syntaxhighlight>


以上命令告訴發信主機遠程主機是存活在網絡上的,所以沒有必要發送ping請求,使用-PN參數可以繞過PING命令,但是不影響主機的系統的發現.

Nmap的操作系統檢測的基礎是有開放和關閉的端口,如果OSscan無法檢測到至少一個開放或者關閉的端口,會返回以下錯誤:


Warning:OSScanresultsmaybeunreliablebecausewecouldnotfindatleast1openand1closedport


OSScan的結果是不可靠的,因為沒有發現至少一個開放或者關閉的端口


這種情況是非常不理想的,應該是遠程主機做了針對操作系統檢測的防範。如果Nmap不能檢測到遠程操作系統類型,那麽就沒有必要使用-osscan_limit檢測。


想好通過Nmap準確的檢測到遠程操作系統是比較困難的,需要使用到Nmap的猜測功能選項,–osscan-guess猜測認為最接近目標的匹配操作系統類型。<syntaxhighlight lang="bash">

[email protected]:~# nmap -O --osscan-guess 192.168.71.130


Starting Nmap 6.40 ( http://nmap.org ) at 2017-07-17 10:11 CST

Nmap scan report for 192.168.71.130

Host is up (0.00012s latency).

Not shown: 998 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

Aggressive OS guesses: Linux 3.7 - 3.9 (98%), Netgear DG834G WAP or Western Digital WD TV media player (95%), Linux 3.8 (95%), Linux 3.1 (93%), Linux 3.2 (93%), AXIS 210A or 211 Network Camera (Linux 2.6) (92%), Linux 3.7 (92%), Linux 3.9 (91%), Linux 2.4.26 (Slackware 10.0.0) (91%), Crestron XPanel control system (91%)

No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).

TCP/IP fingerprint:

OS:SCAN(V=6.40%E=4%D=7/17%OT=22%CT=1%CU=41376%PV=Y%DS=0%DC=L%G=Y%TM=596C1D5

OS:D%P=x86_64-pc-linux-gnu)SEQ(SP=104%GCD=1%ISR=107%TI=Z%CI=I%TS=8)OPS(O1=M

OS:FFD7ST11NW7%O2=MFFD7ST11NW7%O3=MFFD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFFD7ST1

OS:1NW7%O6=MFFD7ST11)WIN(W1=AAAA%W2=AAAA%W3=AAAA%W4=AAAA%W5=AAAA%W6=AAAA)EC

OS:N(R=Y%DF=Y%T=40%W=AAAA%O=MFFD7NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F

OS:=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5

OS:(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z

OS:%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=

OS:N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%

OS:CD=S)


Network Distance: 0 hops


OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 120.15 seconds

</syntaxhighlight>


本文出自 “Kirito” 博客,請務必保留此出處http://aaronchou.blog.51cto.com/8981576/1948180

滲透入侵檢測工具nmap