악성 OneNote 파일을 통한 IcedID·Nokoyawa 침해사고

JHLee·2026년 7월 25일

침해 사고 사례

목록 보기
4/5
post-thumbnail

1. 개요

2023년 2월 말, 공격자는 ‘보안 메시지(Secure Message)’를 위장한 피싱 이메일에 악성 Microsoft OneNote 첨부파일(.one)을 실어 유포했다. 사용자가 첨부파일 내 Open 버튼을 클릭하자 숨겨진 배치 파일이 실행되며 PowerShell로 IcedID 악성코드가 다운로드됐고, 이후 약 21일간은 눈에 띄는 추가 행위 없이 C2 Beaconing만 유지됐다.

22일째부터 시스템·도메인 정보를 탐색하기 시작한 공격자는 33일째에 Cobalt Strike를 배포해 AdFind·NetScan으로 내부망을 정찰했다. 이후 AnyDesk로 지속적인 원격 접속 수단을 마련하고, 이미 Domain Admins 그룹에 속해 있던 감염 계정을 그대로 활용해 별도의 권한 상승 없이 파일 서버와 백업 서버로 이동했다.

공격자는 중요 자료를 FileZilla로 외부에 유출한 뒤 Nokoyawa 랜섬웨어를 배포했다. 최초 감염부터 랜섬웨어 실행까지 약 812시간(34일)이 소요됐다.


2. 사고 내용

2.1 악성 OneNote 파일을 통한 최초 침투

공격자는 ‘보안 메시지’가 포함되어 있다는 내용의 피싱 이메일을 여러 기업에 전송했다. 이메일에는 .one 파일이 첨부되어 있었고, 문서 안에는 흐릿한 이미지와 함께 Open 버튼이 표시되어 있었다. 버튼 뒤에는 O p e n.cmd라는 배치 파일이 숨겨져 있었으며, 사용자가 OneNote의 경고 메시지를 통과해 버튼을 실행하자 감염이 시작됐다.

2.2 PowerShell을 이용한 IcedID 다운로드 및 실행

배치 파일은 Invoke-WebRequest를 호출해 외부 서버에서 파일을 다운로드했다. 요청 URL은 GIF 이미지처럼, 저장 파일(C:\ProgramData\COIm.jpg)은 JPG처럼 위장했지만 실제로는 IcedID DLL이었다. 공격자는 rundll32.exe C:\ProgramData\COIm.jpg,init으로 정상 Windows 프로그램을 이용해 악성 DLL을 실행했다.

ONENOTE.EXE → cmd.exe("O p e n.cmd") → powershell.exe(다운로드) → rundll32.exe(init 실행)

IcedID 실행 이후 감염 시스템은 외부 C2 서버와 HTTP·TLS 기반 통신을 시작했다.

2.3 예약 작업을 통한 지속성 확보

IcedID는 AppData\Roaming 경로에 첫 번째 실행 단계인 Cadiak.dll과, 메모리에서 불러오는 인코딩된 두 번째 단계 데이터 license.dat를 생성했다. 이후 사용자가 로그인할 때마다 rundll32.exeCadiak.dll이 재실행되도록 예약 작업을 등록해, 재부팅이나 재로그인 이후에도 자동으로 실행되도록 지속성을 확보했다.

2.4 장기간의 C2 통신과 잠복

초기 감염 이후 약 21일 동안은 눈에 띄는 추가 행위 없이 감염 시스템과 IcedID C2 서버 간 주기적인 Beaconing만 이어졌다(일부 연결은 약 10분 간격으로 12~28일간 지속). 22일째에는 IcedID가 systeminfo, ipconfig /all, net view, net group "Domain Admins" /domain, nltest /domain_trusts 등을 실행해 설치된 보안 제품, 운영체제·네트워크 설정, 도메인 신뢰 관계, 접근 가능한 내부 시스템, 도메인 관리자 그룹을 확인했다.

2.5 Cobalt Strike 배포 및 내부 환경 탐색

침입 33일째, IcedID는 최초 감염 시스템에 여러 개의 Cobalt Strike Beacon을 생성·실행했다. DLL 형태 Beacon은 사용자 임시 폴더에 저장된 뒤 regsvr32.exe로 실행됐으며, 실행 파일 형태도 함께 사용됐다. Beacon은 정상 프로세스에 코드를 삽입하고, AD.batAdFind.exe로 도메인 신뢰 관계·사용자·그룹·OU·서브넷·컴퓨터 정보를 수집했다. nslookup으로 내부 호스트명을 확인하고 NetScan으로 DNS(53), Kerberos(88), RPC(135), LDAP(389), HTTPS(443), SMB(445), RDP(3389) 등의 서비스 포트를 탐색했으며, \postex_*, \status_* 형태의 Cobalt Strike 특유 Named Pipe도 생성됐다.

2.6 AnyDesk 설치와 고권한 계정 악용

공격자는 PowerShell 스크립트로 C:\ProgramData에 AnyDesk를 다운로드해 Windows 시작 시 자동 실행되도록 설치하고, 명령줄로 무인 접속 비밀번호를 설정했다(--install, --start-with-win, --silent, --set-password). 이를 통해 감염 시스템에 직접 접속해 파일과 공유 폴더를 확인했다.

특히 악성 OneNote 파일을 실행한 사용자 계정이 이미 Domain Admins 그룹에 포함되어 있어, 공격자는 별도의 권한 상승 과정 없이 도메인 관리자 권한을 곧바로 활용할 수 있었다.

2.7 자격 증명 접근 및 중요 정보 수집

공격자는 Cobalt Strike Beacon으로 rundll32.exe 프로세스를 생성해 lsass.exe에 접근했다. LSASS 프로세스 접근과 원격 스레드 생성이 확인됐으며, 메모리에 저장된 자격 증명을 추출해 최초 감염 계정과는 다른 도메인 관리자 계정을 추가로 사용한 정황도 확인됐다. 이후 파일 공유 경로에서 비밀번호 관련 파일, 개인 식별 정보, 금융·보험 문서, 업무 자료(Word·Excel·PDF)를 열람했다.

2.8 RDP를 이용한 내부 이동

공격자는 확보한 고권한 계정으로 RDP를 이용해 백업 서버와 파일 서버에 접속했다. 새 서버에 접속할 때마다 Internet Explorer로 Cobalt Strike Beacon을 다운로드하고 동일한 AnyDesk 설치 스크립트를 배포해, 각 서버에 RDP 외에 별도의 재접속 경로를 추가로 확보했다.

2.9 FileZilla를 이용한 데이터 유출

파일 서버에 접속한 공격자는 보험 관련 문서 등 업무 자료를 검토한 뒤 FileZilla를 다운로드했다. FileZilla로 외부 서버와 SSH·SFTP 연결을 수립해 수집한 자료를 수 시간 동안 전송했으며, 유출 시작 약 18시간 뒤 랜섬웨어 배포 단계로 넘어갔다. 이후 FileZilla를 삭제해 사용 흔적을 지우는 행위도 확인됐다.

2.10 Nokoyawa 랜섬웨어 배포

데이터 유출을 마친 공격자는 NetScan으로 내부망을 다시 조사한 뒤, 파일 서버와 백업 서버에 정상 프로세스명(svchost.exe)으로 위장한 Nokoyawa 랜섬웨어와 실행용 배치 스크립트를 배치했다. 배치 파일에는 네트워크 공유 파일 암호화, 숨겨진 드라이브 탐색, 특정 디렉터리·확장자 제외, 섀도 복사본 삭제, 랜섬노트 생성 기능이 포함되어 있었다.

백업 서버에서는 백업 프로그램이 일부 파일을 사용 중이어서 암호화가 실패하자, IObit Unlocker로 파일 잠금을 해제하고 Process Hacker와 Notepad++로 실행 문제를 확인하며 랜섬웨어를 여러 차례 재실행했다. 공격자는 전체 내부망이 아닌 파일 서버·백업 서버라는 핵심 시스템에 공격을 집중했다.


3. 공격 흐름 요약

단계주요 행위
초기 침투피싱 메일의 악성 OneNote 첨부파일 실행 → 배치 스크립트 → PowerShell로 IcedID DLL 다운로드·실행
지속성 확보예약 작업으로 로그인마다 Cadiak.dll 재실행
잠복(약 21일)IcedID C2와 주기적 Beaconing만 유지
정찰 (22일 차)시스템 정보, 도메인 신뢰 관계, 관리자 그룹 확인
추가 도구 배포 (33일 차)Cobalt Strike Beacon 실행, AdFind·NetScan으로 내부망 탐색
지속적 접근 확보AnyDesk 설치, 이미 확보된 도메인 관리자(Domain Admins) 계정 활용
자격 증명 접근LSASS 메모리 접근으로 추가 도메인 관리자 계정 확보
내부 이동RDP로 백업·파일 서버 이동, 각 서버에 Cobalt Strike·AnyDesk 재설치
데이터 수집·유출파일 서버 문서 확인 후 FileZilla로 SFTP 유출(약 18시간), 이후 도구 삭제
랜섬웨어 배포파일·백업 서버에 Nokoyawa 배포, IObit Unlocker·Process Hacker로 재실행

4. 주요 도구 및 구성요소

4.1 악성 OneNote 첨부파일

.one 파일 내부에 숨겨둔 O p e n.cmd 배치 파일을 실행시키는 최초 침투 수단이다. OneNote가 생성한 실행 파일과 Mark of the Web, 문서 프로그램에서의 CMD·PowerShell 실행 여부를 확인해야 한다.

4.2 PowerShell

Invoke-WebRequest로 악성 DLL을 다운로드하는 데 사용됐다. 승인되지 않은 외부 서버 연결, ProgramData·Temp 경로의 파일 생성, DownloadFile·-OutFile·IEX 같은 문자열이 확인 대상이다.

4.3 IcedID

원래 뱅킹 트로이 목마로 알려진 모듈형 악성코드로, 초기 감염 유지·C2 통신·시스템 탐색·Cobalt Strike 배포에 사용됐다. 이미지 확장자로 위장한 DLL이 rundll32.exe로 실행되는 패턴이 특징이다.

4.4 예약 작업(Scheduled Task)

로그인 트리거로 rundll32.exe를 통해 DLL을 재실행하도록 등록한 지속성 메커니즘이다. 작업 이름뿐 아니라 XML에 포함된 실행 명령·인자·생성 계정을 함께 확인해야 한다.

4.5 Cobalt Strike

침투 테스트용 상용 도구로, 원격 명령 실행·프로세스 인젝션·내부 정찰·자격 증명 접근·추가 도구 배포에 악용됐다. regsvr32.exe를 통한 DLL 실행과 \postex_*, \status_* 형태의 Named Pipe가 특징적인 흔적이다.

4.6 AdFind와 NetScan

AdFind는 AD의 사용자·그룹·컴퓨터·도메인 신뢰 관계를 조회하는 명령줄 도구이며, NetScan은 DNS·Kerberos·LDAP·SMB·RDP 등 내부 서비스 정보를 확인하는 네트워크 스캐너다. 두 도구 모두 정상 관리 업무에도 쓰이므로 실행 시점과 실행 계정이 판단 기준이 된다.

4.7 AnyDesk

정상적인 원격 데스크톱 프로그램이지만, 감염 시스템과 내부 서버에 지속적으로 접속하는 수단으로 악용됐다. 비표준 경로 설치, --silent/--start-with-win 옵션, 명령줄을 통한 비밀번호 설정, Windows 서비스 등록 여부를 확인해야 한다.

4.8 FileZilla

FTP·FTPS·SFTP 파일 전송 프로그램으로, 내부 자료를 외부 서버로 유출하는 데 사용됐다. 신규 설치, 알려지지 않은 외부 IP로의 장시간 대량 전송, 전송 종료 후 삭제 여부가 확인 대상이다.

4.9 IObit Unlocker와 Process Hacker

각각 다른 프로세스가 사용 중인 파일의 잠금을 해제하는 도구, 실행 중인 프로세스·서비스를 확인·제어하는 관리 도구다. 백업 프로그램이 점유한 파일을 암호화하고 랜섬웨어 실행 문제를 해결하는 과정에서 사용된 것으로 분석됐다.

4.10 Nokoyawa

시스템 파일을 암호화하고 금전을 요구하는 랜섬웨어로, 파일 서버와 백업 서버를 중심으로 배포됐다. 정상 프로세스명(svchost.exe)으로 위장한 실행 파일, 네트워크 공유 암호화, 섀도 복사본 삭제, 랜섬노트 생성이 특징이다.


5. MITRE ATT&CK 매핑

TacticTechniqueID
Initial AccessPhishingT1566
ExecutionUser Execution: Malicious FileT1204.002
ExecutionCommand and Scripting Interpreter (Windows Command Shell / PowerShell)T1059.003 / T1059.001
Command and ControlIngress Tool TransferT1105
Defense EvasionSystem Binary Proxy Execution (Rundll32 / Regsvr32)T1218.011 / T1218.010
Defense EvasionMasquerading: Masquerade File TypeT1036.008
PersistenceScheduled Task/JobT1053.005
Command and ControlApplication Layer Protocol: Web ProtocolsT1071.001
DiscoverySystem Information DiscoveryT1082
DiscoveryDomain Trust DiscoveryT1482
DiscoveryPermission Groups Discovery: Domain GroupsT1069.002
DiscoveryNetwork Service DiscoveryT1046
Defense EvasionProcess InjectionT1055
Credential AccessOS Credential Dumping: LSASS MemoryT1003.001
Command and ControlRemote Access SoftwareT1219.002
PersistenceCreate or Modify System Process: Windows ServiceT1543.003
Lateral MovementRemote Services: RDPT1021.001
CollectionData from Network Shared DriveT1039
ExfiltrationExfiltration Over Alternative ProtocolT1048
Defense EvasionFile DeletionT1070.004
ImpactData Encrypted for ImpactT1486
ImpactInhibit System RecoveryT1490

6. 주요 IOC 및 로그 아티팩트

구분확인 대상
초기 침투 파일악성 .one 첨부파일, O p e n.cmd, COIm.jpg(실제는 DLL)
지속성 아티팩트Cadiak.dll, license.dat, 로그인 트리거 예약 작업
C2·후속 도구Cobalt Strike DLL/EXE Beacon, Named Pipe(\postex_*, \status_* 등)
내부 탐색 도구AdFind.exe, AD.bat, NetScan 실행 흔적
원격 접속 도구AnyDesk 설치 경로(C:\ProgramData), 서비스 등록, Client ID
데이터 유출 도구FileZilla 설정 XML, 외부 SFTP 접속 정보, 사후 삭제 흔적
랜섬웨어 관련위장된 svchost.exe(Nokoyawa), 실행용 배치 스크립트, IObit Unlocker·Process Hacker 실행 흔적
주요 이벤트 IDSysmon 1(프로세스), 3(네트워크), 8(원격 스레드), 10(LSASS 접근), 11(파일 생성), 15(MOTW), 17/18(Named Pipe)
Windows 이벤트Security 4688(프로세스 생성), 4698(예약 작업), 4624(RDP 로그인); System 7045(서비스 설치); PowerShell 4104(스크립트 블록)

관련 로그가 생성되려면 Windows 감사 정책과 Sysmon 설정이 사전에 활성화되어 있어야 한다.


7. 탐지 포인트

OneNote를 통한 명령 실행: ONENOTE.EXE → cmd.exe → powershell.exe/rundll32.exe처럼 문서 프로그램에서 명령 인터프리터가 실행되는 흐름은 일반적인 문서 열람에서는 드물다. 생성된 .cmd/.ps1/.dll 파일의 Mark of the Web과 실행 직후의 외부 통신을 함께 확인한다.

PowerShell 외부 통신과 파일 위장: Invoke-WebRequest/WebClient로 승인되지 않은 서버에 연결해 ProgramData·Temp 경로에 파일을 생성하는지 확인한다. 이미지 확장자를 가졌지만 실제로는 DLL/실행 파일이거나, rundll32.exe·regsvr32.exe의 인자로 전달된 파일은 의심 대상이다.

예약 작업과 장기 Beaconing: 로그인 트리거로 rundll32.exeAppData 경로의 DLL을 참조하는 예약 작업, 그리고 동일 목적지로 일정 간격이 장기간 반복되는 통신(이번 사례는 최대 28일)을 함께 본다.

내부 탐색과 Cobalt Strike: systeminfo, net group, nltest 등 탐색 명령의 연속 실행, AdFind/NetScan 실행, regsvr32.exe를 통한 DLL 로드와 Cobalt Strike 특유의 Named Pipe, LSASS 프로세스 접근·원격 스레드 생성을 확인한다.

AnyDesk·RDP 오남용: 신규 설치(Event ID 7045) 후 무인 접속 비밀번호 설정, RDP 로그인 이후 곧바로 이어지는 추가 도구 다운로드와 재설치 여부를 연결해서 본다.

FileZilla 유출과 랜섬웨어 실행: 신규 설치된 FileZilla가 알려지지 않은 외부 IP로 장시간 대량 전송한 뒤 삭제되는지, 이후 짧은 시간 안에 파일 대량 변경·확장자 변경·섀도 복사본 삭제·백업 프로세스 중단이 이어지는지 확인한다.

구분정상 행위의심 행위
문서 실행 후 프로세스뷰어 프로세스만 유지명령 인터프리터·PowerShell 연쇄 실행
원격 관리 도구사전 승인된 설치감염 이후 신규 설치 후 무인 접속 설정
계정 권한업무 계정과 관리자 계정 분리일반 업무에 도메인 관리자 계정 상시 사용
데이터 전송 도구승인된 목적지와 계정으로 사용신규 설치 후 미승인 외부로 대량 전송, 이후 삭제
파일 행위소수 파일 수정짧은 시간 내 대량 수정·암호화, 백업 프로세스 중단 동반

8. 정리

이 사례는 최초 감염부터 랜섬웨어 실행까지 약 34일이 소요돼 공격 단계마다 여러 차례 탐지 기회가 있었음을 보여준다. PowerShell, AnyDesk, FileZilla처럼 정상 업무에도 쓰이는 도구가 공격에 악용됐기 때문에, 프로그램 이름만으로 판단하기보다 실행 사용자·부모 프로세스·명령줄·파일 경로·네트워크 통신과 선후행 행위를 함께 봐야 한다.

특히 감염된 계정이 이미 Domain Admins 권한을 갖고 있었다는 점이 공격자의 권한 확보와 내부 이동을 크게 쉽게 만들어 피해 범위를 확대했다. 일반 업무 계정과 관리자 계정을 분리하고 최소 권한 원칙을 적용하는 것이 무엇보다 중요하다.

결국 IcedID의 장기간 잠복처럼 조용한 초기 단계라 하더라도, 예약 작업·비정상 파일 위장·장기 Beaconing 같은 흔적을 놓치지 않고 초기에 연결해서 보는 것이 34일의 여유를 실제 대응 시간으로 활용하는 길이다.


9. 참고 자료

  1. The DFIR Report
    From OneNote to RansomNote: An Ice Cold Intrusion
  2. MITRE ATT&CK
    MITRE ATT&CK Enterprise Matrix
  3. Microsoft Learn (Sysinternals)
    Sysmon - Windows Sysinternals
  4. Microsoft Learn
    4624(S): An account was successfully logged on
profile
렛츠고

0개의 댓글