hacker之眼Nmap的原理及用法(三)繞過防火牆掃描的簡單方法TCP ACK Ping

TCP ACK Ping與TCP SYN Ping很是類似,你可能會猜到的區別是,設置了TCP ACK標誌位而不是SYN標誌位。這種ACK數據包宣稱是經過已創建的TCP鏈接確認數據,但不存在這樣的鏈接。所以,遠程主機應始終使用RST數據包進行響應,並在此過程當中暴露它們的存在。
選項-PA使用與SYN探針相同的默認端口(80端口),而且還能夠採用相同格式的目標端口列表。若是非特權用戶嘗試此操做,或者指定了IPv6目標,則使用咱們前面討論的connect解決方法。 此解決方法是不完善的,由於connect實際上正在發送SYN數據包而不是ACK。
同時使用SYN和ACK Ping探針的緣由是爲了提升繞過防火牆的機會。許多管理員都會配置路由器和簡單的防火牆策略來阻止傳入的SYN數據包,除了那些發往公共服務(如公司網站或郵件服務器)的數據包。這樣能夠防止公司內部的服務器與外部創建非受權的鏈接, 同時容許正經常使用戶與服務器創建正常鏈接建。這種無狀態的方法在防火牆/路由器上佔用的資源不多,而且受到硬件和軟件過濾器的普遍支持。 做爲此方法廣泛存在的一個例子,Linux Netfilter/iptables防火牆軟件提供了--syn便捷選項。
當遇到諸如此類的防火牆規則配置到位時,SYN Ping探針(-PS)在發送到關閉的目標端口時可能會被阻止。在這種狀況下,ACK探針經過徹底遵循這些規則而表現出色。
另外一種常見類型的防火牆使用丟棄意外數據包的有狀態規則。 此功能最初主要在高端防火牆上發現,儘管多年來它已經變得愈來愈廣泛。 Linux Netfilter/iplables系統經過—state選項支持此功能,該選項能夠根據鏈接狀態對數據包進行分類。

小知識-狀態檢測防火牆中的「狀態」
INVALID:意味着數據包與已知鏈接無關;
ESTABLISHED:意味着數據包與一個鏈接有關聯,該鏈接在防火牆兩端都有數據包;
NEW:意味着數據包開始創建一個新鏈接,或者與之相關的鏈接並非在防火牆兩端都有數據包;
RELATED:意味着數據包開始創建一個新鏈接,可是它與已存在的鏈接相關,例如:FTP數據傳輸或是ICMP報錯。
小知識完
ACK探針不太可能對採用這種方法的防火牆起做用,由於這樣的意外數據包將被歸類爲INVALID狀態並可能被丟棄。下面的例子顯示了針對Microsoft嘗試ACK Ping。他們的狀態檢測防火牆丟棄了數據包,致使Nmap錯誤地判定主機已關閉。SYN探針在這種狀況下有更好的工做機會。這提出了一個問題,就是當目標網絡的防火牆規則未知時該用哪一種掃描技術? 正確的答案一般是都用, Nmap能夠並行地向許多端口發送SYN和ACK探針,以及同時執行其餘主機發現技術。
例3: 用ACK探針掃描Microsoft
#nmap -sn -PA www.miscrosoft.com
hacker之眼Nmap的原理及用法(三)繞過防火牆掃描的簡單方法TCP ACK Ping服務器

相關文章
相關標籤/搜索