///////////////////////////////////// //projet : 0x0ScanPort //Author : 0x0syscall // HaKSyN Security TeaM //Date : 01/05/2008 ///////////////////////////////////// #include "stdio.h" #include "unistd.h" #include "stdlib.h" #include "netdb.h" #include "sys/types.h" #include "sys/socket.h" #include "netinet/in.h" #define MAX_PORT 65535 char syntax() { printf("\n=>Scan port by 0x0syscall\n"); printf("-------------------------\n"); printf("=>Syntax : \n\n"); return 0; } char port() { printf("\nERREUR\n"); printf("------\n"); printf("Le port doit être inferieur à 65535\n"); printf("et le port de debut doit être inférieur au port de fin.\n\n"); return 0; } int main(int argc, char **argv[]) { if (argc < 4) { syntax(); return 0; } int start; int end; start = atoi(argv[2]); end = atoi(argv[3]); if(end > MAX_PORT) { port(); return 0; } if(start > end) { port(); return 0; } int prt; int mysocket; int mysocket2; int srv_connect; int sockaddr_long; struct sockaddr_in sockaddr_mysocket; sockaddr_long = sizeof(sockaddr_mysocket); sockaddr_mysocket.sin_family = PF_INET; sockaddr_mysocket.sin_addr.s_addr = inet_addr(argv[1]); FILE *fp; fp=fopen(argv[1], "a"); printf("\nPORT STATUS \n"); printf("-----------------\n"); for(prt=start;prt<=end;prt++) { sockaddr_mysocket.sin_port = htons(prt); mysocket2 = socket(PF_INET, SOCK_STREAM, 0); if(mysocket2 == -1) perror(""); srv_connect = connect(mysocket2, (struct sockaddr*)&sockaddr_mysocket, sockaddr_long); if (srv_connect != -1) { printf("%d Ouvert \n", prt); fprintf(fp, "Port %d ouvert\n", prt); } close(fp); close(mysocket2); } printf("\n"); close(mysocket); return 0; }