Inspiration

We saw how tedious and annoying it can be to set up an environment for servers, pen-testing labs, etc..., especially in the corporate environment, where errors can be detrimental. We decided to make this project to eliminate the chances of errors and standardizing scripts.

What it does

Script Depot consists of two components: a command-line tool and a server.

The server fully automates setting up different environments with bash scripts uploaded by anyone. The server validates each script, parses permissions that may need attention, and generates a hash for file integrity. Script Depot prioritizes security with built-in defense against man-in-the-middle attacks and file corruption.

Script Depot's CLI tool allows users to easily run scripts straight from the cloud with efficiency. Every CLI session highlights permissions for the user to accept or decline. The CLI also handles validating the hash to the received buffer.

How we built it

We used Rust for the command-line tool and Typescript/Express for the server. We also used MongoDB for the database, which stores hashes, and user data.

Challenges we ran into

We had a bit of trouble with file streaming from the cloud without running into file corruption for a little while. We had to make our file streaming as robust as possible which was difficult, as everything was running asynchronously. We also ran into a bit of trouble with the END OF LINE encoding for different operating systems.

Accomplishments that we're proud of

We overcame all of our challenges and made a fully functional product. We are also proud that it works 100% and we could honestly take this to the next level.

What we learned

We learned how to build a robust file streaming client and an API for a database to handle a lot of user data. We also learned how to use different END OF LINE encoding for different operating systems.

What's next for Script Depot

We would like to make this product available for the general public to use.

Share this project:

Updates