-
[악성코드] Windows Malware Persistence 본문
powershell task scheduler documentation :
New-ScheduledTaskTrigger (scheduledtasks)
The New-ScheduledTaskTrigger cmdlet creates and returns a new scheduled task trigger object. You can use a time-based trigger or an event-based trigger to start a task. Time-based triggers include starting a task at a specific time or starting a task multi
docs.microsoft.com
악성 코드가 drop되면 다양한 정책을 피해 execution 하는 것도 중요하지만 persistence를 만드는 것도 중요하다. 주로 공격 대상이 되는 workstation 같은 endpoint device들은 다양한 이유(퇴근할 때, 장기간 이용하지 않을 때, 유지보수)로 시스템을 재시동하게 되는데, 이 때 persistence를 고려하지 않으면 유효타를 기대할 수 없다.
이 때 악성 코드들이 persistence를 만드는 방법은 다양한데, Windows 환경에서는 task scheduler를 사용하는 경우가 가장 안정적인 것 같다. 작업 스케줄러는 평소에 볼 일이 별로 없으며 기존의 job들에 섞여 판별하기도 어렵기 때문이다. 아래 예제는 powershell 스크립트를 이용하여 task scheduler에 자동으로 백도어를 등록하는 방법에 대해 제시한다. powershell의 download 기능을 이용해 악성코드를 drop한 경우 kill chain(installation -> persistence -> execution)의 연계 작용을 효과적으로 구성할 수 있을 것이다. 또한, 여러개의 파일을 등록하여 lateral movement를 노릴 수도 있기 때문에 내가 가장 자주쓰는 방법이다.
$Sta = New-ScheduledTaskAction -Execute "C:\\Windows\\Temp\\backdoor.exe"
$Stt = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
Register-ScheduledTask malware01 -Action $Sta -Trigger $Stt
우선 %TEMP%에 backdoor.exe라고 하는 악성 코드가 drop되어 있다고 가정하고, 사용자가 로그온 할 때마다 실행되도록 스크립트를 만든 것이다. 이를 실행하면 아래와 같이 작업 스케줄러에 등록이 된다. 단, 로그온 하는 계정은 스크립트를 실행하는 유저만 된다(UAC 때문). 때문에 실행하는 주체의 USERNAME을 받아와 실행한다.
powershell의 강력함에 대해 알게 되었다.
'Workspace' 카테고리의 다른 글
[Windows] Powershell 배경화면 바꾸기 (0) | 2020.08.24 |
---|---|
[Windows] Powershell 백그라운드 실행 (0) | 2020.08.20 |
[Windows] C 프로그램 백그라운드 실행 (0) | 2020.08.13 |
[악성코드] CVE-2017-8291 한글 문서(.hwp) 악성코드 (0) | 2020.08.12 |
[Wireshark] 일정 주기로 PCAP 자동 저장 (0) | 2020.08.12 |