Exemplo Básico de Sockets em C
Publicado por Anderson L Tamborim 13/05/2004
[ Hits: 29.445 ]
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);
}
}
Robo HTTP usando socket e código multiplataforma
Exemplo de sockets: um client e um server bem simples
Portscan Simples Usando Sockets em C
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









