난독화 된 vbs 악성코드 분석 (warl0ck CTF)

작년과 마찬가지로 올해도 데프콘 (DEFCON 22) 행사에서 Warl0ck Gam3z가 운영하는 소규모 CTF 대회가 진행되었다. 이 대회는 예전에는 포렌식 위주의 문제를 많이 출제했었는데 (특히 메모리 포렌식) 언제부턴가는 장르를 가리지 않고 다양한 분야의 문제들이 나오는 것 같다. 올해는 상황이 여의치 않아 직접 참여하지는 못하고, 멀리서나마 온라인으로 접속하여 이런저런 문제들을 풀어보고 있는데, 그 중 한 문제를 이번 포스팅에서 다루고자 한다. 먼저 주어진 문제는 다음과 같다. ch3ckmat3*************************************************************************This is malware, please handle accordingly. If you are not comfortable**running this file, skip this file and move on. Proceed with caution!!!*************************************************************************Got this VBS file sent to me. Not sure what it does so I ran it a few timesbut nothing seems to happen. Can you tell me what it does?DownloadPassword: t@ng0xr@yAccess Code: d3c0d3n!nja  VBS  파일을 받아서 실행했는데 아무 반응도 없고 뭘 하는지 알 수가 없다. 이 파일이 무엇인지 알아내는 것이 목표다.   그럼 본격적으로 분석을 실행해보자. 먼저 해당 VBS 파일은 [ DOWNLOAD LINK ] 를 통해 받으면 된다. (※ 악성 파일을 포함하므로 로컬 환경에서 실행 금지) 파일을 텍스트 에디터에서 열어보면 알수없는 문자들과 함께 아래와 같은 스크립트 구문이 보인다. [crayon-5a144527c0a31239136976/] 대충 구문을 보더라도 Base64로 인코딩된 “Safa7_22” 변수 갑을 디코딩하는 것으로 보인다. 현재 상황에서는 구문 분석이 쉽지 않으므로, 아래와 같이 스크립트 구문으로 추가하여 디코딩된 내용을 가시적으로 확인할 수 있도록 한다.

Continue Reading

해커스쿨 BoF원정대 엔딩 후기

해커스쿨에서 배포한 BoF원정대 (Lord of BufferOverFlow) 문제를 이제서야 다 풀었다. 나온지는 몇년이 지난 고전(?) 자료이긴 하나, 리눅스 환경에서의 BoF 기초를 읽히는데 많은 도움이 된 것 같아 간단하게 후기 및 유의해야 할 점을 남기고자 한다. [뭔 부귀영화를 누리겠다고 몇일간 삽질을 한건지 ㅠㅠ 20레벨 엔딩화면] BoF원정대 소개 본 워게임(Wargame)은 20개의 레벨로 구성되어 있으며, Redhat 리눅스 운영체제를 사용하고 있다. 각 레벨마다 주어진 ID로 접속하면 다음 레벨 ID명으로 된 바이너리와 C코드가 들어있는데 다양한 BoF기법을 통해 다음 레벨의 쉘을 획득하는 것이 목표이다. 그럼 간단하게 레벨2 소스코드를 한번 살펴보도록 하자 [crayon-5a144527c2be4185145986/] 보다시피 gremlin (Level2 ) 레벨을 넘어가기 위해서는 BoF를 통해 다음레벨 (cobolt)의 쉘을 획득해야만 한다. 소스코드에는 하이라이트 된 부분과 같이 BoF를 위한 간단한 Tip이 소개되어 있는데, 해결방법에 접근하기 위한 최소한의 단서 정도로 생각하면 되겠다.   요구되는 지식들 본 워게임을 20레벨까지 마치기 위해서는 아래의 지식이 요구될것이다. 1. C 언어 기초 (Fundamental of C Language) 2. Stack 구조의 이해 (Understanding of Stack Structure) 3. 어셈블리 언어 기초 (Fundamental of Assembly) – 아주 기본만 알면 됨 4. GDB 디버거 사용법 (GDB Dubugging) – 정말 중요하다 – 5. 파이썬 or Perl 등의 스크립트 언어 기초 (Writing of Script Language) 특히 GDB 디버거의 경우 윈도우 디버거 환경에 익숙한 사람이라면 곤욕을 치를 수 있으므로, 간단한 C코드를 gcc를 통해 컴파일 한 후, 디버깅 하는 연습을 미리

Continue Reading

Site Footer

Sliding Sidebar

About Me

About Me

June Park