Как перехватить пароли в WireShark

WireShark перехват пароля

На компьютерных форумах часто задают вопрос «Может ли Wireshark перехватывать пароли?». Конечно! Wireshark может перехватывать не только пароли, но и любую информацию, передаваемую по сети — имена пользователей, адреса электронной почты, личную информацию, изображения, видео, что угодно. Если есть возможность захватить сетевой трафик, тогда Wireshark сможет перехватывать проходящие пароли.

Еще по теме: Обзор лучших снифферов для Windows

Как перехватить пароли в WireShark

В этой статье я постараюсь подробно рассказать о каждом протоколе, пароли которого можно получить с помощью WireShark..

Сетевые протоколы без шифрования пароля

Так как же на самом деле возможно, что Wireshark может перехватывать пароли? Это потому, что некоторые сетевые протоколы не используют шифрование. Такие протоколы называются протоколами с открытым текстом (или обычным текстом). А поскольку протоколы открытого текста не шифруют обмен данными, невооруженным глазом видны все данные, включая пароли. Любой, кто способен видеть общение (например, мужчина в центре), в конечном итоге может видеть все.

В следующей таблице перечислены некоторые из наиболее популярных протоколов с открытым текстом, которые все еще используются сегодня, а также некоторые другие протоколы, которые позволяют аутентификацию с открытым текстом:

Порт Протокол Описание
tcp/20, tcp/21 FTP Протокол передачи файлов FTP
tcp/23 Telnet Сетевой протокол
tcp/25 SMTP Простой протокол передачи почты SMTP
tcp/80 HTTP HTTP протокол передачи гипертекста
tcp/110 POP3 Почтовый протокол
tcp/143 IMAP4 Протокол доступа к Интернет-сообщениям IMAP4
udp/161, udp/162 SNMP Простой протокол сетевого управления SNMP
tcp/389 LDAP Облегченный протокол доступа к каталогам LDAP
tcp/1080 SOCKS Протокол прокси
tcp/1433 MSSQL База данных Microsoft SQL
tcp/5222 XMPP Расширяемый протокол обмена сообщениями и присутствия XMPP (Jabber)
tcp/5432 PostgreSQL База данных PostgreSQL
tcp/6667 IRC IRC Internet Relay Chat

В следующих главах мы более подробно рассмотрим эти протоколы и увидим примеры захваченных паролей с помощью Wireshark.

Перехват пароля FTP

Протокол передачи файлов (FTP) появился в далеком 1971 году и как правило использует порты tcp  20, 21. Это очень старый протокол, но некоторые организации до сих пор используют его в своих сетях.

FTP — это простой протокол без шифрования, поэтому любой хакер может с легкостью перехватить учетные данные FTP используя Wireshark. На следующем снимке экрана показан пример захваченного пароля FTP с помощью Wireshark:

Захват пароля FTP с помощью Wireshark

Извлечение файлов с FTP с помощью Wireshark

Поскольку FTP — это простой текстовый протокол, мы также можем фиксировать фактические данные, передаваемые по этому протоколу. Мы можем извлечь все файлы (например, изображения, документы, аудиофайлы и т. д.) Из сети с помощью Wireshark. Брэд Дункан из PaloAlto Networks написал отличную статью, описывающую, как это сделать.

Мы также могли бы использовать Chaosreader для извлечения данных из файла PCAP.

Перехват пароля Telnet

Протокол Telnet, использующий порт tcp / 23, конечно же, в представлении не нуждается. Он используется в основном для административных целей и известен своей небезопасностью. Поскольку нет шифрования, нет ни конфиденциальности, ни защиты от подслушивания. Тем не менее, Telnet используется и сегодня.

Существует множество различных устройств, использующих telnet в качестве протокола для администрирования. Для некоторых устройств telnet — единственный вариант, у которого нет альтернативы (например, нет доступных веб-интерфейсов SSH или HTTPS). Из-за этого организациям очень сложно полностью избавиться от него. Telnet обычно можно увидеть на:

  • Сетевое оборудование (роутеры, коммутаторы ..)
  • Системы видеоконференцсвязи (например, Cisco TelePresence)
  • Системы контроля доступа (например, считыватели карт доступа)
  • Системы хранения и ленты
  • Принтеры и устройства обработки изображений
  • Устаревшие IP-телефоны
  • Мэйнфреймы

Поскольку telnet — это простой текстовый протокол, хорошо позиционируемый противник может подслушать обмен данными и перехватить все, включая пароли. Пример telnet-связи с захваченным паролем можно увидеть на следующем снимке экрана:

Перехват пароля Telnet с помощью Wireshark

Теперь злоумышленник может полностью захватить маршрутизатор Cisco.

Перехват пароля SMTP

Простой протокол передачи почты (SMTP) также используется в течение многих десятилетий. Он использует порт tcp / 25, и хотя есть безопасная альтернатива для порта tcp / 464, порт tcp / 25 сегодня открыт практически на каждом почтовом сервере из-за обратной совместимости.

Большинству серверов на порту tcp / 25 требуется команда «STARTTLS» для инициации шифрования SSL / TLS перед любыми попытками аутентификации. Однако почтовые серверы в некоторых организациях по-прежнему поддерживают аутентификацию в виде обычного текста по незашифрованному каналу. В основном это связано с устаревшими системами в их внутренних сетях.

Если кто-то использует аутентификацию в виде обычного текста во время SMTP-транзакции, хорошо позиционированный злоумышленник может обнюхать учетные данные. Все, что нужно сделать злоумышленнику, — это расшифровать base64 имя пользователя и пароль. Это связано с тем, что SMTP использует кодировку base64 для кодирования имени пользователя и пароля во время транзакции.

На следующем снимке экрана мы видим захваченные учетные данные SMTP с использованием Wireshark и последующее декодирование base64 с помощью утилиты base64 в Linux:

Перехват пароля SMTP с помощью Wireshark

В Windows мы могли бы использовать команду certutil.exe для декодирования захваченных учетных данных следующим образом:

echo base64encodedstring >file.b64
certutil -decode file.b64 file.txt >NUL
type file.txt

Расшифровка base64 с помощью certutil.exe в Windows

Обратите внимание, что мы также можем использовать онлайн-инструменты, такие как base64decode.org или base64decode.net, для декодирования base64. Но мы должны быть осторожны с этим — возможно, мы не хотим раскрывать личные учетные данные другим сторонам в Интернете. Это особенно важно во время тестов на проникновение и других наступательных упражнений, когда критичность и конфиденциальность имеют решающее значение.

Перехват пароля IMAP4

Протокол доступа к сообщениям Интернета (IMAP) — еще один протокол, связанный с электронной почтой. Он использует порт tcp / 143 и обычно требует команды «STARTTLS» для запуска шифрования SSL / TLS перед любыми попытками аутентификации. Но так же, как и SMTP, некоторые организации по-прежнему поддерживают «простую» аутентификацию по незашифрованному каналу. В таких случаях аутентификация видна любому хорошо позиционируемому злоумышленнику.

На следующем снимке экрана показаны учетные данные IMAP, полученные из сети с помощью Wireshark:

Перехват аутентификации IMAP4 с помощью Wireshark

Обратите внимание, что IMAP4 также использует кодировку base64 аналогично SMTP. Следовательно, необходимо снова декодировать захваченную аутентификацию, чтобы получить имя пользователя и пароль в виде открытого текста. Обратите внимание на NULL-байт (\ 0) между именем пользователя и паролем, разделяющим их на приведенном выше снимке экрана.

Теперь злоумышленники могли получить доступ к почтовому ящику Джо и прочитать любую его электронную почту.

Перехват HTTP-пароля

Протокол передачи гипертекста (HTTP) тоже не нуждается в представлении. Обычно он работает на порту 80 / tcp, и, поскольку это простой текстовый протокол, он практически не обеспечивает конфиденциальности для взаимодействующих сторон. Любой, кто может подслушивать общение, может записывать все по этому каналу, включая пароли.

Несмотря на то, что все основные поставщики браузеров приложили огромные усилия, чтобы как можно больше не поощрять использование HTTP, мы все еще можем видеть, как HTTP используется во внутренних сетях во время тестов на проникновение. Вот пример учетных данных, записанных в HTTP-сообщении в запросе POST:

Перехват HTTP-пароля в Wireshark

Вот еще один пример регистрации базовой аутентификации в HTTP-запросе GET. Обратите внимание, что строка аутентификации снова закодирована в base64, как и в протоколах SMTP или IMAP4. Но в случае базовой аутентификации HTTP Wireshark декодирует ее автоматически:

Перехват базовой аутентификации www через HTTP в Wireshark

Перехват файлов cookie сеанса HTTP

Перехватывая незашифрованное соединение HTTP, злоумышленник также может легко перехватить файлы cookie сеанса с помощью Wireshark. Получение файла cookie сеанса из сети имеет практически такое же влияние, как и анализ учетных данных.

Захват файлов из HTTP-трафика

Используя Wireshark, мы также можем легко извлекать из сетевого трафика такие файлы, как изображения, документы и аудиофайлы. Брэд Дункан из PaloAlto Networks написал отличную статью, описывающую, как извлекать данные из различных сетевых протоколов с помощью Wireshark. Существует также инструмент Chaosreader, который позволяет извлекать данные из файла PCAP.

Перехват строки сообщества SNMP

Простой протокол управления сетью (SNMP) обычно работает на порту udp / 161. Его основная цель — управлять и контролировать сетевые устройства и их функции. Существует 3 версии протокола SNMP, и первые 2 версии (v1 и v2c) представляют собой текстовые протоколы. SNMP использует так называемую строку сообщества, что эквивалентно аутентификации. Следовательно, захват строки сообщества SNMP практически такой же, как захват учетных данных.

Хотя протокол SNMPv3 существует уже почти два десятилетия, на это нужно время. Большинство организаций по-прежнему используют v1 или v2c в своих внутренних сетях. Обычно это связано с обратной совместимостью с устаревшими системами в их сетях.

Вот пример захваченной строки сообщества SNMP с помощью Wireshark:

Перехват строки сообщества SNMP

Теперь злоумышленник мог использовать строку сообщества и собирать подробную информацию об удаленной системе. Это может позволить злоумышленнику узнать конфиденциальные сведения о системе и спланировать дальнейшие атаки против нее. Обратите внимание, что иногда строка сообщества также позволяет изменять конфигурацию в удаленной системе (доступ для чтения / записи).

Перехват пароля LDAP

Облегченный протокол доступа к каталогам (LDAP) реализует протокол для доступа и обслуживания информационных служб каталога. Обычно он работает на порту tcp / 389 как незашифрованный текстовый сервис. Следовательно, он подвержен подслушиванию, как и любой другой протокол открытого текста.

LDAP может использовать несколько методов аутентификации. Самый простой метод называется «простым» и заключается в том, чтобы ввести имя пользователя и пароль в виде открытого текста. Следовательно, любой, кто имеет возможность проверять сетевой трафик, может очень легко перехватить простую аутентификацию LDAP.

Вот пример аутентификации LDAP, полученный с помощью Wireshark:

Перехват пароля LDAP с помощью Wireshark

Кроме того, в средах Windows Active Directory контроллеры домена обычно открывают интерфейс LDAP через порт tcp / 389. Обычно в сети есть несколько систем, интегрированных с Active Directory с использованием интерфейса LDAP, например системы посещаемости, системы контроля доступа, принтеры и т. д. В таких случаях эти системы могут позволить злоумышленнику перехватить действительные учетные данные пользователя домена через LDAP, если они не защищены должным образом. Посмотрите здесь пример из одного из наших пентестов.

Перехват пароля SOCKS

SOCKS — это очень универсальный и популярный прокси-протокол, который позволяет пересылать (или туннелировать) любой трафик TCP или UDP между клиентом и сервером. SOCKS версии 5 также поддерживает аутентификацию. Поскольку SOCKS не выполняет никакого шифрования, все данные, проходящие через туннель, идут «как есть». Вдобавок ко всему, если мы в состоянии захватить сетевой трафик между клиентом и сервером, мы также можем захватить аутентификацию SOCKS.

Протокол SOCKS5 поддерживает несколько методов аутентификации. Один из них — имя пользователя и пароль, и поскольку нет шифрования, хорошо позиционированный злоумышленник может перехватить его с помощью анализатора пакетов.

На следующем снимке экрана показан пример аутентификации SOCKS5, полученной с помощью Wireshark:

Перехват аутентификации SOCKS в Wireshark

Теперь злоумышленник может использовать прокси-сервер SOCKS и получить доступ к системам на стороне сервера.

Захватить пароль MSSQL

Сервер Microsoft SQL обычно работает на порту tcp / 1433, и это еще одна служба, для которой мы можем захватывать пароль с помощью Wireshark. Если сервер не настроен с опцией «ForceEncryption», можно перехватить аутентификацию в виде простого текста либо напрямую, либо с помощью атаки перехода на более раннюю версию. «Человек посередине» может очень легко перехватить учетные данные MSSQL.

Вот пример захваченного пароля MSSQL пользователя sa с помощью Wireshark:

Перехват пароля MSSQL Wireshark

Обратите внимание, что в MSSQL пользователь «sa» — это учетная запись системного администратора — пользователь с наивысшими привилегиями. Следовательно, это может иметь критическое значение, позволяя злоумышленнику получить полный контроль над сервером базы данных. Это также может привести к удаленному выполнению команд (RCE) через функциональность xp_cmdshell (ссылка, ссылка, ссылка …).

Перехват пароля PostgreSQL

PostgreSQL — еще один очень популярный сервер баз данных SQL. Он работает на порту tcp / 5432 и поддерживает различные методы аутентификации. Обычно он настроен на запрет проверки подлинности открытым текстом, но иногда он настроен так, чтобы разрешить это. В таких случаях хорошо позиционированный злоумышленник может перехватить имя пользователя и пароль, перехватывая сетевой трафик.

Обратите внимание, что аутентификация PostgreSQL идет в виде нескольких пакетов. Сначала идет имя пользователя и имя базы данных:

Перехват имени пользователя и базы данных PostgreSQL Wireshark

В последующем сетевом пакете мы также можем увидеть пароль PostgreSQL:

Перехват пароля PostgreSQL Wireshark

Перехват пароля IRC

Internet Relay Chat (IRC) — это протокол чата, обычно использующий порт tcp / 6667. IRC был очень популярен еще в 90-е годы. Хотя сегодня он уже не так популярен, некоторые люди все еще используют его, и он все еще существует. Кроме того, создатели вредоносных программ и операторы бот-сетей также используют его для управления своими армиями ботов. Обычно у них есть частный IRC-сервер, защищенный паролем, или частный канал (чат) где-нибудь на публичном IRC-сервере.

Поскольку IRC — это протокол открытого текста, очень легко получить учетные данные, передаваемые по этому каналу. Вот пример пароля IRC, полученного с помощью Wireshark:

Перехват пароля IRC Wireshark

С этими учетными данными мы теперь могли подключиться к защищенному паролем IRC-серверу.

Перехват пароля OSPF

Open Shortest Path First (OSPF) — это протокол маршрутизации для IP-сетей. Наиболее распространенным является OSPF версии 2, которая была указана в 1998 году. Этот протокол обычно используется в очень больших сетях и в магистральных сетях различных поставщиков услуг (например, ISP).

OSPF поддерживает несколько методов аутентификации, один из которых — простой текст. В таком случае хорошо позиционированный злоумышленник, который может подслушать обмен данными, может прослушать пароль OSPF из сети с помощью Wireshark:

Перехват пароля OSPF Wireshark

Теперь злоумышленник может отправлять ложные объявления о маршруте, перенаправлять потоки сетевого трафика или нарушать предоставляемые услуги (подключение).

Перехват пароля BFD

Протокол Bidirectional Forwarding Detection (BFD), указанный в 2010 году, используется для предоставления диагностической информации между двумя подключенными системами. Обычно он используется вместе с протоколами маршрутизации, такими как BGP или OSPF, для быстрого обнаружения сбоев в канале. Этот протокол обычно используется в очень больших сетях и в магистральных сетях различных поставщиков услуг (например, ISP).

Протокол BFD поддерживает несколько методов аутентификации, один из которых также является обычным текстом. В таком случае хорошо позиционированный злоумышленник, который может подслушать сообщение, может вынюхать пароль BFD из сети с помощью Wireshark:

Перехват пароля BFD Wireshark

Теперь злоумышленник может отправить ложную диагностическую информацию и потенциально нарушить работу служб.

Перехват логина и пароля STUN

Утилиты обхода сеанса для NAT (STUN), указанные в 2003 году, представляют собой набор методов для выполнения обхода NAT. Обычно он используется различными системами аудио, видео, обмена сообщениями и другими интерактивными коммуникационными системами в реальном времени (например, VoIP-телефония). Хорошо расположенный злоумышленник может легко перехватить пароль STUN с помощью Wireshark.

Вот пример захваченной аутентификации STUN с использованием Wireshark:

Перехват аутентификации STUN Wireshark

Теперь злоумышленник может выполнить обход NAT и потенциально создать каналы для доступа к внутренним системам извне.

Часто задаваемые вопросы (FAQ)

В этом разделе приведены ответы на некоторые из часто задаваемых вопросов, когда дело доходит до захвата сетевого трафика с помощью Wireshark. Большинство из них применимо к любому снифферу пакетов.

Можно ли обнаружить Wireshark?

В большинстве случаев нет. Запущенный полностью пассивный сниффер пакетов не может быть обнаружен, поскольку он только пассивно прослушивает сеть. Но при определенных обстоятельствах его можно обнаружить, и это применимо к каждому снифферу пакетов. Существует метод обнаружения сниффера пакетов, который работает только в том случае, если узел сниффинга:

находится в той же локальной сети
не имеет правила брандмауэра, которое блокирует входящие пакеты ICMP
выполняет обнюхивание с помощью интерфейса с включенным TCP / IP и, таким образом, может отвечать на входящий пакет ICMP

Метод работает путем отправки пакета проверки связи ICMP узлу прослушивания с неправильным MAC-адресом назначения. Узел сниффинга получит его, а операционная система ответит на него, несмотря на то, что он не адресован ему. Здесь есть сценарий Nmap для этого метода.

Безопасно ли использовать Wireshark?

Да, Wireshark в целом безопасен в использовании. Однако имейте в виду, что это программное обеспечение, как и любое другое, и поэтому оно может содержать уязвимости. Всегда используйте последнюю версию с официального сайта, чтобы минимизировать любой потенциальный риск.

Может ли Wireshark захватывать пакеты с других компьютеров?

Да, оно может. Пока пакеты с других компьютеров поступают к нашему сетевому интерфейсу, Wireshark определенно сможет их перехватить. Это потому, что он работает в беспорядочном режиме и, следовательно, захватывает все, что ему приходит.

Но вопрос в том, что к нам приедет? Это очень сильно зависит от нашего логического положения в сети. Мы запускаем Wireshark на маршрутизаторе (шлюзе)? Мы в беспроводной сети? Мы в коммутируемой сети? Захватываем ли мы трафик с порта SPAN? Просто все зависит от обстоятельств.

Может ли Wireshark расшифровать HTTPS?

Да, Wireshark может расшифровывать зашифрованный трафик HTTPS SSL / TLS, если у него есть закрытые ключи. Wireshark может расшифровать SSL и TLS с помощью метода предварительного секретного ключа. Другой метод — использовать ключ RSA для расшифровки SSL, но это устаревший метод. Оба эти метода требуют, чтобы Wireshark имел доступ к закрытым ключам, чтобы он мог расшифровать трафик HTTPS.

Подробные инструкции о том, как это сделать в системах Windows, Linux или Mac, можно найти здесь.

Может ли Wireshark захватывать мобильный трафик?

Да, в Wireshark есть ряд анализаторов, которые могут анализировать мобильный трафик, проходящий через сеть мобильной связи (например, GSM). Чтобы это работало, Wireshark должен иметь возможность принимать мобильный трафик с помощью специального оборудования, такого как, например, OsmocomBB-совместимый телефон.

Более подробную информацию об этом можно найти здесь.

Может ли Wireshark отправлять пакеты?

Нет, Wireshark не может отправлять пакеты. Wireshark может только захватывать пакеты и анализировать их. У него нет возможности генерировать пакеты или вводить пакеты в сеть. Wireshark — это всего лишь анализатор пакетов. Это относится также к Tcpdump и Tshark.

Для внедрения пакетов или создания пакетов см. Такие проекты, как hping, Scappy, Ostinato или т.д.

Может ли Wireshark взломать пароль WiFi?

Короткий ответ, скорее всего, нет. Взломать пароль Wi-Fi с помощью Wireshark невозможно. Независимо от того, как настроена беспроводная сеть или какое шифрование используется, вероятно, невозможно захватить пароль Wi-Fi с помощью Wireshark.

Единственный возможный сценарий, при котором Wireshark может захватить пароль Wi-Fi, — это сценарий открытой незашифрованной беспроводной сети с небезопасным перехватывающим порталом, работающим по HTTP.

Предположим, мы находимся рядом с открытым незашифрованным Wi-Fi, и существует специальный портал для доступа к Интернету. Поскольку Wi-Fi открыт и не зашифрован, мы можем захватывать все пакеты из воздуха. Скорее всего, кто-то из наших соседей в какой-то момент аутентифицируется на захваченном портале. Теперь, если перехватывающий портал работает по незашифрованному каналу (HTTP), мы сможем перехватить учетные данные к перехватывающему порталу.

В других случаях, когда используется шифрование (WEP, WPA, WPA2, WPA3 и т. Д.), Wireshark мало поможет получить доступ к сети. Существуют и другие инструменты, предназначенные для получения доступа к таким беспроводным сетям, а именно пакет Aircrack-ng.

Может ли Wireshark блокировать трафик?

Нет, Wireshark не может блокировать сетевой трафик. Wireshark не имеет брандмауэра или возможностей блокировки пакетов. Он не может изменять пакеты в любом направлении и в любой емкости. Wireshark может просто захватывать пакеты, разбирать их и анализировать.

Принцип работы Wireshark заключается в том, что сетевые пакеты, поступающие на сетевой интерфейс и из него, дублируются, а их копия отправляется в Wireshark. Wireshark не имеет возможности остановить их каким-либо образом — исходные пакеты по-прежнему будут обрабатываться операционной системой и, следовательно, передаваться ожидающим их процессам и приложениям.

Создание правил брандмауэра с помощью Wireshark

Хотя Wireshark не может блокировать сетевое соединение, он может помочь нам создать правила брандмауэра для нашего брандмауэра. На основе просматриваемого трафика Wireshark может сгенерировать для него правило брандмауэра. Все, что нам нужно сделать, это просто выбрать пакет, который мы хотим заблокировать, и перейти в меню:

Инструменты -> Правила ACL брандмауэра

Создайте правила ACL брандмауэра с помощью Wireshark

Теперь мы можем скопировать и вставить выбранные правила прямо в наш брандмауэр. Wireshark поддерживает синтаксис следующих межсетевых экранов:

  • Cisco IOS (стандартный / расширенный)
  • IP-фильтр (ipfilter)
  • IPFirewall (ipfw)
  • Netfilter (iptables)
  • Пакетный фильтр (pf)
  • Брандмауэр Windows (netsh)

Заключение

Существует множество сетевых протоколов, для которых мы можем выполнить аутентификацию с помощью Wireshark. Пока мы можем подслушивать сетевое общение и пока оно не зашифровано, существует риск. Хорошо позиционированный злоумышленник может перехватить не только пароли, но буквально любую информацию, проходящую по сети.

Еще по теме: Как с помощью документа перехватить хеш NTLMv2-SSP и сбрутить пароль

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *