Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ScheduleRunner — 레드 팀 운영에서 지속성과 측면 이동을 위해 예약된 작업을 더 유연하게 사용자 지정할 수 있는 C# 도구 | Kitploit
도구/GitHubGitHub/netero1010/schedulerunner
Persistence MechanismsIDS/IPS EvasionLateral MovementPost-ExploitationRed Teaming
GitHubnetero1010/schedulerunner

ScheduleRunner

레드 팀 운영에서 지속성과 측면 이동을 위해 예약된 작업을 더 유연하게 사용자 지정할 수 있는 C# 도구

저장소 보기
347481년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ScheduleRunner - 레드 팀 작전에서 지속성 및 측면 이동을 위해 예약 작업을 사용자 정의할 수 있는 더 많은 유연성을 제공하는 C# 도구


예약 작업은 지난 10년 동안 가장 인기 있는 공격 기술 중 하나였으며, 현재도 해커/레드 팀원들이 지속성 및 측면 이동을 위해 일반적으로 사용하고 있습니다.

이미 여러 C# 도구가 예약 작업을 사용한 공격을 시뮬레이션하기 위해 개발되었습니다. 저는 그중 일부를 사용해 보았지만 각각 예약 작업 사용자 정의에 한계가 있었습니다. 따라서 이 프로젝트는 제가 필요로 하는 기능을 포함하고 예약 작업 사용자 정의에 충분한 유연성을 제공하는 C# 도구(CobaltStrike execute-assembly 호환)를 제공하는 것을 목표로 합니다.

스크린샷:

HowTo

메서드 (/method):

메서드기능
create새 예약 작업 생성
delete기존 예약 작업 삭제
run기존 예약 작업 실행
query예약 작업 또는 폴더 아래 모든 예약 작업에 대한 세부 정보 쿼리
queryfolders예약 작업의 모든 하위 폴더 쿼리
move예약 작업을 사용한 측면 이동 수행 (자동 생성, 실행 및 삭제)

예약 작업 생성 옵션 (/method:create):

[*]은(는) 필수 필드입니다.

예약 작업 삭제 옵션 (/method:delete):

메서드기능
[*] /taskname예약 작업의 이름 지정
/folder예약 작업이 저장되는 폴더 지정 (기본값: \)

[*]은(는) 필수 필드입니다.

예약 작업 실행 옵션 (/method:run):

메서드기능
[*] /taskname예약 작업의 이름 지정
/folder예약 작업이 저장되는 폴더 지정 (기본값: \)
/remoteserver원격 컴퓨터의 호스트 이름 또는 IP 주소 지정

[*]은(는) 필수 필드입니다.

예약 작업 쿼리 옵션 (/method:query):

메서드기능
/taskname예약 작업의 이름 지정
/folder예약 작업이 저장되는 폴더 지정 (기본값: \)
/remoteserver원격 컴퓨터의 호스트 이름 또는 IP 주소 지정

[*]은(는) 필수 필드입니다.

예약 작업 측면 이동 옵션 (/method:move):

[*]은(는) 필수 필드입니다.

예제

"Cleanup"이라는 예약 작업을 생성하여 매일 오후 11:30에 실행합니다.

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Some description" /author:netero1010

원격 서버에서 4시간마다 실행되는 "Cleanup"이라는 예약 작업을 생성합니다.

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:hourly /modifier:4 /program:rundll32.exe /argument:c:\temp\payload.dll /remoteserver:TARGET-PC01

"Cleanup"이라는 예약 작업을 삭제합니다.

ScheduleRunner.exe /method:delete /taskname:Cleanup

"Cleanup"이라는 예약 작업을 실행합니다.

ScheduleRunner.exe /method:run /taskname:Cleanup

원격 서버의 "\Microsoft\Windows\CertificateServicesClient" 폴더 아래에 있는 "Cleanup"이라는 예약 작업의 세부 정보를 쿼리합니다.

ScheduleRunner.exe /method:query /taskname:Cleanup /folder:\Microsoft\Windows\CertificateServicesClient /remoteserver:TARGET-PC01

원격 서버의 특정 폴더 "\Microsoft\Windows\CertificateServicesClient" 아래에 있는 모든 예약 작업을 쿼리합니다.

ScheduleRunner.exe /method:query /folder:\Microsoft\Windows\CertificateServicesClient /remoteserver:TARGET-PC01

예약 작업의 모든 하위 폴더를 쿼리합니다.

ScheduleRunner.exe /method:queryfolders

특정 사용자 계정을 사용하여 원격 서버로 예약 작업을 통한 측면 이동을 수행합니다.

ScheduleRunner.exe /method:move /taskname:Demo /remoteserver:TARGET-PC01 /program:rundll32.exe /argument:c:\temp\payload.dll /user:netero1010

예약 작업 숨기기 기술을 사용하여 "Cleanup"이라는 예약 작업을 생성합니다:

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Some description" /author:netero1010 /technique:hide

예약 작업 숨기기 기술을 사용한 "Cleanup"이라는 예약 작업을 삭제합니다:

ScheduleRunner.exe /method:delete /taskname:Cleanup /technique:hide

예약 작업 숨기기 기술

이 기술은 위협 행위자 HAFNIUM이 사용했으며 최근 Microsoft에 의해 발견되었습니다. 이 기술은 예약 작업을 도구로 쿼리할 수 없고 작업 스케줄러에서 볼 수 없도록 만드는 것을 목표로 합니다.

이 기술을 사용하려면 "NT AUTHORITY/SYSTEM" 권한이 필요하며, ScheduleRunner가 다음을 수행합니다:

  1. "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\[작업 이름]"에서 "SD" 값 삭제
  2. 예약 작업 XML 파일 "C:\Windows\System32\Tasks\[작업 이름]" 삭제

이 기술을 사용하여 생성된 예약 작업을 제거하려면 삭제 메서드에 "/technique:hide"를 추가하여 올바르게 제거해야 합니다.

이 기술의 단점:

작업이 레지스트리를 통해 삭제되어도 다음 시스템 재부팅까지 계속 실행됩니다. 따라서 운영 중인 서버에서는 이 기술을 사용하지 않는 것이 좋습니다.

데모

HowTo

사용된 라이브러리 및 참고 자료:

라이브러리링크
TaskSchedulerhttps://github.com/dahall/TaskScheduler
참고 자료링크
SharpPersisthttps://github.com/mandiant/SharPersist
예약 작업 숨기기 기술https://www.microsoft.com/security/blog/2022/04/12/tarrask-malware-uses-scheduled-tasks-for-defense-evasion/
도구 다운로드
메서드기능
[*] /taskname예약 작업의 이름 지정
[*] /program작업이 실행할 프로그램 지정
[*] /trigger일정 유형 지정. 유효한 값: "minute", "hourly", "daily", "weekly", "onstart", "onlogon", "onidle"
/modifier일정 유형 내에서 작업이 실행되는 빈도 지정. "minute"(예: 1-1439분), "hourly"(예: 1-23시간), "weekly"(예: mon,sat,sun) 일정 유형에만 적용 가능
/starttime일별 일정 유형의 시작 시간 지정 (예: 23:30)
/argument프로그램의 명령줄 인수 지정
/folder예약 작업이 저장되는 폴더 지정 (기본값: \)
/workingdir예약 작업이 실행될 작업 디렉터리 지정
/author예약 작업의 작성자 지정
/description예약 작업에 대한 설명 지정
/remoteserver원격 컴퓨터의 호스트 이름 또는 IP 주소 지정
/user지정된 사용자 계정으로 작업 실행
/technique회피 기술 지정:
- "hide": HAFNIUM 악성코드에서 사용된 기술로, 작업 쿼리에서 예약 작업을 숨깁니다

[!] https://www.microsoft.com/security/blog/2022/04/12/tarrask-malware-uses-scheduled-tasks-for-defense-evasion/
[!] 이 기술은 원격 레지스트리 권한으로 인해 원격 실행을 지원하지 않습니다. "NT AUTHORITY\SYSTEM"이 필요하며, 작업 삭제 후에도 시스템 재부팅까지 작업이 계속 실행됩니다.
/remoteserver원격 컴퓨터의 호스트 이름 또는 IP 주소 지정
/technique회피 기술을 사용하여 예약 작업이 생성된 경우 지정:
- "hide": "예약 작업 숨기기" 기술을 사용하여 생성된 예약 작업 삭제

[!] 삭제에는 "NT AUTHORITY\SYSTEM"이 필요하며, 작업 삭제 후에도 시스템 재부팅까지 작업이 계속 실행됩니다.
메서드기능
[*] /taskname예약 작업의 이름 지정
[*] /program작업이 실행할 프로그램 지정
[*] /remoteserver원격 컴퓨터의 호스트 이름 또는 IP 주소 지정
/trigger일정 유형 지정. 유효한 값: "minute", "hourly", "daily", "weekly", "onstart", "onlogon", "onidle"
/modifier일정 유형 내에서 작업이 실행되는 빈도 지정. "minute"(예: 1-1439분), "hourly"(예: 1-23시간), "weekly"(예: mon,sat,sun) 일정 유형에만 적용 가능
/starttime일별 일정 유형의 시작 시간 지정 (예: 23:30)
/argument프로그램의 명령줄 인수 지정
/folder예약 작업이 저장되는 폴더 지정 (기본값: \)
/workingdir예약 작업이 실행될 작업 디렉터리 지정
/author예약 작업의 작성자 지정
/description예약 작업에 대한 설명 지정
/user지정된 사용자 계정으로 작업 실행