nmap常用命令

nmap 在linux服務器下的使用

官網 nmap.org centos下可以yum install namp 進行安裝

4種常用的掃描

1.nmap -sP 1.1.1.1/24

探測C段存活主機,可以用 |grep up 過濾存活的主機

2. nmap -sS 1.1.1.1-30 -p 80

SYN掃描,指定IP範圍指定端口。

3.nmap -sV 1.1.1.1 -p 1-65535

探測端口的服務和版本

4.nmap -O 1.1.1.1 或 nmap -A 1.1.1.1

探測操作系統類型和版本

~~~~~~~~~~~~另符nmap的詳細說明,供研究人員參考~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 概述
nmap支持很多掃描技術,例如:UDP、TCP connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、聖誕樹(Xmas Tree)、SYN掃描和null掃描。

nmap還提供了一些高級的特徵,例如:通過TCP/IP協議棧特徵探測操作系統類型,祕密掃描,動態延時和重傳計算,並行掃描,通過並行ping掃描探測關閉的主機,誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射),碎片掃描,以及靈活的目標和端口設定.nmap總會給出well known端口的服務名(如果可能)、端口號、狀態和協議等信息。

每個端口的狀態有:open、filtered、 unfiltered。open狀態意味着目標主機能夠在這個端口使用accept()系統調用接受連接。

filtered狀態表示:防火牆、包過濾和其 它的網絡安全軟件掩蓋了這個端口,禁止 nmap探測其是否打開。

unfiltered表示:這個端口關閉,並且沒有防火牆/包過濾軟件來隔離nmap的探測企圖。通常情況下,端口的狀態基本都 是unfiltered狀態,只有在大多數被掃描的端口處於filtered狀態下,纔會顯示處於unfiltered狀態的端口。

根據使用的功能選 項,nmap也可以報告遠程主機的下列特徵:使用的操作系統、TCP序列、運行綁定到每個端口上的應用程序的用戶名、DNS名、主機地址是否是欺騙地址、 以及其它一些東西。

可以使用nmap -h快速列出功能選項的列表。

2 語法

nmap [Scan Type(s)] [Options]

掃描類型

-sT

TCP connect()掃描:這是最基本的TCP掃描方式。

connect()是一種系統調用,由操作系統提供,用來打開一個連接。如果目標端口有程序監聽, connect()就會成功返回,否則這個端口是不可達的。這項技術最大的優點是,你勿需root權限。任何UNIX用戶都可以自由使用這個系統調用。這 種掃描很容易被檢測到,在目標主機的日誌中會記錄大批的連接請求以及錯誤信息。

-sS
TCP同步掃描(TCP SYN):因爲不必全部打開一個TCP連接,通常稱爲半開掃描(half-open)。你可以發出一個TCP同步包(SYN),然後等待迴應。如果對方返 回SYN|ACK(響應)包就表示目標端口正在監聽;如果返回RST數據包,就表示目標端口沒有監聽程序;如果收到一個SYN|ACK包,源主機就會馬上 發出一個RST(復位)數據包斷開和目標主機的連接,這實際上有我們的操作系統內核自動完成的。這項技術最大的好處是,很少有系統能夠把這記入系統日誌。 不過,你需要root權限來定製SYN數據包。

-sF -sX -sN
祕密FIN數據包掃描、聖誕樹(Xmas Tree)、空(Null)掃描模式:即使SYN掃描都無法確定的情況下使用。

一些防火牆和包過濾軟件能夠對發送到被限制端口的SYN數據包進行監視,而 且有些程序比如synlogger和courtney能夠檢測那些掃描。這些高級的掃描方式可以逃過這些干擾。

這些掃描方式的理論依據是:關閉的端口需要 對你的探測包迴應RST包,而打開的端口必需忽略有問題的包(參考RFC 793第64頁)。FIN掃描使用暴露的FIN數據包來探測,而聖誕樹掃描打開數據包的FIN、URG和PUSH標誌。不幸的是,微軟決定完全忽略這個標 準,另起爐竈。所以這種掃描方式對Windows95/NT無效。不過,從另外的角度講,可以使用這種方式來分別兩種不同的平臺。如果使用這種掃描方式可 以發現打開的端口,你就可以確定目標註意運行的不是Windows系統。如果使用-sF、-sX或者-sN掃描顯示所有的端口都是關閉的,而使用SYN掃 描顯示有打開的端口,你可以確定目標主機可能運行的是Windwos系統。現在這種方式沒有什麼太大的用處,因爲nmap有內嵌的操作系統檢測功能。還有 其它幾個系統使用和windows同樣的處理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在應該拋棄數據包時,以上這些系統都會從打 開的端口發出復位數據包。

-sP
ping掃描:有時你只是想知道此時網絡上哪些主機正在運行。通過向你指定的網絡內的每個IP地址發送ICMP echo請求數據包,nmap就可以完成這項任務。如果主機正在運行就會作出響應。不幸的是,一些站點例如:microsoft.com阻塞ICMP echo請求數據包。然而,在默認的情況下nmap也能夠向80端口發送TCP ack包,如果你收到一個RST包,就表示主機正在運行。nmap使用的第三種技術是:發送一個SYN包,然後等待一個RST或者SYN/ACK包。對於 非root用戶,nmap使用connect()方法。
在默認的情況下(root用戶),nmap並行使用ICMP和ACK技術。注意,nmap在任何情況下都會進行ping掃描,只有目標主機處於運行狀態,纔會進行後續的掃描。如果你只是想知道目標主機是否運行,而不想進行其它掃描,纔會用到這個選項。

-sU
UDP掃描:如果你想知道在某臺主機上提供哪些UDP(用戶數據報協議,RFC768)服務,可以使用這種掃描方法。nmap首先向目標主機的每個端口發 出一個0字節的UDP包,如果我們收到端口不可達的ICMP消息,端口就是關閉的,否則我們就假設它是打開的。有些人可能會想UDP掃描是沒有什麼意思 的。但是,我經常會想到最近出現的solaris rpcbind缺陷。rpcbind隱藏在一個未公開的UDP端口上,這個端口號大於32770。所以即使端口111(portmap的衆所周知端口號) 被防火牆阻塞有關係。但是你能發現大於30000的哪個端口上有程序正在監聽嗎?使用UDP掃描就能!cDc Back Orifice的後門程序就隱藏在Windows主機的一個可配置的UDP端口中。

不考慮一些通常的安全缺陷,一些服務例如:snmp、tftp、NFS 使用UDP協議。不幸的是,UDP掃描有時非常緩慢,因爲大多數主機限制ICMP錯誤信息的比例(在RFC1812中的建議)。例如,在Linux內核中 (在net/ipv4/icmp.h 文件中)限制每4秒鐘只能出現80條目標不可達的ICMP消息,如果超過這個比例,就會給1/4秒鐘的處罰。 solaris的限制更加嚴格,每秒鐘只允許出現大約2條ICMP不可達消息,這樣,使掃描更加緩慢。nmap會檢測這個限制的比例,減緩發送速度,而不 是發送大量的將被目標主機丟棄的無用數據包。不過MicroSoft忽略了RFC1812的這個建議,不對這個比例做任何的限制。所以我們可以能夠快速掃 描運行Win95/NT的主機上的所有65K個端口。

-sA
ACK掃描:這項高級的掃描方法通常用來穿過防火牆的規則集。通常情況下,這有助於確定一個防火牆是功能比較完善的或者是一個簡單的包過濾程序,只是阻塞 進入的SYN包。這種掃描是向特定的端口發送ACK包(使用隨機的應答/序列號)。如果返回一個RST包,這個端口就標記爲unfiltered狀態。如 果什麼都沒有返回,或者返回一個不可達ICMP消息,這個端口就歸入filtered類。注意,nmap通常不輸出unfiltered的端口,所以在輸 出中通常不顯示所有被探測的端口。顯然,這種掃描方式不能找出處於打開狀態的端口。

-sW
對滑動窗口的掃描:這項高級掃描技術非常類似於ACK掃描,除了它有時可以檢測到處於打開狀態的端口,因爲滑動窗口的大小是不規則的,有些操作系統可以報 告其大小。這些系統至少包括:某些版本的AIX、Amiga、BeOS、BSDI、Cray、Tru64 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS 4.x、Ultrix、VAX、VXWORKS。

-sR
RPC掃描。這種方法和nmap的其它不同的端口掃描方法結合使用。選擇所有處於打開狀態的端口向它們發出SunRPC程序的NULL命令,以確定它們是否是RPC端口,如果是,就確定是哪種軟件及其版本號。因此你能夠獲得防火牆的一些信息。誘餌掃描現在還不能和RPC掃描結合使用。

-b
FTP反彈攻擊(bounce attack):FTP協議(RFC 959)有一個很有意思的特徵,它支持代理FTP連接。也就是說,能夠從evil.com連接到FTP服務器target.com,並且可以要求這臺 FTP服務器爲自己發送Internet上任何地方的文件!1985年,RFC959完成時,這個特徵就能很好地工作了。然而,在今天的Internet 中,我們不能讓人們劫持FTP服務器,讓它向Internet上的任意節點發送數據。如同Hobbit在1995年寫的文章中所說的,這個協議"能夠用來 做投遞虛擬的不可達郵件和新聞,進入各種站點的服務器,填滿硬盤,跳過防火牆,以及其它的騷擾活動,而且很難進行追蹤"。我們可以使用這個特徵,在一臺代 理FTP服務器掃描TCP端口。因此,你需要連接到防火牆後面的一臺FTP服務器,接着進行端口掃描。如果在這臺FTP服務器中有可讀寫的目錄,你還可以 向目標端口任意發送數據(不過nmap不能爲你做這些)。傳遞給-b功能選項的參數是你要作爲代理的FTP服務器。語法格式爲:
-b username:password@server:port。
除了server以外,其餘都是可選的。

通用選項(這些內容不是必需的,但是很有用)

-P0
在掃描之前,不必ping主機。有些網絡的防火牆不允許ICMP echo請求穿過,使用這個選項可以對這些網絡進行掃描。microsoft.com就是一個例子,因此在掃描這個站點時,你應該一直使用-P0或者-PT 80選項。

-PT
掃描之前,使用TCP ping確定哪些主機正在運行。nmap不是通過發送ICMP echo請求包然後等待響應來實現這種功能,而是向目標網絡(或者單一主機)發出TCP ACK包然後等待迴應。如果主機正在運行就會返回RST包。只有在目標網絡/主機阻塞了ping包,而仍舊允許你對其進行掃描時,這個選項纔有效。對於非 root用戶,我們使用connect()系統調用來實現這項功能。使用-PT來設定目標端口。默認的端口號是80,因爲這個端口通常不會被過濾。

-PS
對於root用戶,這個選項讓nmap使用SYN包而不是ACK包來對目標主機進行掃描。如果主機正在運行就返回一個RST包(或者一個SYN/ACK包)。

-PI
設置這個選項,讓nmap使用真正的ping(ICMP echo請求)來掃描目標主機是否正在運行。使用這個選項讓nmap發現正在運行的主機的同時,nmap也會對你的直接子網廣播地址進行觀察。直接子網廣 播地址一些外部可達的IP地址,把外部的包轉換爲一個內向的IP廣播包,向一個計算機子網發送。這些IP廣播包應該刪除,因爲會造成拒絕服務攻擊(例如 smurf)。

-PB
這是默認的ping掃描選項。它使用ACK(-PT)和ICMP(-PI)兩種掃描類型並行掃描。如果防火牆能夠過濾其中一種包,使用這種方法,你就能夠穿過防火牆。

-O
這個選項激活對TCP/IP指紋特徵(fingerprinting)的掃描,獲得遠程主機的標誌。換句話說,nmap使用一些技術檢測目標主機操作系統網絡協議棧的特徵。nmap使用這些信息建立遠程主機的指紋特徵,把它和已知的操作系統指紋特徵數據庫做比較,就可以知道目標主機操作系統的類型。

-I
這個選項打開nmap的反向標誌掃描功能。Dave Goldsmith 1996年向bugtap發出的郵件注意到這個協議,ident 協議(rfc 1413)允許使用TCP連接給出任何進程擁有者的用戶名,即使這個進程並沒有初始化連接。例如,你可以連接到HTTP端口,接着使用identd確定這 個服務器是否由root用戶運行。這種掃描只能在同目標端口建立完全的TCP連接時(例如:-sT掃描選項)才能成功。使用-I選項是,遠程主機的 identd精靈進程就會查詢在每個打開的端口上監聽的進程的擁有者。顯然,如果遠程主機沒有運行identd程序,這種掃描方法無效。

-f
這個選項使nmap使用碎片IP數據包發送SYN、FIN、XMAS、NULL。使用碎片數據包增加包過濾、入侵檢測系統的難度,使其無法知道你的企圖。 不過,要慎重使用這個選項!有些程序在處理這些碎片包時會有麻煩.在nmap中使用了24個字節的碎片數據包。雖然包過濾器和防火牆不能防這種方法,但是 有很多網絡出於性能上的考慮,禁止數據包的分片。這個選項不能在所有的平臺上使用。它在Linux、FreeBSD、OpenBSD以及其它一些UNIX 系統能夠很好工作。

-v
冗餘模式。它會給出掃描過程中的詳細信息。使用這個選項,可以得到事半功倍的效果。使用-d選項可以得到更加詳細的信息。

-h
快速參考選項。

-oN
把掃描結果重定向到一個可讀的文件logfilename中。

-oM
把掃描結果重定向到logfilename文件中,這個文件使用主機可以解析的語法。你可以使用-oM -來代替logfilename,這樣輸出就被重定向到標準輸出stdout。在這種情況下,正常的輸出將被覆蓋,錯誤信息荏苒可以輸出到標準錯誤 stderr。要注意,如果同時使用了-v選項,在屏幕上會打印出其它的信息。同樣,使用-oS -就會把結果重定向到標準輸出上

使用nmap掃描局域網mac地址的例子:

nmap -sP -PI -PT -oN ipandmaclist.txt 192.168.1.0/24
在文件ipandmaclist.txt文件中就可以查看ip對應的mac地址了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章