[Reversing] APC Injection_QueueUserAPC() - 샘플 파일 다운로드> 첨부파일 APC인젝션은 비동기 함수 호출로 직접 호출하는 형태가 아닌 CALLBACK 함수를 통해 호출하는 것이다.QueueUserAPC() 함수를 이용하는데 해당 함수가 호출되기에는 스레드가 Alertable 상태여야며, 또 스레드가 Alertable 상태가 되기 위한 조건은 sleep(), wait() 관련 API를 통해야 된다는 조건이 있다. alertable 상태란? 사용자가 조정할 수 있는 유일한 스레드의 상태이다. (SleepEx, WaitForSingleObjectEx, WaitForMultipleObjectsEx, SignalObjectAndWait, MsgWaitForMultipleObjec..
[Reversing] Self Creation, 디버깅 Emotet 분석중(그림 1)을 살펴보면 서비스 실행 한도 시간을 수정한 후 해당 서비스 실행 파일의 EP의 2byte 값을 무한루프로 변경해 주는 것을 확인 할 수 있다. 이후 서비스를 시작할 때 해당 서비스를 Attach를 한 후 원복 후 디버깅을 진행 할 수 있다.. 그림 1 – 서비스 디버깅 CVE-2017-11882 분석중취약점 발생 원인 부분을 살펴보면 Microsoft Office의 수식 편집기(EQNEDT32)을 이용하여 쉘 코드를 실행하는 한다는 사실을 알 수 있었다. 즉, Cve-2017-11882.rtf을 실행 시 수식 편집기가 실행 되면서 취약점이 발생하는 걸 확인하였다. (그림 2)와 같이 EQNEDT32.EXE의 Entry ..
# SHGetFolderPath 참조> http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp> https://tarma.com/support/im9/using/symbols/functions/csidls.htm CSIDL_FLAG_CREATE (0x8000) Version 5.0. Combine this CSIDL with any of the following CSIDLs to force the creation of the associated folder. CSIDL_ADMINTOOLS (0x0030) Version 5.0. The file system directory that is used to ..
[Reversing] API 동적 로딩 기법, PEB의 LDR 이용 참조> https://5kyc1ad.tistory.com/328> https://sanseolab.tistory.com/47 TEB0x30 : PEB PEB0x0C : PEB_LDR_DATA PEB_LDR_DATA0x0C : ( InLoadOrderModuleList )0x14 : ( InMemoryOrderModuleList )0x1C : LDR_MODULE ( InInitializationOrderModuleList ) ( InLoadOrderModuleList )( 바이너리 -> ntdll.dll -> kernel32.dll -> kernelbase.dll )0x00 : Next Module0x04 : Previous Module0..
[Reversing] Malwarebytes CrackMe: a step-by-step tutorial 악성코드 분석 훈련용 샘플로 MalwareByte에서 제작하였다.Malwarebytes Crackme로 분석 연습용이며, CrackMe에서 다양한 기술을 보여주므로 좋은 경험이 되었다. > https://blog.malwarebytes.com/tag/malwarebytes-crackme/> https://jeongzzang.com/99 - 샘플 파일 다운로드> 훈련용 파일
[Reversing] PEB Structure 참고> https://5kyc1ad.tistory.com/328> https://sanseolab.tistory.com/47 kd> dt _PEBnt!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar +0x003 SpareBool : UChar +0x004 Mutant : Ptr32 Void +0x008 ImageBaseAddress : Ptr32 Void +0x00c Ldr : Ptr32 _PEB_LDR_DATA - 링크 +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS..
[Reversing] RaiseException dwExceptionCode_SEH 0x00000000 STATUS_SUCCESS 0x00000001 STATUS_WAIT_1 0x00000002 STATUS_WAIT_2 0x00000003 STATUS_WAIT_3 0x0000003F STATUS_WAIT_63 0x00000080 STATUS_ABANDONED 0x000000BF STATUS_ABANDONED_WAIT_63 0x000000C0 STATUS_USER_APC 0x000000FF STATUS_ALREADY_COMPLETE 0x00000100 STATUS_KERNEL_APC 0x00000101 STATUS_ALERTED 0x00000102 STATUS_TIMEOUT 0x00000103 STATUS..
[Reversing] Process Hollowing 기법 프로레스 할로잉 기법은 자식 프로세스를 이용하여 프로세스 자체를 인젝션하는 것으로 간략하게 말하자면 절차는 자식 프로레스를 서스펜드 상태로 만든 뒤 기존 악성 프로세스의 정보를 얻어 자식 프로세스의 각 위치에 매핑을 한다. 이후 메모리를 할당과 악성 데이터를 삽입한 후 서스펜드 상태를 풀어주게 되면 악성 행위를 하게된다.. source code> https://github.com/theevilbit/injection/tree/master/ProcessHollowing 프로세스 생성(SUSPENDED) BOOL CreateProcessA( LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATT..
- Total
- Today