¿Que es una Shell?
En informática, el término shell se emplea para referirse a aquellos programas que proveen una interfaz de usuario para acceder a los servicios del sistema operativo. Estos pueden ser gráficos o de texto simple, dependiendo del tipo de interfaz que empleen. Los shells están diseñados para facilitar la forma en que se invocan o ejecutan los distintos programas disponibles en el computador.
Cabe hacer notar que existen 2 tipos de Shell y estos son:
Shells de texto común como bash, emacs, símbolo del sistema de Windows, entre otros.
Shells gráfico común como GNome, KDE, XFCE, LXDE, Unity, MacOS Desktop Environment, Escritorio Windows, entre otros.
Shells
1. Reverse shell
2. Bind Shell
Reverse shell
Un Reverse shell es un tipo de shell en la cual el host (maquina victima) se comunica hacia el host del atacante. El host (maquina del atacante) tiene a la escucha un puerto en el cual recibirá la conexión, que va a usar, para lograr la conexión del interprete de comandos (shell).
Bind shell
Un Bind shell es un tipo de shell en la cual el host (maquina victima) tiene un puerto a la escucha y espera una conexión entrante. El host (maquina atacante) se conecta a el host victima a través del puerto que tiene a la escucha y este lo conduce a un shell.
Creando un reverse shell
Utilizando la herramienta de red
netcat podemos crear un reverse shell y por supuesto poner a la escucha la maquina donde queremos que se conecte.
¿Como se hace? ok veamos como se hace esto:
Atacante
En la imagen de arriba observamos la maquina atacante, la cual pone a la escucha el puerto 4545, con esto se pone a la espera de una conexión (reverse shell).
Victima
Con la ayuda de un script que genere el cual pueden descargar de
aquí.
Nota: Deben darle permisos de ejecución al script (fue ejecutado en un ubuntu)
El script puede ser modificado a su gusto o pensar otras ideas de como hacer que la victima lo ejecute.
Después de ejecutar el script vemos en la imagen de abajo la cual es el atacante, ya se creo la reverse shell.
Ejecutando algunos comando de la terminal de linux podemos observar con que usuario tenemos acceso, la IP, etc.
Creando un bind shell
Utilizando la misma herramienta netcat crearemos un bind shell esto quiere decir que la maquina victima tendrá a la escucha un puerto en el cual al momento de conectarnos nos dará una shell.
Victima
En esta caso estamos atacando un sistema operativo linux Ubuntu, acá el problema radica que ubuntu por defaul tiene una versión de netcat basada en freeBSD
, al ejecutar el comando que nos permite ejecutar un bind shell nos arroja el siguiente mensaje:
para solucionar esto debemos ejecutar los soguientes comandos:
# sudo apt-get install netcat-traditional
Despues ejecutamos el siguiente comando:
# sudo update-alternatives --config nc
Seleccionamos la opcion 2 y damos enter
Despues de haber ejecutado estos comandos, ya es posible crear un bind shell en ubuntu.
vale una vez solucionado el problema de netcat continuamos.
NOTA: para que la victima haja esto debemos aplicar un poco de ingeneria social para que haga estos pasos pata solucionar el "problema".
Con ayuda de un scrip :V que casi no me gusta hacer XD podemos editarlo y cambiar la linea que ejecutara netcat.
del lado de la maquina atacante solo ejecutamos:
# nc <ip> <puerto>
Listo!! ya tenemos un bind shell
Comentarios
Publicar un comentario