Powershell

Port Scanning

# Define o endereço IP alvo
$enderecoIP = "192.168.1.158"

# Define o intervalo de portas para o scan (ajuste conforme necessário para um teste mais rápido)
$portas = 1..1024

# Especifica o caminho do arquivo de saída
$arquivoSaida = "portscan.txt"

# Prepara o arquivo de saída
"Portas abertas no ${enderecoIP}:" | Out-File $arquivoSaida

# Inicializa a variável de progresso
$progresso = 0
$totalPortas = $portas.Count

foreach ($porta in $portas) {
    # Atualiza e exibe a barra de progresso
    $percentComplete = [math]::Round(($progresso / $totalPortas) * 100, 2)
    Write-Progress -PercentComplete $percentComplete -Status "Scanning: $enderecoIP" -Activity "Port Scan Progress" -CurrentOperation "Porta ${porta}"

    $connection = $null

    try {
        # Tenta conectar com um timeout de 1000ms (1 segundo)
        $connection = New-Object System.Net.Sockets.TcpClient($enderecoIP, $porta)
        $connection.ReceiveTimeout = 1000
        $connection.SendTimeout = 1000

        if ($connection.Connected) {
            "Porta ${porta}: Aberta" | Out-File -FilePath $arquivoSaida -Append
        }
    } catch {
        # Não faz nada se a porta estiver fechada
    } finally {
        if ($connection -ne $null) {
            $connection.Close()
        }
    }

    $progresso++
}

Write-Progress -PercentComplete 100 -Status "Scan Completo" -Completed
"Scan completo." | Out-File -FilePath $arquivoSaida -Append

Last updated