Crea tu propio PortScanner Asincrono de Consola en VB.NET en solo 3 pasos

Iniciado por 79137913, Diciembre 05, 2019, 10:21:52 AM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Diciembre 05, 2019, 10:21:52 AM Ultima modificación: Diciembre 05, 2019, 10:25:42 AM por 79137913
HOLA!!!

Hoy veremos como crear un PortScanner asincrono con You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login!

1)Primero crearemos el proyecto


2)Entramos en la seccion de Codigo Fuente de nuestra aplicacion y pegamos lo siguiente:
Código: vbnet

'By 79137913 for http://underc0de.org
Imports System.Net.Sockets
Imports System.Net
Imports System.Threading
Module PortScanner
    Sub Main()
        'Creamos el banner
        Console.WriteLine("  _    _           _                ___      _      ")
        Console.WriteLine(" | |  | |         | |              / _ \    | |     ")
        Console.WriteLine(" | |  | |_ __   __| | ___ _ __ ___| | | | __| | ___ ")
        Console.WriteLine(" | |  | | '_ \ / _` |/ _ \ '__/ __| |/| |/ _` |/ _ \")
        Console.WriteLine(" | |__| | | | | (_| |  __/ | | (__| |_| | (_| |  __/")
        Console.WriteLine("  \____/|_| |_|\__,_|\___|_|  \___|\___/ \__,_|\___|")
        Console.WriteLine("                            Port Scanner By 79137913")
        Console.WriteLine("")

        Console.WriteLine("Inserte el Puerto de inicio:    ")
        Dim PortIni As Integer = Console.ReadLine 'Solicitamos el Puerto de inicio
        Console.WriteLine("Inserte el Puerto de finalizacion: ")
        Dim PortFin As Integer = Console.ReadLine 'Solicitamos el Puerto de Finalizacion
        Console.WriteLine("Inserte IP a escanear: ")
        Dim IP As String = Console.ReadLine
        If IPAddress.TryParse(IP, Nothing) = False Then 'Si el ip esta mal escrito
            Console.WriteLine("El IP Ingresado es erroneo.")
            Exit Sub
        End If

        If PortIni <= 0 Then PortIni = 1 'Verificamos que ninguno de los dos puertos sea 0 o menor
        If PortFin <= 0 Then PortFin = 1 'Verificamos que ninguno de los dos puertos sea 0 o menor
        If PortFin < PortIni Then 'Si el puerto de incio es mayor que el puerto final los intercambiamos
            Dim Aux As Integer
            Aux = PortIni
            PortIni = PortFin
            PortFin = Aux
        End If
        If PortFin > 65535 Then PortFin = 65535 'Verificamos que el puerto final no sea mayor que 65535

        For port = PortIni To PortFin
            Dim auxPort As Long = port 'Creamos una variable auxiliar para manejar la funcion lambda de una manera segura.
            Task.Run(Sub() CheckPort(auxPort, IP))
        Next
        Console.WriteLine("Espere los resultados o presione ENTER para salir.")
        Console.ReadLine() ' Esperamos los resultados
    End Sub

    Private Sub CheckPort(ByVal port As Long, ByVal IP As String)
        Dim myTcpClient As New TcpClient() ' Creamos un cliente TCP
        Try
            myTcpClient.Connect(IP, port) 'Creamos una conexion con el ip y puerto
            Console.WriteLine("Puerto " + port.ToString() + " Abierto ")
            myTcpClient.Close() 'Cerramos la conexion
        Catch ex As SocketException
            Console.WriteLine("Puerto " + port.ToString() + " Cerrado " + ex.Message)  'Si hay un error lo ponemos como cerrado e indicamos cual es la causa.
        End Try
    End Sub
End Module


3)Cuando ya colocamos el codigo solo queda iniciar (apretar F5) e ir respondiendo lo que nos pide el programa:


Descargar Source: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Hecho y redactado por 79137913

Agradecimientos @Antrax

Para los curiosos:
Veran que mediante el metodo You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login Pude ejecutar funciones de forma asincrona, esto nos sirve para que el codigo no se quede esperando a que cada puerto sea escaneado y a su vez escanee todos a la vez.
Si quieres ver el codigo en C# te invito a usar el conversor de codigo de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login es muy facil y practico.

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Me gustó y me pareció interesante el aporte.

Soy partidario de que te pases a C#.

También use el vb 6.0, con el antiguo ADO y DAO.

Bueno, Saludos.