Hace un par de semanas atrás todo mundo estaba hablando de Viper, como lo están nombrando el Metasploit para investigadores de Malware, es cierto que tenemos lo necesario para instalar Viper en su documentacion oficial, para los que gusten ingresar directo allí pueden hacerlo, en esta serie de entradas lo que quiero es poder jugar con la herramienta, desde el inicio es decir la instalación y configuración así que sin importar tu SO podras instalarlo ojo si es linux claro esta.
¿Que es Viper?
Viper es un framework para el analisis y manejo de archivos binarios, cuyo objetivo es el de brindar una herramienta, que permita ordenar de una forma facil y rapida, que ordenamos nuestros malware y exploits, como tambien scripts.
Una recomendación que les haré es que para la instalación de Viper hagan uso de un Sandbox de Python como montarlo y demás detalles en la siguiente entrada Entornos virtuales en Python con Virtual Enviroment.
El primer paso sera realizar la descarga de Viper desde GITHUB lo bajamos y lo descomprimimos donde nos quede mejor el nuevo juguete.Tras revisar lo que llama la atención es el archivo requirementes.txt, por ello lanzamos un cat requirements y sorpresa que son?
Si correcto son dependencias, que debemos de instalar por si lo notaron, para ello haremos lo siguiente primero instalar lo necesario, por ello instalaremos los siguientes paquetes si no los tienen.
gcc python-dev python-pip
Tras esto realizamos una descarga del paquete ssdeep y realizamos el sgiuiente proceso, tal cual nos muestra en su wiki.
$ tar -zxvf ssdeep-X.XX.tar.gz
$ cd ssdeep-X.XX
$ ./configure && make
$ sudo make install
$ sudo pip install pydeep
En mi caso la versión usada para instalar ssdeep fue la 2.11.1 descargada del siguiente enlace aqui por si se saltaron xD, lo se sigo mal :(,tras esto nos iremos con los paquetes faltantes que nos muestran en requirements.txt.
Para instalar lo faltante procedemos con lo siguiente:
sudo easy\_install SQLAlchemy PrettyTable python-magic pefile pydeep requests pycryptp OleFileIO\_PL BeautifulSoup4
Para probar lanzamos python viper.py y como verán ya esta corriendo de manera correcta si se preguntan por que ando ofuscado el path ¬¬ es porque no ando en mi pc personal :P
Tras esto tenemos activo en el prompt shell pero npi que miércoles toca hacer, por ello nos vamos a lo básico mandar el script viper.py con la bandera -h = help :D ayudando desde tiempos inmemorables.
Ok ya lanze el comando y me da que puedo hacer uso de la bandera -p la cual me permitiría crear un nuevo proyecto o bien hacer uso de un proyecto previamente ya creado asi que hacemos la prueba?.
Bueno explico un poco que es lo que hace el comando primero, si no tenemos un repositorio previo creado lo que hara es crearlo o en su defecto si lo tenemos lo seleccionara para trabajar, que es lo que contiene este repositorio creado o cual es su estructura la veremos a continuación:
1.- Nos crea en la carpeta proyects el directorio SniferL4bs el cual es el que creamos con el comando -p.
2.- Dentro de este directorio creado tenemos una estructura bastante curiosa.
3.- Nos encontramos con dos archivos que son history y viper.db, el primero lo que contiene es el historial de comandos que lanzamos cuando tenemos la shell interna por decirlo asi con Viper y el segundo viper.db es una base de datos sqli la cual tiene los datos necesarios cuando tratemos un archivo, como ser su hash en md4, sha1, sha256, sha512, typy, mime tomando solo como ejemplo eso puede verlo ustedes mismos.
Tras esta pequeña prueba nos ponemos a conocerla aun mas y comenzamos a listar los repositorios o proyectos usados en Viper, como pasar de uno al otro en realidad switchear? que va nos ponemos a revisar mas a fondo.
Lo primero que rocedi a realizar fue la de crear un nuevo proyecto con el nombre de RizelTane, pueden observar en la captura.
1.- Tras realizar esto todo listo para trabajar el siguiente comando que llama la atención es projects –list con el cual podemos listar los proyectos que tengamos creados, en la tabla se muestra con los campos, para entender un poco mas veremos una breve descripción de cada uno.
Project Name: Nombre del Proyecto.
Creation: Time Fecha de Creación.
Current: Proyecto actualmente usado.
2.- Ahora como hacemos para psar a otro proyecto, para ello tenemos la bandera projects –switch NombredelProyecto con ello cambiamos de proyecto dicho detalle se ve en el número 3 donde cambia el nombre del proyecto.
Ahora por ultimo terminando la entrada les dejo de tarea el uso del comando Help cuando tenemos una shell ;).
\> help
Commands:
+----------+-----------------------------------------------+
| Command | Description |
+----------+-----------------------------------------------+
| clear | Clear the console |
| close | Close the current session |
| delete | Delete the opened file |
| find | Find a file |
| help | Show this help message |
| info | Show information on the opened file |
| notes | View, add and edit notes on the opened file |
| open | Open a file |
| projects | List or switch existing projects |
| sessions | List or switch sessions |
| store | Store the opened file to the local repository |
| tags | Modify tags of the opened file |
+----------+-----------------------------------------------+
Bueno señores en esta entrada aprendimos como usar los comandos básicos de Viper en la siguiente que será la ultima veremos como usar mas a fondo el resto de los comandos una pasada rápida y terminamos con ello, espero les agrade y un saludo a todos.
Regards,
Snifer