/* ** ids_source.c for IDPS ** ** Made by: Nocte and Deepfear ** (big thx to z33w) ** ** <_n0cte_@dhs-team.org> ** */ #include "ids_header.h" int main() { int i; int fd; int recus; char donnees[9000]; unsigned char *sou; unsigned char *dest; struct iphdr *ip; struct tcphdr *tcp; t_get recvp; ip = malloc(sizeof(struct iphdr *) - 2); tcp = malloc(sizeof(struct tcphdr *) - 2); ip = (struct iphdr *)(((unsigned long)&recvp.ip) - 2); tcp = (struct tcphdr *)(((unsigned long)&recvp.tcp) - 2); sou = (unsigned char *)&(ip->saddr); dest = (unsigned char *)&(ip->daddr); fd = socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL)); if (fd < 0) printf("erreur socket\n"); else printf("good socket\n"); for (i = 0, recus = 0; 1 == 1;) { recus = read(fd, (t_get *)&recvp, sizeof(recvp)); if (strstr(MAGICSTRING, donnees) || strstr(MAGICSTRING2, donnees)) { printf("ALERTE! Une tentative d'execution de shell a ete detectee !\n" \ "----------paquet-%d----------\naddress %u.%u.%u.%u----->" \ "%u.%u.%u.%u\n%s\n\n", i, sou[0], \ sou[1], sou[2], sou[3], dest[0], dest[1], dest[2], \ dest[3], donnees); i++; } } return (0); }