<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 五、 主機發現 任何網絡探測任務的最初幾個步驟之一就是把一組 IP 范圍(有時該范圍是巨大的)縮小為 一列 活動的或者您感興趣的主機。掃描每個 IP 的每個端口很慢,通常也沒必要。 當然,什么樣的 主機令您感興趣主要依賴于掃描的目的。網管也許只對運行特定服務的 主機感興趣,而從事安 全的人士則可能對一個馬桶都感興趣,只要它有 IP 地址:-)。一個系統管理員 也許僅僅使用 Ping 來定位內網上的主機 而一個外部入侵測試人員則可能絞盡腦汁用各種方法試圖 突破防火 墻的封鎖。 由于主機發現的需求五花八門,Nmap 提供了一籮筐的選項來定制您的需求。 主機發現有時候也 叫做 ping 掃描,但它遠遠超越用世人皆知的 ping 工具 發送簡單的 ICMP 回聲請求報文。用戶 完全可以通過使用列表掃描(-sL)或者 通過關閉 ping (-P0)跳過 ping 的步驟,也可以使用多個端口把 TPC SYN/ACK,UDP 和 ICMP 任意組合起來玩一玩。這些探測的目的是獲得響應以顯示某 個 IP 地址是否是活動的(正在被某 主機或者網絡設備使用)。 在許多網絡上,在給定的時間, 往往只有小部分的 IP 地址是活動的。 這種情況在基于 RFC1918 的私有地址空間如 10.0.0.0/8 尤其普遍。 那個網絡有 16,000,000 個 IP,但我見過一些使用它的公司連 1000 臺機器都沒有 主機發現能夠找到零星分布于 IP 地址海洋上的那些機器。 如果沒有給出主機發現的選項,Nmap 就發送一個 TCP ACK 報文到 80 端口和一個 ICMP 回聲請求 到每臺目標機器。 一個例外是 ARP 掃描用于局域網上的任何目標機器。對于非特權 UNIX shell 用戶,使用 connect()系統調用會發送一個 SYN 報文而不是 ACK 這些默認行為和使用`-PA -PE` 選項的效果相同。 掃描局域網時,這種主機發現一般夠用了,但是對于安全審核,建議進行 更 加全面的探測。 `-P*`選項(用于選擇 ping 的類型)可以被結合使用。 您可以通過使用不同的 TCP 端口/標志位和 ICMP 碼發送許多探測報文 來增加穿透防守嚴密的防火墻的機會 另外要注意的是即使您指定了 其它 `-P*`選項,ARP 發現(`-PR`)對于局域網上的 目標而言是默認行為,因為它總是更快更有效 下列選項控制主機發現。 `-sL` (列表掃描) 列表掃描是主機發現的退化形式,它僅僅列出指定網絡上的每臺主機, 不發送任何報文 到目標主機。默認情況下,Nmap 仍然對主機進行反向域名解析以獲取 它們的名字。簡單 的主機名能給出的有用信息常常令人驚訝。例如, fw.chi.playboy.com 是花花公子芝加 哥辦公室的 防火墻。Nmap 最后還會報告 IP 地址的總數。列表掃描可以很好的確保您擁 有正確的目標 IP。 如果主機的域名出乎您的意料,那么就值得進一步檢查以防錯誤地掃 描其它組織的網絡。 既然只是打印目標主機的列表 像其它一些高級功能如端口掃描 操作系統探測或者 Ping 掃描 的選項就沒有了。如果您希望關閉 ping 掃描而仍然執行這樣的高級功能,請繼續 閱讀關于 -P0 選項的介紹。 `-sP` (Ping 掃描) 該選項告訴 Nmap 僅僅 進行 ping 掃描 (主機發現),然后打印出對掃描做出響應的那些 主機。 沒有進一步的測試 (如端口掃描或者操作系統探測)。 這比列表掃描更積極,常 常用于 和列表掃描相同的目的。它可以得到些許目標網絡的信息而不被特別注意到。 對 于攻擊者來說 了解多少主機正在運行比列表掃描提供的一列 IP 和主機名往往更有價值 系統管理員往往也很喜歡這個選項。 它可以很方便地得出 網絡上有多少機器正在運行 或者監視服務器是否正常運行。常常有人稱它為 地毯式 ping,它比 ping 廣播地址更可 靠,因為許多主機對廣播請求不響應。 `-sP` 選項在默認情況下, 發送一個 ICMP 回聲請求和一個 TCP 報文到 80 端口。如果非特 權用戶執行,就發送一個 SYN 報文 (用 connect()系統調用)到目標機的 80 端口。 當特 權用戶掃描局域網上的目標機時,會發送 ARP 請求(`-PR`), ,除非使用了`--send-ip` 選項 `-sP` 選項可以和除-P0)之外的任何發現探測類型-P* 選項結合使用以達到更大的靈活性 一旦使用了任何探測類型和端口選項,默認的探測(ACK 和回應請求)就被覆蓋了。 當防 守嚴密的防火墻位于運行 Nmap 的源主機和目標網絡之間時, 推薦使用那些高級選項。 否則,當防火墻捕獲并丟棄探測包或者響應包時,一些主機就不能被探測到。 `-P0` (無 ping) 該選項完全跳過 Nmap 發現階段。 通常 Nmap 在進行高強度的掃描時用它確定正在運行的 機器。 默認情況下,Nmap 只對正在運行的主機進行高強度的探測如 端口掃描,版本探 測,或者操作系統探測。用-P0 禁止 主機發現會使 Nmap 對每一個指定的目標 IP 地址 進 行所要求的掃描。所以如果在命令行指定一個 B 類目標地址空間(/16), 所有 65,536 個 IP 地址都會被掃描。 -P0 的第二個字符是數字 0 而不是字母 O。 和列表掃描一樣,跳過 正常的主機發現,但不是打印一個目標列表, 而是繼續執行所要求的功能,就好像每個 IP 都是活動的。 `-PS [portlist]` (TCP SYN Ping) 該選項發送一個設置了 SYN 標志位的空 TCP 報文。 默認目的端口為 80 (可以通過改變 nmap.h) 文件中的 DEFAULT_TCP_PROBE_PORT 值進行配置,但不同的端口也可以作為選項 指定。 甚至可以指定一個以逗號分隔的端口列表(如 `-PS22,23,25,80,113,1050, 35000`), 在這種情況下,每個端口會被并發地掃描。 SYN 標志位告訴對方您正試圖建立一個連接。 通常目標端口是關閉的,一個 RST (復位) 包會發回來。 如果碰巧端口是開放的,目標會進行 TCP 三步握手的第二步,回應 一個 SYN/ACK TCP 報文。然后運行 Nmap 的機器則會扼殺這個正在建立的連接, 發送一個 RST 而非 ACK 報文,否則,一個完全的連接將會建立。 RST 報文是運行 Nmap 的機器而不是 Nmap 本身響應的,因為它對收到 的 SYN/ACK 感到很意外。 Nmap 并不關心端口開放還是關閉。 無論 RST 還是 SYN/ACK 響應都告訴 Nmap 該主機正在 運行。 在 UNIX 機器上,通常只有特權用戶 root 能否發送和接收 原始的 TCP 報文。因此作為 一個變通的方法,對于非特權用戶, Nmap 會為每個目標主機進行系統調用 connect(), 它也會發送一個 SYN 報文來嘗試建立連接。如果 connect()迅速返回成功或者一個 ECONNREFUSED 失敗,下面的 TCP 堆棧一定已經收到了一個 SYN/ACK 或者 RST,該主機將 被 標志位為在運行。 如果連接超時了,該主機就標志位為 down 掉了。這種方法也用于 IPv6 連接,因為 Nmap 目前還不支持原始的 IPv6 報文。 `-PA [portlist]` (TCP ACK Ping) TCP ACK ping 和剛才討論的 SYN ping 相當類似。 也許您已經猜到了,區別就是設置 TCP 的 ACK 標志位而不是 SYN 標志位。 ACK 報文表示確認一個建立連接的嘗試,但該連接尚 未完全建立。 所以遠程主機應該總是回應一個 RST 報文, 因為它們并沒有發出過連接 請求到運行 Nmap 的機器,如果它們正在運行的話。 `-PA` 選項使用和 SYN 探測相同的默認端口(80) 也可以 用相同的格式指定目標端口列表 如果非特權用戶嘗試該功能, 或者指定的是 IPv6 目標,前面說過的 connect()方法將被 使用。 這個方法并不完美,因為它實際上發送的是 SYN 報文,而不是 ACK 報文。 提供 SYN 和 ACK 兩種 ping 探測的原因是使通過防火墻的機會盡可能大。 許多管理員會 配置他們的路由器或者其它簡單的防火墻來封鎖 SYN 報文,除非 連接目標是那些公開的 服務器像公司網站或者郵件服務器。 這可以阻止其它進入組織的連接,同時也允許用戶 訪問互聯網。 這種無狀態的方法幾乎不占用防火墻/路由器的資源,因而被硬件和軟件 過濾器 廣泛支持。Linux Netfilter/iptables 防火墻軟件提供方便的 --syn 選項來實 現這種無狀態的方法。 當這樣的無狀態防火墻規則存在時,發送到關閉目標端口的 SYN ping 探測 (-PS) 很可能被封鎖。這種情況下,ACK 探測格外有閃光點,因為它正好利用 了 這樣的規則。 另外一種常用的防火墻用有狀態的規則來封鎖非預期的報文。 這一特性已開始只存在于 高端防火墻,但是這些年類它越來越普遍了。 Linux Netfilter/iptables 通過 `--state` 選項支持這一特性,它根據連接狀態把報文 進行分類。SYN 探測更有可能用于這樣的系 統,由于沒頭沒腦的 ACK 報文 通常會被識別成偽造的而丟棄。解決這個兩難的方法是通 過即指定 `-PS` 又指定`-PA` 來即發送 SYN 又發送 ACK。 `-PU [portlist]` (UDP Ping) 還有一個主機發現的選項是 UDP ping,它發送一個空的(除非指定了--data-length UDP 報文到給定的端口。端口列表的格式和前面討論過的-PS 和-PA 選項還是一樣。 如果不 指定端口,默認是 31338。該默認值可以通過在編譯時改變 nmap.h 文件中的 DEFAULT_UDP_PROBE_PORT 值進行配置。默認使用這樣一個奇怪的端口是因為對開放端口 進行這種掃描一般都不受歡迎。 如果目標機器的端口是關閉的,UDP 探測應該馬上得到一個 ICMP 端口無法到達的回應報 文。 這對于 Nmap 意味著該機器正在運行。 許多其它類型的 ICMP 錯誤,像主機/網絡無 法到達或者 TTL 超時則表示 down 掉的或者不可到達的主機。 沒有回應也被這樣解釋。 如果到達一個開放的端口,大部分服務僅僅忽略這個 空報文而不做任何回應。這就是為 什么默認探測端口是 31338 這樣一個 極不可能被使用的端口。少數服務如 chargen 會響 應一個空的 UDP 報文, 從而向 Nmap 表明該機器正在運行。 該掃描類型的主要優勢是它可以穿越只過濾 TCP 的防火墻和過濾器。 例如。我曾經有過 一個 Linksys BEFW11S4 無線寬帶路由器。默認情況下, 該設備對外的網卡過濾所有 TCP 端口,但 UDP 探測仍然會引發一個端口不可到達 的消息,從而暴露了它自己。 `-PE; -PP; -PM` (ICMP Ping Types) 除了前面討論的這些不常見的 TCP 和 UDP 主機發現類型 Nmap 也能發送世人皆知的 ping 程序所發送的報文。Nmap 發送一個 ICMP type 8 (回聲請求)報文到目標 IP 地址, 期待 從運行的主機得到一個 type 0 (回聲響應)報文。 對于網絡探索者而言,不幸的是,許 多主機和 防火墻現在封鎖這些報文,而不是按期望的那樣響應, 參見 [RFC 1122](http://www.rfc-editor.org/rfc/rfc1122.txt)。因此 僅僅 ICMP 掃描對于互聯網上的目標通常是不夠的。 但對于系統管理員監視一個內部網 絡,它們可能是實際有效的途徑。 使用-PE 選項打開該回聲請求功能。 雖然回聲請求是標準的 ICMP ping 查詢, Nmap 并不止于此。ICMP 標準 ([RFC 792](http://www.rfc-editor.org/rfc/rfc792.txt))還規 范了時間戳請求,信息請求 request,和地址掩碼請求,它們的代碼分別是 13,15 和 17 雖然這些查詢的表面目的是獲取信息如地址掩碼和當前時間, 它們也可以很容易地用于 主機發現。 很簡單,回應的系統就是在運行的系統。Nmap 目前沒有實現信息請求報文 因為它們還沒有被廣泛支持。RFC 1122 堅持 “主機不應該實現這些消息”。 時間戳和 地址掩碼查詢可以分別用-PP 和-PM 選項發送。 時間戳響應(ICMP 代碼 14)或者地址掩碼 響應(代碼 18)表示主機在運行。 當管理員特別封鎖了回聲請求報文而忘了其它 ICMP 查 詢可能用于 相同目的時,這兩個查詢可能很有價值。 `-PR` (ARP Ping) 最常見的 Nmap 使用場景之一是掃描一個以太局域網。 在大部分局域網上,特別是那些 使用基于 RFC1918 私有地址范圍的網絡,在一個給定的時間絕大部分 IP 地址都是不使 用的。 當 Nmap 試圖發送一個原始 IP 報文如 ICMP 回聲請求時, 操作系統必須確定對應 于目標 IP 的硬件 地址(ARP),這樣它才能把以太幀送往正確的地址。 這一般比較慢而 且會有些問題,因為操作系統設計者認為一般不會在短時間內 對沒有運行的機器作幾百 萬次的 ARP 請求。 當進行 ARP 掃描時,Nmap 用它優化的算法管理 ARP 請求。 當它收到響應時, Nmap 甚至 不需要擔心基于 IP 的 ping 報文,既然它已經知道該主機正在運行了。 這使得 ARP 掃描 比基于 IP 的掃描更快更可靠。 所以默認情況下,如果 Nmap 發現目標主機就在它所在的 局域網上,它會進行 ARP 掃描。 即使指定了不同的 ping 類型(如 -PI 或者 -PS) ,Nmap 也會對任何相同局域網上的目標機使用 ARP。 如果您真的不想要 ARP 掃描,指定 `--send-ip`。 `-n` (不用域名解析) 告訴 Nmap 永不對它發現的活動 IP 地址進行反向域名解析。 既然 DNS 一般比較慢,這可 以讓事情更快些。 `-R` (為所有目標解析域名) 告訴 Nmap 永遠 對目標 IP 地址作反向域名解析。 一般只有當發現機器正在運行時才進 行這項操作。 `--system_dns` (使用系統域名解析器) 默認情況下,Nmap 通過直接發送查詢到您的主機上配置的域名服務器 來解析域名。為了 提高性能,許多請求 (一般幾十個 ) 并發執行。如果您希望使用系統自帶的解析器,就 指定該選項 (通過 getnameinfo()調用一次解析一個 IP) 除非 Nmap 的 DNS 代碼有 bug-- 如果是這樣,請聯系我們。 一般不使用該選項,因為它慢多了。系統解析器總是用于 IPv6 掃描。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看