Alucard - scan de redes defensivo
Publicado por felipe (última atualização em 25/02/2025)
[ Hits: 974 ]
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; }
Portscan Simples Usando Sockets em C
Programa em C para monitorar IPs e portas ativas
Exemplo de Cliente e Servidor Usando Socket no Linux!
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
[AJUDA] Problemas ao atualizar BIOS da Gigabyte B550M K rev. 1.1 — “RO... (4)
Inicializaçao lenta (alguns processos rodando) Debian 11 Bullseye [RES... (2)
Erro na atualização dos pacotes (6)