OllyDbg 14

Smoke Loader 상세분석

개요 최근 비너스락커 조직이 문서파일 내에 은닉하여 악성코드를 유포 하고있다. 문서파일 열람 시 상단의 "콘텐츠 사용" 버튼을 클릭하면 문서파일 내 매크로가 실행되며 특정 C2와 연결하여 바이너리 파일 다운로드 후 실행되며, 해당 악성코드는 explorer.exe 에 Code Injection을 하여 약 5개의 플러그인 들을 실행시키며 자세한 사항은 하단에서 확인이 가능하다. 해당 보고서에서는 바이너리 파일만 분석을 진행하며 해당 바이너리 파일은 현재 상세분석 관련된 보고서가 공개되어 있지 않기에 상세분석을 하게 되었다. 문서파일 매크로 분석은 - https://monster-bbulman.tistory.com/12?category=670587 x64dbg를 활용한 doc 난독화 스크립트 분석 본 작성자..

GandCrab 4.3 Javascript 분석 -2

이번 분석 건은 Ahnlab 블로그에 기재된 ' 자바스크립트 내에 포함된 GandCrab 랜섬웨어 (V3 제거유도) ' 입니다. http://asec.ahnlab.com/1152?category=342979 상세분석은 아니며, 분석보다는 연구 한 것에 가깝습니다. GandCrab을 실행하기 위한 자바스크립트 입니다. 자바스크립트 난독화를 복호화 시키는 과정입니다. 복호화를 끝마친 상태입니다. 안티바이러스 체크 및 GandCrab 드랍, 실행 감사합니다.

치트엔진으로 안티디버깅(IsDebuggerPresent) 우회 해보기

이번에는 치트엔진 툴을 사용하여 안티디버깅(Anti - Debugging) 기법 중 가장 기초적인 IsDebuggerPresent 를 우회 해보겠습니다. 먼저 아래 간단한 소스코드를 컴파일 하겠습니다. IsDebuggerPresent 함수를 무한루프를 돌리는 소스입니다. 디버깅이 탐지가 되면 " 디버깅 탐지 " 메시지를 출력하고 아닐시 " 정상 " 메시지가 출력됩니다. 해당 소스를 컴파일해서 실행시키면 아래와 같이 출력됩니다. 이제 치트엔진을 켜서 해당 프로그램을 attach 시켜줍니다. 왼쪽 상단에 모니터 그림을 클릭하고 Process List 에서 해당 프로그램을 Open 해줍니다. 그리고 Memory View 에서 아무 곳에 BP를 설정 해주면 아래와 같이 " 디버깅 탐지 " 메시지가 출력됩니다. ..

FTZ Level1

ID: level1 PW: level hint: 위 -perm +6000 옵션은 level2 권한과 level1의 그룹 권한 중 하나라도 SUID와 SGID가 설정된 파일을 찾는다는 의미이며, -perm -6000 옵션은 level2 권한과 level1의 그룹 권한에 모두 SUID나 SGID가 설정된 파일을 찾는다는 의미이다. 2> /dev/null 위의 숫자 '2' 는 표준에러(STDERR)을 의미하며, 숫자 '1'은 표준출력(STDOUT)을 의미한다. /dev/null 윈도우의 휴지통이라 생각하면 된다. 위의 명령어를 실행하면 ' /bin/ExecuteMe ' 가 출력이 된다. /bin 디렉터리에 ExecuteMe 파일이 있는 것을 확인이 되며, 해당 파일을 실행시키면 아래 그림과 같이 출력된다. m..

치트엔진으로 Crackme 분석해보기

치트엔진 이라는 툴을 사용하여 Crackme를 분석해보겠습니다. 우선 치트엔진은 주로 게임이나 상용 소프트웨어를 Crack 할 때 많이 쓰이는 것으로 알고있습니다. 허나 이번 포스팅에서는 게임이 아닌 Crackme 를 분석을 해보겠습니다. 아래 그림은 치트엔진 UI 입니다. 기능들이 엄청 많아보입니다. 기능들이 엄청 많아보이는데 저 기능들을 다 쓰는지는 모르겠습니다. 아래 그림은 이번에 분석 할 Crackme 입니다. 패커 여부는 알 수 없다 라고 나와있습니다. Crackme를 실행하면 위와 같이 CD-ROM 이 없다고 합니다. 이제 치트엔진으로 한 번 열어봐서 어떤 식으로 코드가 짜여있는지 보겠습니다. 왼쪽 위의 모니터 모양의 버튼을 클릭 한 후 Process List의 abex' 1st crackme..

x32dbg 를 이용한 CVE-2017-11882 분석

이번 분석 건은 CVE-2017-11882 분석입니다. MS Office 프로그램 중 EQNEDT32 프로그램에서 취약점이 발견되었으며, 해당 프로그램은 수식 편집기 프로그램 입니다. 해당 프로그램을 IDA Pro로 확인결과 strcpy 취약한 명령어를 사용함을 확인 하였습니다. 아래 그림은 EQNEDT32.EXE의 strcpy 함수영역 입니다. ' strcpy = NULL 문자를 만나기 전까지 문자열 복사 ' 이며 이 뜻은 길이 검사를 하지 않으며 BOF 에 취약함을 뜻합니다. 취약점 분석은 한 번도 안 해 봤으며, 참고자료를 보면서 분석을 하였습니다. 본 작성자는 초급 분석가이며, 많은 피드백 환영합니다. 특정 그림파일이 삽입이 되어있으며, 확인결과 수식연산자를 사용 한 것으로 확인된다. 워드 파일을..

GandCrab 4.3 Javascript 분석

이번 분석 건은 Javascript 난독화 분석 입니다. 난독화라기 보다는 변수명들만 보기가 어렵게 되어있습니다. 요즘 매우 이슈가 되고있는 GandCrab 4.3을 Javascript를 사용하여 유포하고 있습니다. 본 작성자는 초급 분석가이며, 많은 피드백 환영합니다. 아래 그림은 행위 순서이다. 각 주요 행위마다 변수를 설정한다. 랜섬노트가 생성 되었다는 것은 랜섬웨어 행위가 제대로 동작한다 라는 것을 의미하여 변수 값을 2 설정하여 특정 url에 송신한다. 실행 중인 프로세스들을 수집하여 특정 url에 전송한다. 무엇을 의미하는지는 자세히 모르겠다. 실행파일을 특정 경로에 생성 및 파일 명을 설정한다. 그리고 변수 값을 0으로 설정하며, 실행파일을 base64 디코딩 후에 GandCrab을 실행한다..

Code Injection 분석 연구

본 작성자는 초급 분석가이며, 많은 피드백 환영합니다. 이번 분석 건은 악성코드 분석은 아니며, Code Injection 기법 관련 분석입니다. 지금까지 분석한 악성코드 대부분은 자식프로세스를 생성하여 WriteProcessMemory 함수를 사용하여 Code Injection을 합니다. WriteProcessMemory의 Buffer 를 가져와 mem파일을 만들어서 분석을 하였습니다. 그런데 간혹 안되는 경우가 있습니다. 그래서 아래 본문에 그에 관련된 연구? 내용을 한 번 적어봤습니다. 샘플은 GandCrab 4.2.1 입니다. Code Injection 중 WriteProcessMemory의 Stack 부분이다. 4D5A(MZ)로 실행파일임을 확인하였으며, 특정 코드들이 들어있는 것을 확인할 수 ..

GandCrab 4.1.2 분석

본 작성자는 초급 분석가이며, 피드백 환영합니다. 이번 분석 건은 GandCrab 4.1.2 입니다. 사용 툴 파일정보 위는 사용 툴과 GandCrab 4.1.2 파일 정보이다. GandCrab 4.1.2 분석시 패킹푸는 과정은 생략하겠다. 중복실행 방지 중복실행을 방지하기 위해 하드 볼륨 + 특정url을 salsa20 암호화 알고리즘을 통해 뮤텍스를 생성 특정 프로세스 탐지 및 종료 암호화 대상 파일의 쓰기 권한을 확보하기 위해 아래 프로세스들을 종료한다. 키보드 레이아웃 검사 Keyboard Layout(러시아), DefaultUILanguage(16개 국가)조회하여 일치할 경우 암호화 종료 Daniel J. Bernstein Salsa 암호화 알고리즘 Salsa 알고리즘을 발명한 컴퓨터 교수인 Da..

x64dbg 자바스크립트 난독화 분석

본 작성자는 초급 분석가이며 많은 피드백 환영합니다. 이번 자바스크립트 난독화 분석 건은 최근 언로보도 "https://www.boannews.com/media/view.asp?idx=71964&page=2&kind=1" 에 기재된 GandCrab 랜섬웨어 유포를 위한 자바스크립트 입니다. 스크립트 파일을 열어보면 아래와 같이 난독화가 되어있다. 해당 스크립트는 난독화가 어렵게 되어있어 x64dbg로 풀어볼 것이다. dll은 아래와 같이 load 하였다. ShellExecute, InternetCreateUrl, CreateFile 3개에 BP를 걸었다. 각 함수에 BP를 건 이유 ShellExecute = PowerShell 또는 cmd 사용하여 실행하는지 확인 InternetCreateUrl = C&..