Содержание статьи
Наша конечная цель — получить права суперпользователя на машине Browsed с учебной площадки Hack The Box. Уровень сложности — средний.
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
У этой машины случайно выданный IP-адрес 10.129.244.79, который я добавляю в /, чтобы обращаться к этому хосту по имени.
10.129.244.79 browsed.htb
Запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг в любой атаке. Оно позволяет злоумышленнику узнать, какие службы на хосте принимают соединения. На основе этой информации он выбирает следующий шаг, чтобы получить точку входа.
Самый известный инструмент для сканирования — Nmap. Улучшить результаты его работы поможет следующий скрипт:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '' ',' | sed s/,$//)nmap -p$ports -A $1Он работает в два этапа. Сначала запускается быстрое сканирование, затем — более тщательное, с помощью встроенных скриптов (опция -A).
Подробнее о работе с Nmap читай в статье «Nmap с самого начала. Осваиваем разведку и сканирование сети».

Сканер нашел два открытых порта:
- 22 — OpenSSH 9.6p1;
- 80 — веб‑сервер Nginx 1.24.0.
На главной странице сайта нас встречает платформа для тестирования расширений браузера Chrome.

Точка входа
На странице Samples можно скачать несколько расширений.

Скачиваем первый файл и смотрим, что внутри архива.

Наибольший интерес представляет файл manifest. — конфиг расширения Chrome. В нем хранятся метаданные, а также описаны его структура и разрешения.

Параметр matches: < означает, что content. будет выполняться на любом сайте. Этот манифест можно использовать как шаблон для своего расширения, но сначала перейдем на страницу загрузки на сервер расширений и загрузим скачанный файл.

Помимо логов тестирования, важную информацию дает и ответ сервера. Так мы узнаем, что домен browsedinternals. соответствует localhost.
curl -F "extension=@fontify.zip;type=application/zip" http://browsed.htb/upload.php

Точка опоры
Сделаем свое расширение из двух файлов: манифеста Expl и скрипта на JavaScript.
{ "manifest_version": 3, "name": "Expl", "version": "1.0.0", "description": "Expl", "permissions": ["scripting"], "content_scripts": [ { "matches": [ "<all_urls>" ], "js": [ "content.js" ], "run_at": "document_idle" } ]}
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
