Clonar paquetes hacia otra máquina con iptables

Con la extensión ‘TEE’ de iptables podemos clonar un paquete dirigido hacia otra máquina a la nuestra.

Si quisieramos clonar el trafico de entrada del host 192.168.1.5 y mandarlo a nuestra maquina (192.168.1.100):


iptables -t mangle -A PREROUTING -d 192.168.1.15 -j TEE --gateway 192.168.1.100

Si buscamos hacer lo mismo con el trafico de salida del host 192.168.1.5 y mandarlo a nuestra maquina (192.168.1.100):


iptables -t mangle -A PREROUTING -s 192.168.1.15 -j TEE --gateway 192.168.1.100

Fuentes:

http://ipset.netfilter.org/iptables-extensions.man.html

http://superuser.com/questions/853077/iptables-duplicate-traffic-to-another-ip

Share

Creación de ficheros en blanco en GNOME 3

Por defecto no nos aparece la opción Nuevo -> Documento de texto, tenemos que activarla.

Es muy sencillo, accedemos con el terminal a la carpeta “Templates” o “Plantillas” en español:

En español:

cd /home/USUARIO/Plantillas

En ingles:


cd /home/USUARIO/Templates

Creamos un nuevo fichero con ‘touch’:


touch Documento\ de\ texto

Ya podemos crear ficheros de texto con el click derecho -> Nuevo.

Share

Iconos en el escritorio con GNOME 3

En GNOME 3 por defecto no tenemos la posibilidad de utilizar iconos en nuestro escritorio. Pero GNOME es muy personalizable y con unos pequeños cambios podemos activar dicha función.

Abrimos un terminal y ejecutamos (con usuario normal, no root):


dconf-editor

Dentro de dconf-edir, nos dirigmos a:


- org
- gnome
- desktop
- background

Marcamos la opción:


(*) show-desktop-icons

Guardamos los cambios y ya tendriamos nuestro escritorio 100% operativo.

Share

Tormenta broadcast NETGEAR ONO

Hola de nuevo a todo el mundo!

Despues de mucho tiempo offline volvemos a mostrarnos al mundo. Esta vez vengo a plasmar una experiencia personal con los famosos router netgear que entrega ONO.

Por cuestiones tecnicas del escenario que nos encontrábamos, el router de ONO debía estar configurado en modo NAT, es decir, en el mismo router, una ip publica y otra privada para nuestra LAN.

La máquina con Gentoo conectada a un puerto ethernet del router NETGEAR, seria algo así:


ROUTER ONO -----> 84.128.X.X. -- PUBLICA
192.168.1.1 -- PRIVADA


MAQUINA GENTOO -------> IP WAN 192.168.1.2
-------> IP LAN 192.168.10.1

Una vez realizado lo anterior. ¡Nos pusimos a probar nuestra instalación!
Todo funcionaba de maravilla hasta pasar 15 o 20 minutos. Poco a poco la velocidad a Internet caía, casi no podia abrir simples paginas web..

Con lo que, despues de horas y horas de pruebas y no encontrar una solución, puse a funcionar ‘tcpdump’ en la tarjeta de red donde estaba conectado el router NETGEAR.

Y esto fué lo que me encontré (lineas y lineas de lo que pego a continuación):


ARP Who has 192.168.1.2 Tell 192.168.1.1
ARP Who has 192.168.1.3 Tell 192.168.1.1
ARP Who has 192.168.1.4 Tell 192.168.1.1
ARP Who has 192.168.1.5 Tell 192.168.1.1
ARP Who has 192.168.1.6 Tell 192.168.1.1
ARP Who has 192.168.1.7 Tell 192.168.1.1
ARP Who has 192.168.1.8 Tell 192.168.1.1
ARP Who has 192.168.1.9 Tell 192.168.1.1
ARP Who has 192.168.1.10 Tell 192.168.1.1
ARP Who has 192.168.1.11 Tell 192.168.1.1
ARP Who has 192.168.1.12 Tell 192.168.1.1
ARP Who has 192.168.1.13 Tell 192.168.1.1
ARP Who has 192.168.1.14 Tell 192.168.1.1
ARP Who has 192.168.1.15 Tell 192.168.1.1
ARP Who has 192.168.1.16 Tell 192.168.1.1
ARP Who has 192.168.1.17 Tell 192.168.1.1
ARP Who has 192.168.1.18 Tell 192.168.1.1
ARP Who has 192.168.1.19 Tell 192.168.1.1
ARP Who has 192.168.1.20 Tell 192.168.1.1
ARP Who has 192.168.1.21 Tell 192.168.1.1
ARP Who has 192.168.1.22 Tell 192.168.1.1
.........

Esto, lo emitia el router de ONO cada 2 o 3 segundos. Estaba provocando una tormenta broadcast impresionante. Parecia que el router estaba intentando ponerse en contacto con equipos que no existian en la red, desde 192.168.1.2 hasta 192.168.1.254.

No conozco el porque de esto, supongo que será algun defecto del router.

¿LA SOLUCIÓN?

Bastaria con configurar el NETGEAR en modo bridge. O si necesitamos si o si una ip local, configurariamos el NETGEAR en modo bridge y lo conectariamos a un router, y este a la máquina Linux configurada para manejar el trafico.

INSISTO. En la instalación que estaba realizando era ESTRICTAMENTE NECESARIO trabajar con el router del proveedor en modo NAT. Si no hubiera sido así podria haber configurado en modo bridge el router y problema solucionado.

Espero que esta entrada le sirva a alguien de ayuda ya que yo estuve pegando cabezazos hasta que encontré el por que y una solución.

Share

Retry Dial en Asterisk

Hola.

Aqui estoy de nuevo con otra pequeña aportación para la comunidad, esta vez les voy a mostrar como hacer un plan de marcado de Asterisk a prueba de bombas ( o casi jeje).

En este caso lo que vamos a hacer es trabajar con 2 troncales de 2 operadores SIP. Intentaremos sacar la llamada 3 veces por el primero, y si no lo conseguimos, reintentamos otras 3 veces más con el segundo, es muy sencillo.

 

; Definimos variables. Numero de intentos y proveedores
exten => s,1,Set(INTENTOS=3)
exten => s,n,Set(PROVEEDOR1=SIP/proveedor1)
exten => s,n,Set(PROVEEDOR2=SIP/proveedor2)

Con este parrafo definimos todas las variables que vamos a utilizar. En la primera linea, declaramos una variable llamada INTENTOS que valdrá 3, serán los intentos a realizar para cada proveedor. PROVEEDOR1 y PROVEEDOR2 estan definidos en mi archivo sip.conf.

 

; Intentamos sacar llamada por TRUNK 1
exten => s,n(llamar),Set(REALIZADOS=0)
exten => s,n(dial),Dial(${PROVEEDOR1}/${MACRO_EXTEN},30)
exten => s,n,Set(REALIZADOS=$[${REALIZADOS}+1])
exten => s,n,GotoIf($[${REALIZADOS} < ${INTENTOS}]?dial:proveedor2)

 

Con esto, intentamos sacar la llamada. La primera linea “setea” la variable REALIZADOS en 0 y a continuación se ejecuta el Dial, si ocurre algún problema sigue a la siguiente linea, en la que, incrementamos el valor de REALIZADOS en 1. Abajo comparamos si REALIZADOS es MENOR que INTENTOS, como si que lo es, ejecutará dial (volver a ejecutar de nuevo el Dial()). Esto ocurria 3 veces, a la 3º el plan de marcado seguirá hasta la etiqueta proveedor2.

 

; Reintentamos sacar llamada por TRUNK 2
exten => s,n(proveedor2),Set(REALIZADOS=0)
exten => s,n(redial),Dial(${PROVEEDOR2}/${MACRO_EXTEN},30)
exten => s,n,Set(REALIZADOS=$[${REALIZADOS}+1])
exten => s,n,GotoIf($[${REALIZADOS} < ${INTENTOS}]?redial)
exten => s,n,Goto(ERROR,1)

 

exten => ERROR,1,Playback(beep)

exten => ERROR,n,Hangup

 

En la primera linea volvemos a setear REALIZADOS en 0 y a continuación intentamos marcar de nuevo pero esta vez con $PROVEEDOR2.

Si falla, sigue su camino y incrementa la variable REALIZADOS. El gotoIf hará la misma comparación y mientras REALIZADOS sea menor que INTENTOS (3) seguirá intentandolo.

Si en esta ocasión falla al intentar sacar la llamada 3 veces, irá a parar a ERROR, el cual, hará que en el telefono suene un pitido y colgará.

 

 

 

 

Esto es todo, espero que les sirva.

Un saludo 😀

 

Share

Mysql dialplan Asterisk.

En algunos escenarios, trabajando con Asterisk, tenemos la necesidad de consultar datos de una base de datos, para por ejemplo, dar la posibilidad a un usuario a traves de una página dinámica en PHP activar o desactivar un buzón de voz. Esto como he dicho, se puede conseguir realizando consultas a Mysql desde el mismo dialplan de asterisk.

Es bastante sencillo, con lo que pondré varias lineas a modo de ejemplo:

Utilizaremos la función Noop de asterisk para saber en todo momento como recorre asterisk nuestro pequeño plan de marcado.

Para conseguir esto en asterisk se utiliza la función Mysql.

Lo primero que se tiene que hacer es conectar con el servidor (Mysql) y la base de datos con la que queremos trabajar.

Mysql(connect conex localhost usuario password base_de_datos)

– conex: Esta variable almacenara la sesión de la conexión. (La tendremos que indicar a las futuras consultas de mysql)
– Localhost: Seria la IP o nombre del servidor donde se aloja la base de datos
– Usuario: Aqui se indicaria el usuario de la base de datos
– Password: Password de la base de datos
– base_de_datos: Aqui el nombre de la base de datos con la que vamos a trabajar.

Ejemplo:

Mysql(connect conex localhost myuser mypassword dbasterisk)

Una vez explicado esto, se debe saber que este es el primer punto a realizar.

El segundo punto a realizar seria la consulta.
Lo único que cambia en este caso es la palabra connect por query. Indica a la función mysql que vamos a realizar una consulta.

Mysql(query consulta ${conex} ..CONSULTA MYSQL.. )

– consulta: Variable que retornará el retorno de la consulta
– ${conex}: Variable que indicamos anteriormente para realizar la conexion. Pasandole esta variable hacemos referencia a la conexión establecida anteriormente.
– ..CONSULTA MYSQL.. : Aqui se indicará una consulta Mysql estándar.

Ejemplo:

Mysql(query consulta ${conexion} SELECT dst FROM tabla_1 WHERE id=1 )

Recogeremos los valores del campo dst, cuya tabla es tabla_1 y el valor id sea 1..

Hemos conectado con mysql en el punto 1, hemos realizado la consulta en el punto 2. Ahora nos falta poder “leer” el contenido que nos a retornado dicha consulta.

Para esto utilizamos la función mysql seguida de fetch:

Mysql(fetch asignar ${consulta} var1)

– asignar: Esta variable retornará si la operación tubó exito o no.
– ${consulta}: Es la variable que indicamos anteriormente en la consulta. Le estamos diciendo que nos “extraiga” el resultado de dicha consulta que anteriormente ejecutamos con query.

– var1: Seria la variable a la que se pasaria el valor ya legible. Ahora podriamos utilizar Noop para leer su resultado en la consola de asterisk o para tratarla a lo largo del dialplan.

En el caso de que query nos devuelva más de un registro y queramos acceder al siguiente, podemos utilizar la nueva funcionalidad que SOLAMENTE ESTA DISPONIBLE PARA ASTERISK 1.8.

Mysql(Nextresult sigregistro ${connid})

-Nextresult: Se trata de la nueva funcionalidad agregada por asterisk en la versión 1.8. Permite ir avanzando entre todos los registros “soltados” por mysql. Si la consulta devolvió 4 registros diferentes, podremos acceder a esos 4 haciendo un Nextresult & fetch para cada uno de ellos. Con Nextresult pasamos de registro y con fetch lo rescatamos a una variable.

– sigregistro: Se trata de la variable donde se retornará el puntero al registro. Seria esta variable la que tendriamos que utilizar ahora en fetch.

Ejemplo:

Mysql(fetch asignar ${sigregistro} var1)

Con la linea anterior, el registro pasará a estar disponible desde la variable ${var1}

Una vez hemos terminado con todo lo relaciono con mysql tenemos que “limpiar” todo lo relacionado con la consulta y desconectarnos del servidor mysql.
Se consigue con:

Mysql(clear ${consulta})    # Para limpiar

– ${consulta}: Seria el puntero que indica la consulta anteriormente realizada.

Mysql(disconnect ${conex}) # para desconectar

– ${conex}: Seria el puntero que indica la conexión de la que queremos desconectarnos. (La anteriormente realizada)

Despues de aprender todo lo comentado, dejo a modo de ayuda todo el dialplan referente a las pruebas realizadas.

exten => 111,n,Noop(Vamos a conectar con Mysql)
exten => 111,n,Mysql(connect conex localhost miusuarioasterisk password999 asterisk-tabla)
exten => 111,n,Noop(Resultado de conexion: = ${conex})
exten => 111,n,Noop(Consultamos datos de la DB)
exten => 111,n,Mysql(query consulta ${conex} SELECT dst FROM cdr WHERE dst=123456789)
exten => 111,n,Noop(Resultado de consulta: ${consulta})
exten => 111,n,Noop(Asignamos el resultado de la consulta a var1)
exten => 111,n,Mysql(fetch asignacion ${consulta} var1)
exten => 111,n,Noop(Valor de variable VAR1 es: ${var1})
exten => 111,n,Noop(Limpiamos con clear)
exten => 111,n,Mysql(clear ${consulta})
exten => 111,n,Mysql(Vamos a desconectarnos del servidor Mysql con disconnect)
exten => 111,n,Mysql(disconnect ${conex})
exten => 111,n,Noop(Terminado…monovarlinux.org 😀 :=). Conocimiento libre! . Gracias linux & asterisk por existir)
exten => 111,n,Hangup

Como podeis ver, dicho dialplan se ejecutara al marcar 111. Podran ver todos los mensajes Noop, su salida, en la consola de asterisk, entrando a ella con asterisk -vvvvvvvvvr.

 

Espero que una vez más sirva de utilidad a alguien.
Como siempre, cada dia más y mejores. Conocimiento libre!

Un saludo.

Share

Network Address Translation. Tipos de NAT.

Hola a todos.  Esta vez voy a escribir un pequeño texto que estoy seguro, les servirá de utilidad. Lo voy a hacer a modo de apunte personal, pero como he dicho, seguro que les servirá a más de uno.. Empecemos…

 

1. ¿Que es NAT? ¿Y que hace exactamente?

Las siglas NAT significa Network Address Translation y fué creado para “ahorrar” direcciones IPv4 gracias al gran auge de internet. Si no hubiera sido por NAT la migración a IPv6 ya haría muchisimo tiempo que se habría completado.

Realiza la traducción para que los equipos internos de una red local puedan comunicarse con el mundo exterior.

 

 

Veamos un ejemplo:

Hemos contratado una linea ADSL, el proveedor nos a facilitado un router el cual tiene 4 bocas LAN para conectar 4 ordenadores en casa.

El router en este caso tendria 2 direcciónes IP: 99.99.99.99 (la publica) y 192.168.1.1 (la privada).

Los ordenadores conectados al router también tendrían direcciones ips privadas..

(A – 192.168.1.2), (B- 192.168.1.3), (C – 192.168.1.4), y (D – 192.168.1.5).

 

 

Lógicamente las direcciones privadas de los ordenadores conectados a ese router no son alcanzables desde internet ni ellos tampoco pueden acceder al mundo exterior. (por ahora…jeje)

Pero el caso… es que, cuando tenemos este escenario tan tipico, los pc’s internos de nuestra casa conectados al router, si pueden entrar a internet perfectamente….¿Que pasó? ¿¿¿¿ como es que funciona???  He ahí la magia de NAT.

Lo que hace en este caso es, cuando desde el pc A (192.168.1.2) se intenta conectar con un destino remoto de internet (22.22.22.22)…

El paquete es dirigido desde el pc A al router:

PC 192.168.1.2 —————> Router 192.168.1.1

– El router comprueba que la dirección IP con la que se desea establecer la conexión es de Internet, con lo que, convierte mediante un mecanimo (más adelante veremos los distintos tipos) la IP Privada del pc A 192.168.1.2 en la IP Externa 99.99.99.99.

– El router una vez hecha la traducción envía la petición al equipo de Internet (22.22.22.22) apareciendo ahora el router (99.99.99.99) como remitente de la conexión.

– Dicha conversión se guarda en una tabla internamente en el equipo enrutador.

– El equipo remoto (22.22.22.22) recibe la petición y contesta al remitente de la conexión (aparece como remitente 99.99.99.99)

– El router (que es el que contiene la ip 99.99.99.99) recibe la contestación del equipo de Internet (22.22.22.22). Ahora el router verifica los registros de la tabla NAT. Se realiza internamente la siguiente pregunta:

¿Que equipos conectados a mi quisieron contactar con 22.22.22.22? Y ahí esta en la tabla de NAT. El equipo 192.168.1.2 fué el que origino la conexión.

– El router envia desde su ip interna (192.168.1.1) la contestación del equipo remoto (22.22.22.22) al pc interno (192.168.1.2)

 

Para dicha conversión NAT juega con los puertos TCP y UDP. Depende del tipo de NAT, elije de una forma u otra la asignación de dichos puertos.

 

2. Tipos de NAT

Como he dicho anteriormente. NAT realiza asignaciones de de puerto origen/puerto destino para poder realizar esas conversiones. No siempre se realiza de la misma forma y esto depende del tipo de NAT que contenga el equipo enrutador.

 

Full cone:  Se fijan un único par  Ip puerto interno / Ip puerto router. Esta establecido desde el principio no hace falta que el cliente inicie una petición de conexión. Por ejemplo: Ya estaría establecido que el pc con IP 192.168.1.2 y puerto 80 sale por la IP 99.99.99.99 y puerto 2211.  Si el equipo de internet 22.22.22.22 envia un paquete a la IP 99.99.99.99 y puerto 2211, este paquete será reenviado automáticamente al pc interno 192.168.1.2.

No entiende de control de sesiones. Es bastante inseguro. Este tipo de NAT ya casi a desaparecido.

 

Restricted cone NAT: Conocida como NAT estricta. Se establece la IP y Puerto publico solamente cuando el cliente inicia un inicio de conexión a una máquina remota. El enrutador guarda la dirección ip de destino y solo atenderá tráfico de respuesta de esa dirección. Con este tipo de NAT un equipo remoto no podrá “responder” a una petición si primero no a realizado el inicio de conexión.

Este tipo de NAT es muy utilizado por los administradoes con Netfilter/Iptables y se basa en, aceptar conexiones pertenecientes a  una sesión (conexión) ya establecida. (RELATED en iptables). Máxima seguridad.

 

Port Restrited Cone NAT: Lo mismo que Restricted cone NAT pero añade un dato más a la asociación, el puerto. Si el destino quiere contestar al remitente y no envia su numero de puerto la información no llegará al cliente.

 

Symetric NAT:  Para cada petición de cada máquina remota se asocia un numero de puerto. Puertos aleatorios. Si el destino quisiera responder al remitente deberá saber el puerto que se le asigno para su sesión, si no, no podrá hacerlo.

 

 

Espero que lo hayan comprendido correctamente he intentado explicar cada concepto y cada escenario de la manera más amena posible.

 

Un saludo y muchas gracias por visitar este blog.

Hasta la próxima!

PD: Debo añadir, que actualmente los enrutadores comerciales, mezclan varios tipos de NAT y no se basan estrictamente en uno de los aquí listados, esto es solamente, para que sepan como trabaja por lo general NAT.

 

Share

[Gentoo & Gnome] Automontaje de dispositivos

Acabo de habilitar el automontaje de dispositivos con gnome en un equipo con gentoo, lo publico aqui a modo de apunte personal y por si alguien le sirve de ayuda, seguro que si :).

1:

echo “gnome-base/gvfs gdu” >> /etc/portage/package.use

2:

emerge gnome-disk-utility gnome-base/gvfs

3:

reboot

Ya tenemos el automontaje habilitado en nuestro GNOME.

Share

[Gentoo] Desinstalar GNOME o KDE con portage

Estos dias he estado terminando una instalación nueva de Gentoo Linux. Decidí probar gnome 3 como entorno de escritorio. El aspecto visual es mágnifico pero hay otras cosas como el rendimiento, y la organización del propio escritorio que aun no estan del todo bien, con lo cual, decidí desinstalar gnome y volver a instalarlo pero esta vez GNOME 2.

Lo pudé hacer con la ayuda de eix, una aplicación que sirve para hacer búsquedas dentro del árbol de portage.

Antes, la instalamos con:

emerge eix

Más tarde, debemos decirle que analice nuestro árbol de portage antes de poder utilizar eix:

eix-update

Ahora, con ayuda de eix listaremos todos los paquetes que pertenezcan a gnome-base:

eix -C gnome-base –only-names –installed

Podemos observar como responde perfectamente a nuestra petición. Nos muestra todos los paquetes instalados en nuestro sistema pertenecientes a la categoria gnome-base.

Esto es lo que vamos a hacer ahora, vamos a tomar como ayuda eix para eliminar todos los paquetes de gnome-base y gnome-extra con portage.

emerge -C `eix -C gnome-base –only-names –installed` && emerge -C `eix -C gnome-extra –only-names –installed` && revdep-rebuild

Podriamos hacer lo mismo para eliminar KDE.

emerge -C `eix -C kde-base –only-names –installed` && emerge -C `eix -C kde-misc –only-names –installed` && revdep-rebuild

Despues de eliminar dichos páquetes no estaria mal ejecutar revdep-rebuild, por eso, lo he añadido a las reglas anteriores.

Un saludo.

Fuentes: 1& 2

Share

Rompiendo la privacidad utilizando la memoria RAM

En el siguiente texto vengo a romper una de las “normas” que desde siempre se han tomado como correctas en el término de la informática.

¿Que se SUPONE que es la memoria RAM?

Cuando hablamos de memoria RAM, desde la informática básica se dice de ella que es una memoria volátil, que al apagar el equipo toda la información almacenada en ella es borrada completamente. Esto no es 100% cierto, porque realmente, se ha desmotrado con estudios recientes que, los datos en la memoria RAM permanecen cierto tiempo antes de que sean borrados de dicha memoria. Alredededor de unos 10 minutos quedan los datos en la memoria RAM.

¿Que ocurre si conseguimos leer estos datos?

Esto seria un gran problema para nosotros (si somos la victima en este caso) ya qué, la memoria RAM no va encriptada y por esta pasan TODOS los datos que nosotros introducimos contraseñas y demás.

Ya pero…. ¿Si la información solo se mantiene unos 10 minutos en dicha memoria? En este tiempo no podemos hacer nada.

Bien, en este punto vamos a basarnos de nuevo en las investigaciones y pruebas que se han realizado. Dichos estudios afirman que si enfriamos la memoria RAM en cuestión a unos -50º, podemos conseguir alargar la vida de estos datos en dicha memoria.


¿Como conseguimos esto?

Utilizando sprays de aire durante varios segundos o minutos pueden ayudarnos a conseguir nuestro objetivo (Dejando la memoria alrededor de (-50º). Podemos alargar la vida de estos datos con este método unos 30 minutos apróximadamente (suficiente para hacer el volcado de una memoria de 2/4GB. En dichos estudios se ha llegado a alargar la vida de los datos más de una hora, con nitrógeno liquido, alcanzado la memoria una temperatura de (-196º).

Sprays de aire: utilizados para eliminar por ejemplo, el polvo del interior de los ordenadores.

¿Como volcamos el contenido de la RAM al disco?

Con Linux como no. Como todo en linux es un fichero, la memoria RAM en este caso es /dev/mem y utilizando dd podemos volcar los datos de esta a nuestro disco duro:

dd if=/dev/mem of=/root/memory.dd

Empezara la lectura sector por sector de la memoria y se irá haciendo la copia a nuestro disco duro en el directorio /root/ con nombre memory.dd.

(Para conseguir mayor información y evitar la sobreescritura de la memoria RAM, podriamos utilizar los siguientes metodos:

– Arrancar un sistema gnu/linux desde PXE (mediante RED), y arrancar dd desde este.

– Iniciar un pequeño entorno gnu/linux desde una memoria usb. (Sin utilizar RAMDISK).

Atención: Para esto no podriamos arrancar desde un live cd, ya que este, para no escribir en nuestro disco duro, lo que hace es escribir en la memoria RAM y esto haría que perdieramos los datos que tanto nos interesan.

Trabajando con los datos ya volcados en el disco.

Una vez hemos conseguido volcar los datos con cualquiera de los metodos anteriormente citados, vamos a proceder a leer los datos..

Leyendo datos..

En Linux podemos transformar a strings datos binarios con el comando ‘strings’, se utilizaria de la siguiente forma:

strings /root/memory.dd

Un extracto de lo que seria la visualizacion de estos datos con strings:

Con la ayuda de ‘strings’, pipes (|) y grep podemos buscar contenido más especifico.

Tambien podemos optar por visualizar este contenido con hexdump para la visualización de contenido hexádecimal:

Un ejemplo generico de la representación de hexdump:

Con este proceso, podemos obtener información muy ámplia, passwords y demás información confidencial que se nos representara con texto plano (strings) o en código hexádecimal (hexdump).

Una tarea muy valiosa si estamos atacando un pc de forma fisica y no podemos por ninguno de los medios acceder al sistema operativo.

Si tienen cualquier duda al respecto no duden en comentar.

Saludos.

Att.ZaPa

Share