Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gobiernos 20%
Finanzas 10%
Entretenimiento 5%
Polí?co 20%
Educación 5%
Hospitales 5%
Hos?ng
10%
Ciberseguridad
Etapas
de
un
ataque
Recabar
Información
• Nmap
es
la
herramienta
por
excelencia
u?lizada
por
todo
el
mundo
que
quiera
recabar
información
sobre
que
con?ene
el
sistema.
• No
solo
permite
iden?ficar
puertos
y
servicios.
• Dispone
de
una
gran
variedad
de
scripts
de
los
cuales
algunos
de
ellos
?enen
repercusión
contra
las
aplicaciones
web
Scripts
Nmap
NETCAT
• Inurl:ws_np.ini”[“WS_FTP]”
filetype.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
Herramientas
google
Hacking
• Google
Hacks.
• Search
Diggity.
• Goodork.
• SQLmap
Búsqueda
de
Vulnerabilidades
• Existen
herramientas
que
permiten
automa?zar
la
búsqueda
de
vulnerabilidades
a
la
hora
de
realizar
un
hacking
web.
• Algunas
de
las
herramientas:
– Arachni.
– Acune?x.
– BurpSuite.
– AppScan.
– Nessus.
– W3af.
– Grabber.
– Vega.
– Skipfish.
Explotación
de
la
vulnerabilidad
• SQL
Injec?on.
• Blind
Sql
Injec?on
• XSS
Reflected.
• XSS
Stored.
• CSRF.
• Brute
Force
• LFI/RFI.
• Command
Execu?on
• File
Upload
Otras
Vulnerabilidades
Web
• Xml
Injec?on.
• Denial
of
Service.
• Ajax
Injec?on.
• Xpath
Injec?on.
• Buffer
Overflow.
• Path
Traversal
• LDAP
Injec?on.
• Reflected
DOM
Injec?on.
• Cross
Site
Tracing.
• Session
Fixa?on.
SQL
Injec?on
• SQL
Injec?on
–
Fallo
de
inyección.
–
Falta
de
validación
de
entradas.
• Permite
modificar
las
consultas
SQL.
• Extracción
de
información.
SQL
Injec?on
No
selecciona
ningún
registro
de
la
tabla
“usuarios”.
Ejemplo
Blind
Sql
Injec?on
¿1 = 1?
¿1 = 0?
“Booleanización”
•
Muy
eficiente.
Algoritmo
de
Búsqueda
Binaria
Por
ejemplo:
• hZp://www.sqlinjec?onwiki.com/
SQL
Injec?on
• Ahora
considere
el
siguiente
script
de
inserción
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
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
• Este
?po
de
ataques
en
lugar
de
explotar
la
confianza
del
usuario
explotan
la
confianza
que
hace
el
si?o
web
a
sus
usuarios.
• CSRF
implica
la
simulación
de
solicitudes
HTTP,
por
lo
cual
es
muy
importante
entender
las
solicitudes
HTTP.
CSRF
• Dado
que
en
el
código
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
• Un
ataque
de
fuerza
bruta
es
un
método
que
se
usa
para
adivinar
las
credenciales
del
sistema
mediante
la
automa?zación
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
RFI
• Consiste
en
subir
al
sistema
un
fichero
malicioso
ya
sea
sin
aplicar
ninguna
técnica
de
camuflamiento
o
bien
camuflando
el
malware
dentro
de
uno
los
ficheros
considerados
por
el
sistema
como
aceptable.
• Algunas
técnicas
aplicadas
para
camuflar
el
malware
son:
– Null
Byte.
– Introducción
a
través
de
metadatos.
– Modificación
de
las
cabeceras
del
fichero.
– Modificación
de
la
Extensión.
File
Upload
•
Aplicaciones
diferentes,
usuarios
diferentes
Medidas
de
Protección
contra
XSS
• XSS:
– HTMLfilter
es
un
proyecto
para
PHP
que
analiza
todos
los
datos
HTTP
antes
de
ser
u?lizados.
• Filtrar
todos
los
datos
foráneos.
• U?lizar
la
funcionalidad
existente:
htmlen??es(),
strip_tags,
u‰8_decode(),
etc.
pueden
ayudar
a
escribir
la
lógica
de
filtrado.
• Solamente
autorizar
un
contenido
validado.
• U?lizar
una
convención
de
nombres
descrip?va.
Medidas
de
Protección
contra
CSRF
Medidas
de
Protección
contra
Brute
Force
• U?lización
de
captchas.
• Medidas
de
baneo
llegado
a
los
x
intentos
de
error.
• U?lización
de
contraseñas
robustas.
• U?lización
de
herramientas
que
permiten
proteger
a
los
paneles
web
frente
a
estos
ataques,
por
ejemplo
la
herramienta
cPHULK
Brute
Force
Protec?on.
Medidas
de
Protección
contra
LFI
• Como contramedida podemos recomendar los
siguientes items:
• Filtrar todos los parámetros que un usuario de la página
pueda manejar.
• Asegurarse de que no se pueda acceder a archivos más
allá del "Document Root" de la página.
• Procesamiento correcto del parámetro y de la función
que se dedique a recuperar el contenido del fichero que
necesitemos.
Medidas
de
Protección
contra
RFI
• Como contramedida podemos recomendar los
siguientes items:
• Filtrar todos los parámetros que un usuario de la página
pueda manejar.
• Procesamiento correcto del parámetro y de la función
que se dedique a recuperar el contenido del fichero que
necesitemos.
• Si es posible setear la variable de PHP
“allow_url_fopen” en off
Medidas
de
Protección
contra
Command
Execu?on
• No
permi?r
la
inserción
de
comandos
como
&&
o
||.
• Filtrar
el
campo
de
tal
manera
que
solo
permita
la
introducción
del
comando
esperado.
• Aplicar
comprobaciones
sobre
el
campo,
determinando
el
?po
de
datos
que
se
le
pasarán
a
los
parámetros
que
recibe
el
comando.
Otras
Medidas
de
Protección
• Tecnologías
u?lizadas:
– Programación
del
lado
Cliente:
JavaScript.
– Programación
del
lado
Servidor:
PHPy
JSP.
– Sistema
gestor
de
base
de
datos:
MongoDB
y
Sql
Server.
• Ataques
que
se
realizarán:
– Blind
NoSQL
Injec?on
del
?po
boolean.
– hZp
Parameter
Pollu?on.
– Blind
Sql
Injec?on
?me
based.
– Hooking
XSS
Stored.
¿Qué
es
MongoDB?
• MongoDB
es
un
sistema
de
bases
de
datos
NoSQL
orientada
a
documentos,
desarrollado
bajo
el
concepto
de
código
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
dinámico.
• No
cumple
con
el
esquema
en?dad-‐relación.
• 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.find(
<query>,
<projec?on>
)
– db.collec?on.findOne(
<query>,
<projec?on>
)
• Update
– db.collec?on.update(
<query>,
<update>,
<op?ons>
)
• Delete
– db.collec?on.remove(
<query>,
<justOne>
)
NoSql
¿Por
qué
surge?
• Consistencia
Eventual.
• Ausencia
de
esquema
en
los
registros
de
datos.
• Alta
velocidad
de
respuesta
a
pe?ciones.
• Estructura
distribuida.
• Escalabilidad
horizontal.
Sistemas
en
Producción
que
usan
MongoDB
Web
Services
• Los
ataques
de
polucción
de
parámetros
HTTP
consisten
en
la
inyección
de
delimitadores
query
string
codificados
en
otros
parámetros
existentes.
• Si
el
parámetro
en
el
que
se
ha
realizado
la
inyección
no
es
valida
correctamente
y
se
u?liza
decodificado
para
generar
una
URL,
el
atacante
puede
insertar
uno
o
más
parámetros
en
dicha
URL.
• Las
consecuencias
de
este
ataque
dependen
de
la
lógica
de
la
aplicación
y
pueden
tener
desde
un
leve
impacto
hasta
una
gran
importancia.
HTTP
Parameter
Pollu?on
• Dependiendo
del
lenguaje
del
servidor
si
se
aplica
el
ataque
HPP
se
cogerá
el
primero,
el
segundo
o
ambos
parámetros
repe?dos.
Beef