INGENIERO EN SISTEMAS...
Transcript of INGENIERO EN SISTEMAS...
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
“Hacking Ético”
PROYECTO DE GRADO
Previo a la Obtención del Titulo de
INGENIERO EN SISTEMAS COMPUTACIONALES
Autores:
ESCOBAR BARZOLA ROSA
TRUJILLO QUIMI JIMMY
GUAYAQUIL – ECUADOR
Año: 2005
AGRADECIMIENTO
A Dios por cada día de nuestras vidas
A nuestros padres por el amor y los sacrificios
hechos para lograr de nosotros personas de
provecho para la sociedad.
A las personas que de una u otra manera nos
han brindado su apoyo, en especial al Ing. José
Luis Peralta que compartió sus conocimientos y
experiencias para la realización de este
proyecto.
DEDICATORIA
A NUESTROS PADRES
A NUESTROS MAESTROS
A NUESTROS AMIGOS
A NUESTROS COMPAÑEROS
TRIBUNAL DE GRADUACIÓN
Ing. Fernando Abad. Decano
Ing. José Luís Peralta Director de Tesis
Ing. Juan Carlos Chico Vocal
Ing. Juan Sánchez Holguín Vocal
Ab. Juan Chávez Atocha Secretario
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente al suscrito,
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas
Computaciones, Art. 26).
Rosa Escobar B.
Jimmy Trujillo Q.
RESUMEN
El nacimiento de la gran tecnología que cambió al mundo entero es conocido en nuestro medio como la gran red de redes, Internet que nació como un proyecto militar de los Estados Unidos y que hoy se ha convertido en un medio de comunicación para el mundo entero.
Recordemos que toda organización al estar conectado al gran mundo de la red de redes pone en riesgo no solo su información si no todos sus recursos, es aquí donde Hacking Ético realizará un scan de las maquinas en la red y detectará las debilidades en cada una de ellas donde podrían ser afectada la red.
Es importante saber contra que y quienes se debe proteger la organización, la consecuencia de estos ataques pueden ser muy perjudiciales para las empresas ya que la violación de sistemas representan pérdidas de dinero, tiempo y esfuerzo. Ante esta necesidad de protección es necesario implementar mecanismos de seguridad, este proyecto esta diseñado para alertar a los administradores de redes de los diferentes ataques que puede sufrir la red de una organización. Este proyecto tiene como objetivo alertar y ayudar a todas las organizaciones a tomar las diferentes medidas necesarias al obtener conocimiento de sus vulnerabilidades en el sistema de comunicación del mundo de la red de redes, Internet.
INDICE GENERAL
AGRADECIMIENTO II
DEDICATORIA III
TRIBUNAL DE GRADUACIÓN IV
DECLARACIÓN EXPRESA V
RESUMEN VI
INDICE GENERAL VII
PARTE I INTRODUCCIÓN 1
CAPITULO 1
Introducción 1
1 Antecedentes 1
2 Problemáticas 2
3 Solución de las problemáticas 4
4 Definición del proyecto 5
5 Misión y Visión 6
5.1 Misión 6
5.2 Visión 7
6 Objetivos del proyecto 7
6.1 Objetivos Generales 7
6.2 Objetivos específicos 7
7 Alcance del proyecto 8
7.1 Scan de la red 9
7.2 Hacking 10
7.3 Almacenamiento len la base de datos 12
7.4 Interfaz del software 13
8 Beneficios del proyecto 13
9 Cronograma 14
10 Recursos necesarios para el proyecto 15
10.1 Recurso de Hardware 15
10.2 Recurso de Software 16
11 Presupuestos 16
12 Metodología 17
12.1 Metodología del análisis 18
12.2 Metodología del diseño 19
CAPITULO 2
1 Levantamiento de información 20
1.1 Quienes son los atacantes 21
1.2 Tipos de ataques 23
1.2.1 Acceso no autorizado 23
1.2.1.1 Ingeniería social 23
1.2.1.2 Packet Sniffing 24
1.2.1.3 Explotación o infraestructura 24
1.2.2 Negación de servicios 24
1.2.3 Hurto de información 25
1.3 Tipos de ataques 25
1.3.1 Jugadores 25
1.3.2 Espías 26
1.3.3 Vándalos 26
2 Análisis de requerimientos 26
3 Diccionario de datos 27
4 Diagrama entidad relación 28
4.1 Especificación de proceso 28
5 Diagrama de flujo de datos 31
5.1 Especificación de procesos 31
5.1.1 Ingreso de IP 31
5.1.2 Por cada scan de dirección IP ingresada 32
5.1.3 Por cada Scan se realiza ataque a los puertos vulnerables 33
6 Diagrama de transición de datos 34
6.1 Especificación de control 35
7 Diagrama de casos de uso 36
CAPITULO 3
1 Diseño de Interfaz 41
2 Diseño de Componentes 47
3 Diseño Arquitectónico 48
CAPITULO 4
4.1 Desarrollo del Sistema 49
4.1.1 Creación de la Base de Datos 49
4.1.2 Creación de los Componentes 53
4.1.2.1 Interfaz de acceso 54
4.1.2.2 Interfaz menú principal 54
4.1.2.3 Interfaz obtención de direcciones 55
4.1.2.4 Interfaz scan de direcciones 56
4.1.2.5 Interfaz hack de dirección 58
4.1.2.6 Interfaz informes 59
4.1.3 Seguridades 60
4.1.3.1 Base de Datos 60
4.1.3.2 del Sistema 60
4.1.3.3 registro de logs 61
4.2 Prueba del Sistemas 61
4.2.1 Modelo de prueba 61
4.2.2 Prueba de interfaz 62
4.2.3 Prueba de componentes 63
4.2.4 Calidad del sistema 64
4.2.4.1 Cumplimiento de los requerimiento (los alcances) 64
CAPITULO 5
5.1 Implementación de Sistemas 65
5.2 Elementos físicos 65
5.3 Elementos lógicos 66
5.4 Elementos humanos 66
5.5 Infraestructuras 67
5.6 Capacitación de los Usuarios 67
CAPITULO 6
6.1 Recomendaciones 68
6.1.1 Hardware 68
6.1.2 Software 68
6.1.4 seguridades 69
7 Conclusiones 69
1
CAPITULO 1
INTRODUCCIÓN
1 Antecedentes
El nacimiento de la gran tecnología que cambió al mundo entero es
conocido en nuestro medio como la gran red de redes Internet, nació
como un proyecto militar de los Estados Unidos y que hoy se ha
convertido en un medio de comunicación para el mundo entero.
A medida que los mecanismo de seguridad avanzan, los posibles medios
de ataques son cada vez más sofisticados, para tener un sistema de
seguridad efectivo que brinde protección a la red de la empresa es
importante saber contra que y quienes se debe estar protegido; este
proyecto esta diseñado para alertar a los administradores de redes de los
diferentes ataques que puede sufrir, a su vez indica cuales son las
vulnerabilidades que deben ser corregidas.
Todas las empresas poseen una conexión a Internet en un esquema
abierto donde pueden ser fáciles de sufrir cualquier ataque si no toman
2
las medidas necesarias, pero cuales son los riesgos que corren? cuales
son las medidas que se deben tomar? por que debe utilizar un firewall?
Estas preguntas tendrán su respectiva respuesta a lo largo del desarrollo
de la tesis
2 Problemáticas
Uno de los problemas más comunes es la filtración de un programa
dañino (virus) que siempre se infiltra sin que los usuarios lo detecten
hasta que es demasiado tarde, existe un sinnúmero de estos programas,
cuyas consecuencias van desde una pequeña molestia hasta una
destrucción total de la información.
Actualmente existe una nueva generación de vandalismo cibernético,
debido a su modalidad de incursión ilegal en servidores, estaciones de
trabajo o PC’s, haciendo uso de herramientas de software de diversos
orígenes.
Un intruso puede tomar el control de los sistemas, con los consiguientes
daños que ello implica, nada menos que a través de cualquiera de los
65535 puertos TCP/IP y a los que habría que agregarles otros tantos
puertos UDP.
3
Esto significa que existen decenas de miles de posibilidades de irrumpir
en los sistemas y la mayoría de Firewalls no están en la capacidad de
detectar las nuevas artimañas empleadas por lo creadores de virus.
En octubre del 2001, el FBI a través del IPCIS (Infrastructure Protection
and Computer Intrusion Squad) realizó una investigación a 500
organizaciones de EE.UU. Resultó que el 90% de ellas sufrieron alguna
especie de ataque informático en los últimos 12 meses y, aún así, 32% de
ellas ni siquiera sabían acerca del ataque. Las pérdidas de estas
organizaciones se reportaron alrededor de los $260mdd.
Estos antecedentes causan que varias empresas no puedan gozar de los
beneficios de conectarse al ciberespacio de una manera productiva en su
totalidad de la empresa. Hay muchas empresas que han tenido problema
del robo de información por medio de hackers lo cuales utilizan de
cualquier manera la información obtenida ya sea para chantajear a la
misma empresa o venderla a la competencia lo cual causan un daño
gravísimo para la estabilidad de cualquier empresa.
4
Es extremadamente importante la seguridad en su red, es por esta razón
que debe haber una considerable inversión en las empresas para
protegerse de amenazas constantes en la red.
3 Solución de las problemáticas
Uno de los mecanismos para poder proteger su red de Hackers o
programas maliciosos es adquiriendo o diseñando software que permita
realizar un Scan a su red ver sus puntos vulnerables por donde es
posible ingresar a su servidor y causar perdidas millonarias que se
podrían prevenir con una inversión en seguridades de red
Una solución es Hacking Ético que realizará un scan de las maquinas en
la red y detectará las debilidades en cada una de ellas donde podrían ser
afectada la red. A su vez alertará al administrador de la red mostrando
todos los puertos por donde su seguridad puede ser vulnerada o atacada,
para que de esta manera el responsable del departamento tome las
medidas adecuadas para la protección de la información
Ante esta necesidad de protección muchas empresas optan por colocar
ambientes restringidos en sus redes a través de mecanismos de
seguridad.
5
4 Definición del Proyecto
El proyecto consiste en la creación de una herramienta que le permite al
administrador de la red de una empresa ejercer un mayor control de los
diferentes requerimientos de datos compartidos que se ubican en mi
servidor, que navegan a través de los diferentes puertos de la red y del
uso del servicio de Internet,
Los datos que viajan al servidor a través de los diferentes puertos
definidos para bloqueos serán detectados y negada su recepción. Se
emitirá un archivo plano donde se almacena la dirección IP de la máquina
que se está realizando el ataque, el paquete que intenta ingresar y el
puerto por donde se trata de vulnerar.
A partir de los archivos generados por el scan realizado se podrá
determinar:
La fecha que se realizó el scan
Qué usuarios se encuentran conectados en la red
El número de puertos abiertos por cada IP escaneada
La descripción de cada puerto que se encuentra en estado abierto.
Descripción de posible troyanos
6
Con el archivo plano del hackeo realizado se podrá determinar:
La fecha que se realizó el hackeo.
La dirección IP de la máquina que envía el paquete.
La dirección IP de la máquina que recibe el paquete.
Identificación del puerto que se realizará el ataque.
Si existe la conexión o bloqueo al puerto que se intenta ingresar.
Estos reportes nos permitirán tomar decisiones preventivas o correctivas
con respecto al uso de los puertos y servicios antes mencionados.
5 Misión, Visión
5.1 Misión
Desarrollar una herramienta que ayude alertar a los diferentes
Administradores de Red de las vulnerabilidades y así puedan realizar un
control eficiente y eficaz del manejo de los recursos compartidos de la red y
la protección adecuada de la información que la organización necesita.
7
5.2 Visión
Implementar un software que permita a los Administradores de redes tomar
las mejores decisiones para aportar a la empresa con la optimización de
costos y seguridad en la red.
6 Objetivos del proyecto
6.1 Objetivos Generales
En la fase investigativa que es el estudio mas a fondo de la
plataforma a usar en este caso sistema Microsoft Visual Basic.
Al deliberar que herramienta de programación se utilizara para
elaborar el software se adquirirá más conocimiento de la misma y
desarrollo de esta.
Adquisición de conocimiento por medio de la indagación y consulta
de la comunicación entre hardware y software sobre los puertos e
investigación de herramientas de hackeo o tipos de hackeo
6.2 Objetivos Específicos
Estudiar y analizar un sistema contra los ataques de hacker.
Diagnosticar el Nivel de seguridad en los computadores personales
8
Reducir los puntos vulnerables y las debilidades que se ha
determinado en el sistema.
Proporcionar informes de las debilidades de una red al administrador
Alertar al Administrador de la red, de todos los huecos de seguridad
que tienen las estaciones o el servidor que este conectado a
Internet.
7 Alcance del Proyecto
En base a las diferentes herramientas que existen en el mercado como es
NMAP nosotros creamos nuestro Hacking Ético, que es un scan de
puertos que mostrará por pantalla y reporte los diferentes puertos y
protocolos que se encuentran activos en cada estación de trabajo, luego
de la visualización se podrá hacer pruebas de envío de paquetes a los
puertos establecidos en nuestro alcance y veremos como una red puede
ser vulnerable si no se encuentra protegida por un Firewalls o por medio
de un Proxy.
9
7.1 Scan de la red
Desde la PC en que se va a instalar la herramienta se ingresará el
rango de direcciones IP de la red para realizar el análisis.
Una vez ingresado estos datos el Hacking Ético empieza hacer el
recorrido por todas las direcciones IP de la red, mostrando cual de
ellas se encuentran con estado activo o sin conexión.
Luego el administrador seleccionará la dirección IP donde se habilitará
el botón de Scan, el mismo que mostrará los diferentes puertos
habilitados señalando que por cualquiera de esos puertos puede ser
vulnerable.
El resultado del Scan realizado se almacenará en una base de datos
si el administrador desea guardar los datos, aunque la herramienta por
default almacena en un archivo plano los diferentes scan, los mismos
que se podrán distinguir de acuerdo a la fecha realizada.
10
7.2 Hacking
Luego de haber realizado el scan a una dirección IP, el administrador
puede realizar pruebas haciendo envío de paquetes con la opción de
buscar debilidades en los puertos que a continuación detallo
SERVICIOS Y PUERTOS
(En caso de servidores Web, Mail y FTP)
HTTP que utiliza el puerto 80 requerimos de este para navegar en
Internet
SMTP protocolo que permite enviar un e-mail, utiliza el puerto 25.
POP3 (Protocolo de Oficina de Correos).- protocolo que permite
recuperar los emails almacenados en los servidores, utiliza el puerto
110
FTP (PROTOCOLO DE TRANSFERENCIA DE FICHEROS).-Uno de
los servicios más utilizado en las redes de computadoras, y en
Internet, es la transferencia de ficheros, que posibilita que un usuario
copie en su PC uno o varios ficheros almacenados en otra
11
computadora situada en cualquier parte del mundo, utiliza el puerto
21
DNS.- El servicio de DNS (Domain Name System) se utiliza para
asignar nombres a los ordenadores en Internet y nos permite traducir
nombres de maquinas (host´s) a direcciones IP y viceversa. Siempre
será más fácil recordar un nombre que unos números, utiliza puerto
53 (traducción de direcciones).
Ejemplo:
Hostwww.undersec.com
IP: 62.164.20.60
Estos son los más utilizados por los usuarios y tiene sus respectivos
nombres en linux como:
APACHE.-Es un servidor Web, que permite el alojamiento de
páginas Web en una máquina específica. Esta herramienta tiene
varias funciones tales como: permitir a los usuarios tener sus propias
páginas Web, restricción a determinados sitios Web, conexiones
seguras a través de SSL, configuración de módulos de
programación.
12
SENDMAIL.- La utilización de Sendmail como demonio en el sistema
nos permite enviar y recibir correo SMTP. Para ello, Sendmail se
queda como proceso residente escuchando el puerto 25, admitiendo
y realizando conexiones SMTP cuando sea necesario
PROTOCOLOS PUERTOS
HTTP (navegadores web) (port 6588)
POP3 (recibir email) (port 110)
SMTP (enviar email) (port 25)
FTP (transferencias de ficheros) (port 21)
El resultado del Hacking realizado se almacenará en una base de
datos si el administrador desea guardar los datos, aunque la
herramienta por default almacena en un archivo plano los diferentes
scan, los cuales se podrán distinguir de acuerdo a la fecha realizada.
7.3 ALMACENAMIENTO EN LA BASE DE DATOS
Cuando se realiza el scan o Hacking a la dirección del Servidor, el
administrador de la red podrá almacenar estos datos en una base
creada en Microsoft Access, la misma que solo registrará la
información necesaria.
13
7.4 INTERFAZ DEL SOFTWARE
Se creará una interfaz gráfica amigable que va a interactuar con el
usuario, en este caso con el administrador de la red, quien a través de
un password puede ingresar al sistema.
La interfaz en su pantalla principal me permitirá conocer todas las
estaciones de trabajo de la red que se encuentran activas a través de
presionar la opción Ping.
Con la opción Historial podrá visualizar a través del archivo plano
generado por default todos los diferentes Scan realizados a la estación
seleccionada.
En la opción Ayuda se muestra un soporte al usuario para su buen uso
de la herramienta y a su vez conocerá la diferentes bondades que
ofrece.
8 BENEFICIOS DEL PROYECTO
Entre los beneficios del proyecto tenemos:
Determinar si existe un usuario interno mal intencionado.
14
Mantener un mejor control de la red.
Saber si existe un usuario externo que intenta ingresar a la red
El administrador tomará las medidas para proteger la red.
Determinar privilegios en los recursos compartidos
Mantener una red segura y protegida
Proteger lo más importante de una empresa, la Información.
9 Cronograma
Cronograma General del Proyecto
Descripción de Tareas Duración Comienzo Fin Predecesora
Piloto Legalización de Pagos 25 sems 25/11/2004 20/05/2005
Primera Etapa 5 sems 25/11/2004 17/12/2004
Requerimientos 2 sems 25/11/2004 06/12/2004
Análisis 1 sems 10/12/2004 15/12/2004
Instalación de Programas 1 sems 16/12/2004 18/12/2004
Diseño de Pruebas 1 sems 20/12/2004 28/12/2004
Segunda Etapa 6 sems 05/01/2005 08/02/2005
Implementación inicial 3 sems 05/01/2005 28/01/2005
Datos de Pruebas 2 sems 02/01/2005 18/01/2005 6
I Ejecución de pruebas 1 sems 18/02/2005 22/02/2005 9
Tercera Etapa 8 sems 24/02/2005 19/04/2005
Análisis Defectos I 2 sems 24/02/2005 08/03/2005
Implementación II 2 sems 09/03/2005 30/03/2005 12
Corrección de Modelos Pruebas 2 sems 01/04/2005 15/04/2004
Certificación de Pruebas 2 sems 16/03/2005 22/04/2005 14
Cuarta Etapa 2 sems 22/04/2005 20/05/2005 11
Paso a Producción 2 sems 22/03/2005 20/04/2005 15
15
10 Recursos Necesarios para el Proyecto
10.1 Hardware
PC - Server
Procesador Pentium 4 de 2.8 Ghz Disco Duro de 80 GB Memoria RAM de 256 MB Mainboard Intel D845GVFN Floppy Drive de 1.44 CD R/W 48x24x48 Teclado PS/2 Mouse PS/2 Monitor Samsung PC – Cliente
Procesador Pentium 3 de 1 Ghz Disco Duro de 40 GB Memoria RAM de 256 MB Mainboard Biostar 8668B Floppy Drive de 1.44 CD ROM 52X Teclado PS/2 Mouse PS/2 Monitor Samsung PC – Cliente Procesador Pentium 2 de 500 Ghz Disco Duro de 8 GB Memoria RAM de 128 MGB Mainboard Biostar Floppy Drive de 1.44 CD ROM 52X Teclado PS/2 Mouse PS/2 Monitor Samsung
16
Conexión para la red
Switch Marca LINKSYS de 16 puertos
10.2 Software
Sistema Operativo Microsoft Windows XP Pro
Herramienta de programación Visual Basic 6.0
Herramienta para almacenamiento de datos Microsoft Access
11 Presupuesto
Hardware
Para el desarrollo del Hacking Ético se procederá al alquiler de 3 máquinas para los 9 meses de duración de nuestro proyecto, además se adquirirá una máquina que cumplirá con las funciones de Servidor.
Cantidad Detalle Valor
2 Pentium III, 256 y 128 RAM, HD 40 Gb 1350,00
1 Pentium IV, 512 RAM, 120 Gb 800,00
Total 2150,00
17
Software
Se necesitará de software para desarrollo del Hacking Ético, herramientas de programación y base de datos.
Cantidad Detalle V.
total
1 Microsoft Visual Studio 300,00
1 Microsoft Office 70,00
Total 370.00
Recursos Humanos
Para el lanzamiento del Hacking Ético de personal calificado que intervendrán a lo largo del desarrollo del mismo.
Cantidad Detalle V. total
1 Líder de Proyecto 3000,00
2 Analista – programador 1500,00
1 Administrador de Red 2000,00
1 DBA 1500,00
Total 8,000.00
El valor total del proyecto será de $10,520.00.
12 Metodología
Nuestro proyecto tomó como guía el modelo de ciclo de vida lineal o
modelo de cascada que nos permitió descomponer la actividad global del
proyecto en fases que se suceden de manera lineal, es decir, cada una se
realiza una sola vez, cada una se realiza tras la anterior y antes que la
18
siguiente. Logrando dividir las tareas y prever los tiempos (sumando los
de cada fase).
Consta de cuatro etapas que son: análisis, diseño, desarrollo y pruebas.
El mismo que hemos adaptado para cumplir con las expectativas del
desarrollo de nuestro proyecto, quedando así finalmente:
El modelo del ciclo lineal o cascada
12.1 Metodología del Análisis
En esta etapa se realizó un estudio profundo para determinar datos
importantes que nos llevaron a definir la factibilidad de poder realizar
nuestro proyecto, se investigó las diferentes herramientas junto con
Análisis
Diseño
Desarrollo
Prueba
19
la tecnología a emplear y analizamos los criterios de administradores
de red para darle un mayor enfoque al software.
12.2 Metodología del Diseño
Esta etapa traduce requisitos en una representación del software
que se pueda evaluar por calidad antes de dar comienzo a la
generación del código, el diseño se documenta y se hace parte de la
configuración del software.
En esta etapa logramos:
o Identificar soluciones tecnológicas para cada una de las
funciones del sistema.
o Asignar recursos materiales para cada una de las funciones.
o Establecer métodos de validación del diseño.
o Ajustar las especificaciones del producto
20
CAPITULO 2
ANALISIS
1 Levantamiento de información
El medio en el que actualmente se encuentran todos los entes públicos,
privados y personas naturales hacen cada vez más inseguro la
navegación o adquisición de algún bien o servicio a través de la red
pública como lo es el Internet.
Al hablar de la inseguridad nos referimos a los diferentes ataques que
como usuario podemos sufrir en nuestra información ya sea a través de
los virus o por que un intruso conocido en el medio como Hackers trate de
hacer que nuestro servidor o máquina sea vulnerable a sus diferentes
ataques.
Los hacker están descubriendo con mayor frecuencia los agujeros en la
seguridad de los sistemas de computación para dirigir sus ataques, según
la investigación de anti-virus Symantec.
21
Agregó que se están utilizando nuevas maneras de diseminar los virus,
así como combinaciones de códigos maliciosos y puntos débiles en los
programas para inmovilizar los sistemas.
Ante esta situación, analistas estimaron que esto debería ser un aviso
para que las compañías desplieguen medidas adicionales para proteger
sus sistemas. Por esta razón se explicará brevemente quienes son los
hacker y los diferentes tipos o métodos que utilizan para realizar los
ataques.
1.1 Quienes son los atacantes
La cultura popular define a los hackers como aquellos que, con ayuda
de sus conocimientos informáticos consiguen acceder a los
ordenadores de los bancos y de los negociados del gobierno. Bucean
por información que no les pertenece, roban software caro y realizan
transacciones de una cuenta bancaria a otra. También hay hackers
que realizan sus actividades por diversión y el empleado que de
repente decide hacer algo malo.
Por tanto, parece que tenemos una definición en la que caben dos
extremos: por un lado, el moderno ladrón de bancos y por otro el
inquieto. Ambas actividades (y todas las intermedias) son calificadas
con el mismo término. Esté comenzó a aplicarse a un grupo de
22
pioneros de la informática del MIT, a principios de la década de 1960.
Desde entonces, y casi hasta finales de la década de 1970, un hacker
era una persona obsesionada por conocer lo más posible sobre los
sistemas informáticos.
Los diseñadores del ordenador Apple, Jobs y Wozniack, pueden
considerarse hackers en este sentido de la palabra. Pero a principios
de la década de 1980, influenciados por la difusión de la película
Juegos de Guerra, y el ampliamente publicado arresto de una "banda
de hackers" conocida como la 414, los hackers pasaron a ser
considerados como chicos jóvenes capaces de violar sistemas
informáticos de grandes empresas y del gobierno.
El problema para llegar a una definición mas precisa radica tanto en la
poca información que hay sobre sus actividades diarias, como en el
hecho de que lo que se conoce de ellos no siempre cabe bajo las
etiquetas de los delitos conocidos. Es decir, no hay una definición
legal que sea aplicable a los hackers, ni todas sus actividades
conllevan la violación de las leyes.
23
1.2 Tipos de ataques
Existen diferentes tipos de ataques a sistemas, sin embargo se los
puede categorizar en tres grupos: acceso no autorizado, negación de
servicio y hurto de información.
1.2.1 Acceso no autorizado
Este tipo de ataque consiste en el uso no autorizado de
computadoras de la red de una organización.
Existen muchas maneras en que usuarios no autorizados
accesan de manera infiltrada a la red, los ataques varían desde
pequeños engaños al administrador de la red fingiendo ser un
usuario autorizado y realizando cambios en las diferentes
cuentas.
Dentro de esta categoría existen:
1.2.1.1 Ingeniería Social.- Es donde un atacante engaña al
administrador de la red haciéndose pasar por un usuario
autorizado y se comunica vía mail con el administrador para que
le cambie la contraseña.
24
1.2.1.2 Packet Sniffing.- Un atacante interno o externo captura
los paquetes de la red a través de sniffers logrando iniciar sesión
en la cuenta de un usuario autorizado
1.2.1.3 Explotación o Infraestructura.- Estos ataques consiste
en aprovechar las fallas en los programas o sistemas operativos
que se encuentran en el servidor, el atacante obtiene información
del servidor a través de un PING donde se aprovecha de las
fallas de dominio público que brinda algún programa.
Los ataques más comunes basados en las debilidades de los
protocolos son:
DNS (DOMAIN NAME SERVER)
Ataque vía UDP (USER DATAGRAM PROTOCOL)
Ataque vía FTP (FILE TRANSFER PROTOCOL).-
1.2.2 Negación De Servicios
Este tipo de ataque inunda al sistema con infinito número de
requerimientos logrando formar un cuello de botella en la red donde
reducirá el ancho de banda de tal manera que los usuarios no puedan
hacer uso ni de sus propias máquinas.
25
1.2.3 Hurto de información
Este ataque consiste en obtener datos sin ingresar a su sistema, la
mayor parte de estos ataques explotan los servicios que ofrece el
Internet a través de sniffers se logra examinar toda la información que
viaja a través de la red.
1.3 Tipos de ataques
Existe una gran variedad de atacantes en la red de redes, Internet,
todos ellos comparten ciertas características, no quieren ser atrapados
asi que se encubren entre ellos mismos, comparten información que
han obtenido de un sistema, si ganan acceso a un sistema intentan
conservar este acceso y a su vez buscan seguir descubriendo otras
vías de acceso alternas.
Estos atacantes se categorizar dentro de los siguientes grupos:
1.3.1 Jugadores.- Son atacantes que irrumpen los sistemas solo por
ganar prestigios ante sus colegas, los jugadores pueden o no hacer
daño al sistema violado.
26
1.3.2 Espías.- Estas personas roban cosas que son directamente
convertidas en dinero, tales como tarjetas de crédito, teléfonos, etc.
Estos espías son casi imposibles de detectar ya que ellos rompen
cualquier tipo de seguridad que tengan los sistemas.
1.3.3 Vándalos.- Son personas que ocasionan severos problemas en
los sistemas de una empresa, los daños que causan son fácilmente
detectados y reparados. Habitualmente borran datos y arruinan
equipos de computación; afortunadamente estos hackers son algo
escasos ya que a la mayoría no les agrada pertenecer a este grupo.
2 Análisis de Requerimientos
Para la elaboración de nuestro sistema requerimos de los siguientes
componentes:
Conocer e investigar como los datos viajan al servidor a través de los
diferentes puertos definidos ya que de esta manera se lograría
bloquearlos y negar su recepción o conectividad. Con el resultado que se
emite en un archivo plano se encuentra almacenada la dirección IP de la
máquina que se está realizando el envío del paquete que intenta ingresar
y el puerto por donde se trata de vulnerar.
27
Fue necesario registrar estos archivos ya que poseen gran cantidad de
información necesaria para nuestra aplicación, y a su vez almacenarla en
una base de datos para que nos facilite la manipulación de la misma.
De esta manera nuestra herramienta le permite al administrador de la red
de una empresa ejercer un mayor control de los diferentes requerimientos
de datos compartidos que se ubican en mi servidor, que navegan a través
de los diferentes puertos de la red y del uso del servicio de Internet,
3 Diccionario de Datos
IPCIS.- Infrastructure Protection and Computer Intrusion Squad
DNS.- Domain Name Server
UDP.- User Datagram Protocol
FTP.- File Transfer Protocol
DER.- Diagrama Entidad Relación
DFD.- Diagrama Flujo de Datos
DFD.- Diagrama de Flujo de Datos
28
4 Diagrama Entidad Relación (DER)
4.1 Especificación de Procesos
Proceso Ping
El proceso ping da la opción al administrador de hacer un recorrido
por toda la red y conocer todas las direcciones IP activas o sin
Ingresa
IP
Administrador
Ping
IP
activas
Scan
Puertos
Abiertos
Hacking
Reportes
29
conexión, donde podrá realizar un Scan solo a una dirección a la
vez, siempre y cuando la dirección seleccionada se encuentre en
estado activo.
Este proceso da paso a:
Proceso Scan
Realizar este proceso Scan permitirá conocer los diferentes puertos
de comunicación que se encuentran abiertos en esa estación o
Servidor
El resultado de este proceso es almacenado en un archivo plano y si
al administrador la requiere se enviará a una base de dato al
presionar el botón de guardar.
Proceso Hacking
Este proceso le permite al administrador realizar prueba de envío de
paquetes como muestra de lo vulnerable que puede ser la red y que
la conexión a la misma se realiza sin ningún inconveniente,
señalando de tal manera que debe proteger la red a través de
firewall o proxy que lograran tener reglas o restricciones para no ser
tan vulnerables.
30
Base De Datos
En estas tablas se almacenan los resultaos de los procesos
realizados.
Para el proceso Scan tenemos la siguiente tabla
Dirección IP Texto
Puerto Texto
Servicio Texto
Fecha Date
Hora Char
Para el proceso Hacking tenemos la siguiente tabla
Dirección IP Destino Texto
Dirección IP Fuente Texto
Puerto Texto
Resultado Texto
Fecha Date
31
5 Diagrama de Flujo de Datos (DFD)
5.1.1 Ingreso de IP
El administrador realiza un recorrido por toda la red
Ingresa rango de IP
Muestra detalle las direcciones IP activas o sin conexión
Debe seleccionar la dirección IP con estado activo.
Administradores
de Red
Detalle de IP activas
Ping
Ingresa rango de
IP’s
32
5.1.2 Por cada Scan de dirección ingresada
Ingresar rango de puertos de comunicación a realizar el Scan
Scan de puertos de comunicación de una estación o Servidor
Muestra lista de puertos de comunicación
Muestra los posibles troyanos que pueden atacar a la red
Almacena la información
Administrador
es de Red
IP’s Activas
Scan
Detalle de
IP activas
Elige IP
Detalle de Puertos Abiertos
33
5.1.3 Por cada Scan se realiza Ataque a los puertos vulnerables
Toma los datos de la dirección IP selecciona
Envía paquetes a los puertos vulnerables
Recibe información de conexión
Almacena Información del ataque realizado
Emite un archivo plano del Hacking realizado
Fin del Hacking Ético
Administradores
de Red
Puertos Abiertos
Hacking
Probar
vulnerabilidades
Envío de
paquetes
Recepción \ Bloqueo de Puertos
34
6 Diagrama Transición de Datos (DTD)
Un DTD es la secuencia con la cual se hará el acceso a los datos y se
ejecutarán las funciones.
Ping en Reposo
Se ingresa rango de IP’s
Se habilita la opción Ping
Ping esperando
activación
Ping iniciado
Muestra las conexiones activas
Scan en Reposo
Se elige IP a scanear
Se habilita la opción Scan
Scan esperando
activación
Ingresa rango de puertos e
inicia
Muestra los puertos abiertos
Hacking en
reposo
Elige opción Hacking
Se habilita opción envío
Hacking
esperando
activación Realiza envío
Muestra estado de envío
35
6.1 Especificación de Control
Ping en reposo.- Este control está a la espera que el
administrador de la red realice el ingreso del rango de direcciones
IP de su red, al realizar este ingreso de manera manual, da opción
que se active el botón Ping.
Ping esperando Activación.- Se presiona el botón ping que abre
paso a mostrar la lista de las direcciones IP que se encuentran
activas y sin conexión.
Scan en reposo.- A la espera que se seleccione la dirección IP
activa se encuentra este estado, una vez que se elige la dirección
se habilita la opción scan.
Scan esperando activación.- Una vez que el usuario o
administrador presiona el botón scan empieza a recorrer los
puertos de comunicación de su estación de trabajo o servidor,
mostrándole por pantalla una lista detallada la descripción de cada
puerto y su vulnerabilidad.
Hacking en reposo.- Luego de conocer sus puertos de
comunicación y sus vulnerabilidades, es necesario realizar envío
de paquetes y para ello se presiona la opción enviar.
36
Hacking activado.- Aquí se muestra de manera visual como los
puertos de comunicación hacen la recepción de los diferentes
paquetes sin contar con ninguna protección que restrinja el acceso
de los mismos.
7 Diagrama Caso Uso
El diagrama de casos de uso representa la forma como un
Administrador (Actor) opera con el sistema en desarrollo, además de
la forma, tipo y orden en como los elementos interactúan.
Un diagrama de casos de uso consta de los siguientes elementos:
Actor
Casos de Uso
Relaciones de Uso, Herencia y Comunicación
Elementos
Actor: (Administrador de la Red)
37
Una definición previa, es que un Actor es un rol que un usuario juega
con respecto al sistema. Actor no necesariamente representa a una
persona en particular, sino más bien la labor que realiza frente al
sistema.
Caso de Uso:
Es una operación/tarea específica que se realiza tras una orden de
algún agente externo.
Nuestros casos de usos del Hacking Ético:
Primer caso de uso
En caso de que el administrador por primera vez utilice nuestro
software en la pantalla inicial cuenta con la ayuda donde le explica
detalladamente el uso de la herramienta.
Visualiza
Ayuda
Administrador
38
Segundo caso de uso
El administrador debe ingresar un rango de de direcciones IP para
poder realizar un ping donde podrá controlar que puntos de red se
encuentran activos.
Tercer caso de uso
Una vez que el administrador seleccione la dirección IP que va a
realizar el Scan:
a. Almacena fecha que se realiza el Scan
b. Los puertos que se encuentran abiertos
c. Descripción de cada puerto abierto
d. Cantidad de posibles troyanos
Realiza
Ping
Administrador
Realiza
Scan
Realiza
Ping
Administrador
39
Cuarto caso de uso
Realizar un Hacking a la dirección IP que se eligió cuando se
realizó el Scan y almacenar los datos en una base si desea.
a. Se almacenará fecha que se realiza el Hackeo
b. La dirección IP que envía el paquete
c. La dirección IP que recibe el paquete
d. El puerto que tiende a ser vulnerable
e. Descripción de cada puerto abierto
Realiza
Ping
Administrador
Realiza
Scan
Realiza
Hacking
40
Quinto caso de uso
El administrador puede consultar al final de la jornada o cuando
requiera los diferentes Scan realizados a su red.
Diagrama de caso de uso resultante
Consulta
Historial
Administrador
41
CAPITULO 3
DISEÑO
1 Diseño de Interfaz
Ventana de Acceso
Esta es la ventana principal para ingresar al sistema, donde el
administrador digita la clave y presiona el botón aceptar
Ventana Principal
A continua se visualiza la pantalla de menú principal donde el
administrador cuenta con las opciones de:
Ping.- Es donde puede realizar el recorrido a la red
Historial.- El administrador puede visualizar los registros
guardados de los diferentes scan realizados.
42
Ayuda.- Es una guía al funcionamiento de la herramienta
Ventana Ping
La siguiente ventana muestra la interfaz que se obtiene luego de haber
seleccionado la opción Ping.
En la parte superior cuenta con 2 controles de usuario que le permite el
ingreso de rango de IP.
Un botón que le permite borrar el contenido de los controles de ingreso
La parte central derecha consta:
De una caja de texto donde el administrador podrá ingresar manualmente
la dirección IP.
43
La siguiente caja de texto muestra el total de conexiones activas que
existen en la red. Tenemos 4 botones que son:
Ping.- Logra la generación de recorrido en la red
Detener.- Logra paralizar el recorrido que se realizó
Scan.- se habilita solo si se selecciona una IP activa
Retornar.- Regresa a la ventana principal
La parte central izquierda se listan las direcciones de IP que se
encuentran en la red, las que aparecen de color rojo son las que se
encuentran en estado sin conexión, las que se encuentran de color verde
señalan que se encuentran activas y la que aparece con una imagen
distinguida es la máquina donde estoy generando la herramienta.
44
Ventana Scan
Esta ventana muestra la interfaz que se obtiene luego de haber
seleccionado la opción Scan de la ventana Ping.
En la parte superior muestra 2 cajas de texto que le permite el ingreso de
rango de Puertos de comunicación.
En la parte central derecha consta:
De una caja de texto donde el administrador visualiza el número de
puertos que se encuentran abiertos.
La siguiente caja de texto muestra el total de posibles troyanos que
pueden ingresar a la red.
Tenemos 5 botones que son:
Scan.- Inicia el proceso para el scaneo de puertos, si el usuario desea
también tiene la opción de iniciar el proceso presionando enter
Hacking.- Se activa cuando el scan se finaliza y permite pasar a la
siguiente ventana
Detener.- Logra paralizar el recorrido que se realizó
Guardar.- Almacena lo que se visualiza por pantalla
Retornar.- Regresa a la ventana ping
45
En la parte central izquierda se listan los puertos de comunicación que se
encuentran activos en la IP, al presionar con el Mouse en cada puerto se
despliega las descripción del puerto y si existe un posible troyano.
Ventana Hacking
Esta ventana muestra la interfaz que se obtiene luego de haber
seleccionado la opción Hacking de la ventana Scan.
En la parte superior muestra la dirección IP que se le va a realizar el
ataque.
46
En la parte central derecha consta:
De una caja de texto donde el administrador visualiza el número de
puertos que se realizó la conexión o receptó el paquete enviado.
La siguiente caja de texto muestra el total de conexiones bloqueadas y
que no receptó el paquete.
Tenemos 4 botones que son:
Enviar.- Inicia el proceso de envío de paquetes a los puertos que se
encuentran en estado activo luego de haber realizado el scan
Guardar.- Almacena lo que se visualiza por pantalla
Informes.- Muestra por pantalla los datos almacenados
Retornar.- Regresa a la ventana que la invocó
En la parte central izquierda se listan las conexiones realizadas.
47
2 Diseño A Nivel de Componentes
Presentación de direcciones posibles y
espera de dirección escogida
Digita o selecciona dirección activa y
ejecuta tarea
Presenta pantalla de
Scan de Puertos
Presenta pantalla de
Hacking
Recibe la dirección a la
cual realiza el scaneo
de puertos
Presenta informe en
pantalla de los puertos
abiertos
Ejecuta tarea
Envía paquete a los
puertos abiertos
Presenta Informe en
Pantalla del estado de
los envíos
Ejecuta tarea
Guardar Retornar
48
3 Diseño Arquitectónico
49
CAPITULO 4
DESARROLLO Y PRUEBA DEL SISTEMA
4.1 Desarrollo del Sistema
El sistema fue desarrollado en la herramienta de programación
Visual Basic en 85% el cual se completo utilizando el 10% de java
y 5% de Microsoft Access
4.1.1 Creación de la Base de Datos
Para nuestro programa el valor real de la información es
en el instante de estar ejecutándose y dicha información
se presenta siempre en pantalla, dando la opción de
guardar en caso de una revisión posterior a la actual, por
este motivo se creo una base en Microsoft Access como
repositorio de los datos.
Esta compuesta por 2 tablas y 2 consultas:
La primera tabla es para utilizar en el momento que se
realiza un scan y cuyo nombre es escaneo, que consta
de 5 campos en la cual se guardan los registro de la
siguiente forma; Dirección, fecha, hora, puerto,
50
servicio que son los presentados en pantalla y
corresponde a lo siguientes datos:
Dirección.- Corresponde a la Dirección IP de la maquina
a la cual se le realizo el scan.
Fecha.- Corresponde a la fecha en que fue realizo el
scan a la dirección IP.
Hora.- Corresponde a la hora en que fue realizo el scan
a la dirección IP.
Puerto.- Corresponde al puerto habilitado de la
dirección IP a la cual se le realizo el scan.
Servicio.- Corresponde a los software que suelen utilizar
o están predeterminados para el puerto de la dirección IP
a la cual se le realiza un scan en ese momento.
La Segunda tabla es para utilizar en el momento que se
realiza una conexión remota a una dirección IP (en
nuestro proyecto le denominaremos Hacking o ataque) y
51
cuyo nombre es ataque y consta de 5 campos en la cual
se guardan los registro de la siguiente forma; Dirección,
Fuente, fecha, puerto, resultado que son los
presentados en pantalla y corresponde a lo siguientes
datos:
Dirección.- Corresponde a la Dirección IP de la maquina
a la cual se le realizo el Hacking.
Fuente.- Corresponde a la Dirección IP de la maquina
que esta realizando el Hacking.
Fecha.- Corresponde a la fecha en que fue realizo el
Hacking a la dirección IP seleccionada.
Puerto.- Corresponde al puerto de la dirección IP
seleccionada a la cual se le realizo el Hacking.
Resultado.- Corresponde a lo obtenido al realizar el
Hacking por el puerto de la dirección IP seleccionada sea
este positivo o negativo.
52
La primera tabla consulta cuyo nombre es consul_scan
es utilizada en el modulo de los informes, para
seleccionar la direcciones IP que ya se les han realizado
un scan y consta de 1 campo que se llama dirección en
el cual se obtiene los registro de la tabla escaneo.
Esta tabla consul_scan nos permite tener las direcciones
únicas a las cuales se les ha realizado un scan, para no
tener direcciones repetidas de los scan
La segunda tabla consulta cuyo nombre es
cónsul_ataque es utilizada en el modulo de los informes,
para seleccionar la direcciones IP que ya se les han
realizado un Hacking y consta de 1 campo que se llama
dirección en el cual se obtiene los registro de la tabla
ataque.
Esta tabla consul_ataque nos permite tener las
direcciones únicas a las cuales se les ha realizado un
Hacking, para no tener direcciones repetidas de los
ataques
53
En caso de que el usuario se olvido de guardar, ya sea
en el momento de realizar un scan o un Hacking el
programa siempre genera un respaldo en un archivo
texto para cada evento.
En el caso del scan el archivo se llama scan.txt en el
cual se encuentra toda la información de cada vez que
se haya realizado un scan, sea que se guardo o no la
información. Se en encuentra en la dirección
c:\hacking\scan.txt
En el caso del Hacking el archivo se llama hacking.txt en
el cual se encuentra toda la información de cada vez que
se haya realizado un Hacking, sea que se guardo o no la
información. Se en encuentra en la dirección
c:\hacking\hacking.txt
4.1.2 Creación de los Componentes
Se crearon 6 formas en este proyecto que son:
54
4.1.2.1 Interfaz de acceso
Se creo esta forma para impedir el acceso del
personal no autorizado al programa y pueda
obtener información valiosa la cual podría ser
mal utilizada.
El nombre de la forma es frm_user y lo que
hace es pedir un nombre de usuario y la
contraseña para ingresar al sistema, la forma
compara lo escrito con los valores correctos,
de ser el ingreso incorrecto ya sea de usuario
o contraseña no le permite el paso y de ser
correctos ejecuta la instrucción para ir a la
siguiente forma que es Menú Principal.
4.1.2.2 Interfaz Menú Principal
Se creo esta forma para darle al usuario la
opción de escoger de un menú y le permite ir a
la interfaz obtención de direcciones, interfaz de
informes y a la ayuda, su nombre es
frm_principal y lo que hace es cuando el
usuario da click sobre el icono PING lo envía a
55
la interfaz obtención de direcciones, si da click
sobre el icono ayuda el programa ejecuta la
ayuda abriendo una ventana con la
información del sistema y si diera click en el
icono Histórico lo envía a la interfaz informes
4.1.2.3 Interfaz obtención de direcciones
Se creo esta forma para obtener una visión
mas clara de la direcciones que están activas
en la red y poder decidir a que dirección
realizarle una prueba de seguridad (Hacking
Ético) y no cometer el error de ejecutar a
direcciones que no están activas y no estar
digitando una por una hasta encontrar una
activa.
El nombre de la forma es frm_ping y lo que
hace es, permite al usuario digitar un rango de
direcciones IP y no permitir que la dirección
inicial sea menor que la dirección final para
obtener rangos validos para ser ejecutados,
una vez obtenido el rango da click en el “botón
56
ping” y comienza la ejecución la cual ira
mostrando en pantalla la direcciones
activas(un computador en verde) y las
direcciones no activa(un computador en rojo),
dando un icono especial y sombreado la línea
para identificar la dirección IP de la maquina
en que esta corriendo el Hacking Ético siempre
y cuando dicha dirección conste en el rango.
Terminado de ejecutar el rango se debe dar
click sobre la dirección a la cual desea realizar
el scan y pasar a la siguientes fase, para esto
debe dar click en el “botón scan” y lo llevara a
la forma scan.
Si desea retornar a realizar una nueva
búsqueda de direcciones IP disponibles dar
click en el “botón retornar”.
4.1.2.4 Interfaz scan de dirección
Se creo esta forma para obtener todos los
puertos que están abierto de la dirección
57
seleccionada en la forma anterior (obtención
de direcciones).
El nombre de la forma es frm_scan y lo que
hace es:
Ejecutarse de entrada ya que posee la
dirección seleccionada y se envía paquetes a
esa dirección y la respuesta positiva de los
puertos abiertos se muestra en pantalla (el
puerto que esta abierto y el Software asociado
a ese puerto además si hay virus que atacan a
dicho puerto) y le da la opción de realizar un
Hacking a la dirección seleccionada
presionando el “botón Hacking” o guardar la
información en una base para su posterior
revisión dando click en el “botón guardar”
además de realizar un respaldo en un archivo
scan.txt.
En la parte superior de lo botones se muestra
un cuadro en el cual le muestra la cantidad en
números de puertos abierto y cuantos de ellos
58
pueden ser atacados por virus conocidos como
troyanos (código maligno que hace que
funcionen mal las computadora).
4.1.2.5 Interfaz Hacking de dirección
Se creo esta forma para probar si los puertos
obtenidos en la forma anterior (scan de
direcciones) son vulnerables a conexiones de
otra maquina. Si logra obtener comunicación
con dichos puertos es una clara forma de ver
una vulnerabilidad.
El nombre de la forma es frm_hack y lo que
hace es, Recibe la dirección IP seleccionada y
los puertos para realizarle un ataque a cada
puerto y presentara en pantalla lo resultados
mostrando la dirección IP destino (dirección
seleccionada), la IP fuente (dirección de la
maquina que envía el paquete), el puerto (de
la dirección seleccionada), y el resultado si
hubo o no conexión.
59
Le permite guardar esta información en la base
para su posterior revisión dando click en el
“botón guardar” y le permite retornar a la forma
anterior dando click en el “botón retornar”.
Para ir a revisar la información guardada debe
darle click en el “botón informes” y lo llevara a
la forma frm_informes
4.1.2.6 Forma informes
Se creo esta forma para recuperar la
información guardada en la base en las
diversas sesiones de las formas tanto de scan
como de Hacking.
El nombre de la forma es frm_informes y lo
que hace es:
Se selecciona una dirección de una de las
listas, ya sea de las listas de las “direcciones
realizadas un scan” o de las “direcciones
realizadas un Hacking” y se presiona el botón
respectivo ya sea el “botón informe scan” o
“botón informe Hacking” para generar la
60
recuperación de la información. Le permite
regresar a la forma ping para realizar otra
sesión presionando el “botón retornar”
4.1.3 Seguridades
4.1.3.1 De la Base de Datos
La base hecha en Microsoft Access contiene
puesta una clave para ser abierta solo por las
personas de administración del programa, esto
se lo realiza con el fin de que no se pueda
borrar los datos manualmente, ni se le pongan
alteraciones en dicha base ya que puede que
el Hacking Ético haya sido realizado en varias
redes y queda el historial de esas direcciones
IP y su resultados guardados.
4.1.4.2 Del Sistema
Se impide el acceso del personal no
autorizado al programa para no pueda obtener
información valiosa la cual podría se mal
utilizada.
61
Aparece una pantalla al inicio del programa y
lo que hace es pedir un nombre de usuario y la
contraseña para ingresar al sistema, solo que
los valores sean correctos podrá accesar.
4.1.4.3 Registro de logs
La seguridad es que los registros son
guardados en estructuras internas para su
conservación y posteriormente enviadas a la
base si se requiere, además de los archivos de
texto de respaldo
4.2 Prueba del Sistemas
4.2.1 Modelo de prueba
El sistema fue creándose por formas independientes y se
las probaba cada una por separado para su
funcionamiento, en dichas pruebas se contaba con dos
maquinas para la ejecución de las formas, una maquina
tenia la forma instalada y la otra era de servicio (la cual
era analizada por cada forma).
62
Se realizaron sin números de pruebas y en distintos
componentes de hardware, con estos cada error se iba
puliendo y el método se convirtió en análisis, diseño,
prueba de campo, manejo de error y puesta a prueba de
nuevo.
Esta Etapa de prueba la realizamos ambos Integrantes
del grupo de Redes y solicitamos la ayuda de un experto
en la materia para que nos oriente
Se lleva a cabo después de que se han puesto en
marcha las estrategias reactiva y proactiva. La realización
de ataques simulados en sistemas de pruebas permite
evaluar los lugares en los que hay puntos vulnerables y
ajustar las directivas y los controles de seguridad en
consecuencia.
4.2.2 Prueba de interfaz
La interfaz es de fácil entender, gracias a que se la fue
puliendo en base a los comentarios de los usuarios que
las iban probando y se formo un estándar común para
que cualquiera pueda entenderlo.
63
El lenguaje gramatical utilizado es el mas sencillo posible
para el usuario no experto.
Se probo la interfaz con usuarios que veían el programa
por primera vez y solo se le explico el funcionamiento de
lo que realiza y se dejo al usuario que lo maneje solo y
llegando al final de este sin complicaciones (uso correcto
en lo normal sin saber valores técnicos o expertos en
terminología de sistemas computacionales)
Se comprobó que la interfaz sea la adecuada para un
usuario no experto en un 75% y como esta dirigida a
personas con conocimientos en la materia es un 98%
amigable.
4.2.3 Prueba de componentes
Se utilizó una herramienta de Microsoft que son las más
comerciales y las más conocidas por las personas en el
entorno de sistemas del Ecuador y una muy popular de
ayuda como es Java. Al integrar las interfaz con la base
y clases adicionales, hubieron pequeños contratiempos
que fueron solucionados en base a que se realizaban
consultas y pruebas a cada momento.
64
La herramienta nos permite crear la librerías necesaria y
empaquetarlas en un programa instalador hacking.cab
4.2.4 Calidad del sistema
4.2.4.1 Cumplimiento de los requerimientos
creamos nuestro Hacking Ético, que es un scan de
puertos que le mostrará por pantalla y reporte de los
diferentes puertos y protocolos que se encuentran activos
en cada estación de trabajo, cumpliendo con estos
detalles en las respectivas formas (scan muestra los
puertos activos , e informes que presenta los reportes
guardados), continuando con el alcance se realizaron
pruebas de envío de paquetes a los puertos establecidos
y veremos como una red puede ser vulnerable si no se
encuentra protegida por un Firewalls o por medio de un
Proxy, realizado en la interfaz Hacking cumpliendo con
los alcances requeridos.
65
CAPITULO 5
IMPLEMENTACION DEL SISTEMA
5.1 Implementación de Sistemas
Al momento de instalar el Hacking se da doble click en el
archivo de instalación (.cab) y este se encarga de cargar en el
computador todo el sistema.
Este archivo contiene todas las librerías necesarias para
ejecutarse.
Dar doble click en el ejecutable del Hacking.
5.2 Elementos físicos
PC - Server
Procesador Pentium 4 de 2.8 Ghz
Disco Duro de 80 GB
Memoria RAM de 256 MB
Mainboard Intel D845GVFN(tarjeta red 10/100)
Floppy Drive de 1.44
CD R/W 48x24x48
66
PC – Cliente
Procesador Pentium 3 de 1 Ghz
Disco Duro de 40 GB
Memoria RAM de 256 MB
Mainboard Biostar 8668B
Floppy Drive de 1.44
CD ROM 52X
Switch Marca LINKSYS de 16 puertos
5.3 Elementos lógicos
Sistema Operativo Microsoft Windows XP Pro
Herramienta de programación Visual Basic 6.0
Herramienta para almacenamiento de datos Microsoft Access
Maquina virtual de Java
5.4 Elementos humanos
El equipo de desarrollo que está formado por los dos
integrantes.
Personal docente que nos ha ayudado con asesoramiento en la
parte de realizar el ataque a los puertos que se especificaron en
el alcance.
67
5.5 Infraestructuras
Se tiene una computadoras con sistema operativo Windows XP
la cual hace de servidor donde se va ha ejecutar el programa
Hacking Ético y otra computadora que es el usuario con sistema
operativo Windows XP las cuales están conectadas por un
Switch que nos permitirá enviar paquetes de información entre
las dos computadoras
5.6 Capacitación de los Usuarios
El manejo es deliberadamente sencillo, que con el manual de
usuario se puede manejar bien el programa del Hacking Ético
Además cuenta con ayuda que puede ejecutar desde el mismo
programa, mostrando una ventana con información completa
del sistema y guiándolo por el mismo.
68
CAPITULO 6
RECOMENDACIONES Y CONCLUSIONES DE LA
TESIS
6.1 Recomendaciones
Para que el sistema Hacking Ético funcione correctamente y sin
complicaciones, debe cumplir con los siguientes requerimientos
mínimos:
6.1.1 hardware
o Procesador Pentium 3 de 800 Ghz
o Disco Duro de 20 GB
o Memoria RAM de 128 MB
o Mainboard (tarjeta red incluida 10/100)
o Floppy Drive de 1.44
o CD-R (opcional quemador)
6.1.2 Software
o Sistema Operativo Microsoft Windows 98 SE
o Maquina virtual de Java (jdk1.4.2)
69
6.1.3 seguridades
1. No darle la clave de acceso del sistema a nadie que
no este autorizado.
2. No dejar abierto el sistema si va a salir aunque sea
por un momento.
3. No dejar anotada la clave en lugares visibles
6.2 Conclusiones
El sistema esta desarrollado para un manejo sencillo y que da
como resultado una información muy útil al administrador de la
red para la protección de la misma, información que le ayudara
a evaluar la seguridad actual, mostrándole si hubiere algo que
se paso por alto al momento de implementarla, por ejemplo
algunos puertos no comunes abiertos y no detectados.
Muchas veces hay cosas que se asumen que están protegidas
y no las verificamos, como se dio en algunos lugares que se
probo el programa y existían la cantidad de puertos abiertos y
se logro comunicación desde una maquina que no era del
administrador; partiendo de este punto el programa debe de ser
orientado al bien común.
Instalación
- Dar 2 click sobre el hacking.cab
- Declarar como variable global la dirección donde se encuentre la maquina
virtual de Java. Como se muestra en la grafica siguiente
Poner en Path la dirección por ejemplo: c:\jdk1.4.2\bin
- Ejecutar el archivo hacking.exe que se creo en la dirección c:\hacking
Manual de usuario
1.- Ingreso de clave al sistema:
Figura 1
Se ingresa la clave del administrador (figura 1), para poder acceder al
sistema Hacking Ético (figura 2).
2.- Pantalla principal de acceso a los componentes del sistema:
Contiene el menú principal para acceder a las diferentes opciones:
Figura 2
2.1 Opción ping para conocer las direcciones IP activas dentro de un
rango ingresado. figura 3
2.2 Opción ayuda para tener información del manejo del sistema
Hacking. figura 8
2.3 Opción Historial para ir a los informes. figura 7
3.- Opción PING
Figura 3
3.1 Permite ingresar un rango de direcciones IP, para conocer cuales
se encuentran activas como lo muestra la siguiente pantalla:
figura 4
3.1.1. Ingreso de rango de dirección:
Figura 4
3.1.2. Luego de ingresar el rango de direcciones se debe hacer click
en el botón PING, para que el sistema cense las que se
encuentren activas.
Las direcciones inactivas se identificaran con el siguiente
Icono. figura 4
Las direcciones activas se identifican con el siguiente icono
verde. figura 4
Si la dirección IP de la maquina donde se ejecuta el sistema, se
encontrara dentro del rango ingresado la misma aparecerá
sombreada: figura 4
Una vez identificadas las direcciones activas podemos
seleccionar una dirección IP en estado conectado y hacer clic
en el siguiente botón: figura 5
4. Escaneo de Puertos TCP:
Figura 5
Esto nos permitirá ingresar a la pantalla de escaneo de puerto,
la cual verificara los puertos TCP a los que se puede tener
acceso mostrándonos el servicio que estos prestan. Así mismo,
esta pantalla nos indica la cantidad de puertos abiertos y de
estos, cuantos pueden recibir Virus conocidos como Troyanos.
Figura 5.
4.1 Digite el rango de puertos que desea realizar el scan (rango
valido de 1 a 65000).
4.2 Después de poner el rango dar click en el botón scan
4.3 Puede detener el scan dando click en el botón detener
4.4 Puede guardar la información si desea en la base dando clic en
el botón guardar.
4.5 Para realizar un ataque dar clic en el botón Hacking
y pasara a la forma ataque de puertos figura 6
5.- Ataque de puerto
Una vez identificados los puertos TCP abiertos podemos realizar un ataque a
alguno de ellos, seleccionando este y presionando el botón HACKING con lo
cual accederemos a la siguiente pantalla:
Figura 6
Al presionar el botón enviar se realizara un ataque a los
puertos indicado en la forma scan y el sistema nos mostrara si la conexión
fue exitosa o no.
6.- Informes
Adicionalmente podemos presionar el botón informes con lo cual
tendremos acceso al indicado en la figura 7
Figura 7
Esta pantalla nos permite obtener un reporte del numero de veces que se ha
escaneado una dirección o que sea atacado la misma.
6.1.- Reporte de Scaneo
Figura 8
Para obtener este reporte seleccionamos una dirección en la lista
“Direcciones realizadas un scan” y presionamos el botón Scan. Figura 8
6.2.- Reporte de Hacking
Figura 9
Para obtener este reporte seleccionamos una dirección en la lista
“Direcciones realizadas un Hacking” y presionamos el botón Hacking. Figura
9
7. ayuda
Le indicara el funcionamiento de cada forma y los pasos a seguir
1
MANUAL TECNICO
Hacking Ético
El modelo del ciclo lineal o cascada
Análisis
Diseño
Desarrollo
Prueba
2
Diagrama Entidad Relación (DER)
Ingresa
IP
Administrador
Ping
IP
activas
Scan
Puertos
Abiertos
Hacking
Reportes
3
Diagrama de Flujo de Datos (DFD)
Ingreso de IP
Muestra detalle las direcciones IP activas o sin conexión
Debe seleccionar la dirección IP con estado activo.
Administradores
de Red
Detalle de IP activas
Ping
Ingresa rango de
IP’s
Administrador
es de Red
IP’s Activas
Scan
Detalle de
IP activas
Elige IP
Detalle de Puertos Abiertos
4
Por cada Scan de dirección ingresada
Ingresar rango de puertos de comunicación a realizar el Scan
Scan de puertos de comunicación de una estación o Servidor
Muestra lista de puertos de comunicación
Por cada Scan se realiza Ataque a los puertos vulnerables
Toma los datos de la dirección IP selecciona
Envía paquetes a los puertos vulnerables
Recibe información de conexión
Almacena Información del ataque realizado
Fin del Hacking Ético
Administradores
de Red
Puertos Abiertos
Hacking
Probar
vulnerabilidades
Envío de
paquetes
Recepción \ Bloqueo de Puertos
5
Diagrama Transición de Datos (DTD)
Un DTD es la secuencia con la cual se hará el acceso a los datos y se
ejecutarán las funciones.
Especificación de Control
Ping en Reposo
Se ingresa rango de IP’s
Se habilita la opción Ping
Ping esperando
activación
Ping iniciado
Muestra las conexiones
activas
Scan en Reposo
Se elige IP a scanear
Se habilita la opción Scan
Scan esperando
activación
Ingresa rango de puertos e
inicia
Muestra los puertos abiertos
Hacking en
reposo
Elige opción Hacking
Se habilita opción envío
Hacking
esperando
activación Realiza envío
Muestra estado de envío
6
Diagrama de caso de uso resultante
Ventana de Acceso
7
Ventana Principal
Ventana Ping
8
Ventana Scan
Ventana Hacking
9
Diseño A Nivel de Componentes
Presentación de direcciones posibles y
espera de dirección escogida
Digita o selecciona dirección activa y
ejecuta tarea
Presenta pantalla de
Scan de Puertos
Presenta pantalla de
Hacking
Recibe la dirección a la
cual realiza el scaneo
de puertos
Presenta informe en
pantalla de los puertos
abiertos
Ejecuta tarea
Envía paquete a los
puertos abiertos
Presenta Informe en
Pantalla del estado de
los envíos
Ejecuta tarea
Guardar Retornar
10
Codificación de los componentes
Frm_user
Private Sub btnaceptar_Click()
If txtuser.Text = "Administrador" And txtpassword.Text = "Hackeador" Then
Call Configuraciones.Inabilitar(frm_user, frm_principal)
Unload Me
Else
MsgBox "Clave Incorrecta!!!", vbExclamation, "Hacking Etico"
txtuser.SetFocus
End If
End Sub
Private Sub btncancelar_Click()
Unload Me
End Sub
Frm_principal
Private Sub label_finalizar_Click()
Unload Me
End Sub
Private Sub label_ayuda_Click()
11
Call Configuraciones.Inabilitar(frm_principal, frm_scan)
End Sub
Private Sub label_historico_Click()
frm_informe.Show
End Sub
Private Sub label_ping_Click()
Call Configuraciones.Inabilitar(frm_principal, frm_ping)
End Sub
Private Sub txtcerrar_Click()
Unload Me
End Sub
Frm_ping
Dim IPini As String
Dim IPfin As String
Dim contador As Integer
Dim fila As Integer
Dim columna As Integer
Dim inicio, fin As Integer
Dim Ping As cPing
Dim n, flag, i As Integer
Dim ind As Integer
12
Dim activ As Integer
Private Sub Limpiar()
Grid_datos.Clear
Grid_datos.Rows = 2
Grid_datos.FormatString = "< Nº |<Dirección IP |<Estado |>Descripción
|>Tiempo "
IP_fin.LimpiarComtrol
IP_inicio.LimpiarComtrol
Bprogreso.Refresh
IPcompleta.Text = " "
btnping.Enabled = True
End Sub
Private Function ObtenerRango(cadena As String) As Integer
Dim t As String
Dim aux As String
Dim inic, fi, ii As Integer
inic = 0
n = 0
aux = cadena
For ii = 0 To 3
If (InStr(aux, ".")) Then
inic = inic + 1
fi = InStr(aux, ".")
aux = Mid(aux, fi + 1, Len(aux))
End If
Next ii
n = Len(aux)
13
ObtenerRango = aux
End Function
Private Function Rango(cadena As String) As String
Rango = Mid(cadena, 1, Len(cadena) - n)
End Function
Sub Ejecutar()
ind = 0
columna = 0
fila = 1
activ = 0
txtacv.Text = "0"
If (IP_inicio.getIPvalida And IP_fin.getIPvalida) Then
IPfin = IP_fin.getIP
IPini = IP_inicio.getIP
'Obtengo el rango de IP's
fin = ObtenerRango(IPfin)
IPfin = Rango(IPfin)
inicio = ObtenerRango(IPini)
IPini = Rango(IPini)
If (StrComp(IPini, IPfin) = 0 And inicio < fin) Then
Grid_datos.Rows = (fin + 2) - inicio
btnping.Enabled = False
btndetener.Enabled = True
'Obtengo los valores iniciales de la IP
Set Ping = New cPing
14
Bprogreso.Min = inicio
Bprogreso.Max = fin
For contador = inicio To fin
Bprogreso.Value = contador
Ping.IPDestino = IPini & contador
Me.Winsock1.RemoteHost = IPini & contador
Ping.LongitudDatos = 200
Ping.Ping
ind = ind + 1
If Me.Winsock1.LocalIP <> Me.Winsock1.RemoteHost Then
Grid_datos.TextMatrix(fila, columna) = ind
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = Ping.IPDestino
columna = columna + 1
Grid_datos.Row = fila
Grid_datos.Col = columna
If (Ping.Estado <> 0) Then
Grid_datos.CellPictureAlignment = 4
Set Grid_datos.CellPicture = rojo.Picture
Else
activ = activ + 1
txtacv.Text = activ
txtacv.Refresh
Grid_datos.CellPictureAlignment = 4
Set Grid_datos.CellPicture = verde.Picture
End If
columna = columna + 1
15
Grid_datos.TextMatrix(fila, columna) = Ping.Descripcion
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = Ping.Tiempo
Else
Grid_datos.Row = 0
Grid_datos.Col = 0
Resaltar
End If
columna = 0
fila = fila + 1
Grid_datos.Refresh
ip_recorrido.Caption = IPini & contador
ip_recorrido.Refresh
Next contador
btndetener.Enabled = False
Else
MsgBox "Valores de IP no validos o Rangos incorrectos", vbExclamation, "Hacking
Etico"
Limpiar
End If
Else
MsgBox "Ingrese IP"
End If
End Sub
'Boton encargado de detener el proceso de ping
Private Sub btndetener_Click()
16
contador = fin
btn_inicio.Enabled = True
End Sub
'Invoca el procedimiento limpiar
Private Sub btnlimpiar_Click()
Limpiar
End Sub
'Boton encargado de ejecuta el proseso de ping
Private Sub btnping_Click()
Ejecutar
End Sub
'Retorna al formulario principal
Private Sub btnretornar_Click()
Call Configuraciones.Habilitar(frm_principal, frm_ping)
End Sub
'Llama al formulario que realizara el escan de los puertos abiertos de la IP seleccionada
Private Sub btnscan_Click()
Call Configuraciones.Inabilitar(frm_ping, frm_scan)
End Sub
'Inicializa los titulos del grid de datos
Private Sub Form_Load()
acvti = 0
17
Grid_datos.FormatString = "< Nº |<Dirección IP |<Estado |>Descripción
|>Tiempo "
End Sub
'Toma el ip sobre la que se da clic en el grid y activa el boton de scan si la Ip esta activa
Private Sub Grid_datos_Click()
IPcompleta.Text = Grid_datos.TextMatrix(Grid_datos.RowSel, 1)
If (Grid_datos.TextMatrix(Grid_datos.RowSel, 3) = "Conectado") Then
flag = 1 'se lleno del grid
btnscan.Enabled = True
Else
flag = 0
btnscan.Enabled = False
End If
End Sub
'Boton encargado de ejecuta el proseso de ping
Private Sub IP_fin_GotFocus()
If KeyAscii = 13 Then
Ejecutar
End If
End Sub
'ejecuta el procedimiento ping si las IP's ingresadas son validas y se presiono la tecla enter
Private Sub IPcompleta_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And flag = 0 Then
For i = 1 To (Grid_datos.Rows - 1)
18
If IPcompleta.Text = Grid_datos.TextMatrix(i, 1) And Grid_datos.TextMatrix(i, 3) =
"Conectado" Then
Call Configuraciones.Inabilitar(frm_ping, frm_scan)
Exit Sub
End If
Next i
MsgBox "IP no valida o no Conectada", vbExclamation, "Hacking Etico"
End If
End Sub
'Retorna al formulario principal
Private Sub Label4_Click()
Call Configuraciones.Habilitar(frm_principal, frm_ping)
End Sub
Sub Resaltar()
Grid_datos.CellBackColor = &HE0E0E0
Grid_datos.TextMatrix(fila, columna) = ind
columna = columna + 1
Grid_datos.Row = fila
Grid_datos.Col = columna
Grid_datos.CellBackColor = &HE0E0E0
Grid_datos.TextMatrix(fila, columna) = Ping.IPDestino
columna = columna + 1
Grid_datos.Row = fila
Grid_datos.Col = columna
19
Grid_datos.CellPictureAlignment = 4
Grid_datos.CellBackColor = &HE0E0E0
Set Grid_datos.CellPicture = propia.Picture
columna = columna + 1
Grid_datos.Row = fila
Grid_datos.Col = columna
Grid_datos.CellBackColor = &HE0E0E0
Grid_datos.TextMatrix(fila, columna) = Ping.Descripcion
columna = columna + 1
Grid_datos.Row = fila
Grid_datos.Col = columna
Grid_datos.CellBackColor = &HE0E0E0
Grid_datos.TextMatrix(fila, columna) = Ping.Tiempo
activ = activ + 1
txtacv.Text = activ
txtacv.Refresh
End Sub
Frm_scan
Dim X As Long
Dim cont As Long
Dim RutaTroyanos As String
Dim RutaServicios As String
Dim RutaTxt As String
20
Dim IndexIcono As Integer
Dim DescripcionDeServicio As String
Dim DescripcionDeTroyano As String
Dim tex As String
'Detiene el proceso de scaneo de puertos
Private Sub btndetener_Click()
Timer1.Enabled = False
btndetener.Enabled = False
btnhacking.Enabled = True
Winsock1.Close
MsgBox "Proceso Detenido!!!", vbExclamation, "Hacking Etico"
End Sub
'Ejecucion del proceso guardar
Private Sub btnguardar_Click()
For i = 0 To cont - 1
'Le envia parametros a la funcion ingresa tomados de la estructura creada para la base
ingresa scaneo(i).direcscan, scaneo(i).fechascan, scaneo(i).horascan,
scaneo(i).puertoscan, scaneo(i).servicioscan
Next
MsgBox "Guardar Finalizado"
End Sub
'Función para guardar en la base
Public Sub ingresa(campo1 As String, campo2 As Date, Tiempo As Date, campo3 As String,
campo4 As String)
Dim qry As String
'Llama al modulo1 para realizar la conexion con la base
21
coneccion
qry = " INSERT INTO escaneo " _
& "(direccion,fecha,hora,puerto,servicio) VALUES " _
& "('" & campo1 & "','" & campo2 & "','" & Tiempo & "','" & campo3 & "','" & campo4 & "');"
'Ejecuta el String qry
base.Execute qry
base.Close
End Sub
'Llama el formulario hacking
Private Sub btnhacking_Click()
Call Configuraciones.Inabilitar(frm_scan, frm_hack)
End Sub
'Retorna al formulario Ip para poder elegir otras Ip's
Private Sub btnretornar_Click()
Call Configuraciones.Habilitar(frm_ping, frm_scan)
End Sub
'Ejecuta el proceso de scan si los rangos de puertos son validos
Private Sub btnscan_Click()
If IsNumeric(txtfin.Text) Then
If txtfin.Text > 1 Then
Ejecutar
Else
MsgBox "Ingrese Valor Valido", vbExclamation, "Hacking Etico"
txtfin.SetFocus
End If
22
End If
End Sub
'Encuentra ruta de los archivos y guarda adatos iniciales
Private Sub Form_Load()
'enlaza el imagelist con el control treeview
Arbol.ImageList = ImageList1
'rutas de los archivos
RutaTroyanos = App.Path & "\Trojans.ini"
RutaServicios = App.Path & "\Ports.ini"
RutaTxt = App.Path & "\Scan.txt"
'Muestra la IP seleccionada
Me.txtIP = frm_ping.IPcompleta.Text
'graba una linea en blanco
Text1.Text = " "
Call Configuraciones.GrabarEnTxt(RutaTxt, Text1)
'graba la fecha del scan
Text1.Text = Date
Call Configuraciones.GrabarEnTxt(RutaTxt, Text1)
'crea 3 arreglos de la structura
ReDim scaneo(1) As guardarscan
cont = 0
End Sub
'Retorna al formulario con las Ip's activas
Private Sub Label4_Click()
Call Configuraciones.Habilitar(frm_ping, frm_scan)
23
End Sub
'Cada segundo escanea los puertos uno en uno hasta encontrar abiertos
Private Sub Timer1_Timer()
Me.Winsock1.Close
Me.Winsock1.RemotePort = Me.Winsock1.RemotePort + 1
X = Me.Winsock1.RemotePort
txtc.Text = X
txtc.Refresh
Me.Winsock1.Connect
Bprogreso.Value = Me.Winsock1.RemotePort
If Me.Winsock1.RemotePort = txtfin.Text Then
MsgBox "Scan Finalizado", vbInformation, "Hacking Etico"
Me.Timer1.Enabled = False
btndetener.Enabled = False
btnhacking.Enabled = True
btnguardar.Enabled = True
End If
End Sub
'Empieza el scaneo de puertos al presionar la tecla enter
Private Sub txtfin_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And IsNumeric(txtfin.Text) Then
If txtfin.Text > 1 Then
Ejecutar
Else
MsgBox "Ingrese Valor Valido", vbExclamation, "Hacking Etico"
24
txtfin.SetFocus
End If
End If
End Sub
Sub Ejecutar()
Set Ping1 = New cPing
Ping1.IPDestino = txtIP.Caption
Ping1.LongitudDatos = 200
Ping1.Ping
If Ping1.Estado = 0 Then
Bprogreso.Min = txtinicio.Text
Bprogreso.Max = txtfin.Text
Me.Winsock1.Close
txtabiertos.Text = "0"
txttroyanos.Text = "0"
'Iniciando scan
btndetener.Enabled = True
cont = 0
Me.Arbol.Nodes.Clear
Dim Nodo As Node
Set Nodo = Me.Arbol.Nodes.Add(, , "Root", Me.txtIP.Caption, "host")
Me.Arbol.Nodes("Root").Bold = True
Me.Arbol.Nodes("Root").ForeColor = &H80&
Nodo.Expanded = True
Me.Winsock1.RemoteHost = Me.txtIP.Caption
Me.Winsock1.RemotePort = 1
Me.Timer1.Enabled = True
25
Else
MsgBox "Conexión no valida", vbExclamation, "Hacking Etico"
Me.Arbol.Nodes.Clear
End If
End Sub
Private Sub Winsock1_Connect()
'suma uno a la cantidad de puertos abiertos
Me.txtabiertos = Val(Me.txtabiertos) + 1
'Si se dectectan mas de 3 puertos abierto se incrementa el arreglo de la estructura
If cont > 1 Then
ReDim Preserve scaneo(cont) As guardarscan
End If
'variable para crear nodos
Dim Nodo As Node
Set Nodo = Arbol.Nodes.Add(, , "Port" & X, "Puerto abierto: " & X, 1)
DescripcionDeServicio = sGetINI(RutaServicios, "Services", Str(X), "Desconocido")
DescripcionDeTroyano = sGetINI(RutaTroyanos, "Troyanos", Str(X), "Desconocido")
Text1.Text = X & " " & DescripcionDeServicio & " " & DescripcionDeTroyano
Call Configuraciones.GrabarEnTxt(RutaTxt, Text1)
'conserva los datos para posteriormente ser guardados
scaneo(cont).direcscan = Me.Winsock1.RemoteHost
scaneo(cont).fechascan = Date
scaneo(cont).horascan = Time
scaneo(cont).puertoscan = X
scaneo(cont).servicioscan = DescripcionDeServicio
cont = cont + 1
26
'Si el servicio es desconocido se le pone un icono especial, si no se busca el icono que le
corresponde
If DescripcionDeServicio = "Desconocido" Then
IndexIcono = 6
Else: IndexIcono = TipoDeIcono(X)
End If
'se agrega al arbol con la clave "child" & x
If CheckServicios.Value Then
Set Nodo = Arbol.Nodes.Add("Port" & X, tvwChild, "Child" & X, "Servicio: " &
DescripcionDeServicio, IndexIcono)
Arbol.Nodes("Child" & X).ForeColor = &H4000&
End If
'agrega la descripcion del troyano al arbol con la clave "child2" & x
If DescripcionDeTroyano <> "Desconocido" And CheckTroyanos.Value Then
txttroyanos.Text = Val(txttroyanos.Text) + 1
Set Nodo = Arbol.Nodes.Add("Port" & X, tvwChild, "Child2" & X, "Posible troyano: " &
DescripcionDeTroyano, 9)
Arbol.Nodes("Child2" & X).ForeColor = &HFF&
End If
End Sub
'dependiendo del puerto devuelve el tipo de icono que se tiene que usar
Function TipoDeIcono(Puerto As Long) As Integer
Select Case Puerto
Case 11: TipoDeIcono = 2
Case 21: TipoDeIcono = 3
27
Case 23: TipoDeIcono = 4
Case 25: TipoDeIcono = 8
Case 37: TipoDeIcono = 11
Case 79: TipoDeIcono = 2
Case 80: TipoDeIcono = 10
Case 109: TipoDeIcono = 8
Case 110: TipoDeIcono = 8
Case Else: TipoDeIcono = 7
End Select
End Function
Frm_hack
Dim Ruta As String
Dim bandera As Integer
Dim cont As Long
Dim puertoataque
Dim act, ina As Integer
Private Type guardarhack
direcfuenthack As String
direcdesthack As String
fechahack As Date
puertohack As String
resultadohack As String
End Type
Dim arre() As guardarhack
28
Private Sub limpiargrid()
Grid_datos.Clear
Grid_datos.Rows = 2
Grid_datos.FormatString = "< Fecha |<IP Fuente |<IP destino
|<puerto|<Estado "
End Sub
'Ejecucion del proceso guardar
Private Sub btnguardar_Click()
For i = 0 To bandera - 1
'Le envia parametros a la funcion ingresa tomados de la estructura creada para la base
ingresa arre(i).direcdesthack, arre(i).direcfuenthack, arre(i).fechahack, arre(i).puertohack,
arre(i).resultadohack
Next
MsgBox "Guardar Finalizado"
End Sub
'Función para guardar en la base
Public Sub ingresa(campo1 As String, campo2 As String, fecha As Date, campo3 As String,
campo4 As String)
Dim qry As String
'Llama al modulo1 para realizar la conexion con la base
coneccion
qry = " INSERT INTO ataque " _
& "(direccion,fuente,fecha,puerto,resultado) VALUES " _
& "('" & campo1 & "','" & campo2 & "','" & fecha & "','" & campo3 & "','" & campo4 & "');"
'Ejecuta el String qry
base.Execute qry
base.Close
29
End Sub
'Envia datos a la Ip seleccionada
Private Sub btnenviar_Click()
txtactivo.Text = "0"
txtnoactivo.Text = "0"
act = 0
ina = 0
bandera = 0
limpiargrid
Set Ping2 = New cPing
Ping2.IPDestino = Me.txtIP.Caption
Ping2.LongitudDatos = 200
Ping2.Ping
If Ping2.Estado = 0 And (cont >= 0) Then
Timer1.Enabled = True
Else
MsgBox "No existen puertos habilitados o Conexión no valida", vbExclamation,
"Atenciòn"
End If
End Sub
Private Sub btninforme_Click()
frm_informe.Show
End Sub
30
'Llama al formulario scan
Private Sub btnretornar_Click()
Call Configuraciones.Habilitar(frm_scan, frm_hack)
End Sub
'Inicializa el Grid de datos
Private Sub Form_Load()
ReDim Preserve arre(1) As guardarhack
Ruta = App.Path & "\Hacking.txt"
ina = 0
act = 0
txtIP.Caption = frm_scan.txtIP
limpiargrid
If (scaneo(UBound(scaneo)).direcscan <> "") Then
cont = UBound(scaneo)
ElseIf (scaneo(0).direcscan <> "") Then
cont = 0
Else
cont = -1
End If
End Sub
Private Sub Timer1_Timer()
Dim Data As String
Dim resultado As Double
Dim filenum As Integer
Dim filenum2 As Integer
31
Dim i As Integer
Dim a As Integer
Dim columna, fila As Integer
filenum2 = FreeFile
Open "C:\hacking\ataque" & scaneo(bandera).puertoscan & ".txt" For Random As
#filenum2
Close #filenum2
columna = 0
Data = ""
resultado = Shell("C:\jdk1.1.8\bin\ataque.bat " & txtIP.Caption & " " &
scaneo(bandera).puertoscan, vbMinimizedNoFocus)
filenum = FreeFile
On Error GoTo ruta1
ruta1:
Close #filenum
Open "C:\hacking\ataque" & scaneo(bandera).puertoscan & ".txt" For Input As #filenum
If (Not EOF(filenum)) Then
Line Input #filenum, Data
On Error GoTo 0
Else
GoTo ruta1
Close #filenum
End If
Close #filenum
If bandera > 1 Then
ReDim Preserve arre(bandera) As guardarhack
End If
32
Grid_datos.Rows = cont + 2
Grid_datos.TextMatrix(bandera + 1, columna) = Date
arre(bandera).fechahack = Date
columna = columna + 1
Grid_datos.TextMatrix(bandera + 1, columna) = Winsocklocal.LocalIP
arre(bandera).direcfuenthack = Winsocklocal.LocalIP
columna = columna + 1
Grid_datos.TextMatrix(bandera + 1, columna) = txtIP.Caption
arre(bandera).direcdesthack = txtIP.Caption
columna = columna + 1
Grid_datos.TextMatrix(bandera + 1, columna) = scaneo(bandera).puertoscan
arre(bandera).puertohack = scaneo(bandera).puertoscan
columna = columna + 1
Grid_datos.TextMatrix(bandera + 1, columna) = Trim(Data)
arre(bandera).resultadohack = Trim(Data)
Grid_datos.Refresh
Text1.Text = Date & " " & Winsocklocal.LocalIP & " " & txtIP.Caption & " " &
scaneo(bandera).puertoscan & " " & Trim(Data)
Call Configuraciones.GrabarEnTxt(Ruta, Text1)
Text1.Text = ""
bandera = bandera + 1
If Trim(Data) = "conexion establecida" Then
act = act + 1
txtactivo.Text = act
txtactivo.Refresh
Else
33
ina = ina + 1
txtnoactivo.Text = ina
txtnoactivo.Refresh
End If
If bandera > cont Then
Timer1.Enabled = False
btnguardar.Enabled = True
End If
End Sub
'Llama al formulario scan
Private Sub Label4_Click()
Call Configuraciones.Habilitar(frm_scan, frm_hack)
End Sub
Frm_informes
Dim fila As Integer
Dim columna As Integer
Private Sub btninfohack_Click()
Grid_datos.Clear
Grid_datos.FormatString = "< Fecha |<IP Fuente |<IP destino |<puerto |<Estado
"
selecciona "ataque", Combo2.Text
End Sub
Private Sub btninfoscan_Click()
Grid_datos.Clear
34
Grid_datos.FormatString = "< Nº |<fecha |<hora |>puerto |>servicio
"
selecciona "escaneo", Combo1.Text
End Sub
Private Sub btnretornar_Click()
Unload Me
End Sub
Private Sub Form_Load()
Grid_datos.FormatString = "< Nº |<fecha |<hora |>puerto |>servicio
"
llena_combo "direc_scan", Combo1
llena_combo "direc_ataque", Combo2
End Sub
Public Sub llena_combo(tabla As String, combo As ComboBox)
Dim rdCombo As New ADODB.Recordset
Dim qry As String
coneccion
qry = "select direccion from " & tabla
rdCombo.Open qry, base, adOpenKeyset
If (Not rdCombo.BOF Or Not rdCombo.EOF) Then
rdCombo.MoveFirst
combo.Clear
Do While (Not rdCombo.EOF)
combo.AddItem rdCombo("direccion").Value
35
rdCombo.MoveNext
Loop
End If
rdCombo.Close
base.Close
'If (combo.ListCount > 0) Then
' combo.ListIndex = 0
'End If
End Sub
Public Sub selecciona(tabla As String, nombre As String)
Dim rdCajas As New ADODB.Recordset
Dim indice As Integer
Dim ind As Integer
Dim qry As String
ind = 0
columna = 0
fila = 1
coneccion
qry = "select * from " & tabla & " where direccion='" & nombre & "'"
rdCajas.Open qry, base, adOpenKeyset
rdCajas.MoveLast
Grid_datos.Rows = rdCajas.RecordCount + 1
If (Not rdCajas.BOF Or Not rdCajas.EOF) Then
rdCajas.MoveFirst
If tabla = "escaneo" Then
Do While (Not rdCajas.EOF)
36
ind = ind + 1
Grid_datos.TextMatrix(fila, columna) = ind
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("fecha").Value
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("hora").Value
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("puerto").Value
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("servicio").Value
columna = 0
fila = fila + 1
Grid_datos.Refresh
rdCajas.MoveNext
Loop
End If
If tabla = "ataque" Then
Do While (Not rdCajas.EOF)
ind = ind + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("fecha").Value
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("direccion").Value
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("fuente").Value
columna = columna + 1
Grid_datos.TextMatrix(fila, columna) = rdCajas("puerto").Value
columna = columna + 1
37
Grid_datos.TextMatrix(fila, columna) = rdCajas("resultado").Value
columna = 0
fila = fila + 1
Grid_datos.Refresh
rdCajas.MoveNext
Loop
End If
Else
MsgBox "No existe el nombre seleccionado", vbCritical, "Atencion"
End If
rdCajas.Close
base.Close
End Sub
Private Sub Image10_Click()
End Sub
Modulos Necesario
configuraciones
Public Type guardarscan
direcscan As String
fechascan As Date
horascan As Date
puertoscan As String
servicioscan As String
End Type
Public scaneo() As guardarscan
38
Public Sub Inabilitar(Inactivo As Form, Activo As Form)
Inactivo.Enabled = False
Activo.Show
End Sub
Public Sub Habilitar(Activo As Form, Inactivo As Form)
Activo.Enabled = True
Activo.Show
Unload Inactivo
End Sub
Public Sub GrabarEnTxt(Ruta As String, Texto As TextBox)
Dim fnum As Integer
fnum = FreeFile
On Error Resume Next
Open Ruta For Append Access Write As #fnum
Print #fnum, Texto.Text
Close fnum
Text1.Text = ""
End Sub
Inis
Option Explicit
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any,
ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal
lpFileName As String) As Long
39
'Busca en el archivo .ini el texto enviado como parametro
Public Function sGetINI(sINIFile As String, sSection As String, sKey As String, sDefault As
String) As String
Dim sTemp As String * 256
Dim nLength As Integer
sTemp = Space$(256)
nLength = GetPrivateProfileString(sSection, sKey, sDefault, sTemp, 255, sINIFile)
sGetINI = Left$(sTemp, nLength)
End Function
Modulo1
Public base As New ADODB.Connection
Public Sub coneccion()
Dim con As String
con = "driver={Microsoft Access Driver (*.mdb)};dbq=" & App.Path &
"\bases.mdb;user=admin;pwd=;"
base.Open con
End Sub
Modulo de clase Cping
Mascaraip
Clases de Visual Basic
40
Clase java para conexion
import java.net.*;
import java.io.*;
public class tcpClient {
public static void main(String[] args) {
int port = 1500;
String server = "localhost";
Socket socket = null;
String lineToBeSent;
BufferedReader input;
PrintWriter output;
int ERROR = 1;
// read arguments
if(args.length == 2) {
server = args[0];
try {
port = Integer.parseInt(args[1]);
}
catch (Exception e) {
System.out.println("server port = 1500 (default)");
port = 1500;
}
}
// connect to server
try {
41
socket = new Socket(server, port);
System.out.println("conexion establecida");
}
catch (UnknownHostException e) {
System.out.println("no conexion");
System.exit(ERROR);
}
catch (IOException e) {
System.out.println("no conexion");
System.exit(ERROR);
}