Skip to content

Latest commit

 

History

History
68 lines (50 loc) · 2.3 KB

201503171759.txt.md

File metadata and controls

68 lines (50 loc) · 2.3 KB

标题: 修补Metasploit扫描Misfortune Cookie漏洞的插件

创建: 2015-03-17 17:59 链接: http://scz.617.cn/misc/201503171759.txt

Metasploit有个插件:

http://www.rapid7.com/db/modules/auxiliary/scanner/http/allegro_rompager_misfortune_cookie https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/http/allegro_rompager_misfortune_cookie.rb metasploit\apps\pro\msf3\modules\auxiliary\scanner\http\allegro_rompager_misfortune_cookie.rb

本意是:


$ curl -i http://192.168.1.1/Allegro HTTP/1.1 200 OK Content-Type: text/html Date: Tue, 17 Mar 2015 10:35:27 GMT Pragma: no-cache Expires: Thu, 26 Oct 1995 00:00:00 GMT Transfer-Encoding: chunked Server: RomPager/4.07 UPnP/1.0 EXT:

<title>Allegro Copyright</title> RomPager Advanced Version 4.07
(C) 1995 - 2002 Allegro Software Development Corporation --------------------------------------------------------------------------

从响应报文的HTTP Header中析取"Server: ...",然后从中析取RomPager版本号,最 后判断其是否小于4.34,是则报漏洞。

相应代码如下:


fp  = http_fingerprint( response:res )
if /RomPager\/(?<version>[\d\.]+)$/ =~ fp
    if Gem::Version.new(version) < Gem::Version.new('4.34')
        report_vuln(
            host: ip,
            port: rport,
            name: name,
            refs: references
        )
        return Exploit::CheckCode::Appears

对于192.168.1.1,fp等于"RomPager/4.07 UPnP/1.0",插件所用正则表达式 "RomPager/(?[\d.]+)$"无法匹配fp,导致漏报。插件作者Jon Hart可能 缺少大规模扫描banner信息的经验。

这是一个在线ruby正则表达式工具:

http://www.rubular.com/

可以比较直观地检验正则表达式是否匹配、如何匹配。

前述插件中的正则表达式应该修改成:

RomPager/(?[\d.]+).*$

RomPager/(?[\d.]+)

这里表示将"[\d.]+"的匹配内容析取并赋给名为version的变量。