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

No se en que region estoy entonces corro lo siguiente:
run ec2__enum

run iam__bruteforce_permissions

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

Hacemos un scan y vemos que el puerto 8111 esta abierto.
aws ec2 describe-instance-attribute --instance-id 'i-0d2bb0d97cfcdebb5' --attribute userData

Despues de eso vemos que esta en base64.
echo "<REDACTED>" | base64 -d

Vemos que la ip es la siguiente: 10.1.20.239
Hacemos un nmap para ver cuales puertos estan abiertos.

Llegamos a la conclusion que 22,8111 estan abiertos.

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

Vemos cuales son los comandos que podemos ejecutar
sudo -l

Nos dirigimos a http://$ip:8111
Y vemos que no podemos entrar con las credenciales que nos dieron.

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

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

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

Nos dirigimos a InitialSetupCheck y vemos los ajustes.

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

Dejamos esto por defecto y seguimos en el siguiente paso.

Le damos click a agregar el siguiente paso.

Escogemos linea de comando.

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

Despues de editar todo corremos el script.

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

En el servidor nos dirigimos a esa direccion y vemos lo siguiente:
grep -R zxx

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

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
