Exp3 系統動態監控
1. 實踐目標
1.1是監控你本身系統的運行狀態,看有沒有可疑的程序在運行。shell
1.2是分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具儘可能使用原生指令或sysinternals,systracer套件。網絡
1.3假定未來工做中你以爲本身的主機有問題,就能夠用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行爲與性質。tcp
2. 實驗原理
2.1 惡意軟件會作什麼
- 創建鏈接
- 創建進程
- 建立文件
- 修改內存
- 修改註冊表項。。。
2.2 系統動態監控軟件
- PEID、ExeinfoPE等查殼工具內先查殼,經過入口特徵和區段特徵來識別,而後脫殼。
- TCPView、Wireshark等網絡工具查看是否存在可疑鏈接
- Systracer拍攝快照,比對先後區別,分析改變的註冊表及文件等信息。
3. 實驗步驟
3.1 簡單網絡監控
- 在Windows下打開powershell,輸入一下指令便可查看當前網絡鏈接狀態。
![](http://static.javashuo.com/static/loading.gif)
netstat -bn工具
- 該指令須要管理員權限才能運行。
- 下面讓咱們來使用計劃任務來運行這個命令,首先建立批處理文件。具體一點的:建立記事本,輸入如下指令:
date /t >> c:\netstatlog.txt測試
time /t >> c:\netstatlog.txt加密
netstat -bn >> c:\netstatlog.txt操作系統
- 將記事本重命名爲***.bat文件並另存到好找的目錄下。
- 打開計劃任務,設置觸發器爲每五分鐘啓動一次,無限循環,設置操做爲啓動腳本,在對話框打開剛剛建立的.bat文件便可。(PS:可能須要設置以最高權限運行)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 而後咱們作一個嘗試,作一個後門程序反彈鏈接,能夠看到,在捕獲的鏈接狀態中清楚的體現了出來。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
3.2 sysmon監控日誌
- emmmm這玩意裝了很久...這裏簡單介紹一下艱辛的安裝歷程,首先下載安裝程序、建立配置文件,用++管理員身份++(敲黑板!!!)打開命令行,在正確目錄下輸入
sysmon.exe -i config_file_name命令行
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 簡單歸納一下在我作截屏操做時日誌記錄下了什麼:創建進程->鏈接主機->建立文件->穿透防火牆!
3.3 wirsharke抓包分析
- wireshark是一個強大的抓包軟件,強大到啥包都抓,因此在分析以前須要過濾好IP地址,如下是我推薦使用的過濾條件:
no arp and !(udp.port==53) and ip.addr==主機1地址 and ip.addr==主機2地址
- 上面這句話的意思就是過濾掉ARP包和DNS重定向包,僅僅留下雙方地址爲主機1和主機2地址的數據。
![](http://static.javashuo.com/static/loading.gif)
- 打開後門,反向鏈接,能夠看到,本來空空的數據欄被瞬間填滿,除了一開始創建TCP鏈接時的SYN請求包外幾乎所有是ACK響應包。並且有來有回,我的猜想veil生成的後門程序就是利用這樣的ACK響應包傳送數據!下面咱們來驗證試試。
![](http://static.javashuo.com/static/loading.gif)
- 作截屏、照相、輸出擊鍵這三件事。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 個人天!!!這毫不是個巧合!!!
- 既然肯定了信息就藏在這些包中,那咱們進一步嘗試,看看能不能找出數據的蛛絲馬跡來,咱們鍵入12345678901234567890,抓包看看。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 惋惜,數據包裏的數據很雜亂,雖然出現了咱們想要的通信流量增長的現象,可是並不能讀出什麼來。果真低層的數據包很難懂。
- 不過,能夠得出一些結論:
- 1 正常的wireshark抓包是不會出現單方面從本身主機上瘋狂上傳數據的,若是不是本人操做,那麼頗有可能有問題!
- 2 veil的後門程序一旦創建了tcp鏈接就不會主動退出鏈接,反而是在以不斷的ACK響應包來維持與受害主機的通信,如此大的通訊流量是很容易發現的,這一點若是能夠在感染之初及時注意應該能夠減小損失。
- 3 veil的後門程序是將想要盜取的信息拆分紅ACK應答包藉此躲過殺軟和防火牆的圍追堵截,仍是很隱祕的。
3.4 process explorer監控表
- process explorer是一種詳盡的系統進程監控軟件,足夠把全部的在執行的後門監測出來,這裏咱們先簡單看一看正常狀態下的進程狀況。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 有一個方法——結束咱們懷疑的線程,若是鏈接中斷,那麼那個線程必定就是咱們要找的。
- 猜一個吧,幹掉
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 回去看看鏈接狀態,中斷了。這一點也驗證了咱們的猜測。轉移的進程就藏在這些表面正常的進程中。
- 由此我有這樣幾個感想:
- 1 對於後門程序來講,進程遷移很是的重要,若是不遷移那麼那個後門的進程就傻傻的放在那裏,太招搖了。一旦遷移就會變得隱祕的多。
- 2 進程在遷移後幾乎沒有什麼跡象可以判斷出到底哪個是創建鏈接的進程,
- 3 改變後門的通訊行爲很重要,由於我作了幾遍這個實驗發現全部的後門程序在拷貝進主機以後幾乎都沒有報毒,可是一旦啓動就會被直接幹掉,可能直接從上面咱們分析看到的現象那樣,大量tcp數據包引發了殺軟的注意,因此能夠採用隧道加密等方式下降報毒率。而對作實驗的童鞋們也提個醒,這個實驗成功的一個關鍵就是快,儘快回連,儘快轉移進程,儘快截圖,否則可能作着作着鏈接就中斷了...
4. 實驗感想
- 1 如今的入侵技術愈來愈發達,殺軟每每起不到做用,可是惡意軟件萬變不離其中,只要想在咱們的電腦上偷東西,就必定要從網絡上走,就必定會留下痕跡,就必定會被抓住。最瞭解本身機器的仍是本身,提升防範意識,養成良好習慣。閒的沒事能夠看看防禦日誌,監測一下流量,可能比殺毒軟件跑半天更讓人安心。
- 2 就監測效果而言,仍是動態的監測效果更好,畢竟靜態的特徵匹配如今可能已經有不少的方法去應對,可是就動態監測而言,一個後門想作的事情必然經過那些固定的套路去實現,一旦發現規律仍是很好抓的。
- 3 就進攻而言,不只要注意後門代碼的假裝,更要注意進程和通訊過程的隱藏,也就是儘量的假裝成一個正常的軟件,作正常的事情,這樣才能下降報毒率。