일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dll side-loading
- 디지털 포렌식 트랙
- 정보보안기사
- cve-2024-6387
- Active Directory
- 논문리뷰
- DLL 사이드로딩
- 프로그래머스
- 코드엔진
- Best of the Best
- bob
- CodeEngn
- 디포전 2급
- 세마포어
- 뮤텍스
- h4ckinggame
- 정보기
- race condition
- 디지털 포렌식 전문가 2급
- cve-2022-26923
- malware
- 리버싱
- 필기
- BoB 12기
- BoB 12기 최종합격 후기
- 디포전
- Today
- Total
목록Security (32)
SEO

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..
파일 자가 삭제를 구현하기 위해 인터넷에 있는 여러 정보들을 찾아보았습니다. 하지만 제가 원하던 self-delete 행위를 하는 코드는 없었습니다. 보았던 코드들 중 어떤 코드는 자가 삭제를 위해 파일의 삭제 명령이 담긴 배치 파일을 드랍하여 그 배치 파일을 실행시키는 형식으로 동작하였지만 이건 자가 삭제 행위라고 보기 어렵다고 생각합니다.그래서 아래 블로그에서 악성코드의 자가 삭제 행위를 분석한 내용을 토대로 C언어로 구현해보았습니다. 처음에는 프로세스가 종료되지 않은 상태에서 강제로 파일에 접근하려고 하니 권한 오류가 발생하여 작업 스케줄러에 파일 삭제 작업을 등록하는 형식으로 구현할까도 생각하였습니다. 이 부분은 다음에 기회가 되면 구현하여 올리도록 하겠습니다.https://twoicefish-s..
#include #include #include #include #include #include #include #define MAX_PATH 1000#define buffersize 1024#pragma comment (lib, "shlwapi.lib")const BYTE xorKey[] = { 'M', 'a', 'l', 'F', 'F', 'l', 'e', 'R' };void all_file_list(wchar_t* path);void file_encrypt_xor(wchar_t* path);int main(void) { char* document_path = NULL; REFKNOWNFOLDERID ID = &FOLDERID_Documents; HRESULT document; document = SH..

WriteFile : 지정된 파일 또는 I/O(입출력) 디바이스에 데이터를 씁니다.BOOL WriteFile( [in] HANDLE hFile, [in] LPCVOID lpBuffer, [in] DWORD nNumberOfBytesToWrite, [out, optional] LPDWORD lpNumberOfBytesWritten, [in, out, optional] LPOVERLAPPED lpOverlapped);[in] hFile파일 또는 I/O 디바이스에 대한 핸들(예: 파일, 파일 스트림, 실제 디스크, 볼륨, 콘솔 버퍼, 테이프 드라이브, 소켓, 통신 리소스, ..

CreateFileA 함수 : 파일 또는 I/O 디바이스를 열거나 생성합니다.HANDLE CreateFileA( [in] LPCSTR lpFileName, [in] DWORD dwDesiredAccess, [in] DWORD dwShareMode, [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes, [in] DWORD dwCreationDisposition, [in] DWORD dwFlagsAndAttributes..

FindFirstFileA 함수HANDLE FindFirstFileA( [in] LPCSTR lpFileName, [out] LPWIN32_FIND_DATAA lpFindFileData);[in] lpFileName디렉터리 또는 경로 및 파일 이름입니다. 파일 이름에는 와일드카드 문자(예: 별표(*) 또는 물음표(?)가 포함될 수 있습니다. 이 매개 변수는 NULL, 잘못된 문자열(예: 빈 문자열 또는 종료 null 문자가 없는 문자열) 또는 후행 백슬래시(\)로 끝나서는 안 됩니다.문자열이 와일드카드, 마침표(.) 또는 디렉터리 이름으로 끝나는 경우 사용자는 경로의 루트 및 모든 하위 디렉터리에 대한 액세스 권한이 있어야 합니다.⇒ 파일 목록을 검사하고 싶은 폴더 경로를 지정..

SHGetKnownFolderPath 함수 : 폴더의 KNOWNFOLDERID로 식별된 알려진 폴더의 전체 경로를 검색합니다. HRESULT SHGetKnownFolderPath( [in] REFKNOWNFOLDERID rfid, [in] DWORD dwFlags, [in, optional] HANDLE hToken, [out] PWSTR *ppszPath);[in] rfid폴더를 식별하는 KNOWNFOLDERID 에 대한 참조⇒ 검색을 원하는 폴더의 경로에 알맞는 상수 값을 위 링크에서 찾아 지정해주면 됩니다. [in] dwFlags특수 검색 옵션을 지정하는 플래그입니다. 이 값은 0일 ..