封包探嗅器(Sniffer)

封包探嗅器(Sniffer)

www.xker.com 作者:不詳 來源:網絡轉載 加入日期:2005-12-6 12:00:19
 
<script language="JavaScript" src="/ggJs/view300.Js" type="text/javascript"></script>

 

1. 什麼是封包探嗅器 ?23120264395911182538www.xker.com38651142461330643630

封包探嗅器是一種類似於竊聽器的裝置.主要是用來探測網絡上他人的封包內容.就像一個電話竊聽器一樣,可以讓FBI(美國聯邦調查局)去監聽其它人的談話內容..而"封包探嗅器"這個程序乃是讓你去攔截他人的所有封包信息.

無論如何,計算機之間的對談包含了許多看似雜亂的二進制編碼資料,因此網絡封包探嗅器同樣提供了一個叫做"通訊協議分析"的功能,它可以將所有計算機之間所傳遞的封包信息予以譯碼及分析,以利我們更加暸解其封包的內容.

2. 封包探嗅器的用途 ?

封包探嗅器程序有兩個主要的使用領域 ..

商業類型的封包探嗅器通常被使用於網管維護網絡上的通訊是否是正常,另一種就是地下類型的封包探嗅器,主要是被用來入侵他人計算機之用..典型的封包探嗅器程序特徵包括了<1>自動從網絡中過濾及轉換有用的信息,如使用者名稱及密碼,讓駭客或劊客可用於入侵系統之用.<2>將封包資料轉換成人類可易於辨讀的格式.<3>網絡環境中通訊失效分析,例如爲何A電腦無法與B計算機溝通.<4>探測網絡環境下的通訊瓶頸.<5>或者是可用來探測有無駭客存在於網絡上,以防止其入侵.<6>網絡通訊記錄,記錄下每一筆通訊的資料,此記錄可用於暸解駭客入侵的路徑.

3. 封包探嗅器是如何工作的 ?

由於以太網絡是建立在資源共享的概念下,因此所有區域內的計算機都是共享同一條以太網線.這喑喻着所有在這局域網絡內的計算機溝通都可以被探知.另外由於以太網絡卡內建了一個稱之爲"封包過濾器Filter"的功能,它會將不屬於它的封包訊息給忽略掉,也就是它會忽略掉與它MAC(Media Access Control)地址不同的封包.但封包探嗅器的程序則會把這項硬件功能給關閉,並將以太網絡卡設定成"隨機處理模式Promiscuous Mode",也就是不做任何封包的過濾,但前提是要在同一個局域網絡中.

4. 何謂MAC(Media Access Control)

在多部計算機共同分享同一條以太網絡線的環境下,每臺計算機都有一個獨一無二的身份驗證碼,這個身份驗證碼也就是MAC Address(也就是所謂的網絡卡實體地址).當每一片網絡卡被生產出來時,網絡卡生產廠商會付予每片網絡卡一個流水編號,這個流水編號是不可能重複的.其格式看起像是MAC:00-40-05-A5-4F-9D(例子而己,每片網絡卡的實體地址都是不一樣的,除非生產者有特別用途,纔會付予同樣的MAC編號)

5. 以太網絡通訊格式

一個以太網絡通訊封包標頭格式看起來像是..

Destination MAC ->6Bytes

Source MAC->6Bytes

08 00->2Bytes

20Bytes IP Header

20Bytes TCP Header

Packet

CRC->4Bytes

Destination MAC與 Source MAC共有12個字節,也就是每個MAC地址有6Bytes*8Bit=48Bits,..這48個Bits的前24Bits是用來驗證以太網卡的生產廠商,另24Bits則是用來存放由網絡卡生產廠商所指定的流水編號(也就

是MAC編號),這可用來保證世界上沒有任何一片網絡卡擁有同一流水編號,除非廠商另有用途…因此我們給予後面這24個bits一個專有名稱,叫做"Organizationally Unique Identifier",簡稱OUI,翻成中文就是組織化單一驗證碼.其實這個OUI真正也只用到了22Bits,另外的2個Bits是被用來做爲其它目地的用途.1個Bit用來指示假如它是一個"Broadcast/Multicast"地址,另外1個Bit用來做爲假如它的網絡卡被重新指定爲"Locally Adminis-tered Address".

08 00則是指出緊接着的封包格式是TCP/IP型式的封包(不知有無翻譯錯誤,原文爲"The ethertype 0x0800 to

indicate that the other end's TCP/IP stack Should process the frame" ,.TCP及IP的標頭同樣各有20個Bytes存放着IP及TCP層的標頭信息.

它同樣附加了4個Bytes於結尾的Checksun/CRC(一種用來驗證封包資料在傳輸的過程中有無任何資料遺失的方式).然後網絡適配卡把上述的資料以位(0與1)的方式傳送到網絡上,所有在網絡上的其它網絡硬件(包括路由器Router's等硬件)看到這個封包時,首先會去比較這個封包中的Destination MAC地址是否爲自己所吻合的MAC地址.假如不吻合,則丟棄這個封包.這些動作都己在網絡硬件層被執行完成.(也就是你的ISP那邊,因爲你一上網時,你的ISP主機就會將你的MAC地址給記錄下來).當一個Router路由器的以太網絡接口收到這個吻合的封包時,它會將封包由網絡上讀取下來,並且將封包的前14Bytes和封包的後4Bytes給移除掉,它只保留在0x0800後的網絡封包格式資料,並決定是否要不要送到下一個Router去做處理或根據TCP/IP內所指定的地址傳送到正確的目的地(也就是你的計算機上).上述的這些, 應只有擁有Router的機器纔可以看到以太網絡上的封包標頭資料,其它的機器 應該都會忽略掉(Ignore it).

6.何謂通訊協議分析 (Protocol Analysis)?

通訊協議分析是用來進行截取網絡封包並予以解析以得知其封包內容.當一筆封包資料被傳輸上網絡,它是一個己"被封包化"的資料,意思是一筆資料可能被分割成多個封包,並且每個封包都是被單獨的傳送到網絡上,然後由接收端進行封包資料的重組工程.來個範例:你可能從網絡上去下載一個檔案,假如這個檔案有

45000個Bytes(一般典型的封包大小約爲1500Bytes左右),因此這個你要下載的檔案就會被切割成30個封包,並且一一的傳送給你,再由你計算機的網絡層予以組

合成一個完整檔案.

底下是一個範例,這個封包乃是由封包探嗅器所截取而來的.

Offset Hex(16進位值) ASCII值

----------------------------------------------------------------------

000 00 00 BA 5E BA 11 00 A0 C9 B0 5E BD 08 00 45 00 ...^......^...E.

010 05 DC 1D E4 40 00 7F 06 C2 6D 0A 00 00 02 0A 00 [email protected]......

020 01 C9 00 50 07 75 05 D0 00 C0 04 AE 7D F5 50 10 ...P.u......}.P.

030 70 79 8F 27 00 00 48 54 54 50 2F 31 2E 31 20 32 py.'..HTTP/1.1.2

040 30 30 20 4F 4B 0D 0A 56 69 61 3A 20 31 2E 30 20 00.OK..Via:.1.0.

050 53 54 52 49 44 45 52 0D 0A 50 72 6F 78 79 2D 43 STRIDER..Proxy-

060 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D onnection:.Keep-

070 41 6C 69 76 65 0D 0A 43 6F 6E 74 65 6E 74 2D 4C Alive..Content-

080 65 6E 67 74 68 3A 20 32 39 36 37 34 0D 0A 43 6F ength:.29674..Co

090 6E 74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74 ntent-Type:.text

0A0 2F 68 74 6D 6C 0D 0A 53 65 72 76 65 72 3A 20 4D /html..Server:.M

0B0 69 63 72 6F 73 6F 66 74 2D 49 49 53 2F 34 2E 30 icrosoft-IIS/4.0

0C0 0D 0A 44 61 74 65 3A 20 53 75 6E 2C 20 32 35 20 ..Date:.Sun,.25.

0D0 4A 75 6C 20 31 39 39 39 20 32 31 3A 34 35 3A 35 Jul.1999.21:45:5

0E0 31 20 47 4D 54 0D 0A 41 63 63 65 70 74 2D 52 61 1.GMT..Accept-Ra

0F0 6E 67 65 73 3A 20 62 79 74 65 73 0D 0A 4C 61 73 nges:.bytes..Las

100 74 2D 4D 6F 64 69 66 69 65 64 3A 20 4D 6F 6E 2C t-Modified:.Mon,

110 20 31 39 20 4A 75 6C 20 31 39 39 39 20 30 37 3A .19.Jul.1999.07:

120 33 39 3A 32 36 20 47 4D 54 0D 0A 45 54 61 67 3A 39:26.GMT..ETag:

130 20 22 30 38 62 37 38 64 33 62 39 64 31 62 65 31 ."08b78d3b9d1be1

140 3A 61 34 61 22 0D 0A 0D 0A 3C 74 69 74 6C 65 3E :a4a"....

150 53 6E 69 66 66 69 6E 67 20 28 6E 65 74 77 6F 72 Sniffing.(networ

160 6B 20 77 69 72 65 74 61 70 2C 20 73 6E 69 66 66 k.wiretap,.sniff

170 65 72 29 20 46 41 51 3C 2F 74 69 74 6C 65 3E 0D er).FAQ.

180 0A 0D 0A 3C 68 31 3E 53 6E 69 66 66 69 6E 67 20 ...Sniffing.

190 28 6E 65 74 77 6F 72 6B 20 77 69 72 65 74 61 70 (network.wiretap

1A0 2C 20 73 6E 69 66 66 65 72 29 20 46 41 51 3C 2F ,.sniffer).FAQ

1B0 68 31 3E 0D 0A 0D 0A 54 68 69 73 20 64 6F 63 75 h1>....This.docu

1C0 6D 65 6E 74 20 61 6E 73 77 65 72 73 20 71 75 65 ment.answers.que

1D0 73 74 69 6F 6E 73 20 61 62 6F 75 74 20 74 61 70 stions.about.tap

1E0 40 69 6E 67 20 69 6E 74 6F 20 0D 0A 63 6F 6D 70 ping.into...comp

1F0 75 74 65 72 20 6E 65 74 77 6F 72 6B 73 20 61 6E uter.networks.an

....

14Bytes的以太網路標頭值(Ethernet Header)

20Bytes的IP標頭值(IP Header)

20Bytes的TCP標頭值(TCP Header)

之後就是檔案的內容並用一組換行位代表資料結束(0D 0A 0D 0A.因資料太多

所以省略掉不列出來),最後就是Checksum/CRC的4個Bytes.

這是一筆網絡封包的16進位格式資料"Hexdump",一個"Hexdump"共分成三個主要字段,<1>每段資料的位移地址(Offset)

lt;2>16進位格式的資料 <3>ASCII文字

資料.同時檢視16進位值hex及ASCII總比起單獨檢視一種格式好;例如,在這個

封包的標頭欄前14個Bytes以ASCII看起來像是一堆亂碼,但是由hex來看就可

看出是MAC地址.

通訊協議分析程序會把所攔截到的封包以下列的方式逐條列出並予以闡明..

ETHER: Destination address : 0000BA5EBA11

ETHER: Source address : 00A0C9B05EBD

ETHER: Frame Length : 1514 (0x05EA)

ETHER: Ethernet Type : 0x0800 (IP)

IP: Version = 4 (0x4)

IP: Header Length = 20 (0x14)

IP: Service Type = 0 (0x0)

IP: Precedence = Routine

IP: ...0.... = Normal Delay

IP: ....0... = Normal Throughput

IP: .....0.. = Normal Reliability

IP: Total Length = 1500 (0x5DC)

IP: Identification = 7652 (0x1DE4)

IP: Flags Summary = 2 (0x2)

IP: .......0 = Last fragment in datagram

IP: ......1. = Cannot fragment datagram

IP: Fragment Offset = 0 (0x0) bytes

IP: Time to Live = 127 (0x7F)

IP: Protocol = TCP - Transmission Control

IP: Checksum = 0xC26D

IP: Source Address = 10.0.0.2

IP: Destination Address = 10.0.1.201

TCP: Source Port = Hypertext Transfer Protocol

TCP: Destination Port = 0x0775

TCP: Sequence Number = 97517760 (0x5D000C0)

TCP: Acknowledgement Number = 78544373 (0x4AE7DF5)

TCP: Data Offset = 20 (0x14)

TCP: Reserved = 0 (0x0000)

TCP: Flags = 0x10 : .A....

TCP: ..0..... = No urgent data

TCP: ...1.... = Acknowledgement field significant

TCP: ....0... = No Push function

TCP: .....0.. = No Reset

TCP: ......0. = No Synchronize

TCP: .......0 = No Fin

TCP: Window = 28793 (0x7079)

TCP: Checksum = 0x8F27

TCP: Urgent Pointer = 0 (0x0)

HTTP: Response (to client using port 1909)

HTTP: Protocol Version = HTTP/1.1

HTTP: Status Code = OK

HTTP: Reason = OK

儘管通訊協議分析程序所分析出來的資料是難懂的,也需要相當程度的網絡通訊

協議知識去暸解,但無論如何它也提供了一個更易於暸解的信息,這對網管人員來講是有很大的助益去明暸網絡的通訊狀態及試着去排除通訊障礙,甚或是讓駭

客試着去入侵他人的計算機系統.

7.我是否可以更動我的MAC地址 ?

當然,第一..你能夠"Spoof隱藏"你的地址,記住MAC地址只是封包信息中的一部份而己,因此當你送出一個以太網絡封包到網絡上前,你能夠去覆寫你封包中所有的內容,當然使用相當效果的程序也是可以的.第二..大多數的網絡卡允許你去重新組態化"Runtime執行時期"的MAC地址,例如某些網絡卡則提供了直接於WINDOWS的控制檯組態MAC地址的功能.第三..你也能夠重新燒錄新的MAC地址到網絡卡的EEPROM(電子式可抹寫內存)中,但前題是你要暸解你的網絡卡是使用何種規格的網絡芯片組(Chipset),這也將永遠的更改你的網絡卡上的MAC地址.

8.我是否能夠探嗅兩臺計算機間的對談而不連結上他們的局域網絡嗎 ?

(注意這只是針對局域網絡而言,A及B計算機均屬於同一局域網絡)..

例如:A計算機在士林,B計算機在天母,兩臺計算機正在交換封包訊息,而你在桃園..一個距離遙遠的地方(你不是屬於這個局域網絡的一份子),你想要去探嗅他們的計算機..答案是不可能,因爲你必須要是這個局域網絡的一位成員,纔有可能探嗅雙方的封包傳遞(也就是說首先你要先入侵這個局域網絡纔可).

假如你真的是一位技術高超的駭客或劊客的話,底下有二個方法可讓你入侵及探嗅對方,典型的方法如下..

1> 入侵A或B的計算機並且安裝一個可讓你遠程控制的探嗅器軟件.

2> 入侵其局域網絡內的伺服主機並安裝可遠程控制的探嗅器軟件.

9.要如何讓他人無法使用封包探嗅器來得知你的封包內容 ?

你或許可以着手於局域網絡內的預防措施,但你卻很難去防範由外界網絡而來的

探嗅,因此最好的防範措施就是把你的資料加密,讓對方就算攔截到你的封包,也無法進行解密.

以上的文章是由一份外國的FAQ翻譯而來,或許不甚詳盡,但卻有助於對封包探嗅器作動原理的粗略認識.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章