Mostrando entradas con la etiqueta Kali Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Kali Linux. Mostrar todas las entradas

martes, 31 de mayo de 2016

Analizando vunerabilidades web: Uniscan








Son muchas las veces que nos piden que analicemos paginas webs en busca de vulnerabilidades o que hagamos uso de estas para contemplarlas como una de las opciones de puerta de acceso en los test de intrusión. Para ello hay muchas herramientas las cuales hablaremos más adelante, hoy vamos a echar un vistazo a uniscan.

Uniscan no es más que un escáner de búsqueda de vulnerabilidades que viene implementado en Kali Linux, pero que también podemos descargar en este enlace de sourceforge. Una vez tenemos acceso al mismo ya sea descargado o implementado en Kali Linux, lo primero que haremos es empaparnos de las opciones que nos da mediante la orden "uniscan -h".





Una vez ya estemos documentados haremos uso de los ejemplos en concreto el primero. Y mediante la orden "uniscan -u http://www.webaescanear.com -qweds" iniciaremos el escaneo de dicha web. Una vez esto acabe que llevará un tiempo variable dependiendo del tamaño de la web se generará un documento ".html" en el que se detallará un informe del análisis. Este fichero se encuentra en el directorio "report" de la aplicación, que en el caso de Kali Linux en "/usr/share/uniscan/report/" como se muestra en la imagen.




Ahora abriremos el fichero de la con un navegador y comprobaremos lo encontrado, que en nuestro ejemplo es nada.






Como vemos en el ejemplo vemos los análisis que realiza y que no se encuentra nada, en el caso de este ejemplo el análisis tardar una 1:20 para realizar el análisis completo. Como dato que este reporte haya salido sin encontrarse ninguna vulnerabilidad no quiere decir que no podamos encontrar de otras maneras.





jueves, 10 de marzo de 2016

Ncat: Abriendo puertos a la escucha e iniciar un chat.









Como mencionamos anteriormente, veríamos ejemplos sobre Netcat para ver lo que nos ofrece y en esta entrada en el blog comenzamos con ello. Lo primero antes de nada es decir el entorno que usaremos en adelante para las pruebas y ejemplos que no será mas que dos máquinas cliente/servidor con S.O. derivados de Debian, pero también usaremos entornos Windows para estos ejemplos.

Hoy vamos a ver como podemos dejar a la escucha un puerto abierto para recibir conexiones o por ejemplo iniciar un chat entre ellos. Lo primero es ver la sintáxis de ncat. 

nc [-options] hostname port[s] [ports]
nc -l -p port [-options] [hostname] [port]

Ahora procederemos abrir el puerto que quedará a la escucha para el cliente mediante la orden "nc -l -p 8080" donde -l es listen(a la escucha) -p es el puerto en el que se quedará a la escucha y abierto( 8080). Una vez ejecutado ahora desde el cliente lanzaremos el comando para conectarnos al puerto en concreto "nc [ip del destino] 8080". Ahora en la siguiente imagen (a la izquierda el cliente y a la derecha el servidor) vemos como hemos entablado la conexión e iniciamos la conversación entre ambos. Como dato estas conversaciones van en texto en blanco sin ningún tipo de cifrado.




Es un primer ejemplo sencillo para que veamos la facilidad y potencial de Netcat.



miércoles, 2 de diciembre de 2015

GPG (GnuPG): Cifrado simétrico sobre Linux







Hoy en día el cifrado de las comunicaciones en el ámbito empresarial es de vital importancia ya que cualquiera con pocos conocimientos podría estar a la escucha de nuestras comunicaciones y estar leyendo o captando todas nuestras comunicaciones. El cifrado GPG nos permitirá que aunque se capten estas comunicaciones solo el destinatario o alguien con la clave ( cifrado simétrico) pueda mostrar el contenido de las comunicaciones en definitiva es un poner una capa más de seguridad en nuestras comunicaciones que muchas veces contienen información sensible ( datos bancarios, identidades, etc..).

GPG o GnuPG es un herramienta de cifrado con soporte simétrico y asimétrico que viene a ser un reemplazo a PGP. Lo usos que le podemos dar GPG son mediante el terminal o aplicaciones gráficas pero también es aplicable para cifrar emails mediante pluggins en navegadores y gestores de correo. GPG viene implementado en múltiples sistemas como OpenBSD, GNU/Linux, etc.


Su funcionamiento es sencillo:



GPG cifra los mensajes usando pares de claves individuales asimétricas generadas por los usuarios. Las claves públicas pueden ser compartidas con otros usuarios de muchas maneras, un ejemplo de ello es depositándolas en los servidores de claves. Siempre deben ser compartidas cuidadosamente para prevenir falsas identidades por la corrupción de las claves públicas. También es posible añadir una firma digital criptográfica a un mensaje, de esta manera la totalidad del mensaje y el remitente pueden ser verificados en caso de que se desconfíe de una correspondencia en particular.
GnuPG también soporta algoritmos de cifrado simétricos, por ejemplo CASTS.
GPG no usa algoritmos de software que están restringidos por patentes, entre estos se encuentra el algoritmo de cifrado IDEA que está presente en PGP casi desde sus inicios. En su lugar usa una serie de algoritmos no patentados como ElGamalCAST5Triple DES (3DES), AES y Blowfish. También es posible usar IDEA en GPG descargando un plugin extra, sin embargo este puede requerir una licencia para usuarios de algunos países en donde esté patentada IDEA.
GPG es un software de cifrado híbrido que usa una combinación convencional de criptografía de claves simétricas para la rapidez y criptografía de claves públicas para el fácil compartimiento de claves seguras, típicamente usando recipientes de claves públicas para cifrar una clave de sesión que es usada una vez. Este modo de operación es parte del estándar OpenPGP y ha sido parte del PGP desde su primera versión.



Y después de un poco de teoría una practica simple de cifrado simétrico con GPG sobre Kali Linux, como dato importante los datos cifrados simetricamente son atacables mediante fuerza bruta, conviene introducir una contraseña alfanumérica robusta.

Lo primero que haremos es crear el fichero con su texto y comprobamos que se puede leer el texto creado mediante la orden cat:

echo "texto cifrado" > texto_cifrado.txt
cat texto_cifrado.txt

Ahora procedemos a hacer un cifrado simétrico nos pedirá que le asignemos una única contraseña y se nos genera un txt que sera texto_cifrado.txt.gpg y comprobamos que no se puede leer como antes medienate la orden cat:

gpg -c texto_cifrado.txt
cat texto_cifrado.txt.gpg

Por último desciframos el mensaje cifrado simétricamente mediante la contraseña anteriormente asignada:

gpg -d texto_cifrado.txt.gpg 

Como dato final hacemos lo mismo con una contraseña mal puesta y comprobamos que no se descifra. En la siguiente imagen esta descrito todo el proceso.





Como dato final las claves simétricas tienen dos problemas la retransmisión de las claves entre el emisor y receptor. Para solucionar esto se puede organizar sistemas de distribución seguros de claves simétricas. Por otro lado es muy importante la robustez de la contraseña ya que los ataques de fuerza bruta han evolucionado forma increíble usando sistemas de Cloud Computing para descifrar las claves en menos tiempo.


martes, 24 de noviembre de 2015

Buscando direcciones email: theharverster





Muchas veces como IT tenemos que obtener direcciones email de dominios en los que estamos evaluando la seguridad y la fuga de información. Una parte importante de estas evaluaciones es la llamada information gathering (recopilación de información) que es la que nos va permitir montar el proceso de explotación y la búsqueda de vulnerabilidades. Para la búsqueda de direcciones email tenemos TheHarvester el cual nos permite buscar información sobre un dominio.

Para hacer uso de él usaremos Kali, una plataforma de auditoria y seguridad informática.

Abriremos el terminal y ejecutaremos "theharvester" si nos mostrará las opciones, la explicación de las mismas.





Ahora ejecutaremos un ejemplo para buscar emails sobre un dominio aleatorio.





Como vemos se nos mostrarán las dirección y los propios servidores. Este programa para obtener emails, subdominios, host, nombres de empleados, puertos abiertos desde recursos públicos, nos facilitará nuestro trabajo en este apartado de obtención de información.



martes, 9 de junio de 2015

Bitlocker sobre Linux: Abriendo dispositivos cifrados con Bitlocker en Linux usando Dislocker.






Después de ver "Bitlocker: Encriptando & Desencriptando dispositivos" comentaba que existía la forma de desencriptar dispositivos cifrados con bitlocker en linux. Pues a lo largo de esta entrada se os va a explicar como realizar esto sobre Linux. 

Lo que vamos a usar para poder realizar esta tarea es Dislocker, que no es mas que una utilidad que nos va a permitir realizar esta tarea. Lo primero que haremos será descargar Dislocker mediante descarga normal o usando de wget de la siguiente forma "wget http://www.hsc.fr/ressources/outils/dislocker/download/dislocker.tar.bz2". 




Una vez descargado descomprimimos Dislocker haciendo uso de tar con los parámetros correspondientes "tar -xvjf dislocker.tar.bz2".

Ya teniéndolo descomprimido instalaremos dos librerías que nos harán falta "aptitude install libfuse-dev libpolarssl-dev".

Después de esto nos dirigimos a la carpeta "src" de Dislocker y ejecutamos la orden "make".




Y ahora la orden make install.




Ahora realizada ya la instalación comenzaremos creando las carpetas para montar los dispositivos "mkdir usbdrivebitlocker" y "mkdir usbmountbitlocker".




Una vez creadas conectamos el dispositivo y lo identificamos mediante la orden "fdisk -l" y vemos que es "/dev/sdc1" esto puede variar.




Ahora una vez ya identificado comenzamos desencriptando el disco con la utilidad dislocker "dislocker -r  -V /dev/sdc1 -p -- /media/usbdrivebitlocker" y nos pedirá una contraseña que es la contraseña de recuperación.




Ahora comenzaremos con el montaje mediante mount, "mount -o loop /media/usbdrivebitlocker/dislocker-file /media/usbmountbitlocker"




Y ya tenemos montado y con acceso a nuestro dispositivo desde linux, que había sido encriptado con bitlocker.









miércoles, 3 de junio de 2015

Nmap: Detección de hosts según puertos.


En esta pequeña entrada de Nmap, vamos a ver como podemos ajustar nuestra búsqueda de host buscando por puertos. Esto lo utilizaremos en caso de especificar nuestra búsqueda de un servidor web, servidor de impresión, etc. Muchas veces necesitaremos hacer uso de esto para encontrar aquellos recursos de red que queramos configurar.


Por ejemplo escanear un rango de puertos TCP/UDP de un de una red "nmap -p 50-100 192.168.1.0/24





También podemos concretar las búsquedas esficicando puerto en determinados protocolos como pueden ser TCP o UDP. Como por ejemplo en este ejemplo "nmap -p U:53,161,8888,T:1000-2000,80,25,8888,8080 192.168.1.1" en el cuál especificamos los protocolos, los puertos concretos, también rangos de los mismos , etc.











viernes, 29 de mayo de 2015

Consultando lista de puertos ( Linux, Unix)






Muchas veces como administradores de sistemas trabajando sobre entornos Linux o Unix tenemos que trabajar con los puertos y no, un IT no lo sabe todo de memoria pero tiene que tener métodos para saber solucionarlo. 

Por todo esto a la hora de estar trabajando con puertos podemos hacer consulta de ellos y el servicio que hace uso de él consultando el fichero "/etc/services" haciendo uso de cat "cat /etc/services".





También jugando un poco con grep podemos buscar según el nombre o el número de puerto. Esto es útil por si queremos usar un puerto que este libre para asignarlo a un servicio o enmascarar un servicio sobre otro puerto. Para ello podemos lanzar los siguientes ejemplos "cat /etc/services | grep ssh" usando el nombre del servicio para buscarlo o "cat /etc/services | grep 80" buscando por el número de puerto. 




En OSX siendo basado en UNIX es el mismo proceso y en el ejemplo buscaremos por el protocolo telnet "cat /etc/services | grep telnet".




En definitiva, un buen apoyo sobre todo cuando estamos trabajando contra un terminal.









domingo, 10 de mayo de 2015

PPTD : Creando una VPN rápida, sencilla pero no tan segura.







Hoy veremos como crear una pequeña rápida y sencilla VPN sobre un servidor linux para tunelizar nuestras comunicaciones. Para ello usaremos el protocolo PPTP el cual ya os adelanto que no es muy seguro pero que nos sacará de algún que otro apuro para realizar tareas en los nuestros clientes ya que muchas veces para aplicaciones de pequeños negocios  y grandes negocios se necesitan valer de una VPN para trabajar y hacer más productivo su trabajo. Para esto trabajaremos con un servidor debian o deribado. 


Instalando pptpd: Comenzaremos instalando mediante la siguiente línea.

sudo apt-get install pptpd

Fichero de configuarión pptpd: Una vez instalado configuraremos  el fichero pptpd

sudo vim /etc/pptpd.conf

Editamos en el los apartados localip (esta es la ip de nuestro servidor) y remoteip (el rango de IP que se dará a los cliente que conecten)

localip 192.168.1.200 (ejemplo)
remoteip 192.168.1.30-33 (ejemplo)


Fichero de opciones pptpd: Ahora editaremos las opciones de pptpd en el fichero "/etc/ppp/pptpd-options" donde editaremos las dns en mi caso usé para el ejemplo las google, pero en caso de necesidad de usar otro de la red interna sería elegir el adecuado.

vim /etc/ppp/pptpd-options

Editamos los siguientes valores

ms-dns 8.8.8.8

ms-dns 8.8.4.4




Creando un usuario para los clientes que van a conectar: Una vez realizado esto crearemos un usuario con su contraseña que será la que le valga al cliente para validarse, esto se realiza en el fichero "/etc/ppp/chap-secrets"

Aqui editaremos el fichero introduciendo en el usuario, servidor, contraseña y nos valdremos de la siguiente linea de comandos, la cual deberemos modificar en función de los valores que le queramos dar.

echo "usuario pptpd contraseña *" >> /etc/ppp/chap-secrets




Permitiendo redireccionamiento: Ahora debemos permitir el redireccionamiento para que el cliente pueda acceder a todos os dispositivos de la red interna para ello editaremos el fichero "/etc/sysctl.conf" y descomentaremos la linea "net.ipv4.ip_forward=1" y finalmente aplicamos los cambios "sudo sysctl -p".

Abriendo puertos: Ahora tendremos que abrir puertos en el router correspondiente para el correcto acceso del cliente, los puertos que tendremos que abrir seran el 1723 en el router de la red del servidor.

Finalmente nos queda contectar mediante un dispositivo cliente a nuestra VPNRecordar finalmente como se comenta en el comienzo que nos es un tipo de tunelación muy seguro y que por lo tanto tendremos que optar por otras opciones en caso de necesitarlas







jueves, 30 de abril de 2015

Solución de problemas - Internet / Acceso a la Red en Linux: Comprobando/configurando DNS & fichero HOST



En esta entrada vamos a ver como ver las DNS asignadas a nuestro cliente o servidor y como cambiarlas y asignarles otras.

Las DNS o Sistema de Nombre de Dominio, básicamente es un sistema el cual nos permite tener una relación entre el nombre del recurso al que queramos acceder con su dirección IP todo esto almacenado en una base de datos. Por ejemplo cuando en nuestro navegador solicitamos www.google.es el DNS recibe esa petición y te dirige a la dirección 216.58.210.131. Las DNS podemos tenerlas configuradas de dos maneras manualmente o dinámicamente, en este último caso nos la reparte el servidor DHCP.





Para ver las DNS configuradas en nuestro servidor no tenemos más que escribir la siguiente línea de comandos "cat /etc/resolv.conf".





Una vez mostrada podemos modificarlas, pero antes de ello vamos a seguir los pasos correspondientes y esto antes de modificar algo realizar una copia del mismo para posteriormente poder restaurarla. Esto lo haremos con la siguiente lineas de comandos "cp -f /etc/resolv.conf{,.bak}".

Una vez realizada nuestra copia de seguridad procedemos a modificar las DNS, las cuales podemos poner varias como pueden ser las de OpenDNS( 208.67.222.222 – 208.67.220.220) o google (8.8.8.8 – 8.8.4.4) también puedes disponer de direcciones mas anónimas en este enlace. Una vez nos hemos decidido procedemos a modificar las DNS, mediante el siguiente comando "vim /etc/resolv.conf" y añadimos la direcciones de DNS que hemos elegido.





Después de esto tendremos que revisar el fichero host (/etc/host) en busca de modificaciones porque si aquí hay alguna búsqueda local aunque tengamos las DNS correctas la búsqueda se va a realizar según este puesta aquí la relación nombre real – dirección IP. Si recordamos esto ya lo hemos tocado anteriormente en el tema ( "Migrando nuestra web de hosting" Ver web mientras la actualización de DNS se completa ( Linux, OSX, Windows).


Para comprobarlo escribimos el siguiente comando "cat /etc/host" y se nos mostrará el contenido del mismo.


Ahora en caso de querer modificarlo lo primero que haremos será un backup del fichero "cp -f /etc/hosts{,.bak}". Una vez realizado el backup en caso de que queramos añadir alguna relación especifica para nosotros el formato que debemos introducir será <dirección ip> <nombre del host>. Y para editar el fichero deberemos escribir "vim /etc/hosts". Ya en el modificamos o editamos lo que queramos.








miércoles, 8 de abril de 2015

Solución de problemas - Internet / Acceso a la Red en Linux: Comprobando/configurando dirección IP & puerta de enlace (GW)




En esta entrada vamos a ver como comprobar/cambiar/establecer la dirección IP y su máscara de red ( estática, DHCP) y por último la puerta de enlace (GW).


Para mostrar la dirección IP usaremos 'ifconfig' ( 'ipconfig -a' para mostrar todos los dispositivos sin importar si están levantados o no). 





Ahora tendremos que decidirnos por una dirección estática o dinámica (DHCP).


· Dirección dinámica (DHCP): En este tipo de asignación sera al servidor DHCP al que le solicitaremos la dirección, después de solicitarlo este nos asignará una dirección IP, también nos asignará una puerta de enlace y una DNS.





A la hora de solicitar la dirección ip para el dispositivo de red nos bastará con escribir 'dhclient -r eth1' y 'dhclient eth1'.




· Dirección estática: En este tipo de asignación seremos nosotros el que lo asignaremos.

Ahora para asignar una dirección manual o estática, asignaremos la dirección IP y la máscara de red.

En este ejemplo trabajar con una ip con máscara clase C, en la imagen veremos como asignarla simplemente escribiendo 'ifconfig eth1 192.168.1.90/24' y comprobaremos la dirección nueva 'ifconfig eth1'







Para hacer que estos cambios sean persistentes, es decir que se mantengan tras el reinicio tendremos que alterar un fichero. Y si vamos a alterar el fichero lo mejor que podemos hacer es realizar una copia del mismo 'cp -f /etc/network/interfaces{,.bak}





Una vez realizada la copia de seguridad podremos editar el fichero 'vim /etc/network/interfaces' para disponer de una dirección asignada mediante DHCP o manualmente.


DHCP persistente: Añadiremos al fichero que estamos editando lo siguiente.

auto eth0
iface eth0 inet dhcp

IP estática persistente: Añadiremos al fichero que estamos editando lo siguiente que variará en función de la configuración que queramos.

iface eth0 inet static
address 192.168.1.90
netmask 255.255.255.0
gateway 

Por último veremos como mostrar/configurar la puerta de enlace (GW). Para mostrar la puerta de enlace que tenemos actualmente lo veremos mediante 'route -n'.





Una vez mostrada, para cambiar la puerta de enlace asignada en este adaptador de red tan solo tendremos que asignarla manualmente mediante 'route add default gw 192.168.1.2 eth1'





Para eliminar una puerta de enlace tan solo con escribir 'route delete default gw 192.168.1.2 eth1'









viernes, 3 de abril de 2015

"Migrando nuestra web de hosting" Ver web mientras la actualización de DNS se completa ( Linux, OSX, Windows)






Muchas veces estamos migrando una web de un hosting a otro y como IT tenemos que permitir facilitar que clientes ,diseñadores web, editores de contenido puedan seguir trabajando sobre la web mientras las actualizaciones de DNS se completan.

Como IT tenemos que solucionar ese problema de... "Me sigue redireccionando al antiguo hosting". Esto lo podemos solucionar editando los ficheros hosts de los sistemas operativos(Linux, OSX o Windows) con los que están trabajando los clientes. Al editar estos ficheros hacemos que mientras los servidores DNS se actualizan nuestros clientes tengan acceso y puedan trabajar sobre el nuevo hosting.




OSX:

Abrimos un Terminal, el cual podemos abrir seleccionando Aplicaciones>Utilidades>Terminal. Dentro del terminal, lo primero que haremos será una copia del fichero mediante el siguiente comando "sudo cp /private/etc/hosts /private/etc/hostscp". Una vez realizada la copia del fichero abriremos el fichero hosts introduciendo la línea de comandos "sudo nano /private/etc/hosts" donde veremos el fichero con el contenido predeterminado.





Ahora introduciremos una línea en él como ejemplo (este lo tendrá que cambiar por sus valores)

111.111.111.111 dominio www.domio.com





Guardaremos mediante control+x y volveremos al terminal. Para terminal limpiaremos y renovaremos la cache DNS con el siguiente comando "dscacheutil -flushcache".


Windows OS:

Pulsamos "windows+x" y abrimos powershell(con permisos de administrador). Una vez tenemos nuestra consola realizamos la copia de seguridad del fichero hosts"cp C:\WINDOWS\system32\Drivers\etc\hosts C:\WINDOWS\system32\Drivers\etc\hostscp".





Una vez realizada la copia del fichero lo editaremos con la siguiente línea de comando "notepad C:\Windows\System32\Drivers\etc\hosts" y una vez añadidos los cambios "111.111.111.111 dominio www.domio.com" guardamos y salimos.




Finalmente limpiaremos y renovaremos la cache DNS con la siguiente línea "ipconfig /flushdns".




Linux:

Abrimos un terminal aplicaciones>accesorios>terminal, una vez abierto realizamos una copia del fichero hosts "sudo cp -f /etc/hosts{,.bak}".


Una vez realizada la copia del fichero lo editaremos con la siguiente línea de comando "sudo nano /etc/hosts" y una vez añadidos los cambios "111.111.111.111 dominio www.domio.com" guardamos y salimos.