{"id":23922927,"url":"https://github.com/uddin-a/snow_crash","last_synced_at":"2026-05-30T16:31:36.371Z","repository":{"id":128237541,"uuid":"236104259","full_name":"uddin-a/snow_crash","owner":"uddin-a","description":"A 42 introductory ptoject to computer security.","archived":false,"fork":false,"pushed_at":"2020-01-26T07:02:15.000Z","size":4999,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-05T17:31:12.619Z","etag":null,"topics":["ctf-challenges","hacking","learn","linux","security"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uddin-a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-25T00:03:00.000Z","updated_at":"2020-01-26T07:28:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"eecddf0e-3850-47fd-b017-5bf52cce2b25","html_url":"https://github.com/uddin-a/snow_crash","commit_stats":null,"previous_names":["uddin-a/snow_crash"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uddin-a%2Fsnow_crash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uddin-a%2Fsnow_crash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uddin-a%2Fsnow_crash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uddin-a%2Fsnow_crash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uddin-a","download_url":"https://codeload.github.com/uddin-a/snow_crash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240388092,"owners_count":19793465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ctf-challenges","hacking","learn","linux","security"],"created_at":"2025-01-05T17:26:15.787Z","updated_at":"2026-05-30T16:31:36.365Z","avatar_url":"https://github.com/uddin-a.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"![Snow-Crash Header](__resources__/images/snow_crash.png)\n\n## Description\n\nSnow-Crash is a security related CTF (capture the flag) type project where a Linux (x64 ubuntu) _ISO_ is given and we have to find the flags.\n\n\u003cbr/\u003e\n\nThere are 14 levels to complete, where from **_Level00_** to **_Level09_** are mandatory and from **_Level10_** to **_LEVEL14_** are considered as bonuses.\n\n‌\n\nThis project gives us a really general idea of security issues of different fields, such as\n\n- Badly written code with no protection\n- Unprotected network communication\n- Badly managed automated jobs in the machines\n\n## Finding the flags and validating them\n\n‌\n\nIn this project there are 2 kind of user **accounts** in the system.\n\n- levelXX (The _XX_ represents a number e.g level00, level01, level11)\n- flagXX (The _XX_ represents a number e.g flag00, flag01, flag11)\n\nGenerally you will have to find the password to log into the account **flagXX** that corresponds to the current **levelXX**. So if we are in **level03** we have to find the password to login to the account **flag03**\n\nOnce we obtain the password, we login as **flagXX** and call **getflag** program. And it will tell us the flag for that level. This flag is also the password to the next level. So if we found the flag of **level03** then we can use that flag to login to the account **level04**\n\n‌\n\nHere is how it would look like\n\n```bash\n## Do whatever need to be done to get the password for the flag03 account\nlevel03@SnowCrash:~$ su flag03\npassword\n\nflag03@SnowCrash:~$ getflag\nCheck flag.Here is your token : XXXXXXXXXXXXXXXXXXXXXXXXX\n\nflag03@SnowCrash:~$ su level04\npassword # (the password is the flag you got from flag03 account)\n```\n\n\u003e You won't have to log into the account **flagXX** to get the flag. Sometime the flag is found directly in **levelXX** account and sometime you won't even have to call the program`getflag`\n\n\u003e The `getflag` binary is found in `/bin/` path\n\n\u003cbr/\u003e\n\n### Resources\n\n- The subject in [**English**](https://cdn.intra.42.fr/pdf/pdf/7152/en.subject.pdf) and in [**French**](https://cdn.intra.42.fr/pdf/pdf/7153/fr.subject.pdf)\n- The [**Linux ISO**](https://projects.intra.42.fr/uploads/document/document/1272/SnowCrash.iso) file\n- The video for this project in [**intra**](https://elearning.intra.42.fr/notions/snow-crash/subnotions/snow-crash/videos/snow-crash) and in [**RAW**](https://cdn.intra.42.fr/video/video/404/_projet__snow_crash.mp4) format (for which no login is required)\n\n## Get started with the project\n\nTo start the project just open the ISO in a virtual machine such as [**VMware**](https://www.vmware.com/) or [**Virtual Box**](https://www.virtualbox.org/) (or whatever you want)\n\n\u003e If you are using **Virtual Box** set your network option to **bridge**\n\naccording to the 42 subject you can login using `ssh` on port **4242** so you can use the following command to connect to your virtual machine:\n\n```bash\n## Verify your ip address in the virtual machine.\n## It is shown when you boot the machine.\nssh level00@192.168.1.92 -p 4242\n```\n\nIn total there are 15 levels starting from Level **0** to level **14**\n\n\u003e You **MUST** finish level **0** to **9** to pass the mandatory part and then do **10** to **14** as bonuses.\n\n### Project structure for submission\n\nThe repository is expected to contain one directory for each level where directory names are `levelXX` where **XX** represents the number of level. So for the first 4 levels it will look like following :\n\n```bash\n$\u003e  ls -al\ndrwxr-xr-x 2 root root 4096 Dec 3 XX:XX level00\ndrwxr-xr-x 2 root root 4096 Dec 3 XX:XX level01\ndrwxr-xr-x 2 root root 4096 Dec 3 XX:XX level02\ndrwxr-xr-x 2 root root 4096 Dec 3 XX:XX level03\n```\n\nin each directory you should put a file named **flag** that will contain your write-up (explain the process to obtain the flag)\n\nYou can also have a directory called **Ressources** where you will put all files (or anything) necessary to prove your process to obtain the flag.\n\n\u003e Anything put inside **Ressources** directory will have to be explained during the correction.\n\nSo with the **flag** file and the **Resources** directory your directory tree might look as follows:\n\n```bash\n$\u003e  ls -alR level00\nlevel00:\ntotal 16\ndrwxr-xr-x 3 root root 4096 Dec 3 15:22 .\ndrwxr-xr-x 6 root root 4096 Dec 3 15:20 ..\n-rw-r--r-- 1 root root 5 Dec 3 15:22 flag\ndrwxr-xr-x 2 root root 4096 Dec 3 15:22 Ressources\n```\n\n\u003e ## Please checkout the [gitbook](https://suddin.gitbook.io/snow-crash) to see the write-ups in a better format.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuddin-a%2Fsnow_crash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuddin-a%2Fsnow_crash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuddin-a%2Fsnow_crash/lists"}