Ver la versión completa : Entendiendo los VIRUS
Danielo515
01/02/2012, 01:49
Buenas
Se que el título es un tanto incendiario, pero es que no se me ocurría otro.
No es que quiera programar virus, ya que considero que mi nivel que programación no da el nivel, pero me resulta muy curioso cómo un código informático puede mutar o infectar a otros archivos.
Me gustaría saber si hay algún manual que explique estas cosas por encima, sin entrar en muchos detalles y más bien como algo "divulgativo" que experto.
Un saludo y muchas gracias a todos.
Creo que la desaparecida revista PCmanía tenía una sección dedicada a ellos.
Aunque bueno, ahora es imposible de localizar o comprar a no ser que te bajes las que estén escaneadas.
pablomalaga
01/02/2012, 02:23
¿Y esto que pinta en C/V?
princemegahit
01/02/2012, 02:35
Creo que la desaparecida revista PCmanía tenía una sección dedicada a ellos.
Aunque bueno, ahora es imposible de localizar o comprar a no ser que te bajes las que estén escaneadas.
Los conceptos básicos valdran pero lo demás no porque es muy antiguo, y además, ahora muchos se replican ejecutandose como servicio, hacen uso del registro de windows, etc.
Si le valieran las infecciones en .COM y .EXE yo tenia un tutorial del Profesor Bacterio (usease yo xD) que lo explicaba, pero vete a buscar en que disquete esta eso.
Si yo recuerdo que en una revista que tengo, creo que es h4k3r o algo parecido, ponen todo el código de un virus llamado davinci.
Y hay varias páginas con todo su código , por cierto que está en ensamblador todo creo por lo que ví así por encima.
Y van explicando creo que el código y su funcionamiento.
No se si hay más virus.
La próxima vez que la vea, la puedo subir para que veaís la revista y el virus y que expreseís vuestra opinión.
Un cordial saludo.
cjv99.
princemegahit
01/02/2012, 02:49
He encontrado esto (ha sido toda una sorpresa) que tambien tengo por ahi en un disquete , que te sirve si sabes algo de asm
http://www.set-ezine.org/index.php?num=6
3XCL4M4t10N
01/02/2012, 08:51
http://www.youtube.com/watch?v=G252lZkydbQ
No es lo que buscas pero este pavo se dedica a mostrar virus de MS-Dos. Para alguien que crecio con este sistema operativo y aprendio informatica de usuario a la fuerza gracias a los virus es un gran recuerdo...
Por cierto, ¿Porque me resultan tan frios y escalofriantes los virus de MS-Dos? Me acojonan vivo.
jduranmaster
01/02/2012, 13:06
Como te decian por ahi arriba en la revista PCMANIA habia una sección dedicada unica y exclusivamente al entendimiento de los virus informaticos. te recomiendo que busques los numeros de 1999 hacia atrás. Está todo explicado a nivel técnico. En los números dende se analizaban los virus además se desarrollaba un programa o vacuna antivirus de la que se incluia el .EXE y el código fuente en C/C++ para inutilizarlos y te aseguro que se aprendia un monton. Que época más chula con reviews de virus como: 1992, Aznar, Natas, Ride_On, Illussion...... y sus correspondientes antivirus. Se explicaban los conceptos infección de sectores de arranque, técnicas de antiheuristica.... en fin todo esoa antes de la que revista se conviertiese en papel para envolver pescado.
¿A cuanto va el kilo de virus?
Es obligatorio poner precio a lo que vendes.
slaudos
Danielo515
01/02/2012, 14:34
¿Y esto que pinta en C/V?
¿A cuanto va el kilo de virus?
Es obligatorio poner precio a lo que vendes.
slaudos
Ja ja ja, muy buena esta última. ¡Que compro viruos hoiga!
Disculpadme por favor, le di a la sección de PC y no me di cuenta que era la de compra venta. Si algún admin lo mueve le estaré agradecido.
Ja ja ja, muy buena esta última. ¡Que compro viruos hoiga!
Disculpadme por favor, le di a la sección de PC y no me di cuenta que era la de compra venta. Si algún admin lo mueve le estaré agradecido.
:DDDDDD
slaudos
Danielo515
02/02/2012, 01:04
Muchas gracias a todos los que habéis aportado información, a ver si me pongo a revisarlo y os doy algo de feedback.
Un saludete
yo estube en el mundillo un tiempo y tengo muchas revistas en cds. si las encuentro te aviso ;)
La revista @rroba tenía una sección dedicada en exclusiva a ellos. Hacían exámenes bastante a fondo, examinando el código, analizando las características...
No se si todavía incluirán esa sección, porque hace ya unos cuantos años que no compro revistas...
JoJo_ReloadeD
02/02/2012, 12:42
Yo en su dia hice mis pinitos, en msdos, eso si. El tema venia a ser el siguente:
- Una rutina que capturara la INT 0, el timer, es una rutina del sistema que se ejecuta en cada ciclo de reloj. Si capturas dicha rutina puedes 'meter' codigo por enmedio que haga lo que tu quieras. Esto seria el virus en si.
- Replicacion, que dicha rutina aparte de hacer lo que tu quieras, inyectara el codigo del virus en .EXE y .COM, aqui ya habia que aprenderse la estructura de los mismos, su cabecera (en los exes), los overlays... los .COM era mas sencillo, ya que son asm puro, sin cabecera ni nada, lo que hay ahi es lo que se ejecuta...
Teniendo esas dos cosas ya podias hacer lo que fuera, dado que tu programa se ejecutaba en cada pulso de reloj podias poner una funcion que si un numero aleatorio daba X hiciera tal cosa... Aqui ya la imaginacion era el limite...
Hoy dia, en los windors ni idea de como ira el tema, pero imagino que del estilo, solo que en vez de ir a tan bajo nivel, interceptaran alguna funcion del SO, la rutina de gestion de tareas o similar...
y capturar la int 21h para las funciones de fichero de msdos :)
JoJo_ReloadeD
02/02/2012, 12:48
y capturar la int 21h para las funciones de fichero de msdos :)
Te contesto con un mantra de la epoca:
'El DOS no es reentrante'. La de tiempo que no decia esto...
Era jodido capturar la 21h por este motivo, los de m$ no apilaban nada, y los resultados de volver de ella eran imprevisibles... normalmente era cuelgue...
GameMaster
02/02/2012, 13:03
El mejor virus que habia, era un shortcut en el ambiente de trabajo, con una pelota, y el nombre Super Football, que directamente hacia un format o un restart o crear carpetas basura xDD
Ahora mismo, los virus funcionan de una forma bastante más sencilla.
El equivalente actual a los antiguos virus de MS-DOS son los actuales rootkits.
Los virus actuales son simples programas que se colocan en cualquiera de las ramas de inicio de Windows (a través de las ramas Run, RunOnce, Winlogon, BootExecute y demás) y se replican así mismos para asegurarse de que, en el próximo inicio de Windows, vuelvan a ser iniciados.
Para eliminarlos esos virus, basta con saber desde donde se inician y eliminar todas sus instancias desde un sistema operativo externo (un Hirens, un LiveCD o lo que sea).
Los rootkit, por el contrario, modifican algún driver (c:\windows\system32\drivers) o algún programa del sistema con código malicioso, y son bastante más difíciles de detectar y de eliminar. A éstos es a los que de verdad hay que tenerle miedo. Herramientas como TDSSKiller de Symantec suelen ayudar, pero no siempre consiguen detectarlos.
Yo en su dia hice mis pinitos, en msdos, eso si. El tema venia a ser el siguente:
- Una rutina que capturara la INT 0, el timer, es una rutina del sistema que se ejecuta en cada ciclo de reloj. Si capturas dicha rutina puedes 'meter' codigo por enmedio que haga lo que tu quieras. Esto seria el virus en si.
- Replicacion, que dicha rutina aparte de hacer lo que tu quieras, inyectara el codigo del virus en .EXE y .COM, aqui ya habia que aprenderse la estructura de los mismos, su cabecera (en los exes), los overlays... los .COM era mas sencillo, ya que son asm puro, sin cabecera ni nada, lo que hay ahi es lo que se ejecuta...
Teniendo esas dos cosas ya podias hacer lo que fuera, dado que tu programa se ejecutaba en cada pulso de reloj podias poner una funcion que si un numero aleatorio daba X hiciera tal cosa... Aqui ya la imaginacion era el limite...
Hoy dia, en los windors ni idea de como ira el tema, pero imagino que del estilo, solo que en vez de ir a tan bajo nivel, interceptaran alguna funcion del SO, la rutina de gestion de tareas o similar...
Lo que tu dices que es el virus en si es el payload, y es lo de menos. Lo que define al virus es la capacidad de infectar ejecutables y que cuando esos ejecutables se ejecutan enfenten otros.
Es decir, un virus suelto no existe. Se distribuye un primer binario ejecutado que
localiza uno o más binarios que infectar.
infecta dicho binario para que tenga la capacidad de infectar a otros binarios y seguir con el ciclo.
deja una marca para no infectarlo de nuevo, porque si no podría infectarlo más de una vez haciéndolo crecer demasiado.
Entre medias además de infectar puede hacer alguna otra putada (algunas muy gordas).
Después se sofisticaron un poco, intentando quedarse siempre en memoria, de donde no hay manera de sacarlos aunque los detectes e infectado cada fichero que se cargue en la misma, así no gastan recursos en buscar binarios para infectar o infectan programas que nunca ejecutarás porque ya no los usas.
Después en lugar de colocarse su código al comienzo del programa se colocaban pasadas algunas instrucciones, ejecutando un JMP (salto incondicional) al comienzo del código del virus, y al final del mismo colocaban otro JMP a la instrucción siguiente al primer JMP para seguir con el flujo normal del programa.
Después lo sofisticaron aún más, y les metieron algunas instrucciones de inicialización, para poder usar algún salto condicional más difícil de detectar y darle variedad al código, porque el patrón de los JMP era fácilmente detectable.
Lo más interesante de los virus en mi opinión es que se meten dentro de otro programa sin interferir en su funcionamiento. Es decir, si se te infecta el notepad.exe sigues pudindo usarlo pero cada vez que lo abres desatas al bicho, busca una o más víctimas y les inyecta el bicho, crecen una pizca, porque llevan más código y no se notan, porque no es un programa adicional que se está ejecutando.
¿Como los detectas? por la marca de infección que dejan en sus victimas para no infectar hasta el infinito a la misma víctima.
Los más sofisticados pueden dejar más de una distinta para que no parezca que haya un patrón. La imaginación es el límite.
SplinterGU
02/02/2012, 18:41
Te contesto con un mantra de la epoca:
'El DOS no es reentrante'. La de tiempo que no decia esto...
Era jodido capturar la 21h por este motivo, los de m$ no apilaban nada, y los resultados de volver de ella eran imprevisibles... normalmente era cuelgue...
eso no significa que no puedas colgarte de la 21h y proveer/modificar algun servicio... de hecho lo hice infinidad de veces...
lo del colgarse del timer hace que ejecutes algo con una cierta frecuencia, pero los virus no necesariamente necesitan de ello, pueden colgarse de un servicio (una int de software) y atacar cuando se llame a esa int.
Ahora mismo, los virus funcionan de una forma bastante más sencilla.
El equivalente actual a los antiguos virus de MS-DOS son los actuales rootkits.
Los virus actuales son simples programas que se colocan en cualquiera de las ramas de inicio de Windows (a través de las ramas Run, RunOnce, Winlogon, BootExecute y demás) y se replican así mismos para asegurarse de que, en el próximo inicio de Windows, vuelvan a ser iniciados.
Para eliminarlos esos virus, basta con saber desde donde se inician y eliminar todas sus instancias desde un sistema operativo externo (un Hirens, un LiveCD o lo que sea).
Los rootkit, por el contrario, modifican algún driver (c:\windows\system32\drivers) o algún programa del sistema con código malicioso, y son bastante más difíciles de detectar y de eliminar. A éstos es a los que de verdad hay que tenerle miedo. Herramientas como TDSSKiller de Symantec suelen ayudar, pero no siempre consiguen detectarlos.
exacto, ahora mismo los virus son programas totalmente autonomos, no infectan otros programas sino que infectan equipos, y se aprovechan de las funcionalidades de autorun y demas del operativo en cuestion.
tambien existen los rootkit que como dices son mas complicados y mejores (desde el punto de vista una accion maliciosa) y si son mas dificiles de detectar y eliminar.
la explicacion de dardo esta bastante bien, para entenderlo los virus que infectan programas son algo asi como un loader, que puede estar al comienzo del ejecutable o luego de algunas instrucciones, el codigo del virus, basicamente al ejecutarse se instala en memoria, se cuelga en algun servicio (idealmente en algun servicio de acceso a disco) y luego sigue ejecutando el codigo original, en algunos casos puede restaurar zonas de memoria reemplazadas por el virus al cargarse en memoria (no de la memoria donde se instalo)...
una vez instalado, cuando el sistema operativo accede al servicio donde el virus se colgo, lo que hace es infectar el ejecutable que esta siendo cargado (por eso es mejor en los acceso a disco, porque es antes de que el programa se cargue en memoria) y luego de ahi, ya queda el binario infectado, y esto lo hara con todos los binarios que se ejecuten... algunos virus pueden ser selectivos e infectar a ciertos ejecutables especificos.
y como dijo dardo, el virus debe reconocer cuando un programa ya esta infectado, para no infectarlo eternamente, para eso lo marca con una firma unica que el puede reconocer.
eso es en la infeccion, luego lo que haga el virus es otra cuestion.
en el caso de los virus windows mas comunes, que se apoyan en la autoejecucion del fucking windows, lo que hace el windows cuando detecta un recurso compartido es ver si tiene un autorun, si lo tiene, lo ejecuta y ahi se infecta solito, y de ahi se instala en los recursos compartidos locales para infectar nuevas maquinas.
hay otros metodos, pero esos son los mas comunes.
si bien estas tecnicas pueden ser utilizadas por virus, tambien pueden ser utilizadas de forma benefica, aunque los antivirus con tecnicas avanzadas de reconocimiento heuristico pueden detectarlos como virus o codigo malicioso, por ejemplo, recuerdo un antivirus que infectaba a los programas para meterle un control de integridad del binario, entonces si luego el ejecutable era infectado por otro virus, el control de integridad incrustado en el ejecutable saltaba con una alarma.
una tecnica que hacen algunos virus para evitar ser detectados, es que al colgarse de los servicios de acceso al disco, cuando un antivirus (tienen tecnicas para detectar que un antivirus lo esta accesando) requiere la lectura del binario infectado, es eliminar de la data que retorna el codigo del virus, entonces el antivirus piensa que el ejecutable no esta infectado, pero simplemente fue el virus que estando residente se autooculta. eso lo he visto en algunos virus.
en fin... la charla puede ser muy larga...
http://www.youtube.com/watch?v=G252lZkydbQ
No es lo que buscas pero este pavo se dedica a mostrar virus de MS-Dos. Para alguien que crecio con este sistema operativo y aprendio informatica de usuario a la fuerza gracias a los virus es un gran recuerdo...
Por cierto, ¿Porque me resultan tan frios y escalofriantes los virus de MS-Dos? Me acojonan vivo.
Ya somos dos. Cada vez que me dejaban un juego, pasaba los antivirus que tenía porque era una putada que te entrara un virus.
Recuerdo que con mi primer pc, un IBM PS1 (un 286 a 10mhz), el primer día me entró un virus y lo tuve que llevar a la tienda donde lo había comprado. Y el tío me preguntaba que había metido en el disco duro y le dije que un juego que ellos mismos me habían regalado. Segúramente, algun comprador se lo devolvió a la tienda, alegando que no funcionaba, y me lo encasquetaron a mi con un virus.
La primera.. en la frente.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.