일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 사회분업론
- 철학
- h4ckinggame
- 논문리뷰
- 에밀 뒤르켐
- BoB 12기
- CodeEngn Basic 5
- CodeEngn Basic 01
- 디지털 포렌식 트랙
- bob
- 사회적 사실
- CodeEngn
- Best of the Best
- 자살론
- malware
- 코드엔진 베이직
- codeengn basic rce 01
- 리버싱
- 코드엔진
- 코드엔진 basic 5
- BoB 12기 최종합격 후기
- Today
- Total
목록IT (87)
woonadz :)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmtRWC/btsFQfPNO10/7HgoZExLEzPI1j32SLFkRk/img.png)
사실 문제 자체는 procmon, malware defense 등의 동적 분석 도구나 동적 디버깅을 통해 쉽게 해결할 수 있지만 코드의 로직을 좀 더 자세히 알아보기 위해 코드 정적 분석을 기반으로 풀이를 작성하였습니다. Cabinet 파일 바탕으로 만들어진 실행파일인 것을 확인할 수 있습니다. 이를 통해 기존 실행 로직에 또 다른 파일이나 폴더가 숨겨져 있을 것이라 추측할 수 있습니다. sub_140004754 함수가 주로 프로그램의 메인 로직을 담당합니다. sub_140004754 함수에서 호출하는 sub_14000526C 함수는 tmp 폴더 내에 폴더를 생성하는 함수입니다. 코드 동적 분석을 통해 생성되는 폴더의 이름과 경로를 확인하였습니다. sub_140004754 함수에서 호출하는 StartAd..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cEDbA2/btsFJ8KAcwL/zWCrL4u3Pbkxy8OxyBaKT0/img.png)
자가 삭제 (Self-Deletion) 자가 삭제는 악성 코드가 자체적으로 삭제되거나 비활성화되어 분석을 어렵게 만드는 기법입니다. 일반적으로 악성 코드는 침투된 시스템에서 실행되고 자가 삭제 기능을 수행합니다. 자가 삭제 기법은 다음과 같은 조건이 충족될 때 실행될 수 있습니다. 특정 시간이 지났을 때 특정 이벤트가 발생했을 때 특정 조건이 충족되었을 때 코드 조각화 (Code Fragmentation) 코드 조각화는 악성 코드의 일부 또는 전체를 분할하고 조각조각 나누어 각 조각을 다른 위치에 저장한 후 실행 시 조합하여 실행하는 기법입니다. 이로써 악성 코드가 정적 분석에서 탐지되기 어려워집니다. 코드 조각화는 다음과 같은 방식으로 작동합니다. 악성 코드의 명령문을 조각조각 분할하여 별도의 함수 또..
API v3 Migration 모든 VirusTotal 제품 및 스캐너의 엔드포인트입니다 . VT 사용자는 단일 API를 통해 VirusTotal의 모든 도구에 액세스할 수 있으므로 통합 프로세스가 단순화됩니다. 사용자 및 그룹 관리를 통해 관리자는 액세스 및 계정 관리를 자동화하고 팀 전체의 사용량을 추적할 수 있습니다. 파일, URL, 도메인 및 IP 보고서에 대한 추가 관련 정보 . VT API v3은 메타데이터 및 컨텍스트를 포함하여 모든 파일, URL, 도메인 및 IP 보고서에 대한 추가 정보를 제공합니다. 예측 가능한 리소스 지향 URL을 갖춘 REST 기반입니다 . VirusTotal API v3는 예측 가능한 리소스 지향 URL을 통해 액세스되는 HTTP 메서드로 웹 서비스를 구축하기 위한..
이전 프로젝트에 사용하기 위해 만들었던 스크립트입니다. import requests import hashlib import time import json # 예시 정답 answer = "T1027" # 사용자가 제출한 코드에서 추출한 techniques 번호들을 모을 리스트 techniques = [] # VirusTotal API 키 VT_API_KEY = "" #개인 VT 키 # VirusTotal API 엔드포인트 VT_API_SCAN_URL = "https://www.virustotal.com/vtapi/v2/file/scan" VT_API_URL = "https://www.virustotal.com/api/v3/files" def calculate_md5(file_path): # 파일 내용을 읽..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lbmJF/btsFGCEph8C/IPbkeH73EQ2UZVIVw5qWyK/img.png)
sub_140001000 함수에 사용자 입력값을 인자값으로 주어서 인증 검사를 수행하는 것을 알 수 있습니다. _BOOL8 __fastcall sub_140001000(const char *input) { int i; // [rsp+20h] [rbp-18h] int v3; // [rsp+24h] [rbp-14h] v3 = strlen(input); if ( (v3 + 1) % 8 ) return 0i64; for ( i = 0; i < v3 + 1; i += 8 ) sub_1400010A0(&input[i]); return memcmp(input, &unk_140004000, 0x19ui64) == 0; } 비교 메모리(&unk_140004000) : '0x7E', '0x7D', '0x9A', '0x8B..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJZmSP/btsFEOzcqJE/rzTRQwhp7V3F3VZkHsa130/img.png)
해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다. DLL 검색 순서 하이재킹 프로그램이 실행되면 import 테이블 또는 LoadLibrary() API 호출한 프로세스의 결과로 관련 DLL이 프로세스 메모리에 로드됩니다. 윈도우 운영 체제는 사전 정의된 위치 순서대로 DLL을 검색해 로드합니다. Dynamic-link library search order - Win32 apps DLL을 로드해야 하는 경우 운영 시스템은 먼저 DLL이 메모리에 이미 로드되 있는지를 확인하고 로드되어있지 않다면 KnownDLLs 레지스트리 키에 정의된 DLL인지를 확인합니다. 사진에 보이는 DLL은 시스템 DLL이고, 윈도우 파일 보호를 통해 운영 시스템의 업데이트를 제외하고 삭제 또는 업데이트되지 않도..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b11den/btsFAjFRaEH/dQZk1FhBJ3KyLtikGUKDVK/img.png)
해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다. Winlogon 레지스트리 항목 공격자는 Winlogon 프로세스에서 사용하는 레지스트리 항목을 수정해 지속성을 유지할 수 있습니다. Winlogon은 사용자 계정의 logon과 logoff를 처리하는 역할을 합니다. Winlogon 프로세스는 다음과 같이 동작합니다. 유저가 인증되면 Winlogon.exe 프로세스가 시작됩니다. Winlogon.exe는 userinit.exe를 실행합니다. 다음으로 logon 스크립트를 실행하고 네트워크 연결을 재설정합니다. 마지막으로 userinit.exe 기본 유저 셀인 explorer.exe를 실행합니다. Winlogon Userinit winlogon.exe는 사진과 같은 레지스트리 값으로 인해..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwK0n1/btsFBdRSLId/XYkKiekkCKzzm0ak3yMMaK/img.png)
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)로 생각하..