Buscar IPs maliciosas con Delphi y VirusTotal

 


En mi trabajo diario me he encontrado con la necesidad de hacer una comprobación de las conexiones que realiza mi PC, tanto las entrantes como salientes en busca de pistas que me permitan saber si mi equipo forma parte de una bot, si tengo un virus o si en background hay un troyano que espía mis datos y luego los envía otro PC en remoto.

Seguramente en Internet hay algún programa que hace lo mismo, pero he preferido hacerlo yo mismo desde cero, lo que me permite ampliarlo y modificarlo según lo necesite.

El modo de funcionamiento de este programa es el siguiente: 

Se pulsa el botón INICIAR y comienza una temporización en la que cada 5 segundos, desde la línea de comandos, se hace un netstat, después se parsea su resultado extrayendo la ip de origen y la ip de destino de cada conexión establecida almacenando ambas ips en dos listbox y por último  un proceso elimina las ips duplicadas.

 Tiene un botón para enviar cada IP de destino a VirusTotal, usando su API pública.


Hay que tener en cuenta que la APIKEY que incorpora el software, (que cada usuario puede obtener gratuitamente desde su página https://www.virustotal.com/gui/join-us) sólo permite comprobar 4 IPs por minuto y 500 al día.

La apiKey hay que indicarla en la línea 99 del archivo VirusTotal.pas

También incorpora un fichero con más de 1000000 de IPs maliciosas, que el usuario puede utilizar para comprobar cada una de las IPs de Destino pulsando el botón.

 Al final el resultado es el siguiente:

Algunas consideraciones previas:

Si al hacer una búsqueda en VirusTotal  aparece en cada IP: Result: 0/0 esto nos indica que no se ha hecho la búsqueda, bien sea porque se ha sobrepasado el límite de las 4 Ips por minuto o que la ApiKey no es correcta. Debería indicar p.ej: Result: 0/83, que quiere decir que de 83 antivirus consultados ninguno de ellos considera esa IP como maliciosa.

El programa hay que ejecutarlo como Administrador, y mi consejo es que se utilice cuando no se tenga abierto ningún navegador.

El fichero de IPs maliciosas lo he descargado desde  https://urlhaus.abuse.ch/api/ 

Si quieren profundizar más en el tema de la detección de malware les recomiendo consulten el proyecto firehol, que mantiene una amplia base de datos de malware de diferentes proveedores y  que gracias a "git pull" se pueden actualizar a la vez todas las listas que nos descarguemos.

He utilizado "Delphi superJSON", es un parser muy útil para archivos JSON escrito en Delphi, que lo pueden consultar y descargar desde su proyecto en Github

También he utilizado el archivo VirusTotal.pas, que utiliza su API de versión 2, que lo pueden descargar desde Github, accediendo al proyecto de halilhan badem

Este software está realizado con Rad Studio - Delphi - v 10.4.1 y a continuación les dejo el archivo ejecutable y el código fuente.

Espero que este programa les sea útil y que les ayude a prevenir y a detectar el malware.

Ejecutable

Código fuente

 

 


No hay comentarios:

Publicar un comentario