전체 글 19

Smoke Loader 상세분석

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

PowerShell을 이용한 GandCrab 5.0.4 (FileLess) -2

이번 분석 건은 전에 분석했던 GandCrab FileLess 입니다. 분석을 하던 중에 전에 분석했던 것과 다른 점이 있어서 블로그를 작성하게 되었습니다. 다른 점은 Delphi 짜여진 바이너리 파일 행위가 바뀌었습니다. 전에 분석했던 것은 단순 GandCrab PE복호화 및 실행이었는데, 해당 분석 건에서는 V3 Check, UAC Bypss, ALYac Check 하는 기능들이 확인되었습니다. 자바스크립트를 열어보면 위와 같이 난독화 된 문자열들을 확인할 수 있다. 아래는 복호화한 스크립트 이다. 파워셸을 실행시키며 인자 값으로 .log를 실행하는 것으로 확인된다. log파일을 열어보면 base64로 인코딩 된 문자열들이 확인되며 복호화를 하면 아래와 같다. 전과 같이 분석을 하다보면 파일시그니처 ..

PowerShell을 이용한 GandCrab 5.0.4 (FileLess)

이번 분석건은 PowerShell을 이용하여 메모리에서 랜섬웨어를 실행하는 Fileless GandCrab 입니다. 아래 URL과 동일한 방식인 것으로 확인됩니다. ' http://asec.ahnlab.com/1141 ' https://www.boannews.com/media/view.asp?idx=74848 분석 방식은 x64dbg, OllyDbg, gflags 를 사용하여 분석하였습니다. sample.js 를 불러오면 위와 같이 난독화 된 문자열들이 확인된다. 해당 JavaScript를 복호화를 해 보면 아래와 같다. 기존 GandCrab JavaScript 는 백신우회, 랜섬웨어 드랍 및 실행을 하였지만, 위 스크립트를 보면 PowerShell을 통해 log파일을 실행 시키는 것을 확인할 수 있다...

NullSoft GandCrab 4.3 (Thread Injection)

이번 분석 건은 최근 9월 달에 NullSoft 설치파일 형태로 유포하는 GandCrab 입니다. 해당 샘플에서 CreateRemoteThread 함수를 사용하여 자식 프로세스에 Thread를 인젝션하며 이 과정에서 알아낸 것을 기재합니다. 안랩블로그 - ' http://asec.ahnlab.com/1160 ' 를 참고하였습니다. 이번 분석 건은 악성코드 분석은 아니며 생성된 Thread를 어떠 한 방법으로 분석하였는지를 알아 볼 것입니다. 아래 그림은 악성코드 동작 방식을 간단히 그림으로 그려보았습니다. calumny.exe 를 실행시키면 Temp 폴더에 bin, dll, jpg 등을 드랍하지만 특별히 적지는 않았습니다. calumny.exe 가 msiexec.exe (정상프로그램)을 suspned 모..

치트엔진으로 안티디버깅 우회 해보기 IsDebuggerPrensent -2 (Code Cave)

전에 작성한 IsDebuggerPrenset를 치트엔진을 사용해서 Code Cave 기법으로 우회를 해 보겠습니다. 요새 어셈 스크립트 작성하는게 재미있네요 .. 위 opcode를 보면은 전에 작성한 opcode랑 다르다는 것을 알 수 있습니다. 전에 C코드 솔루션을 C#으로 했더라구요 ... BP를 설정하면 IsDebuggerPrenset 함수가 탐지하여 " 디버깅 탐지 " 라는 문자열을 출력합니다. 해당 함수를 타깃으로 Code Cave를 해 볼 것입니다. 먼저 어떤 식으로 스크립트를 작성 할 것인지 생각해보자면 공간을 생성 한 후 IsdebuggerPresent 함수를 불러온다. eax 값을 초기화 하고 eax 값이 00인지 비교하고 맞으면 원본 코드로 복귀 아니면 무한루프 이런 식으로 작성할 것입..

치트엔진으로 안티디버깅 우회 해보기 - PEB

PEB구조체를 이용해서 안티디버깅을 적용하고 치트엔진으로 우회 하는 실습을 해보겠습니다. PEB는 간단하게 BeingDebugged 값을 체크하는 안티디버깅 기법입니다. 자세한거는 나중에 Windbg를 공부하면서 알아보도록 하겠습니다. 위는 간단한 소스코드 입니다. 디버깅이 탐지 될 때 " 디버깅 탐지 " 를 띄우고, 그 반대로 " 정상 " 을 띄우는 소스코드 입니다. 치트엔진을 켜고 프로세스를 attach 합니다. 현재 디버깅을 안 해서 " 정상 " 이라고 출력 중 입니다. 이번에 추가적으로 툴을 하나 더 실행 시킵니다. " Process Explorer " 라는 좋을 툴입니다. 대표적으로 프로세스 리스트 (Suspend, Resume, Terminate, Dump) 해당 프로세스의 Thread, TC..

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..