Alucard - scan de redes defensivo
Publicado por felipe (última atualização em 25/02/2025)
[ Hits: 755 ]
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; }
Calcular Broadcast e IPs disponíveis
Funções básicas para conexão OpenSSL em C
Exemplo Básico de Sockets em C
Simulação de controle de fluxo usando sockets
Descritores de Arquivos e Swappiness
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Copiar Layout do Teclado para aplicar em outra Distribuição (10)
Autenticação necessária. um aplicativo quer acesso ao chaveiro (2)
Graduação e certificação Eng. de redes e Eng. Linux[DUVIDA] (0)