20145217《網絡對抗》 惡意代碼分析

20145217《網絡對抗》 免殺原理與實踐

知識點學習總結

進行惡意代碼分析之前必須具備以下知識:編程、匯編/反匯編、網絡基本知識、PE文件結構以及一些常用行為分析軟件。

一、在一個已經感染了惡意代碼的機器上如何找到病毒文件?

  • 找到惡意代碼才能對其分析,找到惡意代碼文件就是就是分析的第一步,一般來講,惡意代碼運行必然會創建一個進程,而這個進程就是我們找到他的突破口,一個打開的進程,可以通過任務管理器、Process Explorer等來找到其映像文件的地址,這樣就能找到惡意代碼文件了

  • 但是,現在的惡意代碼可能其自身的進程隱藏,一般來講,隱藏進程的方式就是“脫鏈”,在PEB中有三條鏈表,其中一條鏈表的指向進程,該鏈表的每一個元素代表著每一個進程,如果想對某進程隱藏,那么進行“脫鏈”即可。

二、如何通過靜態基礎分析獲取一些相關信息?

  • 首先,我們用PEID查看一些基本信息,用PE explorer等軟件查看導入表,一個程序想對你的電腦進行某些操作,那么它必然會調用系統API,而導入表可以告訴我們這個程序調用了哪些API,我們憑借這些導入函數,可以大致猜測一下這個程序作了什么。

  • 可以對我們提供有效信息的不是只有導入表,查看字符串也經常會有一些意外收獲,這個時候我們可以使用微軟提供的控制臺工具Strings查看程序的字符串信息,通過查看字符串,可以獲取很多提示。

三、如何確定惡意代碼究竟干了些什么?

  • 這個時候那就需要用到動態基礎分析了,別猶豫,上虛擬機,跑起來看看吧,跑之前我們先要打開一些行為監控軟件,常用的是微軟提供的Process Monitor、Process Explorer等這些軟件可以監控到注冊表、文件、進程、模塊、網絡、用戶等等等等信息。還可以使用systracer拍攝快照并對比。

  • 很多后門和木馬程序還會采用反彈式連接的方式鏈接到別的主機,這是可以采用nestat、wireshark等抓包工具進行抓包,確定其網絡行為,發現攻擊的主機,后期殺毒再做針對處理。

實驗過程概述

一、virscan掃描結果分析

  • 編譯器:visual C++5.0

  • 兩大主要行為:網絡行為和注冊表行為,反彈連接一個IP并修改注冊列表。

886760-20170328192526873-2118411090.jpg

二、peid掃描結果分析

  • 結果顯然是沒有加殼。在這里我們又見到了編譯器信息。pied能夠顯示反匯編代碼以及一些地址信息,不過最重要的作用還是查殼脫殼,對文件信息的分析不如接下來的兩款PE軟件好用。

886760-20170328193327967-456903860.jpg

三、Dependency Walker掃描結果分析

  • 這個軟件把程序的dll層級調用列出來了,他調用了什么dll,那些dll又調用了哪些文件。

886760-20170328195443592-1825582850.jpg

  • 通過分析可以得到該程序對注冊列表有改動的動作。

886760-20170328195757014-1698063547.jpg

四、PE explorer掃描結果分析

  • 文件頭信息:可以看到文件編譯時間,連接器等信息。

886760-20170328200138576-777380899.jpg

  • 表信息:這里主要查看第二個導入表,即調用了什么dll。

886760-20170328200558670-597980160.jpg

  • 分節信息:缺點是顯示以ascll碼表示,看不出所以然來。

886760-20170328200733108-527535627.jpg

五、systracer分析惡意代碼回連前后情況

  • 運行程序:多了cad5217.exe這樣一個進程。

886760-20170329201526873-583955261.jpg

  • 載入的dll文件:cad5217調用了大量dll文件,很多在之前的引入表中也能看到。

886760-20170329201951811-61265691.jpg

  • 開放端口:可以看到cad5217程序通過tcp連接一個192.168.150.132的443端口。

886760-20170329202151811-1014126913.jpg

六、wireshark分析惡意代碼回連前后情況

  • 我們知道443端口是https服務端口,通常采用ssl/tls安全通信協議。這里的大量ssl包和tcp包數據部分都是亂碼,是經過加密處理的。

886760-20170329202435639-1077289771.jpg

七、TCPview分析惡意代碼回連前后情況

  • 易看出在回連后出現cad5217這個進程,PID為3617,并且具有網絡行為是連接另一臺主機的https端口。

886760-20170329205507826-293794512.jpg

  • TCPview不僅可以查看還可以結束這個進程,還可以告訴你這個程序在你的機器上那個位置,為清除提供方便。

886760-20170329205730373-892535994.jpg

  • 結束進程后,linux這邊顯示程序die了。

886760-20170329205738717-195181409.jpg

八、Process monitor查看惡意代碼回連前后情況

  • 可以看到回連后程序信息,成功運行、日期時間

886760-20170330153907586-422995350.jpg

  • 可以看到父進程PID,查了一下是windows資源管理器

886760-20170330153912180-1148495445.jpg

886760-20170330153916430-800551094.jpg

九、Process Explorer查看惡意代碼回連前后情況

  • 可以看到回連后程序信息

886760-20170329210034217-1772194664.jpg

  • Process Explorer更像一個詳細版的任務管理器,把進程的各種信息都直觀地展示出來。雙擊后可以查看各種屬性。
  • 具有網絡連接行為:

886760-20170329210244983-1292329013.jpg

  • 改程序跟ntdll.dll直接相關。ntdll.dll描述了windows本地NTAPI的接口。是重要的Windows NT內核級文件。

886760-20170329210256811-220933746.jpg

十、netstat查看惡意代碼回連前后情況

  • 可以看到正在聯網到192.168.150.132:443,連接時建立的。這個小程序并不是太好用,雖然可以通過建立新任務的方式讓它在后臺不停地進行記錄,但并不詳細,當有其他程序時顯然用其他程序更好。

886760-20170329215710029-2426127.jpg

  • 還遇到權限不夠的問題

886760-20170329222656811-1159531971.jpg

  • 權限解決:勾選以最高權限運行。

886760-20170330114415733-2045259550.jpg

  • 效果圖

886760-20170330114545045-1836839577.jpg

十一、sysmon查看惡意代碼回連前后情況

  • 安裝失敗了
    886760-20170329222743326-413026648.jpg

886760-20170329222836358-906554330.jpg

轉載于:https://www.cnblogs.com/jokebright/p/6642187.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254951.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254951.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254951.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HALCON示例程序measure_screw.hdev螺紋尺寸測量

HALCON示例程序measure_screw.hdev螺紋尺寸測量 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘screw_thread’) get_image_pointer1 (Image, Pointer, Type, Width, Height) dev_close_window () dev_open_window…

邊工作邊刷題:70天一遍leetcode: day 97-2

Design Hit Counter 要點:因為是second granularity,所以可以用以秒為單位的circular buffer方法。這題簡單在只需要count過去300秒的,增加難度可以count過去秒,分鐘,小時。 2個時間點都有可能更新超時的統計&#xff…

cvRemap 對圖像進行普通幾何變換

cvRemap 對圖像進行普通幾何變換 函數 cvRemap 利用下面指定的矩陣變換輸入圖像:   dst(x,y)<-src(mapx(x,y),mapy(x,y))   與其它幾何變換類似&#xff0c;可以使用一些插值方法&#xff08;由用戶指定&#xff0c;同cvResize&#xff09;來計算非整數坐標的像素值 vo…

disconf(二):服務端使用總結

1、服務端原理客戶端啟動&#xff0c;把配置文件&#xff0c;配置項存到倉庫&#xff0c;等到服務端啟動&#xff0c;從服務端拉取數據&#xff1b;服務端更新&#xff0c;則通過zk通知客戶端&#xff0c;客戶端知道更新后&#xff0c;會從服務端拉取最新的配置文件&#xff0c…

B2C和B2B之間有多大差距

從產品應用的角度&#xff0c;我們團隊經歷了企圖將B2C系統套用到B2B業務流程上的階段&#xff0c;對于自營業務這還勉強可以實施&#xff0c;但對于外部用戶的實施難度就太大了&#xff0c;用戶體驗也不好。這個過程中&#xff0c;我只關注了技術范疇的迭代速度、而忽略了用戶…

h.264 視頻解碼的一點小經驗(ffmpeg)

最近做視頻文件264解碼&#xff0c;由于對這個領域不是很熟悉&#xff0c;感覺困難重重。不過經過不懈的努力&#xff0c;已經取得一些進展&#xff0c;心里感覺特別慶幸。 剛開始做這個的時候&#xff0c;由于不熟悉&#xff0c;就在網上搜尋資料&#xff0c;網絡上的資料雖然…

HALCON示例程序novelty_detection_dyn_threshold.hdev紗網缺陷檢測

HALCON示例程序novelty_detection_dyn_threshold.hdev紗網缺陷檢測 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_window (‘off’) read_image (Image, ‘plastic_mesh/plastic_mesh_01’) dev_close_window () get_image_size (Image, Width…

配置云服務器 FTP 服務

自己配置的環境: OS: 阿里云 CentOS 6.5 >>Begin: 1. 登錄到阿里云服務器(如何登錄阿里云服務器), 在root權限下, 通過如下命令安裝 vsftp [rootVM_250_202_tlinux ~]# yum install vsftpd 2. 在啟動vsftpd服務之前&#xff0c;需要登錄云服務器修改配置文件&#xff0c;…

【躍遷之路】【428天】程序員高效學習方法論探索系列(實驗階段185-2018.04.09)...

(躍遷之路)專欄 實驗說明 從2017.10.6起&#xff0c;開啟這個系列&#xff0c;目標只有一個&#xff1a;探索新的學習方法&#xff0c;實現躍遷式成長實驗期2年&#xff08;2017.10.06 - 2019.10.06&#xff09;我將以自己為實驗對象。我將開源我的學習方法&#xff0c;方法不斷…

opencv中的一些陷阱 坑死我了~~~~(_)~~~~

1.這幾天被opencv給坑的夠慘&#xff0c;好好的程序&#xff0c;先是因為imread&#xff08;&#xff09;不能讀文件&#xff0c;整了很久沒整出來&#xff0c;然后改了下path路徑&#xff0c;沒想到后面徹底奔潰了&#xff0c;&#xff0c;&#xff0c;&#xff0c;前后大概2天…

一篇需要膜拜的文篇--Javascript異步編程模型進化(轉)

要我能用得這么熟&#xff0c; 那前端出師了哈。 http://foio.github.io/javascript-asyn-pattern/ 改天一個一個親測一下。 Javascript語言是單線程的&#xff0c;沒有復雜的同步互斥&#xff1b;但是&#xff0c;這并沒有限制它的使用范圍&#xff1b;相反&#xff0c;借助于…

很強大的FFMPEG API Documentation

http://wiki.aasimon.org/doku.php?idffmpeg:ffmpeg 點擊打開鏈接

HALCON示例程序obj_diff.hdev算子obj_diff 的使用

HALCON示例程序obj_diff.hdev算子obj_diff 的使用 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 read_image (Image, ‘particle’)二值化 threshold (Image, Region, 57, 255)分割連通域 connection (Region, ConnectedRegions) dev_close_window () get…

JS函數方法Call Apply Bind運用

JS 函數非繼承的call和apply方法 同&#xff1a;call & apply 主要是用于擴展this指向&#xff0c;降低this作用域與函數之間的耦合度&#xff1b; 區別&#xff1a;傳參差異 function.call(this/object,params1,params2,...) 第一個參數為作用域指向參數&#xff0c;后邊參…

IplImage, CvMat, Mat 的關系和相互轉換 再次理解 /(ㄒoㄒ)/~~

opencv中常見的與圖像操作有關的數據容器有Mat&#xff0c;cvMat和IplImage&#xff0c;這三種類型都可以代表和顯示圖像&#xff0c;但是&#xff0c;Mat類型側重于計算&#xff0c;數學性較高&#xff0c;openCV對Mat類型的計算也進行了優化。而CvMat和IplImage類型更側重于“…

HALCON示例程序optical_flow.hdev如何使用optical_flow_mg計算圖像序列中的光流以及如何分割光流。

HALCON示例程序optical_flow.hdev如何使用optical_flow_mg計算圖像序列中的光流以及如何分割光流。 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () dev_close_window () read_image (Image1, ‘xing/xing000’) dev_open_window_fit_ima…

數字信號處理原理

關于傅里葉變換的解釋&#xff0c;在下面的鏈接&#xff1a;http://blog.jobbole.com/70549/ 。講的挺詳細的&#xff1a; 注意點&#xff1a; 1、信號處理基于這么一個概念&#xff0c;待處理的信號&#xff08;&#xff1f;&#xff09;都可以分解為正弦波&#xff0c;不同…

webpack的一些常用配置 (轉)

webpack 的配置文件就是 Node 的一個模塊&#xff0c;它導出的將是一個對象 module.exports {entry: ./entry,output: {path: path.resolve(__dirname, dist),filename: bundle.js} }如果直接使用 webpack 來執行編譯&#xff0c;webpack 默認讀取的是當前目錄下的 webpack.co…

CvMat,Mat和IplImage之間的轉化和拷貝

1、CvMat之間的復制 //注意&#xff1a;深拷貝 - 單獨分配空間&#xff0c;兩者相互獨立 CvMat* a; CvMat* b cvCloneMat(a); //copy a to b 2、Mat之間的復制 //注意&#xff1a;淺拷貝 - 不復制數據只創建矩陣頭&#xff0c;數據共享&#xff08;更改a,b,c的任意一…

HALCON示例程序particle.hdev測量小圓部分

HALCON示例程序particle.hdev測量小圓部分 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () dev_close_window () dev_open_window (0, 0, 512, 512, ‘black’, WindowID) set_display_font (WindowID, 14, ‘mono’, ‘true’, ‘false’…