wuscan.c scans machines for wu-ftpd v2.60.
41a7363d1e18322f41e204724ac52e57fa76aedb7c0deeb69188eedafc9c9ca4
/* wu-ftpd eh vulneravel na versao 2.6.0
* wuscan.c by dRo - dro@dape.net
* 20/07/2000 - ß²ß time: 04:43am
*/
#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,"\nwuscan by dRo - dro@dape.net\n");
fprintf(stdout,"usage: %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 ao abrir o 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);
fprintf(stdout,"\nwuscan by dRo - dro@dape.net\n");
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 ***\n\n");
exit();
}
printf("\nnao vulneravel ...\n\n");
}