feat: first commit from win server 2019 - Labs vmware
This commit is contained in:
parent
b89f6600d5
commit
0a6f271052
75
pwsh7/Microsoft.PowerShell_profile.ps1
Normal file
75
pwsh7/Microsoft.PowerShell_profile.ps1
Normal file
@ -0,0 +1,75 @@
|
||||
function Start-SshReverseTunnel {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Inicia un túnel SSH reverso de forma segura ocultando parámetros sensibles.
|
||||
#>
|
||||
|
||||
# 1. Deshabilitar el historial para esta sesión de forma inmediata
|
||||
Set-PSReadLineOption -HistorySaveStyle SaveNothing
|
||||
|
||||
Write-Host "`n[!] SSH REVERSE TUNNEL - SECURE INITIALIZATION" -ForegroundColor Cyan
|
||||
Write-Host "[*] El historial de comandos ha sido desactivado para esta sesión." -ForegroundColor Gray
|
||||
|
||||
# 2.MALA-PRACTICA (esta hardcodeado) Definición de valores hardcodeados (Valores estáticos) (MALA PRACTICA)
|
||||
$static_r = "2229"
|
||||
$static_s = "..."
|
||||
$static_t = "..."
|
||||
$static_t_u = "..."
|
||||
|
||||
# Inicialización como SecureString (Para compatibilidad con tu lógica de conversión)
|
||||
# Usamos -AsPlainText -Force para convertir el texto plano en objeto SecureString en memoria
|
||||
$p_relay = ConvertTo-SecureString $static_r -AsPlainText -Force
|
||||
$p_ssh = ConvertTo-SecureString $static_s -AsPlainText -Force
|
||||
#> $target = ConvertTo-SecureString $static_t -AsPlainText -Force
|
||||
$target_u = ConvertTo-SecureString $static_t -AsPlainText -Force
|
||||
|
||||
# 2. Captura de datos con enmascaramiento (asteriscos) (MEJOR PRACTICA, NO HARDCODEADO COMO LO ANTERIOR)
|
||||
#> $p_relay = Read-Host "[-] Ingrese Puerto Relay (R)" -AsSecureString
|
||||
$p_ssh = Read-Host "[-] Ingrese Puerto SSH NAS (S)" -AsSecureString
|
||||
#>#> $target = Read-Host "[-] Ingrese Usuario Endpoint (User@Host)" -AsSecureString
|
||||
$target_u = Read-Host "[-] Ingrese Usuario (Target) Endpoint (User@)" -AsSecureString
|
||||
|
||||
# 3. Conversión segura en memoria
|
||||
$r = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($p_relay))
|
||||
$s = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($p_ssh))
|
||||
#>#> $t = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($target))
|
||||
$u = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($target_u))
|
||||
|
||||
# 4. Construcción y ejecución
|
||||
# Nota: Se usa el puerto 22 local por defecto según tu SOP anterior
|
||||
#>#> $sshArgs = "-Command ssh -R ${r}:localhost:22 -N -C -i $HOME\.ssh\id_ed25519 -p ${s} ${u}@${d} -o 'ServerAliveInterval 30' -o 'ExitOnForwardFailure yes'"
|
||||
$sshArgs = "-Command ssh -R ${r}:localhost:22 -N -C -i $HOME\.ssh\id_ed25519 -p ${s} ${u}@dzamo.duckdns.org -o 'ServerAliveInterval 30' -o 'ExitOnForwardFailure yes' -o 'ServerAliveCountMax 3' -o 'StreamLocalBindUnlink=yes'"
|
||||
|
||||
Write-Host "[+] Lanzando proceso SSH en segundo plano (Hidden)..." -ForegroundColor Yellow
|
||||
|
||||
try {
|
||||
Start-Process pwsh -ArgumentList $sshArgs -WindowStyle Hidden
|
||||
Write-Host "[OK] Túnel reverso inicializado correctamente." -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "[ERROR] No se pudo lanzar el proceso." -ForegroundColor Red
|
||||
}
|
||||
|
||||
# 5. Limpieza agresiva de memoria
|
||||
$r = $s = $t = $null
|
||||
[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($p_relay))
|
||||
[System.GC]::Collect()
|
||||
}
|
||||
|
||||
function Get-SshTunnels {
|
||||
Get-CimInstance Win32_Process -Filter "Name = 'ssh.exe'" |
|
||||
Select-Object @{N='PID';E={$_.ProcessId}}, @{N='Command';E={$_.CommandLine}} |
|
||||
Out-GridView -Title "Túneles SSH Activos" # Abre una ventana visual para verlos
|
||||
}
|
||||
|
||||
function Stop-SshTunnels {
|
||||
Write-Host "Deteniendo todos los procesos ssh.exe..." -ForegroundColor Yellow
|
||||
Get-Process ssh -ErrorAction SilentlyContinue | Stop-Process -Force
|
||||
Write-Host "[OK] Túneles cerrados." -ForegroundColor Green
|
||||
}
|
||||
|
||||
function View-SshExeRunning{
|
||||
Get-CimInstance Win32_Process -Filter "Name = 'ssh.exe'" | Select-Object ProcessId, CommandLine | Format-List
|
||||
}
|
||||
|
||||
# Crear un alias corto para uso rápido (opcional)
|
||||
Set-Alias -Name stn -Value Start-SshReverseTunnel
|
||||
File diff suppressed because one or more lines are too long
1990
pwsh7/Scripts/winget-install.ps1
Normal file
1990
pwsh7/Scripts/winget-install.ps1
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user