【网路攻防技术】实验五——shellcode编写实验

该博客详细介绍了shellcode的编写过程,包括避免零字节、提供系统调用参数以及利用代码段。通过一系列实验步骤,展示了如何从零开始创建shellcode,并通过实际操作验证了shellcode的正确性和功能,涵盖了从/bin/bash命令到环境变量获取的多种技术。
摘要由CSDN通过智能技术生成

一、实验题目

shellcode广泛用于许多涉及代码注入的攻击中。编写shellcode是相当有挑战性的。虽然我们可以很容易地从互联网上找到现有的shellcode,但是能够从头开始编写我们自己的shellcode总是令人兴奋的。shellcode中涉及到几种有趣的技术。本实验室的目的是帮助学生理解这些技术,以便他们能够编写自己的shellcode。
编写shellcode有几个挑战,一个是确保二进制文件中没有0x00,另一个是找出命令中使用的数据的地址。第一个挑战不是很难解决,有几种方法可以解决它。第二个挑战的解决方案导致了编写外壳代码的两种典型方法。在一种方法中,数据在执行期间被推入堆栈,因此可以从堆栈指针获得它们的地址。在第二种方法中,数据存储在代码区域中,就在调用指令之后,因此在调用调用函数时,其地址被推入堆栈(作为返回地址)。

二、实验步骤及结果

Task1.a: The Entire Process

① 编译mysh.s得到目标代码并连接生成的二进制文件,执行代码:
在这里插入图片描述

② 获取机器码:
在这里插入图片描述

③ 使用“xxd”命令打印二进制文件内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值