1. 程式人生 > >Linux 下檢視區域網內所有主機IP和MAC(及nmap的用法)

Linux 下檢視區域網內所有主機IP和MAC(及nmap的用法)

        用namp對區域網掃描一遍,然後檢視arp快取表就可以知道局域內ip對應的mac了。namp比較強大也可以直接掃描mac地址和埠。執行掃描之後就可以 cat /proc/net/arp檢視arp快取表了。


進行ping掃描,打印出對掃描做出響應的主機:  

nmap -sP 192.168.1.0/24


僅列出指定網路上的每臺主機,不傳送任何報文到目標主機: 

nmap -sL 192.168.1.0/24


探測目標主機開放的埠,可以指定一個以逗號分隔的埠列表(-PS 22232580):  

nmap -PS 192.168.1.234


使用UDP ping探測主機:

nmap -PU 192.168.1.0/24

使用頻率最高的掃描選項(SYN掃描,又稱為半開放掃描),它不開啟一個完全的TCP連線,執行得很快: 

nmap -sS 192.168.1.0/24


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:[email protected]: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地址了。