發現一個木馬,竟然偷傳我珍藏幾十G的視頻!
我是一個木馬程序
我是一個木馬程序,被捆綁在了一個瀏覽器安裝包中,隨著瀏覽器的安裝,我就這么輕易的闖進這臺電腦里了。
我躲在了 temp 目錄下,這里文件眾多,來來往往人多眼雜反而不容易被發現。
沒多會兒,我才發現,好家伙,這臺電腦里可不止我一個木馬,我算是來的晚的了,這電腦主人真是個菜鳥,一點安全意識都沒有!
“喂,新來的,你闖入這里是干嘛的?”,一位個子不大的程序發現了我,我瞅了一眼,差不多20KB上下。
“你是誰,我的任務可不能告訴你”,我回答到。
“別緊張,我也是木馬程序,看你這樣子不說我也猜得到,八成是準備來偷數據的吧?不過我看你是要白跑一趟了,這里除了幾十個G的視頻文件,有價值的啥也沒有”,那小子不屑的說著。
我沒有搭理他,獨自找了個安靜的地方,觀察觀察,見機行事。
端口反彈
時間很快到了晚上,電腦里的程序們一個個的都休息了,CPU總算是空閑起來,我準備好數據和代碼,打算大干一場。
我正忙得滿頭大汗,白天那小子不知啥時候又出現了。
“好家伙,沒看出來啊,你竟然是個挖礦木馬!”,那小子壞笑道。
“噓!小聲點”,我趕緊堵上了他的嘴。
這小子力氣還挺大,奮力掙開,“怕啥,這里沒有殺毒軟件,咱們可以隨便玩!”
“難怪我進來的如此容易,連殺毒軟件都沒有,這電腦主人心也是夠大的!”
說完,我準備監聽一個端口,等待外邊的同伙連進來,保持聯絡。
“你在干嘛?”,小個子問到。
“監聽端口啊,等我的同伙連上來,這樣我們就能搭上線了”
“你這樣不行的,這里雖然沒有殺毒軟件,但還是有防火墻的,外邊輕易是連不進來的。”,小個子說到。
“那咋辦?”
“外面不讓連進來,你可以主動連出去啊!你可以偽裝成瀏覽器,連接你外邊兄弟的80端口,防火墻看到是80,會當做普通的上網請求,一般都會放行的,這種控制端和服務端反向連接的操作,叫做端口反彈,你出來混都沒人教你嗎,就這水平還來當木馬?”
這家伙說的我都有些不好意思了,按照他的建議,我成功連接到了我的控制服務器,隨時等待他給我下發指令。
就這樣保持了幾天,每到晚上空閑時候,我就開始工作,一直非常順利,直到···
DNS隱蔽通信
那天,小個子氣喘吁吁的跑來,告訴了我一個壞消息:“不好了,就在剛剛,電腦主人安裝了殺毒軟件,最近都低調一些,咱們都保持靜默吧!”
我趕緊掐斷了通信連接,不敢輕舉妄動。
一連過了好幾天,我有點著急了,老這么潛伏著也不是辦法,得跟外面取得聯系啊!外面的兄弟肯定急壞了!
小個子看出了我的焦慮,給我出了個點子:“可以試試用DNS協議把數據偷偷傳出去”
“DNS?這怎么傳數據?”
“你可以把數據用base64編碼以后,作為域名字段,通過發送DNS解析請求的方式把數據發出去啊!就像這樣:”,小個子給我畫了個示意圖。
“這一個域名才能傳輸多少數據,你這不行!”,我表示了質疑。
“你笨啊,一個請求不夠,你就多發幾個嘛!”
說的也是,我打算試一下,看看靠不靠譜。
你還別說,我居然成功的把數據傳了出去,不過在殺毒軟件眼皮子底下頂風作案,心里還是挺忐忑的。
ICMP隱蔽通信
這一招用了沒幾天就不好使了,數據老發送失敗,八成是被盯上了,我又找到了那個小個子木馬。
“看來用DNS域名太高調了一點,別著急,還可以用ICMP協議來傳輸。”,這小子又給我出了一招。
“這是啥協議?”
“ICMP(Internet Control Message Protocol)就是Internet控制報文協議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。 你看這是它的數據格式:”
“我知道了,可以在報文的數據部分傳輸我要發送的內容”
“不錯!ICMP這玩意不是傳輸層的協議,不會打開和使用端口,沒那么容易引起關注,連ping程序都是使用它來工作的,你可以冒充成他來偷偷跟外面通信”,小個子木馬非常自信的說到。
這家伙懂的還挺多,按照他教我的,我又用ICMP協議偷偷跟外面聯系上了,希望這一次別再被發現了。
HTTP隱蔽通信
可惜,天不遂人愿啊,這一次比之前管用的時間更短,才第三天就失效了!
“好家伙,這安全軟件可以啊,看來逼我放大招了,咱們這次換成HTTP來傳輸”,小個子木馬說到。
“啥?用HTTP?那不是更容易暴露嗎?”,我問到。
“你不知道,最危險的地方反而是最危險的地方。HTTP流量上網那么大,混在里面不容易引起察覺!況且,我還有絕招呢···”,這家伙故作神秘,話說了一半又咽了回去。
“你快說,可急死我了”,我催促到。
“為了不引起注意,傳輸的數據得做一下編碼處理。HTTP不是基于文本的傳輸協議嘛,咱們可以用tab表示1,空格表示0,這樣就算被抓到了也是一片空白,看不出個啥,怎么樣?”
好家伙,這一招確實很妙啊!
我趕緊把數據重新進行了編碼,封裝在一個又一個的HTTP數據包中,挨個發了出去。
一連過了幾天都沒有被發現,看來這一招還挺好使。
就在我洋洋得意之際,小個子木馬又傳來了一個壞消息:“趕緊找地方躲起來吧,那安全軟件在全盤掃描了···”
我趕緊斷開了所有的通信連接,關閉了所有活動的進程,不知道能不能躲過這一劫~
隱藏是一個木馬最最最重要的能力,沒法隱藏那就是出師未捷身先死。
而隱藏主要包括三個方面:
- 文件隱藏
- 進程隱藏
- 通信隱藏
這篇文章用故事的方式介紹了一些木馬常用的隱藏通信的方式,文章比較簡單,但實際情況遠比這復雜。
在真實應用中,隱藏通信最核心的就是把信息數據隱藏在正常的通信流量中傳遞出去而不被發現,這涉及到網絡協議、加解密技術甚至信息論與編碼知識的綜合運用。
面對文中出現的幾種方式,如果你要來做安全檢測,你打算怎么判定是可疑流量還是正常的通信呢?
本文轉載自微信公眾號「編程技術宇宙」,可以通過以下二維碼關注。轉載本文請聯系編程技術宇宙公眾號。