This scanner scans to see if a certain host or IP is vulnerable to the Wu-ftpd 2.6.0 bug. Written in portuguese.
ae964328b738ae8d1db754f190ae243c054607cd19ca7ebdc57fda7af06acd81
/* Wu-ftpd eh vulneravel na versao 2.6.0 (redhat 6.2)
* Wuftpd-scan2000 Feito pelo mudZer do Cult Of The Black Hat - cultbh@bol.com.br
* Esse Scanner foi corrigido !
*/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define PORTA 21
#define MAXDATASIZE 1000
main(int argc, char *argv[]) {
int ss, cc, porta=PORTA, recebe;
char buf[MAXDATASIZE];
struct sockaddr_in servi;
struct hostent *he;
if(argc != 2) {
fprintf(stdout,"\nWuftpd-scan2000 - Feito pelo mudZer do Cult Of The Black Hat - cultbh@bol.com.br\n");
fprintf(stdout," Comando: %s HOST\n\n",argv[0]);
exit(0);
}
he = gethostbyname(argv[1]);
if(he == NULL){
fprintf(stdout,"\nHOST desconhecido!\n\n");
exit(1);
}
ss = socket(AF_INET,SOCK_STREAM,0);
if(ss < 0) {
fprintf(stdout,"\nFalha no Socket!\n\n");
exit(0);
}
servi.sin_family = he->h_addrtype;
servi.sin_port = htons(porta);
servi.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(servi.sin_zero), 8);
if(connect(ss,(struct sockaddr_in *)&servi, sizeof(servi)) == -1) {
fprintf(stdout,"\nFalha na Conexao!\n\n");
close(ss);
exit();
}
recebe=recv(ss, buf, MAXDATASIZE, 0);
buf[recebe] = '\0';
close(ss);
if(strstr(buf, "wu-2.6.0")) {
printf("\n! VULNERAVEL (Boa Sorte) ! \n\n");
exit();
}
printf("\n! NAO VULNERAVEL (Tente outro HOST) !\n\n");
}