Hack me. If you can! is a hacking challenge created by the University of Applied Sciences in Augsburg.
We can guess that the first line in the text file "YAMK EAAMKWA BXZAF UFB MAKKAF," reads "Sehr geehrte Damen und Herren" and that "MYX_OFFJY" is the beginning of the flag "HSA_INNOS". From there we can gradually exchange every letter with the corresponding encrypted letter. I wrote a little python script to automate the process of decrypting the text.
cipher = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
corresp =['e', 'd', 'f', 'b', 'g', 'n', 'x', 'c', 'w', 'o', 'r', 'p', 'h', 'n', 'i', 'q', 'k', 'r', 'v', 'l', 'u', 'v', 't', 'a', 's', 'm']
enflag = 'MYX_OFFJY_CTXE_PUOHQDKJIFCJG'.lower()
deflag = ''
for i in range(len(enflag)):
if enflag[i] == '_':
deflag += '_'
continue
elif enflag[i] == ' ':
deflag += ' '
continue
for j in range(len(cipher)):
if enflag[i] == cipher[j]:
deflag += corresp[j]
print(deflag)
FLAG: hsa_innos_flag_quickbrownfox
We get a PDF file that states, 'I am not what you think I am. Who am I?'. The command foremost -v Challenge.pdf
extracts a file called flag.txt containing the flag.
FLAG: HSA_INNOS_FLAG_5KIOH60XCVP832JN
We get a GO program that prints 'Go This Way! Find my Secret.' when executed. A simple strings challenge | grep HSA
gives us the flag.
FLAG: HSA_INNOS_FLAG_9TRM9084I32N4MC8
We are provided with a challenge.wav file that provides a hint when opened with Sonic Visualizer as a Spectrogram. When the same WAV file is examined in Robot36 – SSTV Image Decoder the flag is displayed.
FLAG: HSA_innos_NLBR89BGKLMOET8334
We are provided a capture_easy.pcapng, upon inspection with Wireshark we can see numerous request with different URLs. strings capture_easy.pcapng | grep Host
visualizes ASCII art. There is a message encoded in the first character of each line. We can use the following bash script to retrieve it:
strings capture_easy.pcapng | grep Host | awk '{print $2;}' | tr -d '\n'
FLAG: HSA_INNOS_FLAG_0HDP71IL58T1
We get an info file containing the obfuscated strings
AES-CTR, KEY
e1e60272534605d4e6f01ab3b40f4c93b663cb0d08c979491fac3fb662505e91, 386c5159b1d283698e39a56c138dfabd.txt, OpenSSL_enc-d
and IV 54b8fb54458e2ade1649e78848200f24
. Combined into the following command
openssl enc -aes-256-ctr -d -iv 54b8fb54458e2ade1649e78848200f24 -K e1e60272534605d4e6f01ab3b40f4c93b663cb0d08c979491fac3fb662505e91 -in 386c5159b1d283698e39a56c138dfabd.enc -out 386c5159b1d283698e39a56c138dfabd.txt
we can decrypt the message.
FLAG: HSA_INNOS_FLAG_17AB6923CDBDD4CE
We get two text files containing base64, after converting it from base64 this simple xor python script displays the flag.
import base64
a = '3d91d7f4e9844f2b03dbf4c0dca4f9281ddd03abe2844f2b03dbd4c0dca40102'
b = '75c296bda7ca00785c9db8819bfbc81a2ee43793d7b4761932eee0f9eb963635'
a = bytearray.fromhex(a)
b = bytearray.fromhex(b)
def xorArray(x,y):
r = []
for i in range(32):
r.append(x[i] ^ y[i])
return bytearray(r)
print(xorArray(a,b))
FLAG: HSAINNOS_FLAG_123948509215497277
We get a password protected ZIP-File called important.zip. With fcrackzip -u -D -p rockyou.txt important.zip
the password is found within seconds.
FLAG: HSA_INNOS_FLAG_6N84TG5PADMC52LL