Rex:堆栈溢出会自动利用 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

Rex:堆栈溢出会自动利用

申博_安全防护 申博 225次浏览 已收录 0个评论

0×00 vuln_stacksmash 栈溢出破绽  

运用 radare2 扼要剖析 vuln_stacksmash。vuln() 函数中,挪用 read(int fd, void * buf, size_t count) 时未搜检缓冲区巨细,致使栈溢出。

Rex:堆栈溢出会自动利用

运用 GDB 调试 vuln_stacksmash,运转至溢出点,顺序状况以下:

Rex:堆栈溢出会自动利用

盘算偏移为 0×44,组织 PoC 并输入。单步实行并搜检栈帧状况,可见 EBP 已被 “\x41\x41\x41\x41” 掩盖,后续四个字节为 EIP 值,已被掩盖为 “\x42\x42\x42\x42”。

Rex:堆栈溢出会自动利用

跟踪至 vuln() 返回,触发异常,EIP 被劫持为 “\x42\x42\x42\x42”。

Rex:堆栈溢出会自动利用

上文扼要剖析了 vuln_stacksmash 中存在的栈溢出破绽,下文将引见怎样应用 Rex 自动天生 Exploit。

0×01 Rex 剧本

Rex 的完成基于 Angr,重要接纳夹杂符号实行手艺,对道理感兴趣的同砚能够浏览论文 《(State of) The Art of War: Offensive Techniques in Binary Analysis》。因为封装的缘由,团体代码看起来较为简约,从破绽复现、破绽范例剖断、Exploit 天生到 Exploit 有效性考证,总计 10 行代码。个中,Crash 类用以复现破绽并返回破绽范例,Exploit 类用以剖断破绽的可应用性,并天生 Exploit。171 ~ 174 行用以考证 Exploit 的有效性。

Rex:堆栈溢出会自动利用

0×02 破绽复现

Rex 在完成夹杂符号实行时,起首运用 QEMU 举行 Concrete Execution,在猎取到 Crash 状况后,运用 Angr 举行 Concolic Execution,相干功用封装在 Crash 类中。

1、Concrete Execution

运用 QEMU 加载 vuln_stacksmash,以 PoC 为输入运转,猎取顺序瓦解时的状况。实行效果以下: 

Rex:堆栈溢出会自动利用

2、Concolic Execution

在猎取到 Crash state 后,基于 Angr 完成 Concolic Execution。起首设置顺序初始状况。

Rex:堆栈溢出会自动利用

Rex:堆栈溢出会自动利用

运用 ‘posix’、’preconstrainer’ 插件辅佐剖析:

Rex:堆栈溢出会自动利用

SimSystemPosix()

————————————-

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

Data storage and interaction mechanisms for states with an environment conforming to posix.

Available as “state.posix“.

SimStatePreconstrainer() 

This state plugin manages the concept of preconstraining – adding constraints which you would like to remove later.

:param constrained_addrs : SimActions for memory operations whose addresses should be constrained during crash analysis

运用 ‘Tracer’、’Oppologist’ 两种 Exploration_techniques:

Rex:堆栈溢出会自动利用

Rex:堆栈溢出会自动利用

设置 simulation_manager :

Rex:堆栈溢出会自动利用

实行效果: 

Rex:堆栈溢出会自动利用

0×03 破绽范例剖断

Crash 类中的 _triage_crash() 要领对破绽范例举行剖断。

Rex:堆栈溢出会自动利用

实行效果为 IP_OVERWRITE:

Rex:堆栈溢出会自动利用

0×04 Exploit 天生

代码中设置了 rop_leak_memory、rop_set_register、 explore_for_exploit 三种应用体式格局。经由过程浏览源码可知,rop_leak_memory、rop_set_register 均是针对 CGC 格式文件的应用手艺。在 Rex 现有的 exploit_technique 中,call_jmp_sp_shellcode、call_shellcode、rop_to_system 三种手艺用以针对 ELF 文件。实行效果以下: 

Rex:堆栈溢出会自动利用

0×05 Verified

对三种天生效果举行确认。

Rex:堆栈溢出会自动利用

Rex:堆栈溢出会自动利用

0×06 小结

经由过程进修 Rex 源码和夹杂符号实行,胜利对栈溢出破绽天生 Exploit。文中所针对的破绽异常简朴,且未触及 ASLR 等平安机制的绕过。因为弟才疏学浅,文中不免存在明白不当之处,望列位师傅批评指正。


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明Rex:堆栈溢出会自动利用
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址