少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          nmap 使用介紹

          nmap是目前為止最廣為使用的國外端口掃描工具之一。我們可以從http://www.insecure.org/進 行下載,可以很容易的安裝到Windows和unix操作系統中,包括mac os x(通過configure、make 、make install等命令)也可以直接從http://www.insecure.org/下載windows二進制(包括所需要的winpcap)也可以從 http://www.nmapwin.org/獲得nmap的圖形windows。

          掃描主機

          $ nmap -sT 192.168.1.18 
          Starting nmap 3.48(http://www.insecure.org/nmap/)at 2007-10-10 18:13
          EDT Interesting ports on gamebase(192.168.1.18)
           port state serverice
          22/tcp open ssh
          111/tcp open sunrpc
          ..........
          $ nmap -sR 192.168.1.18
          Startingnmap 3.48(http://www.insecure.org/nmap/)at 2007-10-10 18:13
          EDT Interesting ports on gamebase(192.168.1.18)
          port state serverice
          22/tcp open ssh
          111/tcp open sunrpc
          ..........

          我們可以使用ping掃描的方法(-sP),與fping的工作方式比較相似,它發送icmp回送請求到指定范圍的ip地址并等待響應。現在很多主 機在掃描的時候都做了處理,阻塞icmp請求,這種情況下。nmap將嘗試與主機的端口80進行連接,如果可以接收到響應(可以是syn/ack,也可以 是rst),那么證明主機正在運行,反之,則無法判斷主機是否開機或者是否在網絡上互連。

          掃描tcp端口

          這里-sR是怎樣在打開的端口上利用RPC命令來判斷它們是否運行了RPC服務。

          nmap可以在進行端口掃描的tcp報文來做一些秘密的事情。首先,要有一個SYN掃描(-sS),它只做建立TCP連接的前面一些工作,只發送一 個設置SYN標志的TCP報文,一個RESET報文,那么nmap假設這個端口是關閉的,那么就不做任何事情了。如果接收到一個響應,它并不象正常的連接 一樣對這個報文進行確認,而是發送一個RET報文,TCP的三次握手還沒有完成,許多服務將不會記錄這次連接。

          有的時候,nmap會告訴我們端口被過濾,這意味著有防火墻或端口過濾器干擾了nmap,使其不能準確的判斷端口是打開還是關閉的,有的防火墻只能過濾掉進入的連接。

          掃描協議

          如果試圖訪問另一端無程序使用的UDP端口,主機將發回一個icmp“端口不可達”的提示消息,IP協議也是一樣。每個傳輸層的IP協議都有一個相 關聯的編號,使用最多的是ICMP(1)、TCP(6)和UDP(17)。所有的IP報文都有一個“協議”域用于指出其中的傳輸層報文頭所使用的協議。如 果我們發送一個沒有傳輸層報文頭的原始IP報文并把其協議域編號為130[該編號是指類似IPSEC協議的被稱為安全報文外殼或SPS協議],就可以判斷 這個協議是否在主機上實現了。如果我們得到的是ICMP協議不可達的消息,意味著該協議沒有被實現,否則就是已經實現了,用法為-sO.

          隱蔽掃描行為

          nmap給出了幾個不同的掃描選項,其中一些可以配套著隱藏掃描行為,使得不被系統日志、防火墻和IDS檢測到。提供了一些隨機的和欺騙的特性。具體例子如下:

          FTP反彈,在設計上,FTP自身存在一個很大的漏洞,當使用FTP客戶機連接到FTP服務器時,你的客戶機在TCP端口21上與FTP服務器對 話,這個TCP連接稱為控制連接。FTP服務器現在需要另一條與客戶機連接,該連接稱為數據連接,在這條連接上將傳送實際的文件數據,客戶機將開始監聽另 一個TCP端口上從服務器發揮的數據連接,接下來執行一個PORT命令到服務器,告訴它建立一條數據連接到客戶機的IP地址和一個新打開的端口,這種操作 方法稱為主動傳輸。許多客戶機使用網絡地址轉換或通過防火墻與外界連接,所以主動傳輸FTP就不能正常工作,因為由服務器建立的客戶機的連接通常不允許通 過。

          被動傳輸是大多數FTP客戶機和服務器所使用的方法,因為客戶機既建立控制連接又建立數據連接,這樣可以通過防火墻或NAT了。

          FTP的PORT命令,用來告訴FTP連接的服務器,使得與剛剛打開的用于數據連接的端口之間建立一個連接。由于我們不僅指定端口而且指定連接所用 的IP地址,所以客戶端也可以通過PORT命令讓服務器連接到任何地方。所以我們一樣可以讓nmap用這個方法進行防火墻穿透。nmap做的所有工作是與 一臺服務器建立一個主動模式的FTP連接,并發送一個包含它試圖掃描的主機IP地址和端口號的PORT命令。

          nmap -b aaa@ftp.target.com -p 6000 192.168.1.226
          nmap 與ftp服務器的對話的例子:
          server:220  target ftp server version 4 ready
          client:user  anonymous
          server: 331 Guest login ok ,send e-mail as password
          client:pass
          server :230 login successful
          client:PORT 192,168,1.226,23,112
          server:200 PORT command successful
          client:LIST
          server:150 Opening ASCII connection for '/bin/ls'
          server:226 Transfer complete

          PORT命令起作用,可以制造是別人進行端口掃描,掃描任何FTP服務器所能訪問的主機,繞過防火墻和端口過濾器,但還是存在一些危險的,如果對方登陸到了你的這個匿名FTP服務器上,從日志查找到相應的匿名FTP連接,從而知道你的IP地址,這樣就直接暴露了。

          nmap -sI 空閑掃描,主要是欺騙端口掃描的源地址。

          nmap -f 可以把TCP頭分片的IP報文進行一些隱蔽的掃描。不完整的TCP報文不被防火墻阻塞也不被IDS檢測到。

          nmap-D
          選擇幾臺肉雞,并使用-D標志在命令行中指定它們。namp通過誘騙的IP地址來進行欺騙式端口掃描,而系統管理員可以同時看到不同的端口掃描,而只有一個是真實的,很好的保護了自己。

          os指紋識別
          這個是nmap最有用的功能之一,就是可以鑒別遠程主機。通過簡單的執行網絡掃 描,nmap通常可以告訴你遠程主機所運行的OS,甚至詳細到版本號。當你指定-Q標志時,nmap將用幾種不同的技術從主機返回IP報文中尋找這些鑒別 信息。通過發送特別設計的TCP和UDP頭,nmap可以得到遠程主機對TCP/IP協議棧的處理方法。它將分析結果與保存在文件中的已知特征信息進行比 較。

          OS鑒別選項也可以讓nmap對TCP報文進行分析以決定另外一些信息,如系統的啟動時間,TCP序列號,預測的序列號使我們更容易截獲報文并猜測序列號從而偽造TCP連接。

          nmap命令使用詳細解釋

          -P0 -PT -PS -PU -PE -PP -PM -PB 當nmap進行某種類型的端口或協議掃描時,通常都會嘗試先ping 主機,這種嘗試可使nmap不會浪費時間在那些未開機的主機上,但是許多主機與防火墻會阻塞ICMP報文,我們希望能通過控制使用。

          -P0  告訴nmap不ping 主機,只進行掃描

          -PT  告訴nmap使用TCP的ping

          -PS  發送SYN報文。

          -PU  發送一個udp ping

          -PE  強制執行直接的ICMP ping

          -PB  這是默認類型,可以使用ICMP ping 也可以使用TCP ping .

          -6   該標志允許IPv6支持

          -v  -d  使用-v選項可得到更詳細的輸出,而-d選項則增加調試輸出。

          -oN  按照人們閱讀的格式記錄屏幕上的輸出,如果是在掃描多臺機器,則該選項很有用。

          -oX  以xml格式向指定的文件記錄信息

          -oG  以一種易于檢索的格式記錄信息,即每臺主機都以單獨的行來記錄所有的端口和0s信息。

          -oA  使用為基本文件名,以普通格式(-oN)、XML格式(-oX)和易于檢索的格式(-oG)jilu  xinxi 

          -oM  把輸出格式化為機器可閱讀的文件

          -oS  把輸出進行傻瓜型排版

          --resume如果你取消了掃描,但生成了供人或者供機器閱讀的文件,那么可以把該文件提供給nmap繼續讓它掃描。

          -iR-iL可以不在命令行中指定目標主機,而是使用-iR選項隨即產生待掃描的主機,或者使用-iL選項從一個包含主機名或IP地址列表的文件中讀取目標主機,這些主機名或IP地址使用空格、制表符或換行隔開。

          -F nmap只掃描在nmap內建的服務文件中已知的端口,如果不指定該選項,nmap將掃描端口 1-1024及包含在nmap-services文件中的所有其他端口。如果用-sO選項掃描協議,nmap將用它內建的協議文件(nmap- protocols文件)而不是默認地掃描所有256個協議。

          -A nmap使用所有的高級掃描選項

          -p 參數可以是一個單獨的端口、一個用逗號隔開的端口列表、一個使用“-”表示的端口范圍或者上述格式的任意組合。如果沒有指定該選項,nmap將對包含前1024個端口的所有端口進行一次快速掃描。

          -e在多穴主機中,可以指定你用來進行網絡通信的網絡接口。

          -g可以選擇一個源端口,從該端口執行所有的掃描。

          --ttlnmap其發送的任何報文在到中間路由器的跳后會失效。

          --packet-trace 可以顯示掃描期間nmap發送和接收的各個報文的詳細列表,這對調試非常有用。要與-o選項之一聯合使用,需要根權限,以將所有的數據記錄到文件。

          --scanflags可以使用這個選項手工的指定欲在掃描報文中設置的TCP標志。也可以指定TCP標志的OOred值的整數形式,或者標志的字符串表示形式。

          以上介紹的就是nmap在windows下和unix中的命令介紹。


          posted on 2012-11-09 13:11 abin 閱讀(1835) 評論(0)  編輯  收藏 所屬分類: linux
          主站蜘蛛池模板: 绵竹市| 庆元县| 宁波市| 墨竹工卡县| 虹口区| 且末县| 黄梅县| 香港 | 余干县| 大姚县| 株洲县| 遵义县| 徐水县| 鸡东县| 济源市| 恩施市| 申扎县| 额敏县| 黔南| 涞水县| 涿鹿县| 赞皇县| 寻甸| 泸水县| 泸定县| 新安县| 泰来县| 兰西县| 沙湾县| 普安县| 鱼台县| 承德市| 施秉县| 五常市| 怀来县| 隆昌县| 肃北| 陆川县| 都安| 宁安市| 鹿邑县|