일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디지털 포렌식 트랙
- 코드엔진 basic 5
- 철학
- 논문리뷰
- 사회분업론
- Best of the Best
- BoB 12기 최종합격 후기
- 코드엔진 베이직
- 자살론
- 에밀 뒤르켐
- BoB 12기
- codeengn basic rce 01
- malware
- 리버싱
- CodeEngn
- CodeEngn Basic 01
- 사회적 사실
- CodeEngn Basic 5
- 코드엔진
- bob
- h4ckinggame
- Today
- Total
목록분류 전체보기 (97)
woonadz :)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/exc9Ks/btsElI1Frlh/WSK7dJsrNhH1xSYTBpV5Y0/img.png)
Q1. We need to identify the process responsible for this suspicious behavior. What is the name of the suspicious process? python vol.py -c config.json -f memory.dmp windows.pstree 가장 처음 의심스러운 프로세스를 특정하기까지 과정은 동적으로 볼 수가 없다보니 좀 때려맞췄습니다.. 하하 pstree 플러그인을 이용하여 목록을 확인하였고, winlogon.exe 하위 프로세스로 ChromeSetup.exe가 있는 것을 보았습니다. 악성코드들은 지속성을 확보하기 위해 자동 실행 레지스트리 키를 등록해두는 경우가 많습니다. 그래서 자동 실행 레지스트리 키에 등록된 악성코드..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cqT5Hm/btsD7ona5Bs/17xlwQNeBgYRzeEVIk7ZRK/img.png)
해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다. 악성코드 지속 방법(1) 레지스트리 키 실행 사진은 Windows 운영 체제에서 프로그램 및 서비스가 시스템 부팅 시 자동으로 실행되도록 설정할 수 있는 레지스트리의 위치입니다. 공격자는 run 레지스트리 키에 항목을 악성코드를 추가함으로써 컴퓨터 부팅 시 자신의 악성 프로그램을 실행하고, 사용자 정보를 탈취하거나 시스템을 손상시키는 데 활용할 수 있습니다. 따라서 이러한 자동 실행 항목을 모니터링하고, 신뢰할 수 없는 소프트웨어의 등록을 방지하기 위해 보안 소프트웨어 및 방화벽을 사용하여 시스템을 보호하고, 정기적으로 레지스트리를 검사하여 의심스러운 항목을 확인하는 것이 중요합니다. Autoruns 실습 Sysinternal의 Auto..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkay8t/btsDxgDQsiv/HbfOyyjIYSXJqKhkvQqPs0/img.png)
오늘이 인턴으로 인사한지 3주가 되는 날입니다 :) 오늘은 첫날 입사하고부터 지금까지 쓰고 있는 업무 일기와 앞으로 6개월 간의 인턴 기간 동안의 다짐에 대해 포스팅해보려고 합니다. 업무 일기를 쓰게 된 계기와 느낀 점 입사 전부터 업무 일기를 쓰려고 계획했던 것은 아닙니다. 입사 첫날 인수인계를 받으며 6개월 동안의 성장을 기록하고 싶다는 생각과 제 마음가짐이 어떻게 변했는지 시각적으로 보고 싶어 업무 일기를 쓰게 되었습니다. 제가 나아가고 싶어하는 악성코드 분석 직무는 모든 회사에 존재하지 않고, TO가 많은 편도 아닙니다.. 그래서 악성코드 분석팀의 인턴으로 일할 수 있는 지금 기회가 너무 소중해서 하루도 놓치고 싶지 않은 마음에 일기를 쓰게 되었습니다. 그동안 일기를 쓰며 느낀 점은 크게 3가지가..
파일 자가 삭제를 구현하기 위해 인터넷에 있는 여러 정보들을 찾아보았습니다. 하지만 제가 원하던 self-delete 행위를 하는 코드는 없었습니다. 보았던 코드들 중 어떤 코드는 자가 삭제를 위해 파일의 삭제 명령이 담긴 배치 파일을 드랍하여 그 배치 파일을 실행시키는 형식으로 동작하였지만 이건 자가 삭제 행위라고 보기 어렵다고 생각합니다. 그래서 아래 블로그에서 악성코드의 자가 삭제 행위를 분석한 내용을 토대로 C언어로 구현해보았습니다. 처음에는 프로세스가 종료되지 않은 상태에서 강제로 파일에 접근하려고 하니 권한 오류가 발생하여 작업 스케줄러에 파일 삭제 작업을 등록하는 형식으로 구현할까도 생각하였습니다. 이 부분은 다음에 기회가 되면 구현하여 올리도록 하겠습니다. https://twoicefish..
#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; documen..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5xEvn/btszwbe52BU/sLJuk8ShxhnBydHONOcNkK/img.png)
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 디바이스에 대한 핸들(예: 파일, 파일 스트림, 실제 디스크, 볼륨, 콘솔 버퍼, 테이프 드라이브, 소켓, 통신 리소스, mailslot 또는 파이프). hFile 매개 변수는 쓰기 액세스 권한으로 만들어졌어야 합니다. 자세한 내용은 일반 액세스 권한 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bp1QQk/btszwikAy6E/vETMqtW7HhkPmNrTXWEZP1/img.png)
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, [in, optional] HANDLE hTemplateFile ); [in] lpFileName 만들거나 열 파일 또는 디바이스의 이름입니다. 이 이름에는 슬래시(/) 또는 백슬래시(\)를 사용할 수 있습니다. 기본적으로 이름은 MAX..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/r8Meb/btszbWJMaM1/NM97lQg8qAVRfVTPaUtRqk/img.png)
FindFirstFileA 함수 HANDLE FindFirstFileA( [in] LPCSTR lpFileName, [out] LPWIN32_FIND_DATAA lpFindFileData ); [in] lpFileName 디렉터리 또는 경로 및 파일 이름입니다. 파일 이름에는 와일드카드 문자(예: 별표(*) 또는 물음표(?)가 포함될 수 있습니다. 이 매개 변수는 NULL, 잘못된 문자열(예: 빈 문자열 또는 종료 null 문자가 없는 문자열) 또는 후행 백슬래시(\)로 끝나서는 안 됩니다. 문자열이 와일드카드, 마침표(.) 또는 디렉터리 이름으로 끝나는 경우 사용자는 경로의 루트 및 모든 하위 디렉터리에 대한 액세스 권한이 있어야 합니다. ⇒ 파일 목록을 검사하고 싶은 폴더 경로를 지정해줍니다. [ou..