20145219《网络对抗》PC平台逆向破解

20145219《网络对抗》PC平台逆向破解

shellcode注入

1、shellcode

shellcode是一段代码,溢出后,执行这段代码能开启系统shell。

2、构造方法

(1)nop+shellcode+retaddr(适用于缓冲区大的情况)

(2)retaddr+nop+shellcode(适用于缓冲区小的情况)

3、nop+shellcode+retaddr方法

用vim编写一段代码shellcode
884666-20170329210440514-1219386452.png

安装execstack
884666-20170329210557404-551833834.png

设置堆栈可执行
884666-20170329210637592-1544265969.png

查询地址随机化状态(2表示开启,0表示关闭),若是开启状态,则关闭地址随机化
884666-20170329210701404-1655000761.png

采用nop+shellcode+retaddr方式构造payload,其中\x4\x3\x2\x1处是将来要填的shellcode起始地址,最后一个字符不能是\x0a
884666-20170329213018701-158965515.png

打开一个新终端,将payload注入到pwn1中(此处pwn1复制了一份,并命名为20145219pwn)
884666-20170329211040951-2138452697.png

在第一个终端中查询20145219pwn进程的UID
884666-20170329211056342-1575171270.png

保持第二个终端如上图状态,再打开一个新终端,开启GDB,对20145219pwn进行调试

先用attach命令进入对应UID端口,进行追踪
884666-20170329211320170-570302941.png

设置断点
884666-20170329211413420-811007743.png

884666-20170329211349670-433102000.png

在GDB调试出现continue的时候,在第二个终端中敲一下回车,此时,第二个终端如下图,GDB调试也暂停在断点处
884666-20170329211450983-826194768.png

884666-20170329211506779-740396207.png

查看内存地址,最终找到shellcode起始地址为0xffffd300
884666-20170329211639983-1972570309.png

将用nop+shellcode+retaddr方式构造的payload中的\x4\x3\x2\x1改为\x00\xd3\xff\xff,并在再次注入到20145219pwn中,观察结果看到注入失败……
884666-20170329211657154-863582456.png

4、retaddr+nop+shellcode方法

nop+shellcode+retaddr方式的基础上,在构造的payload的最前面,加上\x00\xd3\xff\xff,重新注入到20145219pwn中,观察结果看到注入成功^_^
884666-20170329211733483-439398853.png

参考文献

转载于:https://www.cnblogs.com/20145219songge/p/6641825.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值