sudo apt-get install binwalk
binwalk -Me Firmware_challenge.bin
binwalk 명령어의 -Me 옵션을 사용하여 펌웨어를 추출한다.
그 다음 디렉토리를 둘러보면서 /etc/shadow 파일을 열어봤다.
dream 계정만 패스워드가 설정되어있어서, 이 부분을 유심히 확인했다.
$Algorithm$salt$encrypt_password 형태로 저장되어있으며, MD5 알고리즘을 사용하여 암호화되었다.
그래서 여러 온라인 decrypt 도구를 사용해서 plaintext를 얻어봤는데 flag 단서를 얻었을 때에도 복호화가 잘 안 되었는지 계속 플래그 인증에 실패했었다.
/etc/shadow decrypt로 구글링했을 때 john이란 명령어를 사용하면 /etc/passwd와 /etc/shadow를 주면 패스워드를 복호화해주는 것을 알게 되었다.
$ sudo apt install john
$ unshadow /etc/passwd /etc/shadow > mypasswd.txt
$ john mypasswd.txt
$ john --show mypasswd.txt
이것저것 플래그 단서 찾는 중 bash 스크립트 파일이 있어서 열어봤다.
패스워드는 [REDACTED]이고, 이 값이 MD5와 salt로 암호화된게 shadow 파일에 저장된 것이다.
하지만 [REDACTED]를 sha256으로 해싱했을 때는 플래그 인증에 실패했고, [REDACTED]는 트릭?이었다.
shadow 파일에 있는 정보로 복호화한 패스워드를 sha256으로 해싱한 값(소문자로 해야 됨)에 DH{} 씌운게 플래그였다.
[Dreamhack] Return to Shellcode (0) | 2024.03.03 |
---|---|
[Dreamhack] Return Address Overwrite (0) | 2024.03.01 |
[Dreamhack] off_by_one_001 (0) | 2024.02.19 |
[Dreamhack] bof (0) | 2024.02.16 |
[Dreamhack] pwn-library (0) | 2024.01.10 |