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.