線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:6814
推到 Plurk!
推到 Facebook!

如何接收或攔截到本機的IP或UDP封包?

 
Kuang Cheng
一般會員


發表:11
回覆:25
積分:18
註冊:2002-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-06 11:09:57 IP:61.224.xxx.xxx 未訂閱
如題,謝謝!
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-06 13:06:05 IP:61.221.xxx.xxx 未訂閱
來源: http://bbs.openfind.com.tw/cgi-bin/adb_modify?stage=add&nickname=%2E%2E%2E%2E&email=byebye%2Ebbs%40cis%2Enctu%2Eedu%2Etw&name=%2E%2E%2E%2E 時間: 2000年 9月30日 周六 13時26分06秒 CST 標題: [doc] Sniffing FAQ 中譯版  論壇: tw.bbs.comp.security     Sniffing (網路竊聽器, sniffer) FAQ    這份文件是用來回答有關電腦網路上有關竊聽(也就是所謂"sniffing") 的諸多問題。    0. 有關本 FAQ 的資訊    0.3.3 版, 2000 九月 14.    版權宣告:Robert Graham (sniffing-faq@robertgraham.com) 1998-2000, 本份文件(全部或部分)只能在非商業用途的目的下重製,所有重製品必須包 含本份版權宣告,且不得更動或修改有關作者的資料。    本文件原始檔放在以下連結處:       http://www.robertgraham.com/pubs/sniffing-faq.html (HTML)    0.7 感謝    感謝下列曾幫忙收集資訊及給予意見的人(注意:為避免被垃圾信騷擾, 以下使用一個簡單易見的方法將以下諸位的 email 位址作適當變造)            Trevor Schroeder from http://www.zweknu.org/         Lachlan M. D. Cranswick  當然還有譯者我 byebye.bbs@bbs.cis.nctu.edu.tw :-) 0.9 Robert Graham 何許人也? [譯者註:以下不翻譯,因為是作者自我介紹而已,屬於八卦部分 :p] Among other things, between 1994-1998 I worked at Network General Corporation on the Sniffer(r) Network Analyzer. I either wrote/rewrote/ported over 300 protocol decodes for the Sniffer. Now I'm working on an intrusion detection system that similarly does protocol analysis. Also, I helped develop the "Certified Network Expert" exam, which was put together by a consortium of protocol analyzer/network analyzer vendors. In the early 1990s, I help develope the RMON standard(s) and the first RMON systems. 1. 基本觀念 1.1 什麼是 "封包竊聽器(packet sniffer)"? 封包竊聽器就是一個植入電腦的竊聽裝置,用來竊聽網路流經的封包。 就像 FBI 用來竊聽人們對談的電話竊聽器一樣,竊聽程式讓某人得以聽 到電腦之間互相溝通的情況。 但是電腦的通話似乎包含許多看似雜亂的二進位資料,因此網路竊聽程式 也包含了一個叫做"協定分析"的功能,使其得以對電腦資訊進行解碼並瞭 解他們。 竊聽程式另外還比電話竊聽器多了一個好處是:由於電腦網路常常將資訊 互相"分享",這代表著你無須入侵某台機器來接上你的竊聽器,只要從任 何鄰近的網路偷聽就可以達到目標。這就是所謂"監聽模式"(promiscuous mode)的竊聽程式,然而網路資訊分享的技術很快的被另外一個 "切換"( switched)技術所取代,這迫使前述的方便性不復存在,你必須真的跟目 標作連接才行。 1.1.1 "封包竊聽器" 是屬於註冊商標的專有名詞嗎? "sniffer" 這個單字被 Network Associates 公司註冊給 "Sniffer(r) Network Analyzer" 此項產品使用。然而所謂的 "snif" 這個字被許多產 品所使用(某些產品在本文件中會提到),而 "sniffer" 這個字更被普遍 使用在有關 "協定分析" 或 "網路分析" 相關產品上(至少我在 Altavista 上得到的資訊是如此)。作者對註冊商標相關的法律並不熟悉(譯者也是:P) ,所以我不清楚這是不是會讓這個名詞(sniffer)喪失其獨特性,像是其 他註冊過的專有名詞:如阿司匹靈(aspirin), 電扶梯(escalator), 和玻 璃紙(cellophane)。 1.2 竊聽程式的用途呢? 竊聽程式自出現後就有兩個主要形態,商業化的封包竊聽器是用以協助維 護網路,而在神秘的駭客組織間流傳的地下版(underground)封包竊聽器 則用來當作入侵電腦的工具。 此類的竊聽程式通常包含: ‧自動過濾網路上的明碼(clear-text)使用者名稱/密碼資料,使用 hackers/crackers 嘗試入侵。 ‧將從網路上擷取到的資料轉換成人類可讀的格式。 ‧對網路問題進行錯誤分析(fault analysis),比如說為何兩台電腦 間無法通訊。 ‧針對網路瓶頸作效能分析。 ‧用來偵測駭客(hackers/crackers)的網路入侵偵測程式(請參考 http://www.robertgraham.com/pubs/network-intrusion-detection.html) ‧記錄網路流量,建立讓入侵者無法入侵並刪除的紀錄檔。 1.3 有沒有單獨一個地方可以讓我在網際網路上看到所有的流量? 沒有。整個網際網路的連結就類似漁網般的錯綜複雜。資料在網網互連間 快速流過,因此沒有任一個單獨的點可以看到網路上所有的資料流動情形 。由於當初網際網路是因應核彈攻擊的目的而產生--所以必須在單點失敗 (single point of failure)後能倖存,因此避免任何單點竊聽的可能性。 考慮以下狀況:你在辦公室中有兩台直接互連的電腦,也都連上網際網路 。這兩台電腦使用直接繞路(direct route)的通訊方式來作溝通,因此其 間流動的封包資料不曾外洩到網際網路上任何的公開點。所有網際網路上 的通訊都是採用這種"最低成本路徑"(least-cost-path)的原理。 1.4 竊聽程式的運作方式是如何? 1.4.1 如何竊聽到網路流經的封包? 乙太網路(Ethernet)建立在一個分享(shared)的原則下:所有本地網路下 的機器都在同一條線上。 這就說明了為何在同一條線上,所有機器都可以"看到"所有在網路上流通 資料的道理。 因此,乙太網路的硬體內有一個過濾器,這會忽略所有不屬於本地網路下 的封包資料。這是靠著檢查資料段內的 MAC 位址,若與本地端電腦不相 符則忽略它。 竊聽程式則把這個過濾器的功能關閉,讓硬體(也就是乙太網路卡)處於" 監聽模式"(promiscuous mode),所以小白可以看到小花跟小黃電腦間所 有的封包訊息,一如他們都在同一條線上。 1.4.2 封包監聽器的組成元件有哪些? 硬體 大多數竊聽程式都可以在標準的網路卡上正常工作,不過有一些需要特 殊的硬體配合,假如你有特殊硬體,可用來分析硬體錯誤如 CRC error ,電壓問題,線路問題,網路流量的毛細或飄移現象(drillbes, jitter) ,通訊協議錯誤等。 擷取程式 這是最重要的部分,用來從網路線上擷取流經的封包,並過濾出你要的 資料,然後儲存起來。 緩衝區 一旦從網路上抓下資料段後,就將他們存在緩衝區中,抓取的模式有以 下幾種:抓到緩衝區滿即停止,或是以循環模式(round robin)以新資料 來取代舊資料。某些產品(比如說 Network ICE 的 BlackIce Sentry IDS)可以在 100-mbps 的網路速度下,在硬碟中控制一個循環式擷取緩 衝區以記錄資料。這樣的好處是你就像在一個以記憶體為主的緩衝區中 ,擁有數百 G 而不只是單單 1G 容量的大小。 即時分析 這是網路竊聽器的一項先進功能,用來在收線後分析資料段中某些低階 位元,如此一來當擷取資料時就可以尋找網路效能跟錯誤的問題所在。 許多廠商開始以此作出發點,對自己的產品盡量提供相容性來作配合。 網路入侵偵測系統也做同樣的事情,但他們是過濾流經網路的封包,辨 識駭客的活動,而不是專注在網路的錯誤跟效能問題上。 解碼 接下來在第五節會談到如何顯示網路封包的內容,以及敘述性文字,讓 網路分析師得知現況是如何。 封包編輯器/傳送器 某些產品中包含一項功能,使用者可以自己編輯網路封包並將修改後的 封包資料傳送到網路上。 1.5 什麼是 MAC 位址? 由於許多機器可能共用單一乙太線路,每一台都得要有一個獨立的識別 碼。這跟使用撥接數據機的狀況不同,因為後者是假設你送到數據機的 資料是要送出去給電話線另外那頭電腦的。但當你在乙太網路線上送出 資料時,就必須明確指出資料要送達之目的地是在哪一台電腦。當然現 今的狀況,有很多情形是只有兩台電腦在互相通訊,但必須記住乙太網 路當初設計的出發點是數以千計的電腦共用同一條線的情形。 實作方式可以透過每張乙太網路卡上一組唯一的十六進位數字(共 12 碼) 來完成,在 1.5.4 節會解釋如何找到你機器上的乙太 MAC 位址。 [譯者注:所謂乙太網路硬體設備(Ethernet hardware)不僅指網路卡 (adapter, NIC),其他如 router 等網路設備因為功能需要也會佔掉 一個網路位址,所以也會有 MAC address, 文中為了方便解釋所以只 針對最常見的網路卡來作 Ethernet hardware 這個字的解釋,為免誤 會特此說明] 想瞭解為何 MAC 位址這麼重要,你必須要仔細閱讀地 5.4 節中所提及 的資訊。乙太網路曾被設計用來傳送 TCP/IP 以外的其他封包資料,而 TCP/IP 當初是設計在其他線路上運作(如撥接線路,這不使用乙太網路 架構),許多使用者會在家裡電腦上安裝 "NetBEUI" 協定做為檔案跟列 印分享的依據,因為它與 TCP/IP 無關,因此駭客無法透過網際網路入 侵到他們家裡電腦的硬碟。 乙太網路設備控制封包原始資料的傳送/接收(raw transmission/ reception),你不能只將原始資料丟到乙太線路上去就算了事,首先必 須作某些加工讓乙太網路認得這些資料。這就好像你不能直接將一封信 丟到信箱裡面,必須先用信封包裝起來,然後貼上郵票是同樣意思。 以下是一個簡圖用來說明乙太網路運作模式: _________ /.........\ /..Internet.\ ----- ------ ......... --- |Alice|-----|ROUTER|.........|Bob| ----- ^ ------ ......... --- | \.........../ | \---------/ ------- |wiretap| ------- Alice 的 IP: 10.0.0.23 Bob 的 IP: 192.168.100.54 為了跟 Bob 通話,Alice 需要封包,傳遞路徑是從 10.0.0.23 到 192.168.100.54。 當封包在網際網路上漫遊,沿路會通過許多 router,因此 Alice 首先 必須將封包交給第一個 router,沿途收到封包的 router 都會檢查目 的地位址(192.168.100.54)並決定下個正確的路徑。 上述說明圖中,我們將整個網際網路劃成一朵雲狀圖,Alice 要知道的 只是他如何連接到第一個 router 的位置,而 Bob 所知道的也是他那 端如何連到他第一個 router,Alice 對整個網際網路的架構並不知情 ,也無須知道封包將會怎麼繞路送達目的地。 Alice 必須讓 router 知道才能將封包傳送出去。她可以利用乙太網路 來辦這件事情,一個乙太網路的封包段(frame)看起來就像下面這樣: -- -- -- -- -- -- | 目 的 地 MAC | -- -- -- -- -- -- | 來 源 MAC | -- -- -- -- -- -- |08 00| -- -- ----------- | | . IP . . 封包 . . . | | -- -- -- -- ----- | CRC 檢查碼| -- -- -- -- 這代表著 Alice 機器上的 TCP/IP 堆疊可能要建立一個 100 bytes 長 的封包(假設 20 bytes 是 IP 資訊,20 bytes 是 TCP 資訊,60 bytes 是資料)。TCP/IP 堆疊會將這組封包送給乙太模組去作處理,在開頭處 加上 14 bytes 的目的地 MAC 位址、來源位址,以及內定乙太型態 0x0800 的數值作為結束,告訴 TCP/IP 堆疊以下開始處理封包段本身的 資料。最後加上 4 bytes 的 CRC 錯誤檢查碼(主要用來檢查封包段在線 路上傳輸的過程中是否被破壞過)。 然後網路卡就將位元資料透過網路線傳送出去。 所有在這條線上的網路卡都會看到這個封包段,包括 router、封包竊聽 器跟任何其他的機器。然而某些網路卡有一個晶片會作對封包段的目的 地 MAC 位址跟來源 MAC 位址兩者互相比較,假若不相同就捨棄這個封 包段。由於這工作在硬體階層就完成,所以網路卡所在的電腦將不會注 意到這件事情。 當路由器的乙太網路卡看到封包段後,會把最開始的 14 bytes 和最後 的 4 bytes 讀出來,截頭去尾然後重新寫回封包段,由於看到 0x0800 這個乙太型態數值所以決定把他送到 TCP/IP 堆疊去處理(預設處理動 作是將封包送到下一個前往目的地途中的路由器手中)。 上述過程中,應該只有路由器看到封包段,而其他所有的機器都應當忽 略它,然而竊聽的電腦卻破壞這項原則,也將這個封包段從網路上拷貝 下來。 詳情請參考 Charles Spurgeon's Ethernet website: http://wwwhost.ots.utexas.edu/ethernet/ethernet-home.html 1.5.2 "MAC" 這個字是什麼意思? MAC 是 Media Access Control 三個字的縮寫。 這其中隱藏的邏輯是乙太網路有好幾個子層(sublayer): PHY(physical) ,MAC,LLC(logical)等。乙太位址一般則認為是包含在 MAC 位址層中 。實體層跟線路有關,MAC 則與送往線路上的資料格式有關,而邏輯層是負 責像是線路上如何重新傳送資料這樣的工作。 1.5.3 MAC 位址的格式是怎麼樣呢? 乙太網路的 MAC 位址是一串 48 位元的數字。這串數字分為兩半:前 24 位元標示網路卡的製作廠商編號,後 24 位元則由廠商指定一個序 號。因此要確保沒有兩張乙太網路卡會有同樣的 MAC 位址(除非廠商自 己故意犯規)。重複的位址一定會造成問題,保持其唯一性就很重要了 ,所以後 24 位元的數字我們稱之為 "OUI"(唯一編制識別碼, "Organizationally Unique Identifier")。 然而事實上 OUI 的長度只有 22 位元,因為有兩個位元被挪作他用。 一個位元說明這個位址是否為 "廣播/群播"(broadcast/multicast)位 址,另外一個位元說明了這個網路卡是否被重新指定一個本地端的管理 位址(這是因為網路管理員可以因為某些區域網路的管理政策方便,重 新指定網路卡的 MAC 位址)。 舉例來說,一般而言你會看到線路上出現 03 00 00 00 00 01 這串 MAC 位址的資料,第一個位元組(03)代表了 00000011 這個二進位表示資料 ,可看到上述的兩個特殊位元都被設定了(而其他位元則全部為零),這 就是一個特殊的群播封包,將傳送給所有執行 "NetBEUI" 通訊協定的 電腦(這個協定通常會安裝在 Windows 作業平台的電腦上,用來在區域 網路中分享檔案,無須透過 TCP/IP 做為媒介)。 IEEE 協會負責維護這份廠商/OUI 編號清單,可在以下網站找到: http://standards.ieee.org/regauth/oui/ 1.5.4 我自己的乙太網路位址是什麼? Win9x 執行 "winipcfg.exe" 這個程式,它就會告訴你。 WinNT 在命令列模式執行這個指令 "ipconfig /all"。會顯示網路卡的 MAC 位 址,範例如下: Windows NT IP Configuration Host Name . . . . . . . . . : sample.robertgraham.com DNS Servers . . . . . . . . : 192.0.2.254 Node Type . . . . . . . . . : Hybrid NetBIOS Scope ID. . . . . . : IP Routing Enabled. . . . . : No WINS Proxy Enabled. . . . . : No NetBIOS Resolution Uses DNS : No Ethernet adapter SC12001: Description . . . . . . . . : DEC DC21140 PCI Fast Ethernet Adapter Physical Address. . . . . . : 00-40-05-A5-4F-9D DHCP Enabled. . . . . . . . : No IP Address. . . . . . . . . : 192.0.2.160 Subnet Mask . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . : 192.0.2.1 Primary WINS Server . . . . : 192.0.2.253 Linux 執行 "ifconfig" 後範例如下: eth0 Link encap:Ethernet HWaddr 08:00:17:0A:36:3E inet addr:192.0.2.161 Bcast:192.0.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1137249 errors:0 dropped:0 overruns:0 TX packets:994976 errors:0 dropped:0 overruns:0 Interrupt:5 Base address:0x300 Solaris 使用 "arp" 或 "netstat -p" 指令,通常就會列出在 ARP 資料項上的 本地介面(local interface)。 1.5.5 正在跟我通訊的那台電腦,他的乙太網路位址是什麼呢? WinNT 和 UNIX 的主機上使用 "arp -a" 指令。 1.5.6 我可以更改 MAC 位址嗎? 可以,但有幾個重要的地方需要注意: 首先,你可以任意造假位址,但記住 MAC 位址只是網路封包資料段中的 一部份。再者,當你將封包資料段送到線路上時,你也可以在這些資料 段中改寫自己的內容,當然,你必須先能執行某些有這個功能的程式。 第二,許多網路卡都允許你重新設定即時(runtime) MAC 位址,舉例來 說,某些卡讓你可以在 Windows 的控制台中重新設定位址。 第三,你可以重新燒錄網路卡上的位址(也就是更改 EEPROM 內容)。這 需要一個知道網路卡晶片規格的程式/硬體來作這件事,因此將會永久性 的把網路卡位址更新。 1.6 我可以偷聽某兩個人的通信而無須連上他們的網路線嗎? 換句話說,你尋求這樣的可能性: 小花住台中,小黑住在高雄而他們正在用電腦互相對談,你在遙 遠另外一端的台北,你想竊聽他們的通訊內容? 答案當然是『不可能』,連一絲可能性都沒有。你必須實際連上你要竊 聽的那段實體線路上,才能辦到這樣的事情。這道理跟竊聽電話或是其 他東西都一樣。 線路的遠端存取 然而,假如你是一個技術高超的駭客,還是有好幾種方法可以拿到線路 的遠端存取權。 典型的例子有: ‧入侵 Alice 或 Bob 的電腦,然後裝上能遠端操控的竊聽程式。 ‧去入侵牽涉在線路中間的 ISP,然後裝竊聽程式。 ‧在 ISP 裡面找一台可用竊聽功能的電腦,支援 RMON 或 DSS(分 散式竊聽系統,Distributed Sniffer System) [譯者注:RMON 原本的用途是收集網路封包,作為觀察網路流量跟封包 動態等網管用途,當然也會被利用當成竊聽工具。] ‧去想辦法跟 ISP 裡面的某個人混熟一點,偷偷進去機房裝封包竊 聽器.... 等等。 ‧.... 趨近法 某些狀況下,假若使用 cable-modems, DSL, Ethernet VLANs 等,你 可以將另外兩個人的封包訊息重新導向到自己的電腦這邊來。這是由於 你不在通訊的直接路徑上,有時候你可以將路徑移動,想辦法讓他也通 過你這裡,這個觀念就像你可以緩慢的將河裡的水作分流,原理相去不 遠。詳情請參考後述 "在 Cable modem 下重導" 一節。 使用 rootkits 和遠端的管理者木馬程式 另外一個可能性是入侵某人的電腦,安裝一個竊聽程式(至於如何確實 的入侵某人的電腦,當然我不會告訴你,這超出本份文件的討論範圍)。 UNIX 系統上竊聽程式大多包含在 rootkits 程式內,Windows 下則是 稱為所謂的管理者木馬程式, RATs(Remote Admin Trojans, 像是 BackOrifice)。 理論上,這些程式被用來當作擷取網路封包之用,但通常駭客們都只會 簡單設定成竊聽密碼,再將得到的密碼用電子郵件傳回來。 第 2.5 節包含如何偵測這些竊聽程式的方法,尤其是被安裝在 UNIX 機器上的竊聽程式。 -- * Origin: ★ 交通大學資訊科學系 BBS ★
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
Ethan
版主


發表:101
回覆:170
積分:78
註冊:2006-07-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-11 23:53:24 IP:218.165.xxx.xxx 未訂閱
good ~
引言: 如題,謝謝!
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-29 15:56:34 IP:61.70.xxx.xxx 未訂閱
Sniffing (網路竊聽器, sniffer) FAQ http://www.robertgraham.com/pubs/sniffing-faq.html 發表人 - jackkcg 於 2002/09/29 16:07:10
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
roger128
初階會員


發表:27
回覆:45
積分:25
註冊:2002-08-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-19 10:43:02 IP:61.224.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=22152 範例 →接收或攔截到本機的IP或UDP封包 發表人 - roger128 於 2002/10/19 10:44:22
系統時間:2024-03-29 19:14:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!