Добавить в корзинуПозвонить
Найти в Дзене

Решение WhyHackMe на TryHackMe

1. Как всегда начинаю с nmap 2. Вижу, что открыт 21 порт ftp с доступом Anonymous без пароля и доступен файл update.txt, так же открыт 22 порт и порт80. Сначало смотрю что на 80 порту 3. Двигаясь по ссылкам сайта попал на страницу регистрации, кредов пока нет, попробовал стандартные команды sql и xss ничего не получилось, поэтому решил посотреть что в файле доступном в ftp 4. В файле, скачанном по ftp содержится следующая информация: Привет, я только что удалил старого пользователя Mike, потому что его учётная запись была скомпрометирована. Если вам нужны данные для новой учётной записи, посетите 127.0.0.1/dir/pass.txt. Не волнуйтесь, этот файл доступен только локальному хосту (127.0.0.1), поэтому никто, кроме меня или людей с доступом к общей учётной записи, не сможет его просмотреть.
- admin 5. После этого решил поискать какие еще есть директории и файлы .php, так как сайт написан на нем 6. Вижу register.php и перехожу на него 7. Это страница регистрации, я регистрирую аккаунт

1. Как всегда начинаю с nmap

-2

2. Вижу, что открыт 21 порт ftp с доступом Anonymous без пароля и доступен файл update.txt, так же открыт 22 порт и порт80. Сначало смотрю что на 80 порту

-3

3. Двигаясь по ссылкам сайта попал на страницу регистрации, кредов пока нет, попробовал стандартные команды sql и xss ничего не получилось, поэтому решил посотреть что в файле доступном в ftp

-4

4. В файле, скачанном по ftp содержится следующая информация:

Привет, я только что удалил старого пользователя Mike, потому что его учётная запись была скомпрометирована. Если вам нужны данные для новой учётной записи, посетите 127.0.0.1/dir/pass.txt. Не волнуйтесь, этот файл доступен только локальному хосту (127.0.0.1), поэтому никто, кроме меня или людей с доступом к общей учётной записи, не сможет его просмотреть.
- admin

5. После этого решил поискать какие еще есть директории и файлы .php, так как сайт написан на нем

-5

6. Вижу register.php и перехожу на него

-6

7. Это страница регистрации, я регистрирую аккаунт с произвольными логином и паролем и захожу на страницу блога

-7

8. Пробую в поле комментария ввести стандартные проверки на sql и xss

-8

9. Введенные команды не отработали и просто отображаются как комментарий. После этого с помощью sqlmap попробовал найти sql в форме регистрации, но не смог найти.

10. После этого решил проверить нет ли сторед xss в имени пользователя. Для этого регистрирую пользователя с именем <script>alert(1)</script> и зайдя от имени этого пользователя в блог оставляю любой комментарий.

-9

11. Вижу, что скрипт отработал, значит на сайте есть сторед xss в имени пользователя. С помощью xss можно читать содержимое файлов и я помню, что в скаченном по ftp сообщении было сказано, что существует файл на локальном хосте с кредами пользователя. Поэтому его я и попытаюсь прочитать.

12. У меня есть скрипт, который позволяет прочитать содержимое файла

-10

13. Необходимо поменять только адрес к файлу и айпи своей машины, на которой я запустил python сервер, после чего зарегистрировал пользователя с именем скрипта, зашел от имени этого пользователя в блог и ввел лубое сообщение. После этого мне прилетело содержимое файла

-11

14. Теперь полученное сообщение инкодим любыь url инкодером и получаем логин и пароль

-12

15. После этого используя полученные логин и пароль подключаюсь по ssh

-13

16. Смотрю флаг пользователя в домашней папке

17. Смотрю что я могу sudo -l

-14

18. Вижу что я могу запускать iptables, поэтому сразу смотрю правила установленные там

-15

19. Вижу странное правило, которое все дропает на порту 41321, естественно возникает желание его отключить и посмотреть что на этом порту. Сначала выведу все правила по номерам строк

-16

20. Теперь удалю правило в строке 1

-17

21. Теперь можно с помощью nmap посмотреть что запущено на порту 41312

-18

22. Смотрю в браузере что находится на этом порту, перейдя на страницу читаю что требуется hhtps, что я и делаю, далее принимаю риски и перехожу на страницу и вижу, что нет прав

-19

23. После этого решил скачать на атакуемую машину linpeas.sh, для этого в димректории, где находится файл у себя на машине запустил пайтон сервер и в домашнюю директорию текущего пользователя скачал линпис

-20
-21

24. В ходе анализа linpeas было найдено несколько CVE, но это е интересно, поэтому поискав далее увидел, что в директории /opt находятся какие то файлы, хотя обычно там пусто

-22

25. Естественно решил прочитать содержимое файла urgent.txt

-23

26. Там сказано:

Привет, ребята! После взлома некоторые файлы были помещены в /usr/lib/cgi-bin/, и когда я пытаюсь их удалить, они не удаляются, даже несмотря на то, что у меня есть права root. Пожалуйста, проверьте pcap-файл в /opt и помогите мне исправить сервер. Я временно заблокировал злоумышленникам доступ к бэкдору с помощью правил iptables. Очистка сервера ещё не завершена. Нужно начать с удаления этих файлов.

27. Проверил директорию /usr/lib/cgi-bin/ читать я там ничего не могу недостаточно прав. Значит надо следовать задумке автора и посмотреть файл capture.pcap. Для этого запускаю python сервер на атакуемой машине и скачиваю файл .pcap себе

-24
-25

28. Смотрю в wireshark содержимое файла

-26

29. Вижу момент успешного соединение, ног трафик шифруется и просто так его не прочитаешь, поэтому нужен ключ шифрования. Я помнб что согласно сканированию nmap на порту 41312 запущен apache2, поэтому решил посмотреть усть ли возможность найти ключ шифрования. Для этого я перешел в директорию /etc/apache2, увидел там папку /certs и в ней увидел файл apache.key, в котором и находится ключ

-27

30. Так же как ранее запускаю сервер на атакуемой машине и скачиваю себе файл apache.key

-28

31. Теперь в wirshark надо добавить этот клбюч, что бы расшифровать трафик, для этого выбираю /Edit/Preferences/RSA keys/add new keyfile и выбираю ранее скачанный apache.key. Теперь трафик расшифровался.

32. Я отсортировал все http запросы и увидел что в одном из запросов через параметр cmd идет выполнение команды id

-29
-30

33. Скопировал этот запрос и попробовал его выполнить в браузере

-31

34. Вижу, что выполнилась команда id. Значит я могу прокинуть себе реверс шелл, для этого запускаю BurpSuite, повторяю этот запрос в нем, нахожу запрос и отправляю его в repitor

-32

35. Реверс шелл необходлимо закодировать в url, для этого в бурпе перехожу во вкладку Decoder и в ней кодирую обычный реверс

-33

36. Копирую закодированный реверс и вставляю его вместо id. Запускаю слушатель у себя на машине

-34
-35

37. Я вижу что я пользователь data, проверяю что я могу с sudo

-36

38. Вижу что мне доступны все команды, перехожу а root

-37

39. Читаю флаг root машина решена

-38