歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> FIREWALL SCAN ANALYZING

FIREWALL SCAN ANALYZING

日期:2017/2/27 9:22:15   编辑:更多Linux
  網絡發展到今天,安全技術層出不窮,目前最常用,技術最成熟的應該還是利用FIREWALL提高安全性,關 於FIREWALL的定義,就仁者見仁,智者見智了,我個人比較贊成的觀點是 "防火牆系統可以是路由器,也 可以是個人主機、主系統和一批主系統,專門把網絡或子網同那些可能被子網外的主系統/*或者本地用戶 */濫用的協議和服務隔絕,其中還包括合理的過濾規則的應用" 從外部用戶的角度來看,最簡單的例子就是許多時候我們試圖利用TELNET或其他手段連接到遠程主機,經 過半天的等待以後,往往是"refuse connect"/*當然也可能是對方限制IP登陸*/……:( 比較經典的FIREWALL區分方法是把它分成兩種application proxies and filtering gateways. 我決定在此處省去N字,:)因為關於FIREWALL原理和實現技術已經有N篇文章講過了……呵呵,你到處都 可以找到,中,英文都有。假如有興趣的,我也可以發給你資料 OK,看完了那些FIREWALL的基本知識之後,讓我們開始從我們習慣的角度來看問題了。:) 有些FIREWALL類型可以被簡單的PORT SCAN所鑒別,例如,CheckPoint's Firewall監聽TCP的256.257.258口/*CheckPoint's用來遠程管理用的*/,Microsoft's Proxy server通常 監聽TCP的1080和1745口,我們可以簡單的利用NMAP去找找看 nmap -n -vv -P0 -P256,1080,1745 *.*.*.*/24 我要提醒你注意的是-P0是不可以缺少,因為這個選項是禁止在掃描以前ICMP PING目標,而很多FIREWALL 是不會響應ICMP echo 請求的。 利用traceroute for unix or tracert for winnt&98命令來看,假如是用Linux的話,可以加-I選項,表 示發送ICMP PACKET。 TRACEROUTE的原理是向目標主機發送一系列UDP數據包。開頭的三個數據包的存活期設置為1,接受到的第 一個ROUTER返回一個TTL死亡報文,並且將它丟棄,接著的第二個數據包存活期設置為2,接受到的第二個 ROUTER返回一個TTL死亡報文,並且將它丟棄……其他的依此類推。 通常可以看到下面的情況 1 XXX 192.168.55.1 **ms **ms **ms 2 SSS 192.168.52.2 …… 11 WWW 10.63.2.2 12 ZZZ 10.63.5.1 13 QQQ 172.16.11.1 我們可以猜測10.63.5.1可能是FIREWALL。/*只能是猜測*/ 假如有些ROUTER和FIREWALL設置不回復ICMP TTL 死亡報文的話,我們將無法通過TRACEROUTE看到它的存 在。 1 XXX 192.168.55.1 2 SSS 192.168.52.2 …… 11 WWW 10.63.2.2 12 ZZZ 10.63.5.1 13 QQQ 172.16.11.1 14 * * * 15 * * * 有時候,我們用NC連接到目標的21或者23口,假如它是在FIREWALL保護下 你可以看到該FIREWALL的信息。呵呵,國內最簡單的例子是你直接FTP到163的超級酷個人主頁,就可以看 到“天網……”的字樣。這可是前段時間大大出名的FIREWALL哦 如何盡可能多的知道FIREWALL的信息呢,我個人還是喜歡用NMAP---作為SCANER,我覺得它是無可挑剔 的,總是可以告訴我們盡可能多的東西…… /*建議你先去看看NMAP的說明,同時你也許還需要看看TCP的三次握手*/ nmap總是顯示該服務的服務名稱,端口號,狀態以及協議。狀態有'open','filtered'和'unfiltered'三 種。 'open'就不用多說什麼了,大家都明白指的是目標機器將會在該端口接受你的連接請求 一般來說,在NMAP中,一個filtered端口表示下面三種情況: 1 沒有收到 SYN/ACK packet 2 沒有收到 RST/ACK packet 3 回復了一個ICMP 3 類型和13 代碼,表示信宿不可到達/*icmp的3類型就表示目標信宿機不可到達,可 以利用不同的碼將它細分為13種情況,如網絡不可以到達,主機不可以到達,協議不可以到達,端口不可 以到達等……*/ 當'filtered'狀態下,我們利用TCPDUMP具體分析,可以發現在抓的IP包中,很明確的表示了unreachable ,在NMAP中,端口被堵塞的信息是通過ICMP報文中在頭標位置占一個字節的類型部分表示的,並且經過


FIREWALL過濾後返回的信息在IP包中占4個字節表示。 'unfiltered'返回的信息是在各大安全BBS被爭論最多的,在NMAP的說明中,只是簡單的說unfiltered'只 有在大多數的掃描端口都處在'filtered'狀態下才會出現的。其實它只是在掃描N多端口並且收到一個 RST/ACK PACKET時出現,在'unfiltered'狀態下,我們的SCAN也許通過了FIREWALL並且TARGET告訴我們這 個端口沒有被監聽,換句話說,也就是沒有打開。或者FIREWALL回復了一個RST/ACK,這種情況也經常在 掃描某些FIREWALL如CheckPoint(with the REJECT rule)時出現,當它從目標回復一個RST/ACK PACKET並 且給一個錯誤的IP地址。當我們同時運行TCPDUMP就可以看到返回的是一個RST/ACK包。/*我個人認為,這 是個非常好的辦法*/ 還有一些SCANER可以幫助我們 Hping,一個很實用的東東,它通過發送一個ICP包到目標端口並且報告回復的包。它可以根據不同條件而 產生多種輸出,利用HPING,我們可以清楚的描述出FIREWALL的控制規則。 當一個PORT打開並且收到一個連接時,HPING將告訴我們'flags=SA',呵呵就是代表收到一個SYN/ACK包。 當我們用HPIHG掃描*.*.*.*的23口收到一個'ICMP Unreachable type 13 form *.*.*.*'時,通常情況就 是遇到了一個PACKET FILTERING ROUTER。假如對方是CISCO的話很可能就是在配置文件中有這一行 "Access-list 101 deny tcp any any 23 ! telnet" 當我們收到一個RST/ACK包/*'flags=RA'*/一般代表兩種可能: 1,這個包通過了FIREWALL並且TARGET沒有開這個端口 2,FIREWALL拒絕了這個包(就象CheckPoint's reject rule) 假如你先掃描一個IP的23口收到了收到一個'ICMP Unreachable type 13 form *.*.*.*',然後你掃描其 他的端口如22,收到的是一個RA包/*'flags=SA'*/,通過綜合判斷,我們可以斷定,是端口22沒有開,而 不是被過濾規則所拒絕。 最後,當FIREWALL完全堵塞了一個PORT,我們通常收不到任何返回包。它告訴我們兩個意思 1,包不能到達TARGET並丟失在途中 2,絕大部分原因是由於FIREWALL的過濾規則決定將它丟棄。 firewalk也是一個非常好的工具,它可以幫助我們發現在FIREWALL後面打開的PORT,它是利用an ip TTL calculated to eXPire one hop past the firewall.其實還是利用回應一個"ICMP TTL expired in transit"信息,如果包被FIREWALL’ACL 拒絕,將沒有任何回應或者是一個ICMP TYPE 13。 不過用firewall進行掃描要注意的一點是,有些FIREWALL在拒絕PACKET EXPIRES時還會給你返回一個ICMP TTL EXPIRED 包,呵呵,很狡猾,在這種情況下,我們將會看到所有的PORT都是打開的:( 以上就是我所掌握的一些FIREWALL SCAN技術,希望可以幫助你盡量多的了解FIREWALL後面的情況,也歡 迎來信討論。 另,我簡單的談談突破/後門的辦法,以後有時間我會慢慢寫出來 ,如果你E文好,那我強烈推薦THC的關 於突破FIREWALL的後門的文章!!! 以下是我根據THC文章和自己經驗的一點綜合,有很多我也不是很了解的地方,還要大家一塊來討論。 1,很多FIREALL,如CHECKPOINT,它默認的DNS LOOKUPS(UDP53)口是打開的,DNS zone transfers(TCP 53),RIP(UDP 520)是允許任意HOST連接的,呵呵,利用這個我們就可以指定我們的木馬程序運行在這個 PORT上,然後…… 有些時候,數據包過濾可以有狀態包檢查,如果是這樣的話,我們利用DNS口就沒法執行自己的命令,但 是還有別的辦法…… 2,ICMP和UDP 許多FIREWALL允許ICMP ECHO。ICMP ECHO REPLY,UDP包通過,如CHECKPOING DNS,呵呵,可以將自己的 數據利用ICMP包頭封裝起來,就可以執行通過FIREWALL執行命令了,在這方面的現有軟件是 LOKI&lokid(client&server),等我有啦點心得以後再寫給大家…… UDP的後門程序有daemonshell-udp,也是來自[THC] - The Hacker's Choice. 3,利用CGI留後門,呵呵,ROUTER過濾再厲害,它只要允許HTTP訪問,就一定防止不了CGI的後門,在網 上很容易找到這類的後門,如GH寫的後門,不過好象都很類似,除了作者的名字以外/老外也搞這套/ 4,開個高段的SHELL後門,國內現在很多這方面的東西,主要原理是利用有些FIREWALL不檢查到高段 PORT,所以可以放置這類後門。 5, 利用.forward文件,開sendmail服務的也不會比開HTTP的少多少哦……執行你的SHELL腳本,至於你要 干什麼,就自己決定了:)和這個比較類似的方法是利用crontab,最重要還是要看你所希望它們執行什麼

命令…… 6,RPC服務,呵呵,很多FIREWALL允許RPC服務,利用RPC的EXPLOITS,就可以出入如無人之境了…… 待完善……



Copyright © Linux教程網 All Rights Reserved