vohuk ransomware
분석 개요
2022년 하반기에 발견된 새로운 랜섬웨어로 분석가들이 이미 세 번째 버전이 등장한 상태라고 하며, 즉 랜섬웨어 개발자가 진지하게 랜섬웨어 향상과 업그레이드를 진행하고 있다고 볼 수 있다.

Vohuk 랜섬웨어는 여타 다른 랜섬웨어와 같이 Windows 시스템을 대상으로 확산하고 있다. 또한, README.txt라는 파일에 협박 편지를 남겨두고 이메일을 통해 협상을 진행하는 것으로 확인됐다. 그리고 악성 행위에 대한 로그를 남긴다.
파일 정보
구분 | vohuk |
Type | exe 실행 파일 |
Behavior | ransomware |
MD5 | 428e2d6500b98a6059153e4a99bee22c |
Description | Vohuk Ransomware V1.3 |
동작 과정

상세 분석
Vohuk 랜섬웨어는 안티 디버깅 기법을 사용하여 분석을 어렵게 하고, 중복실행 방지를 위한 뮤텍스를 생성한다.


악성 행위에 필요한 파일이나 악성 행위에 대한 로그를 기록하는 파일들을 저장하기 위해 폴더를 생성한다.

악성 행위에 대한 로그를 기록하기 위해 LOG.txt 파일을 생성한다.

SeDebugPrivilege 권한을 획득하여 권한을 상승하거나 파일을 생성·수정하는 등의 API 호출하는데 보안의 문제가 없도록 한다.


Vohuk 랜섬웨어는 원활한 악성 행위를 위해 권한을 상승한다. 또한, 운영체제의 주 버전과 부 버전을 탈취하여 Windows 2000, Windows XP, Windows Serever 2003, Windows Server 2003 R2 이상이면 winlogon.exe 권한을 가져온다.





자기 자신을 복제하여 시스템이 부팅될 때마다 자동으로 실행되게끔 레지스트리에 등록한다.




사용자의 윈도우 정보. 세션ID, 메모리 정보 등을 가져와 INF.txt라는 파일에 작성




파일에 작성되는 명 | 의미 |
---|---|
WinVer | 윈도우 버전 |
SessionID | SID |
MEM | 메모리 용량 |
NumberOfProcessors | 프로세스 갯수 |
ThreadsCount | 쓰레드 갯수 |
IsServer | 서버 유무 |
InDomain | 도메인 유무 |
IsPDC | 분산 컴퓨터 유무 |
SSE2 | SSE2 명령어 지원 유무 |
AVX2 | AVX2 지원 유무 |
UserName | 로그인한 유저명 |
NETBIOS | 컴퓨터 이름 |
UID | User ID |
Recyclebin 경로를 확인하여 휴지통에 들어있는 불필요한 자료들을 삭제한다.

복구를 어렵게하기 위해 WQL 명령어를 통해 COM Instance를 사용하여 VolumeShadowsCopy를 삭제한다.


랜섬웨어의 동작에 방해가 되는 서비스 활동을 중지한다.

vss | VolumeShadowCopy 관련 서비스 |
sql | SQL 관련 서비스 |
svc$ | SVSVC 등 암호화에 방해가 되는 서비스 |
memtas | Mail 관련 서비스 |
mepocs | Mail 관련 서비스 |
sophos | Sophos 보안 소프트웨어 관련 서비스 |
veeam | Veeam Backup Solution 관련 서비스 |
backup | Backup 관련 서비스 |
msexchange | Mail 관련 서비스 |
MSSQL | SQL 관련 서비스 |
숨겨진 드라이브까지 암호화하기 위해서 모든 드라이브를 찾아서 마운트한다.


파일 암호화를 병렬화하기 위해 비동기 I/O Port를 생성하고 파일을 암호화할 때 문제가 생기지 않기 하기 위해 최대 절전 모드로 전환되는 것을 중지한다.

파일 암호화하는 함수 쓰레드 16개를 생성한다.


Vohuk 랜섬웨어는 README.txt의 텍스트 파일 형태로 금전요구 및 지불 방식에 대한 설명문을 남기게 된다. 또한, 디렉토리 화이트 리스트 문자열을 통해 화이트 리스트에 해당하는 문자열이면 암호화 대상 디렉토리에서 제외하고 그렇지 않으면 암호화 대상 디렉토리이다.



Windows | $Windows.~bt |
$windows.~ws | windows.old |
windows nt | application data |
AppData | All Users |
Public | Boot |
Intel | ProgramData |
PerfLogs | System Volume Information |
MSOCache | $RECYCLE.BIN |
Default | Config.Msi |
tor browser | msbuild |
internet explorer | common files |
microsoft.net | microsoft |
windows defender | windowsapps |
windowspowershell | windows security |
windows photo viewer | |
mozilla |
확장자 및 파일명 화이트 리스트 문자열을 통해 화이트 리스트에 해당하는 문자열이면 암호화 대상 파일에서 제외하고 그렇지 않으면 암호화 대상 파일이다.

.dll | .exe | .sys |
.efi | .drv | .msi |
.lnk | .reg | .hta |
.Vohuk | .ico |

ntldr | ntuser.dat |
bootsect.bak | ntuser.dat.log |
autorun.inf | thumbs.db |
iconcache.db | bootfont.bin |
boot.ini | desktop.ini |
ntuser.ini | bootmgr |
BOOTNXT | README.txt |
암호화 대상 파일명을 [랜덤].Vohuk으로 변경한다.


BCryptGenRandom 함수로 암호화 키를 생성하고 Make_key 함수들을 통해 연산 후 다시 한번 암호화 키 연산을 거친 후 파일 암호화에 사용된다.





파일을 암호화하기 전 파일의 크기를 확인하여 10MB 이상이면 다시 한번 확장자 화이트 리스트를 검사하고 암호화 키값 연산을 진행한 후에 암호화 함수를 수행하여 부분적으로 파일이 암호화된다. 파일의 크기가 10MB 미만이면 바로 암호화 함수를 통해 파일이 전체가 암호화된다. 또한, 파일의 첫 200byte는 xor 연산으로 암호화된다.




.4dd | .4dl | .dcx | .exb | .icr |
.accdc | .accde | .accdr | .ddl | .mdt |
.accdt | .accft | .adb | .dlis | .fdb |
.ade | .adf | .adp | .dp1 | .fic |
.arc | .ora | .alf | .dqy | .fmp |
.ask | .btr | .bdf | .dsk | .fmp12 |
.cat | .cdb | .ckp | .dsn | .fmpsl |
.cma | .cpd | .dacpac | .dtsx | .fol |
.dad | .dadiagrams | .daschema | .dxl | .fp3 |
.frm | .gdb | .grdb | .gwi | .hdb |
.his | .ib | .idb | .ihx | .itdb |
.db | .db-shm | .db-wal | .eco | .fp4 |
.db3 | .dbc | .dbf | .ecx | .fp5 |
.dbs | .dbt | .dbv | .edb | .fp7 |
.dbx | .dcb | .dct | .epim | .fpt |
.itdb | .itw | .jet | .jtx | .kdb |
.kexi | .kexic | .kexis | .lgc | .lwx |
.maf | .maq | .mar | .mas | .mav |
.mdb | .mdf | .mpd | .mrg | .mud |
.mwb | .myd | .ndf | .nnt | .nrmlib |
.ns2 | .ns3 | .ns4 | .nsf | .nv |
.nv2 | .nwdb | .nyf | .odb | .oqy |
.orx | .owc | .p96 | .p97 | .pan |
.pdm | .pnz | .qry | .qvd | .rbf |
.rctd | .rodx | .rpd | .rsd | .sas7bdat |
.sbf | .scx | .sdb | .sdc | .sdf |
.sis | .spq | .sql | .sqlite | .sqlite3 |
.sqlitedb | .te | .temx | .tmd | .tps |
.trc | .trm | .udb | .udl | .usr |
.v12 | .vis | .vpd | .vvv | .wdb |
.wmdb | .wrk | .xdb | .xld | .xmlff |
.abcddb | .abs | .abx | .accdw | |
.db2 | .fm5 | .hjt | .icg | |
.kdb | .lut | .maw | .fcd | |
.ibd | .accdb | .mdn | .adn |
Recyclebin 경로를 확인하여 휴지통에 들어있는 불필요한 자료들을 삭제한다.

복구를 어렵게하기 위해 WQL 명령어를 통해 COM Instance를 사용하여 VolumeShadowsCopy를 삭제한다.


악성 행위에 대한 흔적을 지우기 위해 이벤트 로그를 재설정하여 이벤트 로그를 삭제한다.


이벤트 로그 재설정 명령어 |
cmd.exe /c for /F \"tokens=*\" %1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%1\" |
ICON.ico 파일을 생성하고 .Vohuk의 레지스트리 키에 데이터를 넣어 해당 확장자를 가지고 있는 파일들의 ico를 변경한다.




Vohuk 랜섬웨어는 바탕화면을 변경하기 위해 자체로 제작하여 변경한다.






사용자가 PC를 부팅할 때 마다 Vohuk 랜섬웨어에 감염되었다는 협박메시지를 남기기 위해 윈도우 부팅 메시지를 생성




자가복제 파일을 삭제하고 부팅될때 마다 자동으로 실행하게 등록해 놓은 레지스트리도 삭제한다.


마지막으로 자가삭제를 하고 프로그램을 종료한다.


자가삭제 명령어 |
cmd.exe /c ping 127.0.0.1 -n 3 > Nul & del %ls |
자가복제 파일을 제외한 악성 행위에 사용된 파일들은 프로그램이 종료되어도 삭제되지 않고 그대로 남아있으며 LOG.txt에는 악성 행위에 대한 기록이 남아있는 것을 볼 수 있다.


Uploaded by
N2T