Pwn TeamCity in the Cloud

Pwn TeamCity in the Cloud


AWS PwnedLabs

aws configure

Agregamos la informacion que nos dan en la pagina y acuerdense poner en region us-west-2.

aws sts get-caller-identity

ssh_command.

No se en que region estoy entonces corro lo siguiente:

run ec2__enum

ssh_command.

run iam__bruteforce_permissions

ssh_command.

aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,PrivateIpAddress,Tags[?Key==`Name`]| [0].Value]' --output table

ssh_command.

Hacemos un scan y vemos que el puerto 8111 esta abierto.

aws ec2 describe-instance-attribute --instance-id 'i-0d2bb0d97cfcdebb5' --attribute userData

ssh_command.

Despues de eso vemos que esta en base64.

echo "<REDACTED>" | base64 -d

ssh_command.

Vemos que la ip es la siguiente: 10.1.20.239

Hacemos un nmap para ver cuales puertos estan abiertos.

ssh_command.

Llegamos a la conclusion que 22,8111 estan abiertos.

ssh_command.

Hacemos un ssh a la ip con la contrasena que encontramos al desincriptar el mensaje en base64.

ssh_command.

Vemos cuales son los comandos que podemos ejecutar

sudo -l

ssh_command.

Nos dirigimos a http://$ip:8111

Y vemos que no podemos entrar con las credenciales que nos dieron.

ssh_command.

sudo /usr/bin/cat /opt/JetBrains/TeamCity/logs/teamcity-server.log | grep -i "authentication token"

ssh_command.

Como dice en log iniciamos sesion sin usuario y ponemos como contrasena el siguiente entero.

ssh_command.

Al iniciar sesion nos dirigimos a los Agentes y vemos el agente por defecto.

ssh_command.

Nos dirigimos a InitialSetupCheck y vemos los ajustes.

ssh_command.

Le damos click a Manual y creamos un nuevo nombre para el build.

ssh_command.

Dejamos esto por defecto y seguimos en el siguiente paso.

ssh_command.

Le damos click a agregar el siguiente paso.

ssh_command.

Escogemos linea de comando.

ssh_command.

Y agregamos lo siguiente en el paso 2 para verificar que somos parte del grupo de sudo.

ssh_command.

Despues de editar todo corremos el script.

ssh_command.

Despues regresamos al inicio y en el enlace en la parte arriba de la derecha donde dice Administration. Le damos click y nos vamos a Global Settings.

Podemos ver que el directorio intersante seria /root/.BuildServer

ssh_command.

En el servidor nos dirigimos a esa direccion y vemos lo siguiente:

grep -R zxx

ssh_command.

Agarramos el script de teamcity-unscrambler script en python. Yo tuve que instalar cryptodome porque no me funcionaba.

sudo apt install python3-pycryptodome

Tambien tuve que modificar los prints ya que creo que estaba hecho para python2.7

ssh_command.

Al correr esto nos da las credenciales necesarias.

aws configure

aws s3 ls huge-logistics-teamcity --recursive

aws cp s3://huge-logistics-teamcity/flag/flag.txt

ssh_command.

© 2026 Cu3rv0x