워게임/HackTheBox

[HackTheBox] Impossible Password - 리버싱 / IDA

SecurityMan 2023. 4. 18. 11:00

 

HackTheBox 에서 제공하는 쉬운 난이도의 리버싱 문제

 

간단하게 풀 수 있다.

 

반응형

 

 

문제에서 주어지는 파일은

 

impossible_password.bin 파일이다.

 

 

리버싱 문제이니 고민하지 않고 바로 IDA 로 열어보았다.

 

main 함수에서 f5를 눌러 수도코드를 살펴보니

 

* 을 출력한 뒤에 사용자 입력을 받는데

 

그 값이 SuberSeKretKey 일 경우 다음으로 넘어가게 되어있다.

 

그리고나서 ** 을 출력하고 또 입력을 받는데

 

이번엔 그 값이 v3 의 값과 같아야 한다.

 

v3 는 sub_40078D 의 수행결과가 저장되는데

 

 

 

sub_40078D 를 들어가 봤더니

 

시간을 시드값으로 해서 랜덤한 값을 생성하고

 

그 값의 % 94 + 33 을 계산해 V3 에 집어넣고 있었다.

 

사실상 이걸 알아내는건 불가능하다.

 

 

다시한번 main 함수를 살펴보면

 

결과가 맞을 경우 sub_400978(v5) 를 실행하는걸 볼 수 있다.

 

v5에는 지금 A]Kr=9k0=0o0;k1?k81t 값이 들어가있는데

 

 

sub_400978 에서는 인수로 받은 값을

 

9 와 XOR 연산을 하여 리턴을 한다.

 

그럼 이부분을 그대로 한번 더 연산해주면 원래값을 찾을 수 있다.

 

 

CyberChef(https://gchq.github.io/CyberChef/) 에서 간단하게 

 

key 값을 9로 넣고 XOR 하면

 

플래그를 찾을 수 있다.

반응형