Inspiration

A story in a podcast about cybersecurity people coming across a fishy file while SSH-ing into a remote server, they had to spend an hour figuring out how to upload it to Virus Total to scan the file. A tool such as this one would have taken hours off the job.

What it does

Uploads a file, directory, or URL to the virus total website and returns the results in a variety of different formatting options

How I built it

We started by familiarizing ourselves with the Virus Total API using cURL to send requests. Afterwards, we built a basic send and receive with hardcoded values in Python. Building on top of this basic block is what the majority of our project consisted of.

  • breaking up the requests into functions
  • adding URL functionality -taking in parameters -formatting output -adding optional arguments

Challenges I ran into

About halfway through our project, we realized that Virus Total would send back results before all input was scanned (the status was still queued), to fix this problem we had to loop the get request until the response contained the status of complete.

Accomplishments that I'm proud of

A big accomplishment made in Borderhacks is that we took on a practical, well-sized project, that we were able to execute smoothly. Instead of choosing a project too large and ending up with a sloppily written larger project, we focused on a small problem building a solid project that is clean and works well

What I learned

Personally, as this is the first Hackathon I've learned a ton. Working on a project in a small window with a deadline can be stressful but sitting down and chipping away at it pays off a lot. Reading documentation is a very valuable skill, and never working with the Virus Total API or Python requests has strengthened that skill a lot over the past 36 hours.

What's next for Virus Total cli tool

There is a lot of room for expansion on this project. We could work to implement more of Virus Total's features through their API such as graphs.

Built With

Share this project:

Updates