День 8. Проходим Simple CTF
Запускаем машинку, получаем ip, когда я решаю CTF или что то ломаю, выполняю действия:
Внешний (открытый доступ - сайт)
0) Поставить цель достичь/проверить/выполнить задание (поиск флага и т.д.)
1)Сбор информации (собираем информацию, о портах, какое там ПО и версии, смотрим сайт, перебор директорий и т.д., все что можно использовать)
2)Проверка на эксплойт (чаще всего уже можно найти готовые, но ещё чаще, ломаем логику или находим обходы)
3)Эксплуатация "эксплойта или обхода"
Внутрянка (когда мы попали в закрытую часть - сервер)
1)Поиск информации - перебор пользователей, прав и т.д.
2)Повышение прав до root (загрузка оболочки/обход/готовый эксплойт)
3)Достижение цели
Приступим к взлому.
0) Цель - ответить на вопросы
Nmap - расскажет какие порты открыт, главное правильно спросить.
пока сканируется зайдем на сайт, нас встречает стандартная страничка Apache2, на нем размещен сам сайт, значит сайт лежит, где то ещё.
Попробуем найти директории сайта.dirsearch -e php,html,sql,js,tar,log,tar.gz,gz,zip,swp,rar,asp,aspx -u 10.10.109.88
- запускаем dirserach
- указываем что мы хотели бы найти,
- "-e php,html,sql,js,tar,log,tar.gz,gz,zip,swp,rar,asp,aspx"
- указываем где искать -u 10.10.109.88
Отлично, сайт настроен на директории /simple, ещё нашелся /robots.txt
Этот robots.txt
скрывает весь сайт от поисковиков и особенно защищает /openemr-5_0_1_3
. Однако, он не блокирует доступ злоумышленникам – любой может просто зайти в запрещённые каталоги вручную.
Хорошо, но такой страницы я не нашел, возможно плохо искал, или её нет.
Посмотрим, что скажет нам dirsearch если мы запустим его ещё раз, но укажем теперь /simple
Отлично, /admin и /login, попробуем зайти.
Нас встречает движок сайта CMS made simple - можно искать эксплоит или перебирать юзеров.
Но сперва посмотрим что там скажет nmap
видим 3 порта
21 - ftp
80 - сайт
2222 - это нестандартный порт для ssh, обычно 22, хорошо.
пробуем 21 порт зайти через ftp
Да, пропускает через анонимуса, но сделать ничего не могу, идем дальше. (означает, что сервер переключился в расширенный пассивный режим (EPSV) и открыл порт 46910 для передачи данных)
Для ssh 2222 нужно найти логин и пароль, перебирать пока не будем.
Вернемся к цели и ответим на вопросы, что уже нашли
так у нас есть движок сайта, можно начать искать с него CMS made simple
Отлично, поробуем sqli - подобрать данные
Атакует уязвимость SQL-инъекции в moduleinterface.php
.
Извлекает соль из таблицы cms_siteprefs
.
Извлекает логин, email и пароль администратора из cms_users
.
Если включена опция взлома (-c
) – пытается расшифровать пароль с помощью словаря.
Скрипт отлично отработал и вытащил данные с бд.
Разберемся теперь "что это?".
[+] Salt for password found: 1dac0d92e9fa6bb2 - это добавка к шифрованию пароля
[+] Username found: mitch - Логин
[+] Email found: admin@admin.com - почта
[+] Password found: 0c01f4468bd75d7a84c7eb73846e8d96 - зашифрованый пароль + salt
то есть было слово "пароль" и его зашифровали + добавили к шифрованию значение соль, зачем? Потому чтобы перебор не нашел "пароль"
*Расшифровка пароля*
1) узнаем что за формат шифрования.
hashid + парольhashid 0c01f4468bd75d7a84c7eb73846e8d96
Скорее всего это MD5
Пробуем расшифровать.
hashcat -O -a 0 -m 20 0c01f4468bd75d7a84c7eb73846e8d96:1dac0d92e9fa6bb2 /usr/share/wordlists/rockyou.txt
Эта команда выполняет атаку на хеш MD5 с солью (md5($salt.$pass)
) и пытается подобрать пароль с помощью словаря rockyou.txt
Пароль найден - "secret
"
Там где есть пароль, есть и логин - mitch
Теперь пробуем зайти по ssh
Отлично, что делает хакер когда проникает на сервер?
Первым делом, он не знает кто он и какие у него права, смотрим.
uid=1001(mitch)
– User ID (UID):
→ Ваш пользователь mitch имеет идентификатор 1001.
→ Это обычный пользователь (UID 0 зарезервирован для root
).
gid=1001(mitch)
– Group ID (GID):
→ Группа mitch имеет идентификатор 1001.
→ Это основная группа пользователя.
groups=1001(mitch)
– Дополнительные группы:
→ Пользователь mitch
не состоит в других группах (например, sudo
или root
).
→ Если бы mitch
был в группе sudo
, то можно было бы использовать sudo
для запуска команд от root
.
Мы зашли за mitch, а у него нет прав супер-пользователя (root), но все же что мы можем выполнить от root?
Vim - это же редактор кода/текста, мы можем вписать себе сами привилегии.
можем посмотреть как повысить привелегии на сайте https://gtfobins.github.io/gtfobins/vim/#suid
получили root, теперь выполним цели.
Цель достигнута - ханули - ответили на вопросы)
Основная группа обучения ИБ
Lab-группу с полезным софтом / книгами / аудио.
Чат для обсуждений, задавай свои вопросы.
P.S. С вами был @Fnay_Offensive
До новой встречи, user_name!