25 mayo 2018

Simples herramientas de fuzzer


En este post, quiero demostrar algunas herramientas con las cual podemos realizar Fuzzing.

Que es el Fuzzing?

Según Wikipedia: Fuzzing es una técnica de prueba de software, a menudo automatizado o semiautomatizado, que implica proporcionar datos inválidos, inesperados o aleatorios a las entradas de un programa de ordenador.

Bueno, cabe aclara que en los post anteriores nosotros realizamos un script el cual fuzzeaba contra nuestras aplicaciones vulnerables

La idea de este post es dar a entender que podemos automatizar el proceso de fuzzing y no es solamente de forma manual

Hay muchas aplicaciones de fuzzing, pero en este caso solo vamos a presentar 2, una que viene en Kali linux y otra que podemos instalar fácilmente

Bueno entonces empecemos

BED (Bruteforce Exploit Detector), es un fuzzer de protocolo de texto plano que comprueba si el software tiene vulnerabilidades comunes como desbordamientos de búfer, errores de cadena de formato, desbordamientos de enteros, etc.

BED soporta los siguientes protocolos
FTP SMTP POP HTTP
IRC IMAP PJL LPD
FINGER SOCKS4 SOCKS5

10 mayo 2018

Exploit SEH


structured exception handler (SEH) o traducido "manejador de excepción estructurado"

Hoy vamos a crear un exploit en seh, y para eso vamos a explotar el Easy File Sharing Web Server 7.2 el cual se puede descargar desde su página oficial

La instalación es como se realiza en windows, siguiente siguiente, usamos la misma máquina que venimos usando desde los post anteriores.

Bueno después de instalado sale esta ventana y elegimos "Try it"



Ahora el programa quedaría así, pero con la dirección ip local de tu máquina



Abrimos nuestro immunity debugger y el proceso seria ese

04 mayo 2018

Notas, Registers, opcode y comandos


Bueno, este post quiero que sea más para aprender algunos conceptos y tener algunas ideas más clara de algunas cosas y definiciones

Estas son la definiciones según wikipedia:

Opcode: En informática, un opcode (operation code) o código de operación, es la porción de una instrucción de lenguaje de máquina que especifica la operación a ser realizada

Assembly: El lenguaje ensamblador, o assembler (en inglés assembly language y la abreviación asm), es un lenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables.

Pila o Stack: Una pila (stack en inglés) es una lista ordenada o estrutura de datos que permite almacenar y recuperar datos, el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In, First Out, «último en entrar, primero en salir»).

shellcode: Una shellcode es un conjunto de órdenes programadas generalmente en lenguaje ensamblador y trasladadas a opcodes (conjunto de valores hexadecimales) que suelen ser inyectadas en la pila (o stack) de ejecución de un programa para conseguir que la máquina en la que reside se ejecute la operación que se haya programado.

Los 8 registros de propósito general

EAX - El Acumulador registro: este también acumula el resultado de
los cálculos de la CPU
ECX - El contador de registro: se suele usar en bucle
EDX - El registro de datos: extensión de eax para cálculo más complejos
EBX - El registro base: apoya los cálculos de operaciones
EBP - El puntero de base: indica la base del frame de la pila
ESI - El índice de origen: localización de los datos de entrada
EDI - El índice de destino: donde se almacenan los datos
ESP - El puntero de pila: indica la cima de la pila

Las Publicaciones más Vistas

Comandos Drozer Pentest Móvil