Hacking with Powershell

En esta entrada vemos la resolución de la sala Hacking with Powershell de TryHackme. También puede servir de una suerte de "Cheatsheet" ya que se incluyen los comandos más básicos para entender cómo funcionan los cmdlets y vemos cómo se enumeran diferentes recursos de una máquina con este lenguaje de scripting. Espero que te sea de utilidad.

Tarea 3 - Comandos básicos de Powershell

Cuál es la ubicación del archivo "interesting-file.txt"

Get-ChildItem -Path C:\ -Recurse | where {$_.Name -match '<NOMBRE_ARCHIVO>'}

Especifique el contenido de este archivo

type "C:\Program Files\interesting-file.txt.txt"

¿Cuántos cmdlets hay instalados en el sistema (sólo cmdlets, no funciones ni alias)?

Get-Command | Where-Object -Property CommandType -eq Cmdlet | Measure-Object

Obtén el hash MD5 de interesting-file.txt

Get-FileHash -Algorithm MD5 "C:\Program Files\interesting-file.txt.txt"

¿Cuál es el comando para obtener el directorio de trabajo actual?

¿Existe la ruta "C:\Users\Administrator\Documents\Passwords" (Y/N)?

cd "C:\Users\Administrator\Documents\Passwords"

¿Qué comando utilizarías para hacer una petición a un servidor web?

Base64 decode the file b64.txt on Windows

[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('dGhpcyBpcyB0aGUgZmxhZyAtIGlob3BleW91ZGlkdGhpc29ud2luZG93cwp0aGUgcmVzdCBpcyBnYXJiYWdlCnRoZSByZXN0IGlzIGdhcmJhZ2UKdGhlIHJlc3QgaXMgZ2FyYmFnZQp0aGUgcmVzdCBpcyBnYXJiYWdlCnRoZSByZXN0IGlzIGdhcmJhZ2UKdGhlIHJlc3QgaXMgZ2FyYmFnZQp0aGUgcmVzdCBpcyBnYXJiYWdlCnRoZSByZXN0IGlzIGdhcmJhZ2UKdGhlIHJlc3QgaXMgZ2FyYmFnZQp0aGUgcmVzdCBpcyBnYXJiYWdlCnRoZSByZXN0IGlzIGdhcmJhZ2UKdGhlIHJlc3QgaXMgZ2FyYmFnZQp0aGUgcmVzdCBpcyBnYXJiYWdlCnRoZSByZXN0IGlzIGdhcmJhZ2U='))

Tarea 4 - Enumeración

¿Cuántos usuarios hay en la máquina?

Get-LocalUser

¿A qué usuario local pertenece este SID (S-1-5-21-1394777289-3961777894-1791813945-501)?

WMIC useraccount get name,sid

¿Cuántos usuarios tienen los valores requeridos de la contraseña establecidos en "False"?

Get-LocalUser | select PasswordRequired

¿Cuántos grupos locales existen?

Get-LocalGroup | Measure-Object

¿Qué comando utilizaste para obtener la información de la dirección IP?

¿Cuántos puertos en escucha aparecen listados?

Get-NetTcpConnection | Where-Object -Property State -Match Listen | measure

¿Cuál es la dirección remota del puerto local que escucha en el puerto 445?

Get-NetTcpConnection | Where-Object -Property LocalPort -eq 445

¿Cuántos parches se han aplicado?

Get-HotFix | measure

¿Cuándo se instaló el parche con ID KB4023834?

Get-HotFix | Where-Object -Property HotFixID -eq KB4023834

Buscar el contenido de un archivo de copia de seguridad

Get-ChildItem -Path C:\ -Include *.bak* -Recurse

Buscar todos los archivos que contengan API_KEY

Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue | Select-String -Pattern "API_KEY" -List | select Path
type C:\Users\Public\Music\config.xml

¿Qué comando hace para listar todos los procesos en ejecución?

¿Cuál es la ruta de la tarea programada llamada new-sched-task?

Get-ScheduledTask | Where-Object -Property TaskName -eq new-sched-task

¿Qué usuario es el propietario de la unidad C:\?

Get-Acl C:\ | Select-Object Owner

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Espero que este Writeup te haya sido de utilidad, si tienes alguna duda, sugerencia o simplemente te interesa este tipo de contenido no dudes en seguirme a través de cualquiera de mis redes sociales:

📝 LinkedIn ⮞ https://www.linkedin.com/in/david-rodriguez-ramos/ ▶️ YouTube ⮞ https://www.youtube.com/c/xerosec 🐦 Twitter ⮞ https://twitter.com/xerosec 🔴 Twitch ⮞ https://www.twitch.tv/xerosec 💬 Discord ⮞ https://discord.gg/E4AjK2XsFm

¡Gracias por llegar hasta aquí!

Última actualización