Red de conocimiento informático - Problemas con los teléfonos móviles - Puerto de escaneo VB6.0

Puerto de escaneo VB6.0

El creciente desarrollo y popularización de la tecnología de redes informáticas ha permitido que la información fluya libremente y disfrute de canales globales de alta velocidad. Sin embargo, la familia de protocolos TCP/IP utilizada actualmente tiene vulnerabilidades de seguridad potenciales y su mecanismo de seguridad no es sólido. recursos de la red interna de una empresa? Es un problema importante que debe resolverse urgentemente para que la seguridad de la red empresarial evite que atacantes externos destruyan o roben la información sin motivo. Cuando nos preocupamos por ser atacados por piratas informáticos o sospechamos que se ha implantado un caballo de Troya en nuestro ordenador, muchas veces recurrimos a un firewall. Este sistema es un método para prevenir ataques de piratas informáticos monitorizando todas las conexiones TCP en tiempo real. Al mismo tiempo, los administradores de red pueden monitorear el estado de ejecución y las condiciones de operación de las computadoras en red en tiempo real durante toda la operación de la red, lo que juega un papel extremadamente importante en la seguridad de la red. Hablemos del diseño e implementación de estos dos módulos principales utilizando Visual Basic 6.0 como herramienta de desarrollo.

Descripción general del sistema

El sistema consta de dos subsistemas: el sistema del lado del servidor y el sistema del lado del cliente (estación de trabajo). El sistema del lado del servidor se instala en la computadora del administrador de la red y se utiliza para implementar diversas operaciones de monitoreo en las computadoras en la red. El sistema cliente se instala en cada computadora en la red y aparece como un ícono en el área de aviso de la barra de tareas del sistema cuando se instala; se está ejecutando, no afecta otras operaciones de la estación de trabajo, solo se usa para responder a los comandos de monitoreo del lado del servidor y toma muestras oportunas de los datos correspondientes de la estación de trabajo de acuerdo con las necesidades comerciales. Solo responde a los comandos de monitoreo del lado del servidor. Muestre oportunamente los datos correspondientes de la estación de trabajo de acuerdo con las necesidades comerciales. El entorno operativo del sistema puede ejecutarse en Win98, Win95 o WinNT, Win2000. En el desarrollo del sistema se introdujo el control de comunicación WINSOCK, que además de realizar mejor las operaciones de monitoreo, también utilizó algunas funciones API.

Funciones del sistema

1. Supervise todas las conexiones TCP: supervise todas las conexiones de los puertos del servidor en tiempo real, advierta rápidamente las conexiones anormales y solicite a los usuarios que eliminen las conexiones anormales. > 2. Monitoreo de pantalla: Esta función permite al servidor monitorear la pantalla de la estación de trabajo en cualquier momento y capturar la pantalla del servidor. El administrador de la red puede comprender el funcionamiento de la estación de trabajo correspondiente de un vistazo.

Implementación funcional

1. Monitorear todas las conexiones TCP

TCP/IP (Protocolo de control de transmisión/Protocolo de Internet: TCP/IP (Protocolo de control de transmisión/Protocolo de Internet) ) :Protocolo de control de transmisión/Protocolo de Internet) es un protocolo de red, que incluye TCP, IP, UDP, ARP, RARP y TCP/IP (Protocolo de control de transmisión/Protocolo de Internet: Protocolo de control de transmisión/Protocolo de Internet: Protocolo de control de transmisión/Protocolo de Internet) es un conjunto de protocolos de red, incluidos TCP, IP, UDP, ARP, RARP e ICMP, etc. TCP / IP a menudo se denomina "pegamento que conecta Internet", que permite conectar redes de información espacialmente separadas para formar uno. Enorme red virtual.

Este artículo analiza las conexiones TCP. Usando TCP, un cliente de Internet puede abrir una conexión virtual a otro cliente de Internet y transmitir el flujo de datos a través de datagramas para garantizar la confiabilidad de la transmisión. garantiza que la aplicación receptora vuelva a ensamblar los bits y bytes recibidos en el orden en que fueron enviados para obtener datos completos.

Para obtener la conexión TCP completa y válida del sistema servidor, es necesario utilizar la función API GetTcpTable, que se define de la siguiente manera:

Función de declaración privada GetTcpTable Lib "iphlpapi.

dll " (ByRef pTcpTable As MIB_TCPTABLE, ByRef

pdwSize As Long, ByVal bOrder As Long) As Long

El parámetro pPcpTable es un puntero al archivo generado Búfer de la tabla de conexión TCP, y el parámetro pdwsize es el tamaño del búfer (cuando el parámetro pdwsize es el tamaño del búfer (cuando el búfer no es lo suficientemente grande, el parámetro devuelve el tamaño real requerido), el parámetro bOrder indica si el la tabla de conexiones está organizada por "IP local", "puerto local", IP "local remota", "puerto local", "puerto remoto" y se requieren otras secuencias, donde 1 es la secuencia.

Al comparar las dos tablas de conexión TCP antes y después del evento TIMER controlado por TIMEER, podemos encontrar inmediatamente la excepción y emitir una advertencia. El sistema utiliza sonidos y señales de advertencia para alertar a los usuarios sobre posibles intrusiones externas. Primero debemos eliminar la conexión sospechosa. La función SetTcpEntry puede ayudarnos a eliminar la conexión sospechosa.

Función de declaración privada SetTcpEntry Lib "iphlpapi.

dll" (ByRef pTcpTable As MIB_TCPROW) Siempre.

Donde el parámetro pTcptable es un puntero a la fila de la tabla tcp y se realizará la conexión. El estado se establece en MIB_TCP_STATE_DELETE_TCB (valor 12) para eliminar la conexión.

Código fuente del evento TIMER:

Private Sub Timer1_Timer()

Dim Return1 As Long, i As Long

Dim Tmp1 As Long , Tmp2 siempre

Dim Ip_Buf(1 a 4) como byte

Dim Win_Path como cadena, Tmp3 como cadena

Return1 = GetTcpTable(TCP1, Len( TCP1), 1)

If Last_Num_Of_Entries

Picture1.Visible = True 'Señal de advertencia

En caso de error Reanudar siguiente

Win_Path = String (145, 0)

'Usar la función API GetWindowsDirectory obtiene el directorio del sistema actual

i = GetWindowsDirectory(Win_Path, 145)

Win_Path = Left(Win_Path, i)

'Utilice la función API sndPlaySound para crear un sonido de alarma

i = sndPlaySound(Win_Path "\Media\Ding.wav", amp; H1)

En caso de error, Ir a 0

De lo contrario

Si Imagen1.Visible = Verdadero Entonces

Imagen1.Visible = Falso

Finalizar si

Finalizar si

Last_Num_Of_Entries = TCP1. dwNum_Of_Entries

Seleccionar caso Devolución1

Caso 0amp;:

Texto1 = "": Combo1.Clear

Para i = 0 A TCP1 .dwNum_Of_Entries - 1

Tmp3 = Str(i 1) " "

Seleccione Caso TCP1.TCP_Table(i).dwState

' Mostrar estado de conexión

Caso 1: Tmp3 = Tmp3 "CERRADO"

Caso 2: Tmp3 = Tmp3 "ESCUCHANDO"

Caso 3: Tmp3 = Tmp3 "SYN_SENT"

Caso 4: Tmp3 = Tmp3 "SYN_RCVD"

Caso 5: Tmp3 = Tmp3 "ESTABLECIDO "

Caso 6.Tmp3 = Tmp3 "FIN_WAIT1"

p>

Ejemplo 7: Tmp3 = Tmp3 "

FIN_WAIT2"

Ejemplo 8: Tmp3 = Tmp3 "CLOSE_WAIT"

Caso 9: Tmp3 = Tmp3 "CLOSING"

Caso 10: Tmp3 = Tmp3 "LAST_ACK"

Caso 11: Tmp3 = Tmp3 "TIME_WAIT"

Caso 12: Tmp3 = Tmp3 "DELETE_TCB"

Finalizar Selección

Combo1. Agregar elemento Tmp3 'Rellenar lista de eliminación de usuarios

'IP local

Tmp3 = Tmp3 ":" vbCrLf vbTab "Local:"

'CopyMemory como función API

CopyMemory Ip_Buf(1), TCP1.TCP1.TCP_Table(i).dwLocalAddr, 4

Tmp3 = Tmp3 CStr(Ip_Buf(1)) "."

CStr (Ip_Buf(2)) "." CStr(Ip_Buf(3)) _

"." CStr(Ip_Buf(4))

Tmp1 = TCP_Table(i). dwLocalPort

' Puerto local

Tmp2 = Tmp1 / 256 (Tmp1 Mod 256) * 256

' IP remota

Tmp3 = Tmp3 ":" Str(Tmp2) vbTab "Remoto:"

CopyMemory Ip_Buf(1), TCP1.TCP_Table(i).dwRemoteAddr, 4

Tmp3 = Tmp3 CStr(Ip_Buf(1 )) "." CStr(Ip_Buf(2))_

"." CStr(Ip_Buf(3)) "."

CStr(Ip_Buf(4))

' Puerto remoto

Tmp1 = TCP1.TCP_Table(i).dwRemotePort

Tmp2 = Tmp1 / 256 (Tmp1 Mod 256 ) * 256

Tmp3 = Tmp3 ":" Str(Tmp2) vbCrLf

Texto1 = Texto1 Tmp3

Siguiente i

Caso 50amp ;:

MsgBox "El sistema no soporta esta función API": Fin

Caso 87:

MsgBox "Parámetro no válido": Fin

Caso 111amp;:

MsgBox "Desbordamiento de buffer":

Caso 232amp;:

MsgBox "Sin datos": Fin

End Select

End Sub

HAGA CLIC en eliminar el código fuente del evento de conexión:

Private Sub delete_Click()

Dim Return1 As Long

If Combo1.ListIndex lt; 0 Then Exit Sub

' Establece el estado de la conexión que se eliminará en el valor 12

' Establece el estado de la conexión que se va a eliminar El estado es el valor 12. dwState = 12

'Realizar eliminación

Return1 = SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex))

'Realizar eliminación

Return1 = SetTcpEntry(TCP1.TCP_Table(Combo1.ListIndex))

Si Return1 = Long

Si Return1 = Combo1.

Si Return1 = 0 Entonces

MsgBox "Eliminación exitosa"

De lo contrario

MsgBox "Eliminación fallida"

Finalizar si

Timer1_Timer

End Sub

2. Monitoreo de pantalla

Cuando el sistema del servidor descubre TCP_Table. p> Cuando el sistema del servidor detecta una conexión TCP anormal, puede usar la función de monitoreo de pantalla para capturar la imagen de la pantalla desde la estación de trabajo monitoreada al servidor en la LAN e implementar las medidas correspondientes, como bloquear o apagar la estación de trabajo. Aquí se utiliza el control WINSOCK; consulte la información relevante para conocer su principio de comunicación. La función de monitoreo de pantalla utiliza el protocolo TCP. Para lograr mejores resultados, puede agregar un control TIMER al formulario y configurar el evento TIMER.

(1) Estación de trabajo

Monitorea y responde a solicitudes de conexión del lado del servidor y capturas de pantalla.

Una de las funciones de captura de pantalla se puede implementar a través de la función API:

Dim a As String

Winsock1.GetData a, vbString

Select Case a

Caso "zp"

Imagen1.GetData a, vbString

Seleccione Caso a

Caso "zp"

Imagen1.GetData a, vbString

Seleccionar caso a

Caso "zp"

Imagen1.GetData a, vbStringAutoRedraw = True

Imagen1 .ScaleMode = 1

lDesktop = GetDesktopWindow()

lDC = GetDC(lDesktop)

BitBlt Picture1.hdc, 0, 0, Screen.

Screen.Height, lDC, 0, 0, vbSrcCopy

'Obtener una matriz de imágenes

SavePicture Picture1.Image, nombre de archivo

Winsock1. SendData "okm "

Dim myfile() Como Byte

Caso "fir" 'Pasa el primer bloque de la imagen

Abrir nombre de archivo para binario como #1

filelen = LOF(1)

ReDim myfile(1 Para bloquear) como byte

'(const blockize=3072)

Obtenga # 1, miarchivo

Winsock1.SendData miarchivo