
#include <stdio.h>
// 내부에 숨겨진 악성코드 데이터 (바이트 배열)
unsigned char malware_code[] = {
0x4d, 0x5a, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, // MZ 헤더 (실행파일)
// ... 생략 ...
};
int main() {
// 1. 시스템의 은밀한 경로에 파일 생성
FILE *fp = fopen("C:\\Windows\\Temp\\malware.exe", "wb");
if (fp) {
// 2. 메모리에 있는 악성 데이터를 파일로 씀 (Drop)
fwrite(malware_code, 1, sizeof(malware_code), fp);
fclose(fp);
// 3. 생성된 악성코드 실행
// system("C:\\Windows\\Temp\\malware.exe");
printf("Dropped successfully.\n");
}
return 0;
}ls, ps, netstat 같은 기본 명령어(바이너리)를 변조합니다.ls 명령어를 입력했을 때의 흐름입니다.ls → sys_getdents 호출 → 파일 목록 반환 → 화면 출력.ls → malware.exe 제거 → 반환 → 화면 출력.ls를 쳐도 악성 파일을 볼 수 없습니다.chkrootkit이나 rkhunter 같은 도구를 사용하여 변조된 시스템 파일을 검사할 수 있습니다. # chkrootkit 설치 및 실행
sudo apt-get install chkrootkit
sudo chkrootkit
# 출력 예시
# Checking `ls'... INFECTED
# Checking `ps'... INFECTED
다음 시간에는 이러한 공격자들이 시스템에 침투하기 위해 사용하는 가장 기초적인 수단,1.9 패스워드 크래킹 기법과 솔팅(Salting)에 대해 알아보겠습니다. 단순한 무차별 대입부터 레인보우 테이블까지, 그리고 이를 막기 위한 해시 기술의 진화를 다룹니다.