Используем nmap для поиска активных сервисов на машине
nmap -sC -sV 10.10.197.82
Мы нашли:
- 22 port - SSH (OpenSSH)
- 80 port - HTTP (Apache httpd 2.4.18)
- 139 port - netbios-ssn (Samba 3.X - 4.X)
- 445 port - netbios-ssn (Samba 4.3.11-Ubuntu)
- 8009 port - ajp13 (Apache Jserv)
- 8080 port - HTTP (Apache Tomcat 9.0.7)
Question 2: What is the name of the hidden directory on the web server(enter name without /)?
Для того, чтобы узнать скрытые директории на веб-сервере воспользуемся инструментом dirbuster. Вызовем его:
dirbuster
В результате находится папка /development с файлами внутри. Результат на снимках ниже:
Question 3: User brute-forcing to find the username & password. What is the username? What is the password?
Запустим утилиту enum4linux для поиска пользователей SMB.
enum4linux -S -R 500-550,1000-1050 10.10.197.82
SMB изначально существовал как клиент-серверный протокол для получения доступа к файлам, каталогам и сетевым ресурсам, а также для обмена информацией по межсистемным процессам. На сегодняшний день основное назначение SMB – это установка соединения с устройствами со старыми версиями ОС Microsoft для подключения к серверам и обмена файлами. В итоге нам удалось найти двух пользователей:
- jan
- kay
Попробуем подобрать пароль для пользователя jan с помощью соответствующего истурмента под названием hydra
hydra -l jan -P /usr/share/wordlistst/rockyou.txt 10.10.197.82 ssh -t 16
Note: если у вас не определяется rockyou.txt, значит, скорее всего его нужно разархивировать (или скачать). Распаковать архив можно следующей командой (предварительно перейти в папку с архивом):
gzip -d rockyou.txt.gz
Полученный пароль: armando
Для защищенного подключения к серверу можно использовать SSH.
SSH (Secure Shell) — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли.
Попробуем произвести подключение к серверу по найденным ранее логину и паролю:
Отлично, нам удалось войти. Посмотрим файлы в /home. Видим, что в этой директории находятся два пользователя, посмотрим на второго пользователя (kay)
Как я уже писал выше, мы нашли второго пользователя kay. Посмотрев содержимое его папки, можно обнаружить интересный файл pass.bak, но, к сожалению у нас не хватает прав на его просмотр, зато нам никто не мешает заглянуть в папку .ssh:
Находим здесь данные публичный и приватный rsa-ключи. Посмотрим приватный ключ:
nano id_rsa
После этого скопируем полностью файл (лично я проделал через Ctrl+C и Ctrl+V и вставил в txt-файл на рабочем столе (private_key.txt))
Далее с помощью ssh2john.py получаем хэш, по которому впоследствии будем находить пароль:
/usr/share/john/ssh2john.py private_key.txt > private_key_hash.txt
Note: если у вас не срабатывает скрипт, то скачайте новый файл с более поздней версией и замените его вместо старого (https://github.com/openwall/john/blob/bleeding-jumbo/run/ssh2john.py):
Теперь john может найти пароль по созданному ранее хэшу:
john private_key_hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
Мы нашли пароль для второго пользователя kay, попробуем авторизоваться по SSH, используя копию ключа и найденный пароль:
Получаем сообщение о том, что ключ ненадежный, убираем расширение .txt у файла-ключа, а также меняем права соответствующей командой:
chmod 0600 private_key
Пробуем еще раз и вот мы вошли:
Теперь спокойно можно прочитать файл pass.bk: