일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- cve-2024-6387
- malware
- 프로그래머스
- BoB 12기
- dll side-loading
- 정보보안기사
- DLL 사이드로딩
- race condition
- 정보기
- bob
- 논문리뷰
- 리버싱
- Best of the Best
- 디지털 포렌식 트랙
- 코드엔진
- 필기
- 디지털 포렌식 전문가 2급
- CodeEngn
- 디포전 2급
- h4ckinggame
- 세마포어
- 디포전
- Active Directory
- 뮤텍스
- cve-2022-26923
- BoB 12기 최종합격 후기
Archives
- Today
- Total
SEO
[지속 기법] Winlogon/Image File Execution Options/접근성 프로그램 본문
Security/Reversing & Malware
[지속 기법] Winlogon/Image File Execution Options/접근성 프로그램
Crain 2024. 3. 6. 23:00반응형
해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다.
Winlogon 레지스트리 항목
- 공격자는 Winlogon 프로세스에서 사용하는 레지스트리 항목을 수정해 지속성을 유지할 수 있습니다.
- Winlogon은 사용자 계정의 logon과 logoff를 처리하는 역할을 합니다.
- Winlogon 프로세스는 다음과 같이 동작합니다.
- 유저가 인증되면 Winlogon.exe 프로세스가 시작됩니다.
- Winlogon.exe는 userinit.exe를 실행합니다.
- 다음으로 logon 스크립트를 실행하고 네트워크 연결을 재설정합니다.
- 마지막으로 userinit.exe 기본 유저 셀인 explorer.exe를 실행합니다.
Winlogon Userinit
- winlogon.exe는 사진과 같은 레지스트리 값으로 인해 userinit.exe를 실행합니다.
- 따라서 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon 레지스트리 값에는 Userinit 항목이 있으며, 이 항목은 userinit.exe의 경로를 저장합니다.
- 이 경로는 사용자가 로그인할 때 Winlogon이 실행해야 하는 프로그램 또는 스크립트를 가리키며, 사용자가 로그인하면 userinit.exe가 실행되어 시작 프로그램을 실행합니다.
- 공격자는 유저가 로그인했을 때 winlogon.exe 프로세스가 실행할 악성 실행 파일의 경로를 포함하는 다른 값으로 변경하거나 추가할 수 있습니다.
Winlogon Shell
- 앞서 설명한 방법과 동일한 방법으로 userinit.exe는 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\Shell 값을 참고하여 기본 유저 셀을 실행합니다.
- 기본적으로 이 값은 explorer.exe로 설정되며, 공격자는 악의적인 실행 파일의 이름을 포함하는 다른 항목을 추가하거나, 변경할 수 있습니다.
이미지 파일 실행 옵션
- 이미지 파일 실행 옵션(IFEO)은 디버거에서 실행 파일을 직접 실행할 수 있습니다.
- 이는 개발자가 실행 파일의 시작 코드에 있는 이슈를 조사할 수 있도록 소프트웨어를 디버깅할 수 있는 옵션을 제공합니다.
- 개발자는 사진과 같은 레지스트리 키 아래에 실행 파일 이름으로 하위 키를 만들고 디버거 값을 디버거의 경로로 설정합니다.
이미지 파일 실행 옵션 실습하기
Key : "HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\\Windows NT\CurrentVersion\Image File Execution Options\<실행 파일 이름>"
Value : Debugger : REG_SZ : <디버거의 전체 경로>
- 공격자는 이 레지스트리 키를 이용해 악의적인 프로그램을 실행할 수 있습니다.
- 만약 공격자가 악의적인 프로그램(01.exe)를 notepad.exe의 디버거로 설정한다면 사진과 같이 설정될 것입니다.
- 이러한 레지스트리 항목으로 인해 정상 notepad.exe가 실행될 때마다 악의적인 프로그램(01.exe)가 함께 실행됩니다.
접근성 프로그램
- 윈도우 운영 체제는 화상 키보드, 내레이터, 돋보기 등과 같은 기능을 특별한 도움이 필요한 사람을 위해 설계하였습니다.
- 이러한 접근성 프로그램들은 시스템에 로그인하지 않고도 다음과 같은 방법을 통해 실행할 수 있습니다.
- Windows + U
- C:\\Windows\\System32\\Utilman.exe
- Shift 키를 다섯 번 눌러 C:\\Windows\\System32\\sethc.exe를 실행하는 고정키 활성화
- 공격자는 이러한 접근성 프로그램(utilman.exe, sethc.exe)을 통해 악의적인 프로그램을 실행하도록 수정하거나 권한 상승된 cmd.exe를 사용할 수 있습니다.
AppInit_DLLs
- 윈도우의 Applinit_DLLs 기능은 모든 대화형 애플리케이션의 주소 공간에 유저 정의 DLL을 로드할 수 있는 방법을 제공합니다.
- DLL이 프로세스의 주소 공간에 로드되면 해당 프로세스의 콘텍스트 내에서 실행될 수 있고, 잘 알려진 API를 가로채어 대체 기능을 수행할 수 있습니다.
- 공격자는 AppInit_DLLs 값을 설정해 악의적인 DLL에 대한 지속성을 유지할 수 있습니다.
- AppInit_DLLs 값을 설정하는 것 외에도 공격자는 LoadAppInit_DLLs 레지스트리 값을 1로 설정해 AppInit_DLLs 함수를 활성화 할 수도 있습니다.
- 하지만 windows 8 이후로 보안 부트가 활성화되어 AppInit_DLLs 함수는 비활성화되었습니다.
반응형
'Security > Reversing & Malware' 카테고리의 다른 글
[AV 탐지 우회 기법] Polymorphic 및 Metamorphic 기법 (다형성 및 변형 악성코드) (0) | 2024.03.10 |
---|---|
[지속 기법] DLL Search Order Hijacking/COM 하이재킹/서비스 (0) | 2024.03.08 |
[지속 기법] DLL Side-Loading (4) | 2024.03.06 |
[지속 기법] run 레지스트리 키 / 스케줄 작업 / 시작 폴더 (1) | 2024.01.28 |
[WIN32 API 프로그래밍] CMD를 이용한 자가 삭제 (1) | 2023.11.03 |