吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 55440|回复: 106
收起左侧

[漏洞分析] Freefloat FTP Server 1.0 溢出漏洞分析(适合新手)

  [复制链接]
giantbranch 发表于 2016-11-22 21:44
本帖最后由 giantbranch 于 2016-11-23 13:19 编辑

我是一个新手,所以找了个适合新手的漏洞....
我的原文:http://blog.csdn.net/u012763794/article/details/53291788(本来是word文档的,辛苦地写在博客上,粘过来吾爱也方便了)

没有漏洞软件怎么行呢对吧
freefloatftpserver1.0.zip (20.95 KB, 下载次数: 371)

其实这是一个非常简单的漏洞,就是栈溢出
当时来源于一个特殊的面试,问我分析过二进制漏洞没有,我说没有,叫我去分析一个,那我就在exploit db搜寻栈溢出,终于找到一个简单的了,就是这个
环境
xp sp3 英文版(就是metasploit魔鬼训练营的xp环境)
攻击环境:kali 2.0
工具及插件:
IDA
ImmunityDebugger
https://github.com/corelan/mona
pwntools
漏洞软件:freefloatftpserver1.0

一个新手学着分析的过程
下载漏洞程序打开,可以看到已经监听21端口,程序看着也应该简单
2.png
玩一下ftpfuzz
3.png

确实可以溢出,挖洞还是fuzzing牛啊
4.png

利用mona插件查看modules信息,XP还没有搞ASLR吧(ASLR 在 XP 时代已经提出来了,但 XP 上的ASLR 功能有限,只是对 PEB 和 TEB 进行简单的随机化处理。直到 Windows Vista 出现之后 ASLR 才真正发挥作用。)
5.png

DEP默认只针对windows自带的程序和服务(第一次还是简单点比较好)
6.png

查找jmp esp(因为知道要用,所以先查找了
7.png

选 kernel32的吧7C86467B  FFE4             JMP ESP利用pwntools编写脚本尝试攻击(其实那个ftp命令只要是无关紧要,随便搞个命令都可以溢出,不过返回地址有差异而已)
8.png

成功溢出
9.png

通过栈上的一些返回地址(这就是栈回溯吧),找到了ftp给客户端返回欢迎信息的地方,这是nmap等扫描器指纹识别的字符串
10.png

下断点。运行,发payload,断下来单步,跟着又弹异常
11.png

继续在这个函数下断,重来一遍,f7跟进,继续单步,看到接受我们输入的recv函数
12.png

继续,看到判断用户传的命令是否有回车的代码(跟0d,0a比较)
13.png

继续下断点,重复上面步骤
14.png

调试发现,不断去跟ftp的各种命令去比较
15.png

查看ida的话也印证了这一点
16.png

跟着比较完都不匹配,就会返回ftp服务器不明白这个命令
17.png

继续,又出现了
18.png

最终发现就是00402de这个函数有问题,查看此时的堆栈信息,我们的输入传进去了
19.png

跟进去里面有个strcpy的代码--à rep movsd
20.png

Ida查看更清晰,这个跟基础的pwn题一样………
21.png

看看变量地址
22.png

那么填充字符数量是252,因为这里没用ebp来索引 ,所以不用加上ebp
23.png

修改下代码,‘FEAT加个空格已经6个字符,所以我们补246个A就行了

当然不用计算也是可以的,mona生成一些测试样例,用于定位返回地址的

24.png .
25.png
26.png

跟我们计算的一样的
27.png

搞个abcd看看对不对
28.png

实验可以知道计算没错
29.png

那我们尝试发送一个弹窗的shellcode过去看看
30.png

直接看结果吧返回jmp esp的地址
31.png

至少要搞8个垃圾字节啊
32.png

实验成功
33.png

总结
漏洞原因是,ftp服务器会将用户的输入复制到一个缓冲区,目的是拼接上一些用户提示信息返回给用户,使用了strcpy函数,没对长度进行检查,导致缓冲区溢出。
参考资料:
Exploit db有好几个洞实质都是一样的,不知道为啥搞了这么多上去

1.png

https://www.exploit-db.com/exploits/17550/
https://www.exploit-db.com/exploits/22351/
https://www.exploit-db.com/exploits/23243/
http://hacksys.vfreaks.com/research/freefloat-ftp-server-buffer-overflow.html

点评

虽然看不懂,但是感觉可厉害了。支持下!!  发表于 2016-11-27 20:47

免费评分

参与人数 30吾爱币 +6 热心值 +30 收起 理由
醉迷清风 + 1 + 1 用心讨论,共获提升!
ayaoko + 1 + 1 热心回复!
yuxing818 + 1 + 1 热心回复!
janms6718 + 1 + 1 我很赞同!
VIP中P + 1 + 1 用心讨论,共获提升!
白笙 + 1 + 1 虽然看不懂,但是感觉可厉害了。支持下!!
greedysoul + 1 谢谢@Thanks!
LZ旋律 + 1 顶~~
Git_man + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
94祥 + 1 我很赞同!
Zcj1021518353 + 1 我很赞同!
枫恋蓝点 + 1 用心讨论,共获提升!
LHQ + 1 虽然看不懂,但是感觉可厉害了。支持下!!
kendling + 1 学习了,很好的入门文章!
a5112075 + 1 用心讨论,共获提升!
six666 + 1 我很赞同!
大笨猫366 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Lbf + 1 我很赞同!
Lucas丶 + 1 已答复!
Daemon + 1 热心回复!
howsk + 1 漂亮的溢出!
goodboy_wkx + 1 学习了。不过有些地方还是有点看不懂。
KaQqi + 1 热心回复!
峰生水起之林 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
丧小心 + 1 用心讨论,共获提升!
poli + 1 向帮助新手的楼主致谢
Ju5td0 + 1 谢谢@Thanks!
w2010d + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
旧念何挽 + 1 我很赞同!
nange3280 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

t895073 发表于 2018-1-4 01:27
学习了。不过有些地方还是有点看不懂......
 楼主| giantbranch 发表于 2016-12-14 10:39
靓仔陈 发表于 2016-12-14 10:03
这也叫新手,,都看不懂。

这里所说的新手呢,是已经懂得基本的调试,栈溢出的原理(比如0day2里面的栈溢出的利用),操作系统基础等的人,但是呢又找不到实例,这就是现实中存在的一个简单的实例
nange3280 发表于 2016-11-22 22:01
旧念何挽 发表于 2016-11-22 22:07
谢谢楼主分享
小童网络 发表于 2016-11-22 22:08
支持支持啊
头像被屏蔽
大象无形 发表于 2016-11-22 22:36
大神一出手就是不同凡响!
yanghui1989 发表于 2016-11-23 00:49
感谢楼主分享,学习中!
30岁的处女座 发表于 2016-11-23 08:12
感谢分享,学习一下
Hmily 发表于 2016-11-23 11:56
@giantbranch 帮你把帖子编辑了下格式,最好能把图片上传论坛本地,防止什么时候因为盗链或者原站挂了看不了了,加精鼓励一下,期待以后能分享更高技术的分析文章。
mj7089471 发表于 2016-11-23 12:15 来自手机
还有很长的路要走
true2008 发表于 2016-11-23 12:23
谢谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 18:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表