| 我是一個監(jiān)聽軟件,主人花了好幾個晚上才把我開發(fā)出來,我的使命是監(jiān)聽網(wǎng)絡(luò)中的所有流量然后報(bào)告給他。 那天,主人給要被監(jiān)聽的電腦小白發(fā)了一封電子郵件,郵件中有一個鏈接,小白一點(diǎn)鏈接,我就偷偷的被下載到了這臺電腦上,開始在背后默默的運(yùn)行。 太好了,這臺電腦上居然沒有安全軟件,我可以為所欲為了! 我加載了一個驅(qū)動程序,開始在內(nèi)核中劫持網(wǎng)絡(luò)數(shù)據(jù)包的接收流程,這下,這臺電腦的網(wǎng)絡(luò)通信,我都能捕獲到了! 過了一段時(shí)間,我發(fā)現(xiàn)這個小白的電腦沒有什么有價(jià)值的信息,除了打游戲就是看視頻。 混雜模式那天主人在云端給我下達(dá)了一個指令:打開網(wǎng)卡混雜模式,監(jiān)控局域網(wǎng)內(nèi)所有流量! 我有點(diǎn)不太懂,去請教網(wǎng)卡:“老哥,什么是混雜模式?” 網(wǎng)卡告訴我:“我跟你講哦,正常情況下,收到數(shù)據(jù)包后如果發(fā)現(xiàn)收件人唔系我,我就丟掉咗。開啟混雜模式后,只要收到數(shù)據(jù)包,唔理收件人系唔系我,我都給你提交上來” 好家伙,這網(wǎng)卡還抄著一口廣東腔,難道是華強(qiáng)北產(chǎn)的? “為什么會收到收件人不是你的數(shù)據(jù)包呢?”,我有點(diǎn)好奇。 “這你就不知道了吧,咱們這個網(wǎng)絡(luò)中,所有電腦都連在一個集線器上面,這個家伙可笨了,不管誰給誰發(fā)的消息,他都廣播出去,所以所有人的通信其實(shí)我都能看到,只需要你打開混雜模式就好了” “那別愣著了,趕緊打開吧” 我激動的讓網(wǎng)卡打開了混雜模式,期待監(jiān)聽到別人的通信。 果不其然,一下子就涌來了大量的數(shù)據(jù)包,搞得我措手不及。 我開始認(rèn)真工作起來,解析所有的網(wǎng)絡(luò)通信,把感興趣的提取下來,匯報(bào)給我的主人,主人對我的工作非常滿意。 交換機(jī)就這樣過了好長一段日子,突然有一天,我發(fā)現(xiàn)網(wǎng)絡(luò)通信中沒有了別人的通信,只有小白這臺電腦的流量了,我又找上了網(wǎng)卡。 “老哥,誰把你的混雜模式給關(guān)了嗎?” “沒有啊,你看,這不開著了呢嘛!” “這就奇怪了,為什么看不到別人通信的流量了?” “我也母雞啊,以前經(jīng)常發(fā)生通信沖突,最近這段日子突然也沒有了”,網(wǎng)卡說到。 “通信沖突?什么意思?”,我問到。 “集線器不是會廣播所有通信嘛,我們所有人都相當(dāng)于共用了一個線路,別人傳輸數(shù)據(jù)的時(shí)候就得等著,有時(shí)候發(fā)到半路上才發(fā)現(xiàn)跟別人傳輸?shù)臄?shù)據(jù)沖突了,就得等會兒重發(fā),我們把這叫CSMA/CD,載波偵聽多路訪問沖突檢測,怪拗口的名字” 原來是這樣,但如今這一切都消失了,我感覺事情有些不正常,趕緊把這個消息匯報(bào)給了主人,主人得知以后對我做了升級,讓我潛入這個家伙那里看看到底發(fā)生了什么。 在一個夜深人靜的夜晚,順著網(wǎng)卡老哥連接的那根網(wǎng)線,我偷偷潛入到了網(wǎng)線的那一頭,發(fā)現(xiàn)了一個黑乎乎的大塊頭。 好家伙,這個大塊頭背后有好多網(wǎng)口,連接了好多網(wǎng)線啊,每一個都通向了一臺電腦,在背板的銘片上,我還看到這個大塊頭的名字:交換機(jī)。 我決定躲在一旁,偷偷觀察它是怎么工作的。 只見這個叫交換機(jī)的家伙,拿著一張表格,里面填寫了每一個網(wǎng)卡的MAC地址和對應(yīng)連接的網(wǎng)口,收到數(shù)據(jù)包后,取出數(shù)據(jù)包中的目的MAC地址,再找到對應(yīng)連接的端口,只給這一個端口轉(zhuǎn)發(fā)過去,根本沒有廣播! 這下我總算明白,為什么就算開啟混雜模式,也看不到別人的通信了,都怪這個叫交換機(jī)的家伙,太可惡了! 不過我有點(diǎn)奇怪,他這個表格是哪里來的,怎么知道哪個網(wǎng)卡對應(yīng)哪個端口呢,難不成要人工配置,可要是拔了網(wǎng)線換個口插,那不就出錯了嗎,我百思不得其解,決定再觀察觀察。 這大晚上的上網(wǎng)的人少,網(wǎng)絡(luò)流量也少,這一等竟然就是天亮。 第二天,來了一個新的數(shù)據(jù)包,大塊頭在它的那張表里面沒有找到收件地址,這下有好戲了,看你怎么辦。 沒想到,這家伙竟然學(xué)起了集線器,把這個新的數(shù)據(jù)包給所有端口都下發(fā)下去了,隨后發(fā)現(xiàn)只有一個端口有響應(yīng)包過來,然后就把這個端口和這個收件人地址添加到了表格中!好家伙,還挺聰明,會自己學(xué)習(xí)總結(jié)映射關(guān)系。 因?yàn)閾?dān)心白天被發(fā)現(xiàn),我不敢久留,撤了回去,隨后,我把看到的這些都上報(bào)給了主人,沒多久,主人再一次對我進(jìn)行了升級。 ARP欺騙這一次,我挨個給局域網(wǎng)中的其他電腦發(fā)送ARP報(bào)文,并在報(bào)文中的源IP地址的位置填上了網(wǎng)關(guān)(也就是大塊頭交換機(jī))的IP地址,大伙收到我的報(bào)文后,紛紛把網(wǎng)關(guān)的MAC地址改成了我所在這臺電腦的網(wǎng)卡地址。 好一招偷天換日,所有人都被我蒙在鼓里,他們原來訪問互聯(lián)網(wǎng)要發(fā)給網(wǎng)關(guān)的數(shù)據(jù)包,現(xiàn)在都一股腦兒發(fā)到了我這邊來了,我再轉(zhuǎn)發(fā)給真正的網(wǎng)關(guān),我又一次可以監(jiān)聽所有人的網(wǎng)絡(luò)通信啦! 幸福的日子總是過得很快,沒過多久,我發(fā)現(xiàn)流量又變少了,不知道誰走漏了風(fēng)聲,它們不再把數(shù)據(jù)包發(fā)到我這里來,而是發(fā)給了真正的網(wǎng)關(guān)。而且,不管我怎么發(fā)送ARP報(bào)文欺騙,它們也不再信任我了。 終于有一天,這個電腦小白不知道下載了什么,捆綁安裝了一個361殺毒軟件,我感覺我的日子快到頭了。 我趕緊聯(lián)系主人,報(bào)告我艱難的處境,卻發(fā)現(xiàn)怎么也連不上了···難道主人也被端了?                                 編程技術(shù)宇宙                                       用故事說技術(shù),編程從未如此有趣 186篇原創(chuàng)內(nèi)容 公眾號 | 
|  |