0x0scan_port v1

Contenu du snippet

Name : 0X0SCAN_PORT V1
Author : 0x0syscall
Date : 30/04/2008

Scanner de base sous linux qui scan une plage de port.
Dans la prochaine version il y aura :

-scan une plage d'ip.
-scan une plage de port.
-identifie le service utilisé par le port ouvert.

Source / Exemple :


#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 : <file> <host> <port_start_scan> <port_end_scan>\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"); // pour faire plus propre ;)
	close(mysocket);
	return 0;

}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.