feat(maiboyer/levels): adding maiboyer levels (without all issues)
This commit is contained in:
parent
e674ffcf4a
commit
db7f1343c5
48 changed files with 1864 additions and 0 deletions
87
snowcrash/level01/README.md
Normal file
87
snowcrash/level01/README.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# Level 01
|
||||
|
||||
## how to login
|
||||
|
||||
username: level01
|
||||
|
||||
password: x24ti5gi3x0ol2eh4esiuxias
|
||||
|
||||
## Goal
|
||||
|
||||
run `getflag` as user `flag01`
|
||||
|
||||
## Actually doing something
|
||||
|
||||
Again lets check around
|
||||
|
||||
```bash
|
||||
level01@SnowCrash:~$ ls -la
|
||||
total 12
|
||||
dr-x------ 1 level01 level01 100 Mar 5 2016 .
|
||||
d--x--x--x 1 root users 340 Aug 30 2015 ..
|
||||
-r-x------ 1 level01 level01 220 Apr 3 2012 .bash_logout
|
||||
-r-x------ 1 level01 level01 3518 Aug 30 2015 .bashrc
|
||||
-r-x------ 1 level01 level01 675 Apr 3 2012 .profile
|
||||
```
|
||||
|
||||
nothing to see again, the file present are the default files on Ubuntu 12.04
|
||||
|
||||
lets try to find anything to do
|
||||
```bash
|
||||
level01@SnowCrash:~$ find / -user flag01 -print 2>/dev/null
|
||||
level01@SnowCrash:~$
|
||||
```
|
||||
|
||||
Right... nothing to see here
|
||||
|
||||
So after looking around, the file `/etc/passwd` looks juicy: it has an password hash for the user flag02
|
||||
```bash
|
||||
level01@ShowCrash:~$ cat /etc/passwd
|
||||
[...snip...]
|
||||
level13:x:2013:2013::/home/user/level13:/bin/bash
|
||||
level14:x:2014:2014::/home/user/level14:/bin/bash
|
||||
flag00:x:3000:3000::/home/flag/flag00:/bin/bash
|
||||
flag01:42hDRfypTqqnw:3001:3001::/home/flag/flag01:/bin/bash
|
||||
flag02:x:3002:3002::/home/flag/flag02:/bin/bash
|
||||
flag03:x:3003:3003::/home/flag/flag03:/bin/bash
|
||||
flag04:x:3004:3004::/home/flag/flag04:/bin/bash
|
||||
flag05:x:3005:3005::/home/flag/flag05:/bin/bash
|
||||
[...snip...]
|
||||
```
|
||||
|
||||
When looking at this, you might think that all the other users also have their password hash in here
|
||||
(and that they share the same password because the hash is `x`)
|
||||
but actually `x` means that the actual hash is located in the shadow file (`/etc/shadow`)
|
||||
The shadow file is not readable, so we can't get those hashes. Only the user `flag01` has his password hash
|
||||
readable by other users
|
||||
|
||||
it seems that the first level was an hint to use john the ripper, a program made to crack hashes
|
||||
after installing it on my host computer (thanks nix), running it is very simple
|
||||
```bash
|
||||
❯ echo "42hDRfypTqqnw" >hashfile
|
||||
❯ john hashfile
|
||||
Warning: detected hash type "descrypt", but the string is also recognized as "descrypt-opencl"
|
||||
Use the "--format=descrypt-opencl" option to force loading these as that type instead
|
||||
Using default input encoding: UTF-8
|
||||
Loaded 1 password hash (descrypt, traditional crypt(3) [DES 128/128 SSE2])
|
||||
Will run 12 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
|
||||
Almost done: Processing the remaining buffered candidate passwords, if any.
|
||||
Proceeding with wordlist:/nix/store/yq1921vpkb03aj2hxrwbczb72p2kk5wm-john-rolling-2404/share/john/password.lst
|
||||
Enabling duplicate candidate password suppressor
|
||||
abcdefg (?)
|
||||
1g 0:00:00:00 DONE 2/3 (2026-01-19 14:38) 3.704g/s 273066p/s 273066c/s 273066C/s 123456..gravitat
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed.
|
||||
```
|
||||
|
||||
so it has found an string that give the same hash. Just to be pedantic,
|
||||
this can be a different string from what the user typed when setting their password, but it provide the same hash so it works
|
||||
|
||||
lets try it
|
||||
```bash
|
||||
level01@SnowCrash:~$ su flag01 -c getflag
|
||||
Password:
|
||||
Check flag.Here is your token : f2av5il02puano7naaf6adaaf
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue