Exemplo Básico de Sockets em C
Pequeno script mostra um simples esquema de esboço de verificação se uma porta está aberta para conexão ou nao.
Principio de um port scan :) esse pega apenas as 30 primeiras portas ... apenas como Proof of concept. Enjoy
Principio de um port scan :) esse pega apenas as 30 primeiras portas ... apenas como Proof of concept. Enjoy
Descrição
Pequeno script mostra um simples esquema de esboço de verificação se uma porta está aberta para conexão ou nao.
Principio de um port scan :) esse pega apenas as 30 primeiras portas ... apenas como Proof of concept. Enjoy
Principio de um port scan :) esse pega apenas as 30 primeiras portas ... apenas como Proof of concept. Enjoy
Versões atualizadas deste script
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/signal.h>
#include <errno.h>
#include <netdb.h>
#define PORTA_INICIO 1
main(int argc, char *argv[])
{
char host[15];
int porta, portas, i , spawnsocket, delay, ligacao;
struct sockaddr_in alvo;
struct hostent *he;
struct servent *servicos;
if ( argc == 1 )
{
fprintf(stderr,"RootSec Scan V0.1\n");
fprintf(stderr,"usar: %s <host>\n",argv[0]);
exit(0);
}
if ( argc > 1 )
{
porta = PORTA_INICIO;
}
if (argc > 2 )
{
porta = atoi (argv[2]);
}
he = gethostbyname ( argv[1] );
if ( he == NULL ) {
printf("Host Nao encontrado");
exit(-1);
}
for(porta=1;porta<=30;porta++)
{
spawnsocket = socket( AF_INET, SOCK_STREAM, 0);
if ( spawnsocket < 0)
{
perror("Socket");
}
alvo.sin_family = he->h_addrtype;
alvo.sin_port = htons(porta);
alvo.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(alvo.sin_zero),8);
ligacao = connect ( spawnsocket, (struct sockaddr *) &alvo,
sizeof(alvo));
if ( ligacao == -1 )
{
perror("Porta esta fechada\n");
}
else
{
printf("A porta %d esta aberta\n",porta);
}
close(spawnsocket);
}
}
Um exemplo básico de comunicação entre dois programas em C (servidor - cliente), para a troca de strings.
To querendo aprender a fazer isso faz um tempo, mas não consigo.
Se souber de alguma coisa, manda um toque aqui no vivaolinux.
Abraços