
실습형 침투 테스트 훈련을 위한 보안에 취약한 TeamCity CI 환경: 정찰, 자격 증명 탈취, 권한 상승 및 횡적 이동.
안전하지 않게 구성된 TeamCity 지속적 통합 환경입니다.
작업 진행 중: 배포 코드가 곧 결국 제공될 예정입니다.

PwnCity를 통과하는 경로는 하나 이상일 수 있지만, 아래는 2월 24일 OWASP 새크라멘토 지부 모임에서 발표할 경로입니다.
참고: 데모이므로 여기서는 작전 보안(OpSec)을 대부분 무시합니다.
nmap -Pn -p- 52.234.0.18.
nmap 52.234.0.18은 죽은 것처럼 보이게 만듭니다.nmap -Pn 52.234.0.18.


bob, 비밀번호 bobhacks?를 만듭니다.
bob으로 로그인한 상태에서 Projects > SimpleMavenSample > Build > Settings로 이동합니다.Parameters에 자격 증명이 포함되어 있음을 확인합니다.

ssh [email protected]에 재사용되는지 확인하고, 낮은 권한의 사용자로 SSH 접속합니다.

초기 발판에서 터널링을 할 수 있습니다. 두 빌드 에이전트에서 RDP가 열려 있다는 것을 알면 찾은 자격 증명으로 인증을 시도할 수 있지만... 그건 그렇게 재미있지 않습니다.
cat /home/dev/TeamCity/TeamCity/logs/teamcity-server.log | grep "Super user".

Administration > Projects > Create project를 통해 새 프로젝트 PwnAgent를 만들고 빌드 에이전트에서 셸을 얻습니다.

cmd.exe/c %system.teamcity.build.checkoutDir%/launcher.bat

자격 증명은 rockyou.txt에서 선택했습니다.
PwnAgent01에는 Microsoft Defender가 활성화되어 있습니다. 이를 우회하는 것이 확실히 여전히 가능하지만, 우리가 시연한 악성 빌드 단계는 차단됩니다.



이 섹션은 랩 환경을 관리할 때 유용했던 스니펫 모음입니다.
TeamCity 호스트에 동적 포트 포워딩을 설정하여 로컬 리소스에 접근합니다: ssh -D 9050 [email protected].proxychains4 xfreerdp /u:dev /v:10.0.0.6:3389.Run 옆의 ...을 선택한 다음, 대상으로 하는 원하는 에이전트를 선택합니다. 모든 것이 순조롭다면 에이전트가 콜백을 보냅니다.

powershell/situational_awareness/network/portscan 모듈로 포트 스캔을 실행합니다. 10.0.0.7에 3389,445,139,135가 모두 열려 있음을 발견합니다.

bruno의 비밀번호를 얻습니다.powershell/lateral_movement/invoke_smbexec를 실행하여 NTML 해시를 통해 Bruno-PC에서 비콘을 얻습니다.
