Обнаружение необработанных сокетов (SOCK_RAW) без учетной записи администратора в Windows - PullRequest
0 голосов
/ 07 июля 2019

Я создаю простой сниффер, используя c ++ в visual studio и windows 10 x64, но когда я пытался его запустить. Я получил Failed to create raw socket., что связано с правами администратора, но я заходил в Интернет. Я мог бы использовать что-то вроде CAP_NET_ADMIN, но это на основе Linux. Есть ли способ сделать под Windows, например, работает Wireshark не-root пользователей?

//Initialise Winsock
    printf("\nInitialising Winsock...");
    if (WSAStartup(MAKEWORD(2,2), &wsa) != 0)
    {
        printf("WSAStartup() failed.\n");
        return 1;
    }
    printf("Initialised");

    //Create a RAW Socket
    printf("\nCreating RAW Socket...");
    sniffer = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
    if (sniffer == INVALID_SOCKET)
    {
        printf("Failed to create raw socket.\n");
        return 1;
    }
    printf("Created.");

1 Ответ

1 голос
/ 08 июля 2019

Создание необработанного сокета :

Необработанные сокеты предоставляют возможность манипулировать базовым транспорта, поэтому они могут быть использованы в злонамеренных целях, которые представляют собой угроза безопасности. Поэтому только члены группы «Администраторы» может создавать сокеты типа SOCK_RAW в Windows 2000 и более поздних версиях.

...