x64dbg 15

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

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

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

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