일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- h4ckinggame
- CodeEngn Basic 5
- BoB 12기
- bob
- CodeEngn Basic 01
- 사회적 사실
- 코드엔진 basic 5
- 에밀 뒤르켐
- 논문리뷰
- 자살론
- Best of the Best
- CodeEngn
- 리버싱
- BoB 12기 최종합격 후기
- 코드엔진
- malware
- codeengn basic rce 01
- 코드엔진 베이직
- 사회분업론
- 디지털 포렌식 트랙
- 철학
- Today
- Total
목록IT/악성코드 & 리버싱 (7)
woonadz :)
PEB 구조체 내의 NtGlobalFlag 위치 32비트 : 0x68 offset 64비트 : 0xBC offset NtGlobalFlag 값 Default 값 : 0 디버거에 의해 프로세스가 생성된 경우 FLG_HEAP_ENABLE_TAIL_CHECK (0x10) FLG_HEAP_ENABLE_FREE_CHECK (0x20) FLG_HEAP_VALIDATE_PARAMETERS (0x40) LockBit 2.0에서의 NtGlobalFlag 사용법 NtGlobalFlag 값과 0x70 값을 and 연산하여 현재 프로세스가 디버깅 중인지 확인 => 디버깅 중이라면 무한루프 생성 DLL을 동적으로 로드하기 이전에 안티 디버깅 기술로 분석 방해
자가 삭제 (Self-Deletion) 자가 삭제는 악성 코드가 자체적으로 삭제되거나 비활성화되어 분석을 어렵게 만드는 기법입니다. 일반적으로 악성 코드는 침투된 시스템에서 실행되고 자가 삭제 기능을 수행합니다. 자가 삭제 기법은 다음과 같은 조건이 충족될 때 실행될 수 있습니다. 특정 시간이 지났을 때 특정 이벤트가 발생했을 때 특정 조건이 충족되었을 때 코드 조각화 (Code Fragmentation) 코드 조각화는 악성 코드의 일부 또는 전체를 분할하고 조각조각 나누어 각 조각을 다른 위치에 저장한 후 실행 시 조합하여 실행하는 기법입니다. 이로써 악성 코드가 정적 분석에서 탐지되기 어려워집니다. 코드 조각화는 다음과 같은 방식으로 작동합니다. 악성 코드의 명령문을 조각조각 분할하여 별도의 함수 또..
해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다. DLL 검색 순서 하이재킹 프로그램이 실행되면 import 테이블 또는 LoadLibrary() API 호출한 프로세스의 결과로 관련 DLL이 프로세스 메모리에 로드됩니다. 윈도우 운영 체제는 사전 정의된 위치 순서대로 DLL을 검색해 로드합니다. Dynamic-link library search order - Win32 apps DLL을 로드해야 하는 경우 운영 시스템은 먼저 DLL이 메모리에 이미 로드되 있는지를 확인하고 로드되어있지 않다면 KnownDLLs 레지스트리 키에 정의된 DLL인지를 확인합니다. 사진에 보이는 DLL은 시스템 DLL이고, 윈도우 파일 보호를 통해 운영 시스템의 업데이트를 제외하고 삭제 또는 업데이트되지 않도..
해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다. Winlogon 레지스트리 항목 공격자는 Winlogon 프로세스에서 사용하는 레지스트리 항목을 수정해 지속성을 유지할 수 있습니다. Winlogon은 사용자 계정의 logon과 logoff를 처리하는 역할을 합니다. Winlogon 프로세스는 다음과 같이 동작합니다. 유저가 인증되면 Winlogon.exe 프로세스가 시작됩니다. Winlogon.exe는 userinit.exe를 실행합니다. 다음으로 logon 스크립트를 실행하고 네트워크 연결을 재설정합니다. 마지막으로 userinit.exe 기본 유저 셀인 explorer.exe를 실행합니다. Winlogon Userinit winlogon.exe는 사진과 같은 레지스트리 값으로 인해..
DLL Side-Loaing이란? DLL Search Order Hijacking과 비슷하게 동작하지만 목적과 방법에 약간의 차이를 두고 있는 DLL Hijacking 기법입니다. 더보기 DLL Injection과 DLL Hijacking의 차이 Injection은 다른 프로세스 메모리에 외부 DLL 코드를 강제로 주입하여 악성코드를 실행시키는 것에 중점을 두고 있고, Hijacking은 프로세스가 실행될 때 검색하는 DLL 자체를 악성 DLL로 대체하여 실행시키는 것에 중점을 두고 있습니다. 가장 큰 차이점이라고 한다면 강제성 여부라고 생각합니다. 예를 들어, Hijacking은 a.dll 이라는 정상 dll을 로드해야하지만 a.dll의 이름으로 위장한 악성 dll을 정상인 dll(a.dll)로 생각하..
해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다. 악성코드 지속 방법(1) 레지스트리 키 실행 사진은 Windows 운영 체제에서 프로그램 및 서비스가 시스템 부팅 시 자동으로 실행되도록 설정할 수 있는 레지스트리의 위치입니다. 공격자는 run 레지스트리 키에 항목을 악성코드를 추가함으로써 컴퓨터 부팅 시 자신의 악성 프로그램을 실행하고, 사용자 정보를 탈취하거나 시스템을 손상시키는 데 활용할 수 있습니다. 따라서 이러한 자동 실행 항목을 모니터링하고, 신뢰할 수 없는 소프트웨어의 등록을 방지하기 위해 보안 소프트웨어 및 방화벽을 사용하여 시스템을 보호하고, 정기적으로 레지스트리를 검사하여 의심스러운 항목을 확인하는 것이 중요합니다. Autoruns 실습 Sysinternal의 Auto..