工具包。
功能;
其基本功能有三個:
其次是掃瞄 主機埠,嗅探
所提供的網路服務
; 還可以推斷主機所用的作業系統
。 nmap可用於掃瞄僅有兩個節點的lan,直至500個節點以上的網路。nmap 還允許使用者定製掃瞄技巧。通常,乙個簡單的使用icmp協議
的ping操作可以滿足一般需求
;也可以深入探測
udp或者
tcp埠,直至主機
所 使用的os
;還可以將所有探測結果記錄到各種格式的日誌中, 供進一步分析操作。
進行ping掃瞄,列印出對掃瞄做出響應的主機,不做進一步測試(如埠掃瞄或者作業系統探測):
nmap -sp 192.168.1.0/24
僅列出指定網路上的每台主機,不傳送任何報文到目標主機:
nmap -sl 192.168.1.0/24
探測目標主機開放的埠,可以指定乙個以逗號分隔的埠列表(如-ps22,23,25,80):
nmap -ps 192.168.1.234
使用udp ping探測主機:
nmap -pu 192.168.1.0/24
使用頻率最高的掃瞄選項:syn掃瞄,又稱為半開放掃瞄,它不開啟乙個完全的tcp連線,執行得很快:
nmap -ss 192.168.1.0/24
當syn掃瞄不能用時,tcp connect()掃瞄就是預設的tcp掃瞄:
nmap -st 192.168.1.0/24
udp掃瞄用-su選項,udp掃瞄傳送空的(沒有資料)udp報頭到每個目標埠:
nmap -su 192.168.1.0/24
確定目標機支援哪些ip協議 (tcp,icmp,igmp等):
nmap -so 192.168.1.19
探測目標主機的作業系統:
nmap -o 192.168.1.19
nmap -a 192.168.1.19
另外,nmap官方文件中的例子:
nmap -v scanme.
這個選項掃瞄主機scanme中 所有的保留tcp埠。選項-v啟用細節模式。
nmap -ss -o scanme./24
進行秘密syn掃瞄,物件為主機saznme所在的「c類」網段 的255臺主機。同時嘗試確定每台工作主機的作業系統型別。因為進行syn掃瞄 和作業系統檢測,這個掃瞄需要有根許可權。
nmap -sv -p 22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和tcp掃瞄,物件為b類188.116網段中255個8位子網。這 個測試用於確定系統是否執行了sshd、dns、imapd或4564埠。如果這些埠 開啟,將使用版本檢測來確定哪種應用在執行。
nmap -v -ir 100000 -p0 -p 80
隨機選擇100000臺主機掃瞄是否執行web伺服器(80埠)。由起始階段 傳送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的乙個埠,因 此使用-p0禁止對主機列表。
nmap -p0 -p80 -ox logs/pb-port80scan.xml -og logs/pb-port80scan.gnmap 216.163.128.20/20
掃瞄4096個ip位址,查詢web伺服器(不ping),將結果以grep和xml格式儲存。
host -l | cut -d -f 4 | nmap -v -il -
進行dns區域傳輸,以發現中的主機,然後將ip位址提供給 nmap。上述命令用於gnu/linux -- 其它系統進行區域傳輸時有不同的命令。
其他選項:
-p (只掃瞄指定的埠)
單個埠和用連字元表示的埠範 圍(如 1-1023)都可以。當既掃瞄tcp埠又掃瞄udp埠時,可以通過在埠號前加上t: 或者u:指定協議。 協議限定符一直有效直到指定另乙個。 例如,引數 -p u:53,111,137,t:21-25,80,139,8080 將掃瞄udp 埠53,111,和137,同時掃瞄列出的tcp埠。
-f (快速 (有限的埠) 掃瞄)
使用:
一、安裝nmap
一 nmap-os-fingerprints:列出了500多種網路裝置和作業系統的堆疊標識資訊。
二 nmap-protocols:nmap執行協議掃瞄的協議清單。
三 nmap-rpc:遠端過程呼叫(rpc)服務清單,nmap用它來確定在特定埠上監聽的應用型別。
四 nmap-services:乙個tcp/udp服務的清單,nmap用它來匹配服務名稱和埠號。除了命令列版本之外,還提供了乙個帶gui的nmap版本。和其他常見的windows軟體一樣,gui版本需要安裝,圖一就是gui版nmap的執行介面
二、常用掃瞄型別
解開nmap命令列版的壓縮包之後,進入windows的命令控制台,再轉到安裝nmap的目錄(如果經常要用nmap,最好把它的路徑加入到path環境變數)。不帶任何命令列引數
⑴ tcp connect()埠掃瞄(-st引數)。
⑵ tcp同步(syn)埠掃瞄(-ss引數)。
⑶ udp埠掃瞄(-su引數)。
⑷ ping掃瞄(-sp引數)。
如果要勾畫乙個網路的整體情況,ping掃瞄和tcp syn掃瞄最為實用。ping掃瞄通過傳送icmp (internet control message protocol,internet控制訊息協議)回應請求資料報和tcp應答(acknowledge,簡寫ack)資料報,確定主機的狀態,非常適合於檢測指定網段內正在執行的主機數量。
tcp syn掃瞄一下子不太好理解,但如果將它與tcp connect()掃瞄比較,就很容易看出這種掃瞄方式的特點。在tcp connect()掃瞄中,掃瞄器利用作業系統本身的系統呼叫開啟乙個完整的tcp連線——也就是說,掃瞄器開啟了兩個主機之間的完整握手過程(syn,syn-ack,和ack)。一次完整執行的握手過程表明遠端主機埠是開啟的。
tcp syn掃瞄建立的是半開啟的連線,它與tcp connect()掃瞄的不同之處在於,tcp syn掃瞄傳送的是復位(rst)標記而不是結束ack標記(即,syn,syn-ack,或rst):如果遠端主機正在監聽且埠是開啟的,遠端主機用syn-ack應答,nmap傳送乙個rst;如果遠端主機的埠是關閉的,它的應答將是rst,此時nmap轉入下乙個埠。
nmap支援豐富、靈活的命令列引數。例如,如果要掃瞄192.168.7網路,可以用 192.168.7.x/24或192.168.7.0-255的形式指定ip位址範圍。指定埠範圍使用-p引數,如果不指定要掃瞄的埠,nmap預設掃瞄從1到1024再加上nmap-services列出的埠。如果要檢視nmap執行的詳細過程,只要啟用verbose模式,即加上-v引數,或者加上-vv引數獲得更加詳細的資訊。例如,nmap -ss 192.168.7.1-255 -p 20,21,53-110,30000- -v命令,表示執行一次tcp syn掃瞄,啟用verbose模式,要掃瞄的網路是192.168.7,檢測20、21、53到110以及30000以上的埠(指定埠清單時中間不要插入空格)。再舉乙個例子,nmap -ss 192.168.7.1/24 -p 80掃瞄192.168.0子網,查詢在 80埠監聽的伺服器(通常是web伺服器)。
有些網路裝置,例如路由器和網路印表機,可能禁用或過濾某些埠,禁止對該裝置或跨越該裝置的掃瞄。初步偵測網路情況時,-host_timeout引數很有用,它表示超時時間,例如 nmap ss host_timeout 10000 192.168.0.1命令規定超時時間是10000毫秒。
網路裝置上被過濾掉的埠一般會大大延長偵測時間,設定超時引數有時可以顯著降低掃瞄網路所需時間。nmap會顯示出哪些網路裝置響應超時,這時你就可以對這些裝置個別處理,保證大範圍網路掃瞄的整體速度。當然,host_timeout到底可以節省多少掃瞄時間,最終還是由網路上被過濾的埠數量決定。
linux ifconfig 摘自百度百科)
ifconfig 網路裝置 down up allmulti arp promisc add 位址 del 位址 硬體位址 media 網路媒介型別 mem start 記憶體位址 metric 數目 mtu 位元組 netmask 子網掩碼 tunnel 位址 broadcast 位址 point...
ifndef 摘自百度百科
ifndef 標識1 判斷 標識1 是否定義,如果被定義則返回假,如果沒有被定義則返回真。語句1 ifndef 標識1 語句2 define 標識1 語句3 endif 語句4 語句5 該段 意思是 如果標識1沒有被定義,則重定義標示1,即執行語句2 語句3 如果標識1已經被定義,則直接跳過語句2 ...
ifndef 摘自百度百科
ifndef 標識1 判斷 標識1 是否定義,如果被定義則返回假,如果沒有被定義則返回真。語句1 ifndef 標識1 語句2 define 標識1 語句3 endif 語句4 語句5 該段 意思是 如果標識1沒有被定義,則重定義標示1,即執行語句2 語句3 如果標識1已經被定義,則直接跳過語句2 ...