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