【趣事】一根網線發起的攻擊
剛上大學沒多久,就遇到件頭疼事。
富二代們剛來就帶著膝上型電腦,這讓咱們只能玩手機的屌絲輩們羨慕嫉妒恨。要命的事來了,晚上斷電不斷網,於是熄燈後筆記本仍然可以玩。
不巧的是,我們寢室也有個。常常熄燈後,非得把電池用乾淨才罷休。邊遊戲邊語音,還放著音樂,備受煎熬。雖經勸說有所好改,但過不了幾天又會復原。
為了迫切改變這個狀況,但又不想和新認識的同學扯,於是決定用技術方案解決。
可當時的家當只有一部諾基亞滑蓋手機,沒有裝備一切都是空談。唯一可行的,只有偷偷在他電腦裡設定個計劃任務,晚上自動關機。但那樣萬一發現了更不好,根本沒有技術含量。
無奈,只能把目光轉移到電腦之外,網路上。如果不能上網,就算電腦能用,也不至於熬夜玩單機遊戲吧。
既然剛來時他的網線插口就能用,想必我這兒的也有訊號。上一屆的肯定都開通過,總不至於走了以後還封掉。趁著有天寢室沒人,我把那筆記本的網線拖到我這邊一試,果然有訊號!頓時來了精神,感覺有希望了!
也許你會說,總不可能把網線連到諾基亞上,然後用什麼惡搞軟體吧~ 當然不可能,那時的手機哪有這麼先進。
事實上,我們不用任何軟!件!,甚至可以不用硬!件! —— 除了一根網線之外。
要說如何玩轉網線,還能從一年前安裝機頂盒的那天說起。
曾有段時間,很多城市開始流行起數字電視。我們這也不例外,挨家挨戶的贈送機頂盒,還免費上門安裝。華數電視本來就和網通是一家,數字電視當然就是共享網通的寬帶了。
由於之前已開通了網通,這次又要給機頂盒連網,我想至少得送個交換機才行吧。然而,安裝的師傅一進來,既沒掏出交換機、甚至連集線器也沒有,反而一剪刀把網線給割了!
當時就驚呆了,這究竟是搞哪門子鬼。儘管那時對網路鏈路協議有些瞭解,還用 WinPCap 寫過一些免費上網的小程式,但物理層上的卻是一竅不通。那師傅不慌不忙的說,網線只要四個就夠了,還有些就是備用的。於是從之前的線裡,拆了四根給機頂盒。
這大出之前所料,居然沒用任何裝置就把機頂盒接上了!於是,又開始異想天開了。。。
這分出來的兩股,在交換機來看是不是兩個獨立使用者?如果把他們接在一起,效果和一線插兩口相同嗎?能一樣短路區域網嗎?
懷著興奮的心情一測,果然可以!真把整個小區的網路搞掛了!
在恢復之後很長段時間裡,一直撥不上號。在嗅探器裡發現好多鄰居們的也在不斷的撥號。顯然,剛剛那接通兩個 4 股線,把外部的 STP 包也轉發了,導致小區網路被外部隔離了。
這一天,改變了之前的看法。原來只需一根網線,就可以來一次 VLAN 風暴!
為什麼一根網線插交換機的兩個口會產生風暴?因為交換機會把發往廣播地址的包,轉發到所有介面上。如果有兩個介面迴路了,一旦出現廣播包,就會彼此不斷迴圈傳送,耗盡整個裝置的頻寬。別小看交換機,它天生就是為發包設計的,風暴能把每個介面都佔滿,打出背板頻寬的流量。STP 協議就是為了解決這個問題,進行迴路檢測。
儘管瞭解了這個新技能,但物理層的知識基本派不上用場,也就淡忘了 —— 直到來到大學後,發現寢室座位下有訊號的那天。
根據回憶,寢室之間還打過局域網遊戲,顯然這不是獨立的網段,於是更加信心滿滿了!
立即找來一根網線,減掉一邊的水晶頭,刮掉外皮,然後把對應的四股兩兩粘上。果然,附近的寢室開始傳來 —— 不,先是寂靜了幾秒,接著陸續傳來的尖叫聲,吼聲。“卡了!”,“誰掉了?“,什麼情況?”,“靠,斷網了~~~”。。。
跑出走廊一看,整棟樓都暴動了!原來這寢室樓根本就沒劃 VLAN,所有幾百號寢室都是連在一起的!!!
這時既興奮又擔心。興奮的是,以後有了電腦可以抓上千人的流量了。擔心的是,現在只想惡搞自己寢室,不想牽扯所有人。
不過不管怎樣,行動還是繼續。
這時技術上已無大礙,就差實施了。如何從容而又隱蔽的操作呢?
為了不暴露沒電腦還插著根網線那麼荒唐,於是儘量沿著有遮擋的櫃子佈線,從衣櫃後一直拖到床鋪。剩下的水平部分就埋在床邊的縫隙裡,並用席子蓋著。
整個佈局不湊近仔細看,根本發現不了~
當晚熄燈後,夜貓子們又開始蠢蠢欲動了,我也迫不及待的開始試驗。和其他幾個同學一樣,假裝在玩手機,實際已開始悄悄的接線,頗有地下情報員的感覺。
當搭上最後一股時,流暢的遊戲聲立即出現了卡頓。畢竟整棟樓都在這個 LAN 裡,廣播包的數量是相當多的。
只聽得遊戲剩背景音樂,卻沒有音效了!
想著 100Mbps 的流量從手中捏著的網線穿過,彷彿看見密密麻麻的 ARP、NetBIOS 在黑暗中閃過 —— 還有那少得可憐的、被擠掉的遊戲資料包。
下午的騷動又一次爆發了。儘管熄燈後少得多,但在夜晚的環境裡,顯然越發清晰。
被斷開的大多不甘心,還想繼續玩。這一次,不打算這麼暴力了,萬一觸發了迴路檢測,說不定整樓就被封了。
於是,改成搭上幾秒,斷開。再搭上、斷開。。。遊戲雖能執行,但不斷陷於卡頓之中。沒多久,傳來一陣陣溫馨的關機聲,紛紛洗洗睡了。
首戰告捷!終於睡了個好覺。
改良 v1
剛開始的幾天裡,效果非常理想,大家都乖乖的提前睡覺了。
不過沒多久他們就發現,網路過會就會恢復的。原因很簡單,哥睡著前就把線放開了,於是他們又開始了瘋狂。
在迷迷糊糊睡夢中,要把網線重新搭上會困難的多。經常把不相干的也纏在了一起,結果就沒效果了。
於是,需要一次使用者體驗上的改進。
事實上,其中三股線都是事先粘好的,實際就控制一股而已。不如把那三股都提前隱藏起來,只留一股在身旁,這樣就不會搭錯了。
換了根網線重新制作。這次,直接把其中 3 股用膠布粘好,藏在衣櫃後面,只留一股拖上來。線路也細了不少。
這樣,就和電路開關一樣了。總共就兩根線,碰上或分開就行。
即使在睡夢中,也只需動動手指,就能輕鬆自如的集體斷網了!
改良 v2
不過這麼簡陋的裝置,總會有操作失誤的時候。
在一個週末的半夜,被通宵的吵醒後,狠狠的搭上了網線,然後繼續睡。沒想到這一次太困,直接沉睡了過去。直到早上 10 點多,才被一陣急促的敲門聲驚醒。
原以為是隔壁同學故意騷擾,但一直持續不斷,只好無奈起床開門。開啟後,發現進來一個揹著工具包的大叔。這時,才猛然意識到,搭著的網線忘了斷開了!!!整整斷了一晚,都查上門來了!
這時也來不及收拾了,心想這回終於要露陷了。不過那師傅一眼掃去,發現我們桌子上都是乾乾淨淨的,啥也沒有。唯獨敞著個筆記本,而且還沒關機。於是上前拔掉了網線,然後走了。
僥倖躲過了這一劫,迫切需要改進了。
如果能睡前開啟,睡著後自動關閉,那就十分理想了。再也不用睡夢中用意念去斷開了。
於是打算做一個有彈性的開關,必須按著才會開啟,鬆開就關閉。這樣睡著後身體放鬆就自動斷開了。
經過一番改進,把開關做得無比隱蔽:把兩根線塞到一個襪子中,裡面塞了棉布等等有彈性的東西。正常情況線路是分開的,但輕輕往下壓就會搭住,放開後又恢復正常。
不過襪子捏手裡也怪怪的,於是就藏到腳後頭。至此,每當夜晚吵鬧時,只要腳趾頭稍稍踮一下,周圍的氣氛就立即變得格外安靜。
到此,總共花了兩塊錢打造的裝備,能讓腳趾來控制上千人的網路狀態,簡直太有成就感了:)
沒多久,大家似乎發現了規律,只要聲音太響網就會卡,但無奈又找不到原因。於是都變得乖乖的安靜上網了。
當然,這裝置只投入使用了半年。第二個學期大家都裝了電腦,於是一起愉快的通宵上網了。
相關推薦
【趣事】一根網線發起的攻擊
剛上大學沒多久,就遇到件頭疼事。 富二代們剛來就帶著膝上型電腦,這讓咱們只能玩手機的屌絲輩們羨慕嫉妒恨。要命的事來了,晚上斷電不斷網,於是熄燈後筆記本仍然可以玩。 不巧的是,我們寢室也有個。常常熄燈後,非得把電池用乾淨才罷休。邊遊戲邊語音,還放著音樂,備受煎熬。雖經勸說有所好改,但過不了幾天又會復原。 為了
【趣事】用 JavaScript 對抗 DDOS 攻擊 (下)
對抗 v2 之前的那些奇技淫巧,純屬娛樂而已,並不能撐多久。 但簡單、好玩,似乎這正是對抗的樂趣。之前從未想過,居然還能把指令碼黑科技,用在網路防禦上。 於是,又陸陸續續對抗了一段時間。 直到興致淡卻,懶得再頻繁升級了,於是換上一個更復雜的指令碼。其中打包了大量的演算法庫,光是程式碼,就能嚇退一些密集恐懼症
【趣事】用 JavaScript 對抗 DDOS 攻擊
繼續趣事分享。 上回聊到了大學裡用一根網線發起攻擊,今天接著往後講。 不過這次講的正好相反 —— 不是攻擊,而是防禦。一個奇葩防火牆的開發經歷。 第二學期大家都帶了電腦,於是可以用更高階的方法斷網了。但裝置先進反而沒有了 GEEK 的感覺。於是,決定做些其他更有意義的事。 一天,幾個好友在吐槽,他們的遊戲伺
【故障】我只是插了一根網線,全網中斷!?
請及時關注“高效運維(微信ID:greatops)”公眾號,並置頂公眾號,以免錯過各種乾貨滿滿的原創文章。 作者簡介 趙舜東 江湖人稱趙班長,曾負責武警某部指揮自動化架構和運維工作,2008年退役後一直從事網際網路運維工作。UnixHot運維社群創始人、《SaltStack入門與實踐》作者。 引
【科技】原根的快速判斷方法以及對1求離散對數的另一種想法
鑑於實際需要,本文中所選的模數$p$總是一個平凡質數,並用$\phi$表示$\phi (p) = p - 1$。 原根的定義: 基於$p$是質數,我們可以很簡單的把它的定義想成,如果一個數$a \in [0, p - 1]$是原根的充要條件是對於$x \in [0, p - 2]$,$a^{x}$互不相同
【Java】一臺服務器配置多個Tomcat
shu 找到 通過 下載 ref connect 解決方案 .gz header 需求緣由 最近接收了一個新的工具業務:ipublish發布系統,剛接手這個業務的時候,發現每次發布新的代碼 需要到群裏告知大家,我要停服務幾分鐘,準備更新代碼啦。這尼瑪 哪個公司
【模板】一坨數學算法
bool logs gcd open hide false 技術分享 bre 歐幾裏得 求GCD 1 int gcd(int a,int b){return !b ? a : gcd(b,a%b);} 線性篩求[1,n]的質數 1 bool ispr
【轉】一款開源免費跨瀏覽器的視頻播放器--videojs使用介紹
med padding 網站 最新代碼 html 但是 videojs let live 特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處:http://www.cnb
【堆】小根堆模板
esp printf 最小值 namespace 記得 class queue 二叉 %d 手寫堆 可以視作是一種完全二叉樹結構 #include<iostream> #include<cstring> #include<algor
【模板】小根堆
names ret %d opened code spa ace cnblogs 一個空格 因為根的實現方法(優先隊列)默認為大根堆,即從大到小排列,所以在需要的時候需要手寫小根堆。 題目描述 如題,初始小根堆為空,我們需要支持以下3種操作: 操作1: 1 x 表示將x插入
【Muduo庫】【base】一、Timestamp類
second 一個 macro fin ftime mac cat gap base 一、Timestamp類 1、類圖如下: 2、 知識點 (1) 這個類繼承了 muduo::copyable, 以及 boost::less_than_comparable.
【轉載】一張“神圖”看懂單機/集群/熱備/磁盤陣列(RAID)
mpp bz2 wap 轉載 另一個 clu 提供服務 dsd otto 單機部署(stand-alone):只有一個飲水機提供服務,服務只部署一份 集群部署(cluster):有多個飲水機同時提供服務,服務冗余部署,每個冗余的服務都對外提供服務,一個服務掛掉時依然可
TDD學習筆記【六】一Unit Test - Stub, Mock, Fake 簡介
-i moc load customers eight foreach 存在 執行 repo 這篇文章簡介一下,如何通過 mock framework,來輔助我們更便利地模擬目標對象的依賴對象,而不必手工敲堆只為了這次測試而存在的輔助類型。 而模擬目標對象的部分,常見的有
【轉】一顆小小的退耦電容,引發的糾結!
lan data qpi 先來 AD src PC 作用 HA 一顆小小的退耦電容,引發的糾結,首先來說說退耦電容的布局布線,下圖中a-e都不對?什麽原因? 如上圖,這種位置的電容,一般有兩個作用。 一是為IC電源提供瞬間工作所需的大電流(也有的叫旁路) 二是作為
【nginx】一臺nginx服務器多域名配置
oar html highlight name nbsp www spa -h dex Nginx 多域名配置 nginx綁定多個域名可又把多個域名規則寫一個配置文件裏,也可又分別建立多個域名配置文件,我一般為了管理方便,每個域名建一個文件,有些同類域名也可又寫在一個總的配
【Java】一維數組
div bsp exceptio 異常 read exc linear void ava /* 1.演示初始化一維數組的三種方法 2.演示數組的 length 屬性,用 length 獲取數組長度 */ public class linear_array { p
【書摘】一種基於Git的版本管理方案
功能 前端 需要 bug evel 熱修復 per person feature 本篇摘錄自《前端工程化體系設計與實踐》一書,筆者認為是一套相對合理的方案,建議團隊可以根據實際情況進行調整並增加協作命名規範。 master分支——主分支 存儲已發布版本的源碼,不能在此
【JDBC】一、JDBC連接數據庫
connect cti close 一個數據庫 odin forname pass lock catch 1 package com.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverMa
【收藏】一篇快速幫企業轉型區塊鏈的錦囊
不同 標準 兼容 決定 開發環境 評估 去中心化 舉例 狀態 無論對於哪一項技術來說,衡量技術成熟的標誌都在於這項技術的最終落地。對於區塊鏈這個行業來說,大家最關心的莫過於,什麽樣的企業適合踏入區塊鏈這個領域?以及什麽樣的應用可以解決當下企業、用戶遇到的一些問題。在10月1
【wtfPython】一組有趣的、微妙的、複雜的Python程式碼片段
原作者:董偉明 (Dongweiming) 原文連結:推薦wtfPython: 一組有趣的、微妙的、複雜的Python程式碼片段 本文有細微改動 wtfPython 1 就是「What the f**k Python?」的意思,這個專案列舉了一些程式碼片段,可能結果和你想到的是