Exemplo Básico de Sockets em C
Publicado por Anderson L Tamborim 13/05/2004
[ Hits: 29.271 ]
Homepage: http://y2h4ck.wordpress.com
Download 1289838851.sock1.c (versão 2)
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
Versão 2 - Enviado por Felipe S. Araujo em 15/11/2010
Changelog: Apenas aprimorei a impressão das portas fechadas, mas se você achar que o scan deve apenas listar as portas abertas, comente a linha:
printf("A porta %d esta aberta\n",porta);
#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);
}
}
Portscan Simples Usando Sockets em C
Exemplo de sockets: um client e um server bem simples
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Preciso recuperar videos *.mp4 corrompidos (2)
Secure boot, artigo interessante, nada técnico. (1)
\Boot sem espaço em disco (Fedora KDE Plasma 42) (6)









