《Metasploit渗透测试手册》—第8章8.8节编写FileZilla FTP模糊测试器

简介:

本节书摘来自异步社区《Metasploit渗透测试手册》一书中的第8章8.8节编写FileZilla FTP模糊测试器,作者【印度】Abhinav Singh,更多章节内容可以访问云栖社区“异步社区”公众号查看。

8.8 编写FileZilla FTP模糊测试器
Metasploit渗透测试手册
前面已分析过模糊测试模块的工作过程,本节中将进一步构建自己的小型FTP模糊测试器,用于对FileZilla FTP服务器进行模糊测试。

怎样实现
构建模糊测试器的基本模板与前面开发辅助模块所用的模板类似,基本模板应具有如下的形式。

require 'msf/core'
class Metasploit3 < Msf::Auxiliary
    include Msf::Auxiliary::Scanner
        def initialize
              super(
                   'Name'         => 'FileZilla Fuzzer',
                   'Version'      => '$Revision: 1 $',
                   'Description'  => 'Filezilla FTP fuzzer',
                   'Author'       => 'Abhinav_singh',
                   'License'      => MSF_LICENSE
                    )
                   register_options( [Opt::RPORT(14147),
                      OptInt.new('STEPSIZE', [ false, "Increase string size each iteration with this number of chars",10]),
                      OptInt.new('DELAY', [ false, "Delay between connections",0.5]),
                      OptInt.new('STARTSIZE', [ false, "Fuzzing string startsize",10]),
                      OptInt.new('ENDSIZE', [ false, "Fuzzing string endsize",20000])
                      ], self.class)
            end

前面的代码表示导入MSF库,创建一个类,并定义其中的一些选项,下一步定义模糊测试器的主体部分。

def run_host(ip)
  udp_sock = Rex::Socket::Udp.create(
    'Context'   =>
     {
      'Msf' => framework,
      'MsfExploit' => self,
     }
    )
  startsize = datastore['STARTSIZE'] # fuzz data size to begin with
  count = datastore['STEPSIZE']  # Set count increment
  while count < 10000  # While the count is under 10000 
    run
    evil = "A" * count  # Set a number of "A"s equal to count
     pkt = "\x00\x02" + "\x41" + "\x00" + evil + "\x00"  # Define the payload
     udp_sock.sendto(pkt, ip, datastore['RPORT'])    # Send the packet
    rint_status("Sending: #{evil}") 
     resp = udp_sock.get(1)  # Capture the response
    count += 100  # Increase count by 10, and loop
    end
  end
end

下面分析该脚本,该脚本首先创建UDP socket,这在建立到FileZilla服务器的连接时会用到。然后声明变量startsize与count,分别定义了模糊测试器的起始数据大小和增量长度值,之后建立循环,并在其中声明恶意字符串和攻击载荷格式,这些内容将作为数据包(pkt)的组成部分发送到目标程序。

最后,该脚本使用udp_sock_sendto函数将服务器发送数据包,并使用resp=udp_sock.get()函数捕获服务器的响应信息。每次收到响应信息后,数据包长度值增加100。

怎样工作
要使用该模块,首先要将其存储到modules/auxiliary/fuzzers/ftp目录,将该模块命名为filezilla_fuzzer.rb。

msf > use auxiliary/fuzzers/ftp/filezilla_fuzzer

msf auxiliary(filezilla_fuzzer) > show options

Module options (auxiliary/fuzzers/ftp/filezilla_fuzzer):

Name Current Setting Required Description

DELAY 0.5 no Delay between..

ENDSIZE 20000 no Fuzzing string endsize

RHOSTS yes The target address

RPORT 14147 yes The target port

STARTSIZE 10 no Fuzzing string startsize

STEPSIZE 10 no Increase string size..

从结果可以看到,该模块工作良好,并展示了一些可用的选项。对相应选项进行赋值,并使用run命令运行。

msf auxiliary(filezilla_fuzzer) > set RHOSTS 192.168.56.1

RHOSTS => 192.168.56.1

msf auxiliary(filezilla_fuzzer) > run

[*] Sending: AAAAAAAAAA

[*] Sending: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

上述内容表明该模糊测试器向服务器发送字符串,并一直重复这一发送过程,直至服务器崩溃或该循环结束。如果在服务器崩溃之前循环结束,可以尝试修改脚本来发送更长的字符串。上面简要展示了使用Metasploit对软件进行模糊测试的过程,通常不建议使用Metasploit对大型软件进行模糊测试。对软件和应用程序的模糊测试而言,还可以使用一些更专业化的框架。

更多
快速浏览下面的模糊测试框架,如果读者想要提高模糊测试和漏洞利用代码开发方面的知识能力,可以使用该框架。

Antiparser模糊测试框架
Antiparser是使用python语言编写的一个模糊测试框架,用于构建模糊测试器的随机数据的创建过程。该框架可用于开发跨平台运行的模糊测试器,因为该框架唯一的要求就是必须安装Python解释器。

Antiparser可以在http://sourceforge.net/projects/antiparser/处下载。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
20天前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
83 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
22天前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
142 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
2月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
234 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
2月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
334 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
2月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
485 0
|
2月前
|
缓存 安全 Linux
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
142 0
|
3月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
155 0
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
887 23
|
7月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
934 24