Challenge Description
During an assessment of a unix system the HTB team found a suspicious directory. They looked at everything within but couldn’t find any files with malicious intent.
Provided Files
$ tree .secret
.
├── 0
│ └── 6
├── 1
│ ├── 22
│ └── 30
├── 2
│ └── 34
├── 3
├── 4
├── 5
│ └── 16
├── 6
├── 7
├── 8
├── 9
│ └── 36
├── a
├── A
├── b
├── B
│ └── 23
├── c
├── C
│ └── 4
├── d
│ └── 13
├── D
│ └── 26
├── e
│ └── 5
├── E
│ └── 14
├── f
├── F
│ ├── 19
│ ├── 2
│ └── 27
├── g
├── G
├── h
├── H
├── i
├── I
├── j
│ ├── 10
│ └── 12
├── J
│ └── 8
├── k
├── K
├── l
├── L
├── m
├── M
├── n
├── N
│ ├── 11
│ ├── 25
│ ├── 31
│ └── 33
├── o
├── O
├── p
│ └── 32
├── P
├── q
├── Q
├── r
├── R
│ ├── 3
│ └── 7
├── s
│ └── 24
├── S
│ └── 1
├── t
├── T
├── u
│ ├── 20
│ └── 28
├── U
│ └── 9
├── v
├── V
│ └── 35
├── w
├── W
├── x
│ └── 15
├── X
│ ├── 17
│ ├── 21
│ └── 29
├── y
├── Y
├── z
│ └── 18
└── Z
62 directories, 36 files
Solution
Folder names inside the .secret hidden directory are alphanumeric (a-z, A-Z, 0-9). Some of these folders contain empty files which name are numbers from 1 to 36.
If we follow the numbers from 1 to 36 and compose a string concatenating the parent’s folder names at each step, we get this string:
SFRCe0RJUjNjdEx5XzFuX1BsNDFuX1NpN2V9
which seems to be in base64 form.
Once decoded we get the flag:
HTB{DIR****************i7e}
To solve it with a one-liner:
$ find .secret/ -type f | sort -t / -k 3 -n | sed -e 's/.*\/\(.\)\/.*/\1/' | tr -d '\n' | base64 -d
HTB{DIR****************i7e}
- We use
find
to list all the files inside the .secret directory. - We use
sort
to numerical sort them based on the empty children files whose names are numbers. - We use
sed
to extract the characters of the string we are composing. - We use
tr
to remove the new lines. - We use
base64 -d
to decode the string we constructed to get the flag.