Módulo en delphi que deja un antivírus sin actualizarse. (Didáctico)
Página 1 de 1. • Compartir •
Módulo en delphi que deja un antivírus sin actualizarse. (Didáctico)
Hoy vamos a comentar una de las formas que tiene el malware de combatir contra los antivírus o programas de seguridad que protegen el ordenador y es quizá uno de los mayores problemas ya que en muchos casos los usuarios no se dan cuenta de ello, la técnica consiste en sobrescribir el archivo hosts, del que ya se ha hablado algúna vez, para que los antivírus no puedan actualizarse devídamente.
Primero de todo hacer un breve resúmen del uso del archivo hosts, este archivo está ubicado en C:\windows\system32\drivers\etc\hosts.txt y tiene la finalidad de resolver los nombres de domínio con sus IP's correspondientes, de esta manéra en un principio este archívo solamente tendrá una sola línea útil definida como localhost apuntando a la dirección 127.0.0.1 que es la de nuestro propio equipo, es decir el archivo tendrá únicamente una sola línea como la siguiente:
127.0.0.1 localhost
Con esta forma para resolver domínios, se nos ofrece mediante una trampa engañar al ordenador para bloquear las páginas que nos interésen, de hecho múchos bloqueadores de páginas utilizan éste método. Por ejemplo, si queremos bloquear una pagina llamada www.ejemplo1.com, simplemente tendrémos de añadir una línea a nuestro archivo hosts, asignandole una IP falsa a ese dominio web. Aparte de bloquear, ofrece otras posibilidades como poder hacer redirecciónes a paginas falsas, pero ese ya es otro tema que se comentará más adelante, así que la nueva estructura de nuestro archivo hosts será:
127.0.0.1 localhost
127.0.0.1 www.ejemplo1.com
Queda por comentar, que estos bloqueos pueden ser directamente de dns o servidores y es aquí donde realmente se verá el problema que puede existir con las actualizaciónes de los antivírus. Hablándo ya sobre los antivírus, la mayoría se actualizan cada dia o varias veces al dia y para ello requieren poder conectarse a un servidor para verificar y bajar las actualizaciónes.
Imagino que sobre estas alturas ya pueden empezar a ver el problema, cualquier malware podría añadir al archivo hosts, una resolución de IP falsa por ejemplo al servidor que se conecta nuestro antivírus, de esta forma nunca llegaría a poder efectuar la actualización y nuestro ordenador quedaría desprotegido. Para que vean un ejemplo mas práctico realizaremos un ejemplo con el antivirus gratuito Avast, en mi caso se actualiza mediante un servidor que conecta al dominio a691sm.avast.com que tiene una dirección assignada, si en el archivo hosts le añado:
127.0.0.1 localhost
127.0.0.1 www.ejemplo1.com
127.0.0.1 a691sm.avast.com
Al intentar actualizar el avast este no es capaz de hacerlo, ya que al introducir el servidor para descargar las actualizaciónes (a691sm.avast.com) el ordenador lo interpreta como dirección local, es decir la del propio ordenador y nunca llegará a conectar en los servidores de avast.
Visto un resúmen de la teoría sobre el archivo hosts y su sencíllo funcionamiento, cualquier vírus fácilente puede deshabilitar las actualizaciónes de un antivírus sin dañarlo o cerrando los procesos de este ya que normalmente si se desactiva el propio software avisa o no es muy difícil darse cuenta.
Con un simple módulo en nuestro malware, podríamos escribir en el archívo hosts, una simple línea para deshabilitar las actualizaciónes del antivírus que querámos mientras sepámos las direcciónes de los servidores donde conectan, información que es pública y cualquier puede encontrar.
A continuación escribiré el fragmento del módulo que podría deshabilitar las actualizaciónes de un antivírus escribiendo en el archivo hosts una simple línea. El fragmento lo escribiré en pascal aunque podría haberlo escrito en basic o C de una forma igual de sencilla.
Primero de todo hacer un breve resúmen del uso del archivo hosts, este archivo está ubicado en C:\windows\system32\drivers\etc\hosts.txt y tiene la finalidad de resolver los nombres de domínio con sus IP's correspondientes, de esta manéra en un principio este archívo solamente tendrá una sola línea útil definida como localhost apuntando a la dirección 127.0.0.1 que es la de nuestro propio equipo, es decir el archivo tendrá únicamente una sola línea como la siguiente:
127.0.0.1 localhost
Con esta forma para resolver domínios, se nos ofrece mediante una trampa engañar al ordenador para bloquear las páginas que nos interésen, de hecho múchos bloqueadores de páginas utilizan éste método. Por ejemplo, si queremos bloquear una pagina llamada www.ejemplo1.com, simplemente tendrémos de añadir una línea a nuestro archivo hosts, asignandole una IP falsa a ese dominio web. Aparte de bloquear, ofrece otras posibilidades como poder hacer redirecciónes a paginas falsas, pero ese ya es otro tema que se comentará más adelante, así que la nueva estructura de nuestro archivo hosts será:
127.0.0.1 localhost
127.0.0.1 www.ejemplo1.com
Queda por comentar, que estos bloqueos pueden ser directamente de dns o servidores y es aquí donde realmente se verá el problema que puede existir con las actualizaciónes de los antivírus. Hablándo ya sobre los antivírus, la mayoría se actualizan cada dia o varias veces al dia y para ello requieren poder conectarse a un servidor para verificar y bajar las actualizaciónes.
Imagino que sobre estas alturas ya pueden empezar a ver el problema, cualquier malware podría añadir al archivo hosts, una resolución de IP falsa por ejemplo al servidor que se conecta nuestro antivírus, de esta forma nunca llegaría a poder efectuar la actualización y nuestro ordenador quedaría desprotegido. Para que vean un ejemplo mas práctico realizaremos un ejemplo con el antivirus gratuito Avast, en mi caso se actualiza mediante un servidor que conecta al dominio a691sm.avast.com que tiene una dirección assignada, si en el archivo hosts le añado:
127.0.0.1 localhost
127.0.0.1 www.ejemplo1.com
127.0.0.1 a691sm.avast.com
Al intentar actualizar el avast este no es capaz de hacerlo, ya que al introducir el servidor para descargar las actualizaciónes (a691sm.avast.com) el ordenador lo interpreta como dirección local, es decir la del propio ordenador y nunca llegará a conectar en los servidores de avast.
Visto un resúmen de la teoría sobre el archivo hosts y su sencíllo funcionamiento, cualquier vírus fácilente puede deshabilitar las actualizaciónes de un antivírus sin dañarlo o cerrando los procesos de este ya que normalmente si se desactiva el propio software avisa o no es muy difícil darse cuenta.
Con un simple módulo en nuestro malware, podríamos escribir en el archívo hosts, una simple línea para deshabilitar las actualizaciónes del antivírus que querámos mientras sepámos las direcciónes de los servidores donde conectan, información que es pública y cualquier puede encontrar.
A continuación escribiré el fragmento del módulo que podría deshabilitar las actualizaciónes de un antivírus escribiendo en el archivo hosts una simple línea. El fragmento lo escribiré en pascal aunque podría haberlo escrito en basic o C de una forma igual de sencilla.
- Código:
Procedure desactivar_upd_av;
var
hosts:text;
assign (hosts,'C:\windows\system32\drivers\etc\hosts.txt');
append(hosts);
writeln (hosts,'127.0.0.1 a691sm.avast.com');
close (hosts);
end.
Como se puede ver es muy fácil modificar éste fichero, y no solo para alterar las actualizaciónes de los antivírus, sinó para otras técnicas que utilizan programas malintencionados como la redirección a falsas páginas por eso es recomendable de vez en cuando hechar una ojeada al archivo hosts, o utilizar algúnos de los programas que lo verifíca.

Skapunky- Admin

- Posts: 349
Puntos: 570
Reputación: 7
Fecha de inscripción: 16/06/2008


Re: Módulo en delphi que deja un antivírus sin actualizarse. (Didáctico)
Muy bien explicado jefe, de paso he profundizado un poco más en los usos que se le pueden dar al archivo hosts, sin duda un archivo muy vital...
¿Podrías traducir ese fragmento de codigo de Pascal a C? Es que ahora estoy con C (bueno, en clase toy con C, y en mis ratos libres con PHP, pero uno me ayuda para el otro, ya que ambos lenguajes compartes la mayoría de la sintaxis)
Un saludo, gracias ^^
¿Podrías traducir ese fragmento de codigo de Pascal a C? Es que ahora estoy con C (bueno, en clase toy con C, y en mis ratos libres con PHP, pero uno me ayuda para el otro, ya que ambos lenguajes compartes la mayoría de la sintaxis)
Un saludo, gracias ^^

invisible_hack- CoAdmin

- Posts: 333
Puntos: 465
Reputación: 5
Fecha de inscripción: 02/09/2009


Re: Módulo en delphi que deja un antivírus sin actualizarse. (Didáctico)
Uf, hace tiempo que no programo en C, aí va, no se seguro si lo programo perfectamente bien que no tengo el compilador instalado y ya hace tiempo que no toco el C.
Se debería de revisar...quizá hay algún que otro error.
- Código:
void desactivar_av_upd()
int cadena;
cadena = "127.0.0.1 a691sm.avast.com";
{
FILE *hosts;
hosts = fopen("C:\windows\system32\drivers\etc\hosts.txt","r+");
if (hosts == null)
{
return;
}
fwrite(&cadena,sizeeof(unsigned int),1,hosts);
fclose(hosts);
return;
}
Se debería de revisar...quizá hay algún que otro error.

Skapunky- Admin

- Posts: 349
Puntos: 570
Reputación: 7
Fecha de inscripción: 16/06/2008


Re: Módulo en delphi que deja un antivírus sin actualizarse. (Didáctico)
Bien, creo que lo entendi absolutamente todo, y eso que soy relativamente nuevecito en C
Thnx ^^
Thnx ^^

invisible_hack- CoAdmin

- Posts: 333
Puntos: 465
Reputación: 5
Fecha de inscripción: 02/09/2009


Permiso de este foro:
No puedes responder a temas en este foro.









