스니핑을 통해 패킷을 얻었다 flag를 찾아보아라
frame contains flag 필터를건후 아래 패킷을 살펴 본다
위에 필터링이 이루진 것을 살펴 보니
base64 형태이고 base64 encode/decode 형태로 이루어진 python 형태의 소스코드를 살펴 볼수 있다. 소스코드를 더 상세히 살펴 보기 위해서 sublime text에서 살펴 보자
base64 인코딩, caesar 암호 및 ROT13 기능 - 우리는 세 가지 다른 암호화 / 인코딩 루틴을 사용할 수 있다는 것을 참조
우리가 입력을 인코딩하고 "2"를 앞에 추가 64 기수로 시작 것 같습니다. (기본값은 50) 지정된 후, 여러 번, 우리는 랜덤 함수를 선택하고 현재의 입력에서 실행합니다.
우리의 반전에 중요한 줄은 TMP이다 = '{} {}'. 형식 (I, _tmp).base64로 인코딩 기능의 인덱스 + 1은 2, 그리고 정확하게 우리가 base64로 그것을 인코딩하기 전에 초기 입력에 붙일 무엇으로이 행은, enc_ciphers + 1이 의미가있는 함수의 인덱스 선택 기능의 출력을 앞에 추가합니다.
So, in a nutshell here are the corresponding keys:
- 1 – rot13
- 2 – base64 encode
- 3 – caesar cipher
우리는 우리의 함수의 역을 작성하여 시작해야합니다. ROT13은 자신의 역이며, 시저 암호에 대해 우리는 단지 -3 = 이동하려면 Shift = 3을 변경할 수 있습니다. 그런 다음, 우리는 다음과 같은 base64로 디코딩 기능을 추가해야합니다
디코더의 메인을 살펴 보자
이 소스를 실행시켜 출력한 결과 값을 얻는다
There’s the flag! flag{li0ns_and_tig3rs_4nd_b34rs_0h_mi}
이 결과 같을 얻으면 성공 ^^
'computer forensics' 카테고리의 다른 글
Acquiring Linux Memory from a Server Far Far Away (0) | 2017.02.22 |
---|---|
DDos Syn 패킷 분석 (0) | 2016.01.18 |
네트워크 포렌식 (backdoor) (0) | 2015.12.29 |
The Pmem Memory acquisition suite. (0) | 2015.04.26 |
Hunting and Decrypting Communications of Gh0st RAT in Memory (0) | 2015.04.24 |