HackTheBox-Challenges-Reversing-Baby-RE
Jump to navigation
Jump to search
Baby RE
Let’s unzip the file:
unknown@localhost:/data/downloads$ 7z x Baby_RE.zip 7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz (306C3),ASM,AES-NI) Scanning the drive for archives: 1 file, 2885 bytes (3 KiB) Extracting archive: Baby_RE.zip -- Path = Baby_RE.zip Type = zip Physical Size = 2885 Enter password (will not be echoed): Everything is Ok Size: 16760 Compressed: 2885
We have to deal with a Linux executable:
unknown@localhost:/data/downloads$ file baby baby: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=25adc53b89f781335a27bf1b81f5c4cb74581022, for GNU/Linux 3.2.0, not stripped
Make it executable and run it:
unknown@localhost:/data/downloads$ ./baby Insert key: oops Try again later.
Let’s use ltrace to check what it does:
unknown@localhost:/data/downloads$ ltrace ./baby puts("Insert key: "Insert key: ) = 13 fgets(oops "oops\n", 20, 0x7f0f605e57e0) = 0x7ffcd694bb50 strcmp("oops\n", "abcde122313\n") = 14 puts("Try again later."Try again later. ) = 17 +++ exited (status 0) +++
We see that the program calls strcmp
to compare the user input with the expected string (abcde122313
). Let’s enter the correct string:
unknown@localhost:/data/downloads$ ./baby Insert key: abcde122313 HTB{B4BY_R3V_TH4TS_EZ}
Flag: HTB{B4BY_R3V_TH4TS_EZ}