nmap 獲取主機名

一開始試了命令

$ nmap -A 192.168.1.88

等了大半天,終於出來結果(手工局部加碼):

Starting Nmap 5.21 ( http://nmap.org ) at 2011-12-03 14:49 CST
Nmap scan report for 192.168.1.88
Host is up (0.019s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE       VERSION
80/tcp   open  http          Microsoft IIS webserver 5.1
|_html-title: 
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn
443/tcp  open  https?
445/tcp  open  microsoft-ds  Microsoft Windows XP microsoft-ds
873/tcp  open  rsync?
1025/tcp open  msrpc         Microsoft Windows RPC
2869/tcp open  http          Microsoft HTTPAPI httpd 1.0 (SSDP/UPnP)
|_html-title: Site doesn't have a title (text/html).
3389/tcp open  microsoft-rdp Microsoft Terminal Service
Service Info: OS: Windows

Host script results:
|_nbstat: NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
|_smbv2-enabled: Server doesn't support SMBv2 protocol
| smb-os-discovery:  
|   OS: Windows XP (Windows 2000 LAN Manager)
|   Name: USER\L
|_  System time: 2011-12-03 14:54:05 UTC+8

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 133.46 seconds

可以看到,前面列出了這臺電腦的可用端口,後面有一行

|_nbstat: NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**

NetBIOS name: L說明這臺電腦的主機名是L,我的要求實現了,但是存在一個缺點,速度太慢,可以看到,時間花了133秒才掃描出來,找一個主機名根本不需要這麼久,大部分的時間都浪費在前面掃描端口上了

爲了提高速度,我開始RTFM,發現man實在太長,沒心情看完,又開始Google,找到了不少資料,我覺得有用的有: 這裏 & 這篇man的中文翻譯

看了這些資料,我對nmap的功能倒是瞭解的不少,但是可惜的是,我需要的功能(解析IP對應的主機)還是找不到答案,還是隻有-A參數能滿足要求。

回頭看看前面的提示,我注意到了這麼一段

Host script results:
|_nbstat: NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
|_smbv2-enabled: Server doesn't support SMBv2 protocol
| smb-os-discovery:  
|   OS: Windows XP (Windows 2000 LAN Manager)
|   Name: USER\L
|_  System time: 2011-12-03 14:54:05 UTC+8

第一句:Host script results,這說明了下面的內容,不是nmap本身輸出的,而是一個script輸出的,所以理所當然的,nmap肯定沒有對應的參數

但是,nmap有一個--script的參數,可以指定執行某個script,這下看到了曙光,執行:

$ nmap --script nbstat 192.168.1.88

結果如下(手工局部加碼):

Starting Nmap 5.21 ( http://nmap.org ) at 2011-12-03 15:08 CST
NSE: Script Scanning completed.
Nmap scan report for 192.168.1.88
Host is up (0.0074s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
80/tcp   open  http
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
873/tcp  open  rsync
1025/tcp open  NFS-or-IIS
2869/tcp open  unknown
3389/tcp open  ms-term-serv

Host script results:
| nbstat:  
|   NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
|   Names
|     L<00>                Flags: <unique><active>
|     USER<00>             Flags: <group><active>
|     L<20>                Flags: <unique><active>
|     USER<1e>             Flags: <group><active>
|     USER<1d>             Flags: <unique><active>
|_    \x01\x02__MSBROWSE__\x02<01>  Flags: <group><active>

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

看時間,2.63秒,這速度很可以了,一般都可以接受,但是,前面在測試nmap命令的時候,已經發現了幾個可以提高速度的辦法,於是再試(爲了節省篇幅,突出重點,下面只列出執行的命令,是否滿足要求已經執行時間):

(這個命令指定掃描80端口,是可以掃,但是無法列出主機名,失敗)

$ nmap -p80 --script nbstat 192.168.1.88
80/tcp open  http
Nmap done: 1 IP address (1 host up) scanned in 1.17 seconds

(然後注意到了上面139端口的服務是netbios-ssn,所以掃一下139端口試試,這下可以滿足要求了,時間也非常快)

$ nmap -p139 --script nbstat 192.168.1.88
139/tcp open  netbios-ssn
|   NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

(又試掃了一下135,也同樣成功)

$ nmap -p135 --script nbstat 192.168.1.88
135/tcp open  msrpc
|   NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

(netBIOS也支持UDP的,所以使用-sU參數進行UDP掃描,同樣可以掃到,但是因爲沒有指定端口,所以耗時較長,另外,-sU參數需要root權限才能執行,可以注意到,137端口的服務是netbios-ns,那麼下面就只掃137)

$ sudo nmap -sU --script nbstat 192.168.1.88
137/udp  open          netbios-ns
|   NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 4.07 seconds

(只掃137的UDP,同樣可以,速度也快)

$ sudo nmap -sU -p137 --script nbstat 192.168.1.88
137/udp open  netbios-ns
|   NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

(比較下來,還是用TCP掃139合適,速度快,還不需要root,現在再加上其他參數提速,-P0使得nmap不測試指定IP是否存在,直接開始掃,-sT指定只用TCP協議,從結果來看,反而比剛纔慢,但是實際上是不慢的,因爲不連續執行,差個幾十毫秒也是正常,而且nmap可能有一定的緩存時間,第一次用nmap確認一個ip存在後,一段時間內不會再去確認,就和加上-P0參數的效果是一樣的,這裏手動加上-P0,可以確保在任何時候都一樣快)

$ nmap -P0 -sT -p139 --script nbstat 192.168.1.88
139/tcp open  netbios-ssn
|   NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

(再加一個參數-T4,我也沒太搞明白這個參數是幹嘛用的,但是在所有nmap命令上加上這個參數後,速度都有一定的提高,所以就加上吧)

$ nmap -P0 -sT -p139 -T4 --script nbstat 192.168.1.88
139/tcp open  netbios-ssn
|   NetBIOS name: L, NetBIOS user: <unknown>, NetBIOS MAC: **:**:**:**:**:**
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

好了,到目前爲止,已經完全滿足要求了,下面再補充一些在解決問題的過程中,學習到的知識

139,135端口

這兩個端口都是netbios協議佔用的,只要windows主機,安裝了NetBIOS協議,或者說只要可以訪問共享文件,那這兩個端口一般是打開的,

139是TCP,135的UDP,具體的作用我懶的去複製,反正就是和共享文件有關,通過這兩個端口,可以查詢共享文件,登錄用戶名,操作系統等信息,

網上也有好多貌似專業的135,139漏洞攻擊方法,實際上大部分都是在危言聳聽,這兩個端口如果設置的不好,確實會有安全漏洞,但是,XP的默認配置應該安全性還是可以的,不可能說只要開放這個端口,計算機就有危險,

那些所謂教程,都是需要很高的權限才能實現,但是如果有這麼高的權限,那隨便怎麼弄,都是可以輕鬆入侵的。就跟你把家裏的鑰匙貼在大門上(還貼個字條說這是我的鑰匙),然後忘記關窗戶一樣,正常的小偷肯定是開門進來而不會去翻窗戶的

nmap的其他參數

-sS 使用半開TCP進行測試,關於半開連接,可以參考有關資料(我大概瞭解,但是寫起來太浪費時間),半開連接的好處是可以避免大部分系統把這個連接記錄到系統日至,這對入侵者當然很重要了,總不能去別人家裏偷東西,還留個手機號碼吧。如果使用這個參數,需要root權限,我估計應該是用raw socket實現的,所以需要root權限 -v 這個參數可以出現多次,表示需要nmap現實更詳細的報告,還是更更詳細的報告,還是更更更詳細的報告 另外,IP的表示方法有很多種,比如 192.168.1.88這種是單個IP, 192.168.1,2.88表示192.168.1.88和192.168.2.88 192.168.1-254.88表示254個IP 192.168.1-2,4-100.2,3,12-15表示很多個IP(-.-!) 192.168.1.0/24是另一種表示方法,和192.168.1.0-255等效,後面的24表示這個IP的前24bit保持不變,後面的8bit遍歷所有可能 192.168.1.0/0 這個將掃描整個網絡,相信沒誰有時間等到掃描完

nmap部分示例

掃描192.168.1和192.168.18這兩個網段哪些IP開着

$ nmap -sP -T4 192.168.1,18.1-254

這裏-sP表示僅進行ping測試,即使主機存在,也不進行端口掃描,這樣可以節省時間

 

 

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