Alucard - scan de redes defensivo
Publicado por felipe (última atualização em 25/02/2025)
[ Hits: 617 ]
Esse programa busca um range de ips e busca informação de cada ip do range.
Ele deve rodar em segundo plano, com comando ./alucard & esse programa deve ser usado como root,
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/socket.h> #include <sys/types.h> #include <arpa/inet.h> #include <netinet/in.h> #include <netdb.h> struct sockaddr_in addr; struct timeval timeout; FILE *fr, *fw, *op; char ip[256], buff[256]; // portas pela qual a aplicação irá // ficar rodando. int lport[] = {21, 22, 23, 80, 443, 445, 465}; int sock = 0, cnx = 0; char cmdBuff[256]; // pega dados e cria arquivo void add(){ printf("Getway: "); fgets(ip, 256, stdin); fw = fopen("/var/log/alucard_ips.txt", "w"); ip[strlen(ip)-3] = '\0'; for(int loop = 1; loop < 256; loop++){ fprintf(fw, "%s.%d\n", ip, loop); } fclose(fw); } // verifica se o arquivo getway existe // caso não, ele será criado. void ok(){ op = fopen("/var/log/alucard_ips.txt", "r"); if(op == NULL){ add(); } } int main(){ ok(); timeout.tv_sec = 1; timeout.tv_usec = 0; //roda as portas definidas for(int run = 0; run < 7; run++){ fr = fopen("/var/log/alucard_ips.txt", "r"); while(fgets(buff, 256, fr) != NULL){ addr.sin_addr.s_addr = inet_addr(buff); addr.sin_port = htons(lport[run]); addr.sin_family = AF_INET; sock = socket(AF_INET, SOCK_STREAM, 0); if(sock < 0){ perror("sock error"); return 1; } setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)); setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); cnx = connect(sock, (struct sockaddr *)&addr, sizeof(addr)); if(cnx == 0){ strcpy(cmdBuff, "nmap -sT -O -A -v "); strcat(cmdBuff, buff); op = popen(cmdBuff, "r"); fw = fopen("/var/log/alucard_log.txt", "a"); fprintf(fw, "=== [*]log[*] ===\n"); while(fgets(buff, 256, op) != NULL){ fprintf(fw, "%s", buff); } fclose(op); fclose(fw); } } } return 0; }
Simulação de controle de fluxo usando sockets
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
instalar o Linux em computadores Acer novos (2)
compilação samba 4.22 rock linux 9.5 (4)