最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C/C++惡意代碼盤點(diǎn)(二):后門丨文件監(jiān)控丨自刪除功能

2022-04-06 16:01 作者:C語言編程__Plus  | 我要投稿

惡意代碼的分類包括計(jì)算機(jī)病毒、蠕蟲、木馬、后門、Rootkit、流氓軟件、間諜軟件、廣告軟件、僵尸(bot) 、Exploit等等,有些技術(shù)經(jīng)常用到,有的也是必然用到。


昨天咱們分享了一部分,那么今天我們就分享其他一些技術(shù),主要包括:后門、文件監(jiān)控、文件自動(dòng)刪除等。

?后門

后門常以套件的形式存在,用于將受害者信息發(fā)送給攻擊者或者傳輸惡意可執(zhí)行程序(下載器),最常用的功能是接收攻擊端傳送過來的命令,執(zhí)行某些操作。

Windows系統(tǒng)中有很多WIN32 API可以執(zhí)行CMD命令,例如system Winexe CreateProcess等。這里介紹通過匿名管道實(shí)現(xiàn)遠(yuǎn)程CMD。

具體過程

1、初始化匿名管道的SECURITY_ATTRIBUTES結(jié)構(gòu)體,調(diào)用CreatePipe創(chuàng)建匿名管道,獲取管道數(shù)據(jù)讀取句柄和寫入句柄。

2、初始化STARTUPINFO結(jié)構(gòu)體,隱藏進(jìn)程窗口,并把管道數(shù)據(jù)寫入句柄賦值給新進(jìn)程控制臺(tái)窗口的緩存句柄。

3、調(diào)用CreateProcess函數(shù)創(chuàng)建進(jìn)程,執(zhí)行CMD命令并調(diào)用WaitForSingleObject等待命令執(zhí)行完。

4、調(diào)用ReadFile根據(jù)匿名管道的數(shù)據(jù)讀取句柄從匿名管道的緩沖區(qū)中讀取數(shù)據(jù)。

5、關(guān)閉句柄,釋放資源。

源代碼實(shí)現(xiàn):

文件監(jiān)控

全局鉤子可以實(shí)現(xiàn)系統(tǒng)監(jiān)控,Windows提供了一個(gè)文件監(jiān)控接口函數(shù)ReadDirectoryChangesW該函數(shù)可以對(duì)計(jì)算機(jī)上所有文件操作進(jìn)行監(jiān)控。在調(diào)用。

ReadDirectoryChangesW設(shè)置監(jiān)控過濾條件之前,需要通過CreateFile函數(shù)打開監(jiān)控目錄,獲取監(jiān)控目錄的句柄,之后才能調(diào)用ReadDirectoryChangesW函數(shù)設(shè)置監(jiān)控過濾條件并阻塞,直到有滿足監(jiān)控過濾條件的操作,ReadDirectoryChangesW才會(huì)返回監(jiān)控?cái)?shù)據(jù)繼續(xù)往下執(zhí)行。

具體過程

1、打開目錄,獲取文件句柄,調(diào)用CreateFile獲取文件句柄,文件句柄必須要有FILE_LIST_DIRECTORY權(quán)限。

2、調(diào)用ReadDirectoryChangesW設(shè)置目錄監(jiān)控。

3、判斷文件操作類型,只要有滿足過濾條件的文件操作,ReadDirectoryChangesW函數(shù)會(huì)立馬返回信息,并將其返回到輸出緩沖區(qū)中,而且返回?cái)?shù)據(jù)是按結(jié)構(gòu)體FILE_NOTIFY_INFORMATION返回的。

調(diào)用一次ReadDirectoryChangesW函數(shù)只會(huì)監(jiān)控一次,要想實(shí)現(xiàn)持續(xù)監(jiān)控,則需要程序循環(huán)調(diào)用ReadDirectoryChangesW函數(shù)來設(shè)置監(jiān)控并獲取監(jiān)控?cái)?shù)據(jù),由于持續(xù)的目錄監(jiān)控需要不停循環(huán)調(diào)用ReadDirectoryChangesW函數(shù)進(jìn)行設(shè)置監(jiān)控和獲取監(jiān)控?cái)?shù)據(jù),所以如果把這段代碼放在主線程中則會(huì)導(dǎo)致程序阻塞,為了解決主線程阻塞的問題,可以創(chuàng)建一個(gè)文件監(jiān)控子線程,把文件監(jiān)控的實(shí)現(xiàn)代碼放到子線程中。

源代碼實(shí)現(xiàn):


自刪除

自刪除功能對(duì)病毒木馬來說同樣至關(guān)重要,它通常在完成目標(biāo)任務(wù)之后刪除自身,不留下任何蛛絲馬跡,自刪除的方法有很多種,常見的有利用MoveFileEx重啟刪除和利用批處理刪除兩種方式。

(1)MoveFileEx重啟刪除

MOVEFILE_DELAY_UNTIL_REBOOT這個(gè)標(biāo)志只能由擁有管理員權(quán)限的程序或者擁有本地系統(tǒng)權(quán)限的程序使用,而且這個(gè)標(biāo)志不能MOVEFILE_COPY_ALLOWED一起使用,并且,刪除文件的路徑開頭需要加上“\?\"前綴。

源代碼實(shí)現(xiàn):



(2)利用批處理命令刪除

del %0

批處理命令會(huì)將自身批處理文件刪除而且不放進(jìn)回收站。

具體流程

1 構(gòu)造自刪除批處理文件,該批處理文件的功能就是先利用choice或ping命令延遲一定的時(shí)間,之后才開始執(zhí)行刪除文件操作,最后執(zhí)行自刪除命令。

2 在程序中創(chuàng)建一個(gè)新進(jìn)程并調(diào)用批處理文件,程序在進(jìn)程創(chuàng)建成功后,立刻退出整個(gè)程序。

源代碼實(shí)現(xiàn):


注:惡意代碼的存在不是由于黑客之類的手段,主要還是我們開發(fā)過程中很多情況會(huì)用到這樣的技術(shù),所以大家請(qǐng)利用技術(shù)做正確的事情!

另外,對(duì)于編程學(xué)習(xí)的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!

微信公眾號(hào):C語言編程學(xué)習(xí)基地

C語言零基礎(chǔ)入門教程(83集全)

整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!

編程學(xué)習(xí)書籍分享:

粉絲編程交流:


C/C++惡意代碼盤點(diǎn)(二):后門丨文件監(jiān)控丨自刪除功能的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
万荣县| 太康县| 鄂尔多斯市| 昌乐县| 阿瓦提县| 宣汉县| 开鲁县| 随州市| 平安县| 平江县| 武隆县| 兴仁县| 噶尔县| 同仁县| 扶余县| 永安市| 肃宁县| 时尚| 太保市| 循化| 宁明县| 汽车| 阜康市| 类乌齐县| 远安县| 三江| 海丰县| 镇江市| 车险| 建始县| 和政县| 乐平市| 尉犁县| 虹口区| 汽车| 博客| 灵璧县| 元江| 沙坪坝区| 辉南县| 同心县|