CTF/포렌식

[2021 화이트햇 콘테스트] A-3 - 포렌식 / Wireshark

SecurityMan 2023. 7. 15. 11:00

 

2021 화이트햇 콘테스트 예선전에 나왔던 문제

 

시간이 꽤 지났지만 하나씩 문제풀이를 올려본다.

 

CTFD 플랫폼을 이용해 진행이 되었는데,

 

문제는 캡쳐를 못해서 써놨던 내용을 복기해서 작성하는 Write up이다.

 

반응형

 

 

거의 대부분의 문제는 S1_Docs_Malware.vmx 파일로 진행된다.

 

해당 파일은 침해사고가 발생한 Windows10 시스템을 이미징한 것이다.

 

A-3 문제는 이전 A-2에서 계속 이어지는 문제이다.

(https://hackingstudypad.tistory.com/565)

 

 

A-2 에서 드랍퍼가 위치한 서버의 IP를 Outlook을 통해 확인했었다.

 

A-3
이메일을 분석하여 플래그를 획득하여라

 

A-3 문제는 해당 이메일을 분석해서 플래그를 획득하는 것이었다.

 

일단 이메일에 링크된 주소로 들어가보았다.

 

서버가 죽어서 들어가지지 않아서

 

여기서 뭘 어떻게 더 분석해야하나 싶었는데

 

 

문제 이미지의 C 드라이브의

 

Logs 폴더에서 A, B, C 패킷파일이 있는것을 확인했다.

 

 

해당 패킷파일을 Wireshark로 열어보니

 

34.64.143.34 주소의 download.html 접속 흔적을 찾을 수 있었다.

 

 

Wireshark 에서 File - Export Objects - HTTP 를 선택해준 다음

 

 

download.html 을 찾아 저장해주면 된다.

 

 

브라우저를 이용해 해당 html 파일을 열어보면

 

아무것도 없는 화면이 보인다.

 

F12를 눌러 개발자도구를 보면

 

뭔가 난독화된 자바스크립트가 써있는데

 

<script>
           ...중략...
                var file = _0x341c00(0x13c)
              , data = base64ToArrayBuffer(file)
              , blob = new Blob([data],{
                'type': _0x341c00(0x13d)
            })
              , fileName = _0x341c00(0x13e)
              , v3 = '';
            v3 += String[_0x341c00(0x13b)](0x75),
            v3 += String[_0x341c00(0x13b)](0x53),
            v3 += String[_0x341c00(0x13b)](0x33),
            v3 += String['fromCharCode'](0x64),
            v3 += String[_0x341c00(0x13b)](0x5f),
            v3 += String['fromCharCode'](0x74),
            v3 += String[_0x341c00(0x13b)](0x30),
            v3 += String[_0x341c00(0x13b)](0x5f);
            var v6 = [0x3c, 0x2a, 0x35, 0x2d, 0x13, 0x1, 0x1e, 0x68, 0x35, 0x5]
              , v4 = '';
            v4 += String[_0x341c00(0x13b)](v6[0x0] ^ 0x63),
            v4 += String[_0x341c00(0x13b)](v6[0x1] ^ 0x62),
            v4 += String['fromCharCode'](v6[0x2] ^ 0x61);
            var v02 = 'A';
            v4 += String[_0x341c00(0x13b)](v6[0x3] ^ 0x60),
            v4 += String[_0x341c00(0x13b)](v6[0x4] ^ 0x5f),
            v4 += String[_0x341c00(0x13b)](v6[0x5] ^ 0x5e),
            v4 += String['fromCharCode'](v6[0x6] ^ 0x5d),
            v4 += String[_0x341c00(0x13b)](v6[0x7] ^ 0x5c),
            v4 += String[_0x341c00(0x13b)](v6[0x8] ^ 0x5b),
            v4 += String[_0x341c00(0x13b)](v6[0x9] ^ 0x5a),
            v5 += 'L',
            v5 += v02;
            var v1 = _0x341c00(0x13f);
            v5 += 'G',
            v5 += '{',
            v5 += v1 + v4,
            v5 += v3 + v2,
            v1 = atob(v1),
            ...중략...
        </script>

 

이런 내용이다.

 

전문은 더 길지만 악용될까바 중략했다.

 

 

콘솔 탭에 들어가보니

 

FLAG is no hack :( 이라는 문구가 출력되어 있고,

 

어떤 주소로부터 3-분기-취약점-조치권고.hwp 파일이 다운로드 된 것을 볼 수 있다.

 

이 파일은 나중에 쓰일 수 있으니 잘 기억해둔다.

 

 

다시 소스탭으로 와서

 

자바스크립트를 보다보니

 

뭔가 이부분이 의심스러웠다.

 

플래그 조각으로 보이는 A, L ,G, { 같은 문자들이 군데군데 있었기 때문인데

 

 

해당 부분을 복사해서

 

콘솔 탭에서 실행시켜줬다.

 

무언가가 출력되고,

 

 

마지막 부분에서 v5 변수에 뭔가 저장하는것 같아

 

v5를 출력시켜 보니

 

위와 같이 나왔다.

 

중간에 base64 인코딩된 부분이 보이는데

 

 

인코딩된 부분을 세번 base64 디코딩 하면

 

wh0oo0o 라는 문자열이 나온다.

 

위에서 찾은 뒷부분과 합친

 

FLAG{wh0oo0o_HTML_C4n_uS3d_t0_By94ss_F1rew411} 이 이번 문제의 플래그였다.

반응형