как сделать так, чтобы мой порт мог получить приличные результаты? - PullRequest
0 голосов
/ 29 марта 2020

Я разрабатываю базовый c портскан с использованием языка c. Я думаю, что моя программа работает, потому что она показывает открытые порты моего IP. Но что-то странное происходит, когда я запускаю программу: она каждый раз получает разные результаты:

ex:

wholetomy@wholetomy:~/Desktop$ ./portscan 192.168.0.2
Porta 80 - status [ABERTA] 
Porta 34294 - status [ABERTA] 
Porta 38586 - status [ABERTA] 
Porta 55424 - status [ABERTA] 
wholetomy@wholetomy:~/Desktop$ ./portscan 192.168.0.2
Porta 80 - status [ABERTA] 

во второй раз, когда я запускаю программу, она показывает только порт 80, так что происходит с моей программой, кто-нибудь может объяснить, пожалуйста?

сканирование портов:

#include <stdio.h>        // printf(), perror()
#include <sys/types.h>    // AF_INET, SOCK_STREAM
#include <sys/socket.h>   // socket(), connect()
#include <netinet/in.h>   // struct sockaddr_in
#include <arpa/inet.h>    // htons(), inet_addr()
#include <unistd.h>       // close()

    int main(int argc, char *argv[])
    {
        int meusocket;
        int conecta;

        int port;
        int inicio = 0;
        int final = 65535;
        char * destino;

        destino = argv[1];

        struct sockaddr_in alvo;
        for(port = inicio; port < final; port++)
        {
        meusocket = socket(AF_INET, SOCK_STREAM, 0);
        alvo.sin_family = AF_INET;
        alvo.sin_port = htons(port);
        alvo.sin_addr.s_addr = inet_addr(destino);

        conecta = connect(meusocket, (struct sockaddr *)&alvo, sizeof alvo);

        if(conecta == 0)
        {
            printf("Porta %d - status [ABERTA] \n",port);
            close(meusocket);
            close(conecta);
        }else{
            close(meusocket);
            close(conecta);
        }
        }
    }

1 Ответ

0 голосов
/ 29 марта 2020

попробуйте многопоточность и попробуйте просмотреть исходный код сетевого стека в операционных системах, вы никогда не знаете, вы могли бы сделать хороший движок эксплойта

...