woonadz :)

[지속 기법] run 레지스트리 키 / 스케줄 작업 / 시작 폴더 본문

IT/악성코드

[지속 기법] run 레지스트리 키 / 스케줄 작업 / 시작 폴더

C_scorch 2024. 1. 28. 22:58
반응형

해당 포스팅은 악성코드 분석 시작하기 책을 바탕으로 작성하였습니다.


악성코드 지속 방법(1)

레지스트리 키 실행

[그림 1] windows 11의 일반적인 run 레지스트리 키 목록

  • 사진은 Windows 운영 체제에서 프로그램 및 서비스가 시스템 부팅 시 자동으로 실행되도록 설정할 수 있는 레지스트리의 위치입니다.
  • 공격자는 run 레지스트리 키에 항목을 악성코드를 추가함으로써 컴퓨터 부팅 시 자신의 악성 프로그램을 실행하고, 사용자 정보를 탈취하거나 시스템을 손상시키는 데 활용할 수 있습니다.
  • 따라서 이러한 자동 실행 항목을 모니터링하고, 신뢰할 수 없는 소프트웨어의 등록을 방지하기 위해 보안 소프트웨어 및 방화벽을 사용하여 시스템을 보호하고, 정기적으로 레지스트리를 검사하여 의심스러운 항목을 확인하는 것이 중요합니다.

 

Autoruns 실습

[그림 2] autoruns에서 확인한 자동 실행 위치

  • Sysinternal의 Autoruns 유틸리티를 사용하여 자동 실행 위치에 등록된 프로그램들을 확인할 수 있습니다.
  • 다음장에서 Autoruns를 활용하여 자동 실행 위치에 등록 된 악성코드를 확인하는 방법을 공부해보겠습니다.

 

Autoruns 실습

[그림 3] Check  VirusTotal.com

  • Autoruns를 관리자 권한으로 실행합니다. 관리자 권한으로 실행할 경우 레지스트리와 파일 시스템에 대한 완전한 액세스 권한이 활성화됩니다.
  • 메뉴에서 Options를 클릭한 다음 Scan OptionsCheck VirusTotal.com 옵션을 선택합니다.
  • Check VirusTotal.com 옵션을 통해 스캔된 항목의 악성 여부를 VirusTotal과 같은 서비스를 통해 검사할 수 있습니다.
  • Rescan 버튼을 클릭하여 스캔을 시작합니다.
  • Autoruns는 자동으로 Windows 시작 위치 및 레지스트리 항목을 검색하고 표시합니다.

 

Autoruns 실습

[그림 4] VirusTotal.com을 통한 파일 검사

  • 사진과 같이 의심되는 프로그램들을 VirusTotal에 넣었을 때 결과값을 확인할 수 있습니다.
  • Autoruns에서 확인해봐야 할 의심스러운 항목은 다음과 같습니다.
    • 패스(경로)가 이상한 프로그램 또는 파일을 가리키는 경우
    • 제조업체 정보가 없거나 알려진 악성 코드에 연결된 경우
    • 검색 결과에서 VirusTotal에서 양성으로 감지된 경우
  • 만약 의심스러운 항목이 발견되었다면 해당 항목을 비활성화하거나 삭제합니다.

 

스케줄 작업

  • 공격자는 지정된 시간이나 시스템이 시작하는 동안 악의적인 프로그램이 실행할 수 있도록 작업을 예약할 수 있습니다.
  • schtasks와 at 등의 윈도우 유틸리티를 이용해 공격자가 원하는 날짜 또는 시간에 프로그램 또는 스크립트를 스케줄링합니다.
  • 공격자는 관리자 그룹의 속한 계정으로 윈도우 유틸리티를 사용해 로컬 컴퓨터 또는 원격 컴퓨터에 작업을 생성합니다.

page 6

스케줄 작업 생성 실습

schtasks /create /tn "test" /tr "C:\\path\\to\\malware.exe" /sc daily /st 12:00

 

[그림 5] 스케줄 작업 등록

  • schtasks 명령어를 통해 스케줄 작업 생성 실습을 해보겠습니다.
  • 공격자는 사진과 같이 schtasks 명령을 사용하여 새로운 스케줄 작업을 생성할 수 있습니다.
  • 각 속성값의 의미는 다음과 같습니다.
    • /create: 새로운 작업 생성을 나타냅니다.
    • /tn "test": 작업의 이름을 설정합니다.
    • /tr "C:\\path\\to\\malware.exe": 실행할 파일의 경로와 파일 이름을 설정합니다.
    • /sc daily: 작업을 일일 스케줄로 설정합니다.
    • /st 12:00: 작업을 매일 정오(12:00 PM)에 실행하도록 설정합니다.

 

스케줄 작업 삭제 실습

schtasks /delete /tn "test" /f

[그림 6] 스케줄 작업 삭제

  • schtasks 명령어를 통해 스케줄 작업 삭제 실습을 해보겠습니다.
  • 공격자는 사진과 같이 schtasks 명령을 사용하여 스케줄 작업을 삭제할 수 있습니다.
  • 각 속성값의 의미는 다음과 같습니다.
    • /delete: 작업을 삭제하는 명령입니다.
    • /tn "MyMalware": 삭제할 작업의 이름을 지정합니다.
    • /f: 삭제 확인 메시지를 표시하지 않고 강제로 작업을 삭제합니다.

 

스케줄 작업 생성 탐지

[그림 7] 작업 스케줄러를 통해 악성코드의 스케줄 작업 생성 여부 확인

  • 악성코드가 스케줄 작업에 악성 파일을 추가하는 것을 탐지하기 위해서는 다음과 같은 방법들이 있습니다.
    • Autoruns 또는 작업 스케줄러를 사용하여 현재 스케줄된 작업 목록을 확인할 수 있습니다.
    • cmd.exe와 같은 시스템 유틸리티에서 전달하는 커맨드 라인 인수를 모니터링합니다.
    • POWERSHELL과 WMI(Windows Management Instrumentation)와 같은 관리 도구를 사용해 생성할 수 있기 때문에 해당 유틸리티들도 함께 모니터링합니다.

 

시작 폴더

[그림 8] 시작 폴더 경로

  • 공격자는 악의적인 바이너리를 시작 폴더에 추가해 악성코드를 지속 시킬 수 있습니다.
  • 윈도우 운영체제는 다음 두가지 유형의 시작 폴더를 관리합니다.
    • 유저 전역(user wide) : 유저의 시작 폴더에 존재하는 프로그램은 특정 유저에게만 실행합니다.
    • 시스템 전역(systemwide) : 시스템 폴더에 존재하는 프로그램은 모든 유저가 시스템에 로그인했을 때 실행합니다.
  • 사진의 상단 경로는 특정 사용자 Owner의 시작 프로그램 폴더에 해당하며, Owner가 로그인한 경우에만 실행됩니다.
  • 사진의 하단 경로는 모든 사용자에게 공유되는 시작 프로그램 폴더에 해당하며, 모든 사용자가 로그인한 경우에만 실행됩니다.
  • 시스템 전역 시작 폴더를 사용해 지속성을 달성하려면 관리자 권한이 필요합니다.

 

시작 폴더로 지속성을 유지하는 악성코드

[그림 9] 시작 폴더를 악용한 backdoor

  • 시작 폴더를 통해 지속성을 유지하는 악성코드는 사진과 같이 동작할 수 있습니다.
  1. Backdoor 악성코드는 %AppData% 디렉터리에 파일을 드롭합니다.
  2. 드롭한 파일을 가리키는 바로가기(.lnk) 파일을 생성합니다.
  3. 시작 폴더에 바로가기 파일을 추가합니다.
  • 결과적으로 시스템이 시작했을 때 바로가기 파일을 통해 드롭한 파일을 실행할 수 있습니다.
반응형