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. Это страница регистрации, я регистрирую аккаунт с произвольными логином и паролем и захожу на страницу блога
8. Пробую в поле комментария ввести стандартные проверки на sql и xss
9. Введенные команды не отработали и просто отображаются как комментарий. После этого с помощью sqlmap попробовал найти sql в форме регистрации, но не смог найти.
10. После этого решил проверить нет ли сторед xss в имени пользователя. Для этого регистрирую пользователя с именем <script>alert(1)</script> и зайдя от имени этого пользователя в блог оставляю любой комментарий.
11. Вижу, что скрипт отработал, значит на сайте есть сторед xss в имени пользователя. С помощью xss можно читать содержимое файлов и я помню, что в скаченном по ftp сообщении было сказано, что существует файл на локальном хосте с кредами пользователя. Поэтому его я и попытаюсь прочитать.
12. У меня есть скрипт, который позволяет прочитать содержимое файла
13. Необходимо поменять только адрес к файлу и айпи своей машины, на которой я запустил python сервер, после чего зарегистрировал пользователя с именем скрипта, зашел от имени этого пользователя в блог и ввел лубое сообщение. После этого мне прилетело содержимое файла
14. Теперь полученное сообщение инкодим любыь url инкодером и получаем логин и пароль
15. После этого используя полученные логин и пароль подключаюсь по ssh
16. Смотрю флаг пользователя в домашней папке
17. Смотрю что я могу sudo -l
18. Вижу что я могу запускать iptables, поэтому сразу смотрю правила установленные там
19. Вижу странное правило, которое все дропает на порту 41321, естественно возникает желание его отключить и посмотреть что на этом порту. Сначала выведу все правила по номерам строк
20. Теперь удалю правило в строке 1
21. Теперь можно с помощью nmap посмотреть что запущено на порту 41312
22. Смотрю в браузере что находится на этом порту, перейдя на страницу читаю что требуется hhtps, что я и делаю, далее принимаю риски и перехожу на страницу и вижу, что нет прав
23. После этого решил скачать на атакуемую машину linpeas.sh, для этого в димректории, где находится файл у себя на машине запустил пайтон сервер и в домашнюю директорию текущего пользователя скачал линпис
24. В ходе анализа linpeas было найдено несколько CVE, но это е интересно, поэтому поискав далее увидел, что в директории /opt находятся какие то файлы, хотя обычно там пусто
25. Естественно решил прочитать содержимое файла urgent.txt
26. Там сказано:
Привет, ребята! После взлома некоторые файлы были помещены в /usr/lib/cgi-bin/, и когда я пытаюсь их удалить, они не удаляются, даже несмотря на то, что у меня есть права root. Пожалуйста, проверьте pcap-файл в /opt и помогите мне исправить сервер. Я временно заблокировал злоумышленникам доступ к бэкдору с помощью правил iptables. Очистка сервера ещё не завершена. Нужно начать с удаления этих файлов.
27. Проверил директорию /usr/lib/cgi-bin/ читать я там ничего не могу недостаточно прав. Значит надо следовать задумке автора и посмотреть файл capture.pcap. Для этого запускаю python сервер на атакуемой машине и скачиваю файл .pcap себе
28. Смотрю в wireshark содержимое файла
29. Вижу момент успешного соединение, ног трафик шифруется и просто так его не прочитаешь, поэтому нужен ключ шифрования. Я помнб что согласно сканированию nmap на порту 41312 запущен apache2, поэтому решил посмотреть усть ли возможность найти ключ шифрования. Для этого я перешел в директорию /etc/apache2, увидел там папку /certs и в ней увидел файл apache.key, в котором и находится ключ
30. Так же как ранее запускаю сервер на атакуемой машине и скачиваю себе файл apache.key
31. Теперь в wirshark надо добавить этот клбюч, что бы расшифровать трафик, для этого выбираю /Edit/Preferences/RSA keys/add new keyfile и выбираю ранее скачанный apache.key. Теперь трафик расшифровался.
32. Я отсортировал все http запросы и увидел что в одном из запросов через параметр cmd идет выполнение команды id
33. Скопировал этот запрос и попробовал его выполнить в браузере
34. Вижу, что выполнилась команда id. Значит я могу прокинуть себе реверс шелл, для этого запускаю BurpSuite, повторяю этот запрос в нем, нахожу запрос и отправляю его в repitor
35. Реверс шелл необходлимо закодировать в url, для этого в бурпе перехожу во вкладку Decoder и в ней кодирую обычный реверс
36. Копирую закодированный реверс и вставляю его вместо id. Запускаю слушатель у себя на машине
37. Я вижу что я пользователь data, проверяю что я могу с sudo
38. Вижу что мне доступны все команды, перехожу а root
39. Читаю флаг root машина решена