2019 áá¯ááŸá Ạáááºáááœááºá OceanLotus ááá¯ááºáá¬á¡ááœá²á·á០macOS malware ááá°áá¬á¡áá áºááᯠVirusTotalá áá¬áááºááŒá®áž á¡áœááºááá¯ááºážá áááºáááºá á áºáá±ážááŒááºážáááºáá±á¬ááºááŸá¯ááá¯á· á¡ááºáá¯ááºáá¯ááºáá²á·áááºá Backdoor executable file ááœáẠáá»áœááºá¯ááºááá¯á·áá±á·áá¬áá²á·ááá·áº macOS malware áááááºáá¬ážááŸááºážááŸáá·áº áá°áá®áá±á¬áºáááºáž áááºážáááœá²á·á ááºážáá¯á¶ááŸá¬ ááŒá±á¬ááºážáá²ááœá¬ážáᬠááŸá¬ááœá±ááœá±á·ááŸáááẠááá¯ááá¯áááºáá²áá¬áááºá áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá á€ááá°áá¬ááŸáá·áºáááºá ááºáá±áá±á¬ dropper ááá¯áá»áœááºá¯ááºááá¯á·ááŸá¬áááœá±á·áá²á·áááŒáá·áº áá±á¬áá«ááá¯ážáá°ážá ááºááŒááºáž vector ááá¯áááááá±ážáá«á
áá»áœááºá¯ááºááá¯á· áááŒá¬áá±ážáá®á áá¯ááºááŒááºáá²á·áááºá
áááœá²ááŒááºážá áááºááŒá¬
áá±á¬ááºáá¯á¶ážááá¯ááºážááẠSHA-1 hash ááŒáá·áº ááá°áá¬áá
áºáá¯á ááœá²ááŒááºážá
áááºááŒá¬ááŸá¯ááᯠáá±á¬áºááŒáááºá E615632C9998E4D3E5ACD8851864ED09B02C77D2
. ááá¯ááºáá¯áá±á«áºáááºá áá¬ááºáá®ážá ESET ááá¯ááºážáááºá
áºááŸáááºáááºážáá±áž áá¯ááºáá¯ááºáá»á¬ážááẠáááºážááᯠOSX/OceanLotus.D á¡ááŒá
ẠááŸá¬ááœá±ááœá±á·ááŸááááºá
Anti-debugging ááŸáá·áº sandbox áá¬ááœááºááŸá¯
macOS OceanLotus binaries á¡á¬ážáá¯á¶ážáá²á·ááá¯á·áááºá ááá°áá¬á¡á¬áž UPX ááŒáá·áºáá¯ááºááá¯ážáá¬ážáá±á¬áºáááºáž packager identification tools á¡áá»á¬ážá
á¯ááẠáááºážááᯠá¡ááá¡ááŸááºáááŒá¯áá«á áááºážááá¯á·ááœáẠâUPXâ á
á¬ááŒá±á¬ááºážá áá«áááºááŸá¯á¡áá±á«áº áá°áááºááŒá®áž áááºááŸááºá¡áá»á¬ážá
ᯠáá«áááºááŒááºážááŒá±á¬áá·áº ááŒá
áºáá±á¬ááºážááŒá
áºááá¯ááºáááºá ááá¯á·á¡ááŒáẠMach-O áááºááŸááºáá»á¬ážááẠáá¬áááºáááºáááºážááŒá®áž áááŒá¬áá ááœááºážáá¶ááœááºážáá¶áá¬ážáá±á¬ááŒá±á¬áá·áºááŒá
áºáááºá á€á¡ááºá¹áá«áááºááẠstatic detection ááá¯áááºáá²á
á±áááºá á
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážáá¬á áá¯ááºááá¯ážááŒá®ážáá²á·á¡áá«á áááºááœáá·áºá¡ááŸááºá á¡ááá¯ááºážáá²á·á¡á
ááŸá¬áá«á __cfstring
á¡ááá¯ááºážá .TEXT
. á€ááá¹áááœáẠá¡á±á¬ááºáá±á¬áºááŒáá«áá¯á¶ááœáẠááŒáá¬ážááá·áºá¡ááá¯ááºáž á¡áᶠattribute áá»á¬ážááŸááááºá
áá¯á¶ 1. MACH-O __cfstring ááá¹á áááºááœáŸááºážáá»ááºáá»á¬áž
áá¯á¶ 2 ááœááºááŒáá¬ážááá·áºá¡ááá¯ááºážá á¡ááá¯ááºážááŸááá¯ááºáááºáá±áá¬áá»á¬áž __cfstring
áá¯ááºááᯠá
á¬ááŒá±á¬ááºážáá»á¬ážá¡ááŒá
áºááŒáááŒááºážááŒáá·áº á¡áá»áá¯á·áá±á¬ disassembly tools áá»á¬ážááᯠááŸáá·áºá
á¬ážááá¯ááºáááºááŒá
áºáááºá
áá¯á¶ 2á áá±áá¬á¡ááŒá
ẠIDA ááŸááŸá¬ááœá±ááœá±á·ááŸááá¬ážáá±á¬ áá±á¬ááºáá¶áá¯ááº
áá¯ááºáá±á¬ááºááŒá®ážáááºááŸáá·áºá binary ááẠáá áºáá¯áááºážáá±á¬áááºááœááºáá»ááºááŸá¬ á¡ááŸá¬ážááŸá¬ááœááºáá«áá áºáá¯ááŸááááŸáááᯠá¡áááºáááŒááºá á áºáá±ážááẠáááºááœááºáá¬ážááá·áº anti-debugger áá áºáá¯á¡áá±ááŒáá·áº thread áá áºáá¯ááᯠáááºáá®ážáááºá á€á á®ážáááºážááŸá¯á¡ááœááº-
- áá±á«áºááá¯áá±ááá·áº áááºááá·áºá¡ááŸá¬ážááŸá¬ááá¯áááᯠááŒá¯ááºááẠááŒáá¯ážá
á¬ážáááºá ptrace
Ñ PT_DENY_ATTACH
áá±á¬ááºážááá¯ááŸá¯á¡ááá¯ááºážá¡áá¬áá
áºáá¯á¡áá±ááŒáá·áº
- áá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯ááá¯áá±á«áºááá¯ááŒááºážááŒáá·áº á¡áá»áá¯á·áá±á¬áá®ážááá·áº port áá»á¬ážááá¯ááœáá·áºáá¬ážááŒááºážááŸááááŸáá
á
áºáá±ážáá«á task_get_exception_ports
- á¡áá¶áááŸá±á·ááŸá±á¬ááºááœááºá
á
áºáá±ážááŒááºážááŒáá·áºá¡á±á¬ááºáá«áá¯á¶ááœááºááŒáá¬ážááá·áºá¡ááá¯ááºážáá®áá¬ááá«áá»áááºáááºááŸá¯ááŸááááŸáá
á
áºáá±ážáá«á P_TRACED
áááºááŸááá¯ááºáááºážá
ááºááœááº
áá¯á¶ 3. sysctl áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯á áá®áá¬áá«áá»áááºáááºááŸá¯ááᯠá
á
áºáá±ážááŒááºážá
á¡áá²ááŒááºáá°ááẠá¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááŸááá±ááŒá±á¬ááºáž ááœá±á·ááŸááá«áá áá¯ááºáá±á¬ááºáá»ááºááᯠáá±á«áºáááºá exit
. ááá¯á·á¡ááŒááºá ááá°áá¬ááẠcommand ááŸá
áºáá¯ááá¯áááºáááºááŒááºážááŒáá·áº áááºáááºážáá»ááºááᯠá
á
áºáá±ážáááº-
ioreg -l | grep -e "Manufacturer" О sysctl hw.model
ááá¯á·áá±á¬áẠááá°áá¬ááẠáááá¬ážáá±á¬ virtualization á áá áºáá»á¬ážá០hard-coded á á¬ááŒá±á¬ááºážáá»á¬ážá á¬áááºážááŸáá·áº á¡ááŒááºáááºááá¯ážááᯠá á áºáá±ážáááº- áááºááº, VMware, VirtualBox ááá¯á·ááá¯áẠáá»ááºážááŒáá¯ááº. áá±á¬ááºáá¯á¶ážááœááºá á ááºááẠá¡á±á¬ááºáá±á¬áºááŒáá« âMBPâá âMBAâá âMBâá âMMâá âIMâá âMPâ ááŸáá·áº âXSâ ááá¯á·áá²á០áá áºáá¯áá¯ááºááá¯áẠá á áºáá±ážáá«áááºá áááºážááá¯á·ááẠá áá áºáá±á¬áºáááºáá¯ááºáá»á¬ážá á¥ááá¬á âMBPâ ááá¯áááºááŸá¬ MacBook Proá âMBAâ ááá¯áááºááŸá¬ MacBook Air á áááºááá¯á·ááŒá áºáááºá
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
áááºááááºáá±á¬ááºáž
Trend Micro á áá¯áá±ááááŒá¯ááááºážá backdoor command áá»á¬ážááẠááŒá±á¬ááºážáá²ááŒááºážáááŸááá±á¬áºáááºážá á¡ááŒá¬ážáá±á¬ ááŒá¯ááŒááºááœááºážáá¶ááŸá¯á¡áá»áá¯á·ááᯠáá»áœááºá¯ááºááá¯á·áááááŒá¯áááá²á·áááºá á€ááá°áá¬ááœáẠá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ C&C áá¬áá¬áá»á¬ážááẠá¡áá±á¬áºáá±áž á¡áá áºááŒá áºááŒá®áž 22.10.2018/XNUMX/XNUMX ááœáẠáááºáá®ážáá²á·áááºá
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
á¡áááºážá¡ááŒá
ẠURL ááᯠááŒá±á¬ááºážáá¬ážáááºá /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
C&C áá¬áá¬ááá¯á· áá±ážááá¯á·ááá·áº ááááá¯á¶áž packet ááœáẠá¡á±á¬ááºáá«ááá¬ážááŸá commands áá»á¬ážá០á
á¯áá±á¬ááºážáá¬ážáá±á¬ áá±áá¬áá»á¬áž á¡áá«á¡ááẠhost machine ááŸáá·áºáááºáááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážá
áœá¬ áá«áááºáááºá
á€ááœá²á·á
ááºážáá¯á¶ááŒá±á¬ááºážáá²ááŒááºážá¡ááŒááºá ááá°áá¬ááẠááœááºáááºá
á
áºáá¯ááºááŒááºážá¡ááœáẠá
á¬ááŒáá·áºááá¯ááºááᯠá¡áá¯á¶ážáááŒá¯áá«á gFjMXBgyXWULmVVVzyxy
áá¯áááŸáá·áºá¡áá° padded á ááá¯ááºáá
áºáá¯á
á®ááᯠá
á¬ááŸááºá¡ááŒá
Ạááááºážáááºážáá¬ážáááºá /tmp/store
áááºážááᯠá
á¬ááŒáá·áºááá¯ááºá¡ááŒá
ẠáááºááẠááŒáá¯ážáááºážááŸá¯ááᯠáá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯á ááŒá¯áá¯ááºáá¬ážáááºá dlopen
á backdoor ááẠáááºááá¯á·ááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá°áááºá Boriry
О ChadylonV
áá¬áá¬ááŸáá·áº ááœááºáááºáááºááœááºááŸá¯á¡ááœáẠáá¬áááºááŸááááºááŸá¬ áááºááŸá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááœáẠááá°áá¬ááá°áááºážáááºáá±áá¬á០dropper ááá¯á·ááá¯áẠá¡ááŒá¬ážááá¯ááºáá»á¬ážáááŸááá±á¬ááŒá±á¬áá·áº á€á
á¬ááŒáá·áºááá¯ááºááᯠááœá²ááŒááºážá
áááºááŒá¬ááááá«á ááá¯á·á¡ááŒááºá á¡á
áááºá¡ááá¯ááºážááᯠáá¯ááºááŸááºáá¬ážáá±á¬ááŒá±á¬áá·áºá á€á
á¬ááŒá±á¬ááºážáá»á¬ážááᯠá¡ááŒá±áá¶ááá·áº YARA á
ááºážáá»ááºážááẠáá
áºááºááœááºááœá±á·ááá±á¬ááá¯ááºááŸáá·áº ááá¯ááºáá®áááºááá¯ááºáá«á
á¡áááºâáá«âáá±á¬ááºážáá«ážâááŸá¬âáá±á¬áºâááŒáá¬ážâáá²á·âá¡ááá¯ááºáž áááºáá®ážâáá±ážâáááºá clientID. ဠID ááẠá¡á±á¬ááºáá« command áá»á¬ážáá²á០áá áºáá¯á return value á MD5 hash ááŒá áºáááºá
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { split($0, line, """); printf("%s", line[4]); }'
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, """); printf("%s", line[4]); }'
- ifconfig en0 | awk '/ether /{print $2}'
(MAC ááááºá
á¬ááᯠááá°áá«)
- á¡áááºáááá¡ááœá²á· ("x1ex72x0a
") ááááºááá°áá¬áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áááºá
hashing ááá¯ááºáá®á root á¡ááœáá·áºáá°ážáá»á¬ážááá¯ááœáŸááºááŒááẠ"0" ááá¯á·ááá¯áẠ"1" ááᯠreturn value ááá¯á· áá±á«ááºážááá·áºáá«áááºá áá® clientID ááœááºááááºážáááºážáá¬ážáááºá /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
á¡áááºá áá¯ááºááᯠroot á¡ááŒá
Ạááá¯á·ááá¯áẠ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML ááœáẠááá¯á·ááá¯áẠá¡ááŒá¬ážááá
á¹á
áá»á¬ážá¡á¬ážáá¯á¶ážááœáẠáá¯ááºáá±á¬ááºáá«áá áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºááᯠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº ááŸááºáá¬ážáááºá touch ât
áá»áááºážáááºááá¯ážáá
áºáá¯ááŸáá·áºá
áá¯ááºááŒáá¯ážáá»á¬áž
ááááºááœá±ážáá»ááºááŸá¯áá»á¬ážáá²á·ááá¯á·áááºá á
á¬ááŒá±á¬ááºážáá»á¬ážááᯠAES-256-CBC ( hexadecimal key- ááŒáá·áº áá¯ááºááŸááºáá¬ážáááº- 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
áá¯áááŒáá·áº paddedá ááŸáá·áº IV áá¯áááŒáá·áºááŒáá·áºáááº) áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážááŒáá·áº
áá¯ááºáá±á¬ááºáá»áẠááŸá±á·ááŒá±ážáá¯á¶á á¶ááᯠááááŸáááŒááºážá decryptá script ááẠá€áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠá¡ááŒááºá¡ááŸááºááá¯ážáá¬ážáá»ááºá¡á¬ážáá¯á¶ážááᯠááŸá¬ááœá±áááºá ááá¯á·áá±á¬áẠáá±áá¬ááᯠáá¯ááºááŸááºááŒá®áž á¡ááŒááºá¡ááŸááºááá¯ážáá¬ážááá·áºááááºá á¬ááŸá ááŸááºáá»ááºáá áºáá¯á¡ááœááºáž ááá¯ážááá¯ážá á¬áá¬ážááᯠáá±áá¬áá»áá±ážáááºá áá¬ááºááœáŸááºážááᯠááŸááºáááºá áœá¬áá¯ááºáá±á¬ááºááá¯ááºáááºá áááºážááᯠbase64 áá¯ááºááŒá±á¬ááºážááá·áºáá¯ááºáá±á¬ááºáá»ááºá០á¡áá¯á¶ážááŒá¯ááá·áº á áááºááŒáá¯ááºá¡áá¹ááá¬á¡ááŒá ẠáááºááŸááºááááºááŒá áºááŒá®áž áá±á¬á·áá¡ááŸááºáá«ááŸááá±á¬ áááá¯áááºááŒá±á¬ááºážááá¯ááºáá±á¬ááááºážááŸááºááᯠáááºááŸááºááá«ááẠ(á€ááá á¹á ááœáẠDWORDá áá¯á¶ 4 ááá¯ááŒáá·áºáá«)á
áá¯á¶ 4á ááá¹áá¬áá¯á¶ážááá¯ááºáᬠááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ key_len áá¡áááá¹áá«ááº
Function áááºážááá¯ážááœááºá áááºááẠá áá¬ážááŸááºááŸááºááŒááºáž áá¯ááºáá±á¬ááºáá»ááºááᯠáá¬áááºááá áºááŸáááºááŒá®áž âáá¯ááºáá°ááŸá¯ááŸáá·áº áá¯ááºáá±á¬áºáá»ááºáá»á¬ážááᯠáá¯ááºááŸááºááŒááºážâ ááá¯ááŸáááºááá¯ááºáááºá áá¯á¶ 5 ááœááºááŒáá¬ážááá·áºá¡ááá¯ááºáž script ááẠáá¯ááºááŸááºáá¬ážáá±á¬á á¬ááŒá±á¬ááºážáá»á¬ážááᯠááŸááºáá»ááºáá»á¬ážááœáẠáá¬ážááá·áºáááºá
áá¯á¶ 5á á
á¬ááŸááºáá¬ážáá±á¬ á
á¬áá¬ážááᯠááŸááºáá»ááºáá»á¬ážááœáẠááá·áºááœááºážáá¬ážáááºá
á€áááºážááŒáá·áº áá¯ááºááŸááºáá¬ážáá±á¬ á á¬ááŒá±á¬ááºážáá»á¬ážááᯠIDA áááºážááá¯ážááœáẠá¡áááºááŒá±á áœá¬ á á¯á ááºážáá¬ážáááºá xrefs á€áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠáá¯á¶ 6 ááœááºááŒáá¬ážááá·áºá¡ááá¯ááºážá
áá¯á¶ 6. f_decrypt áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠXrefs
áá±á¬ááºáá¯á¶áž áá¬ááºááœáŸááºážááᯠááŸá¬ááŒáá·áºááá¯ááºáá«áááºá
áá±á¬ááºáá»ááº
áá±á¬áºááŒáá¬ážááŒá®ážááŒá áºááá·áºá¡ááá¯ááºáž OceanLotus ááẠáááºážááááááá¬áááááá¬á¡á á¯á¶á¡áááºááᯠá¡áááºáááŒááºááá¯ážáááºáá±ááŒá®áž á¡ááá·áºááŒáŸáá·áºáááºáá±áá«áááºá ááá¯áá áºááŒáááºááœááºá ááá¯ááºáá¬á¡ááœá²á·ááẠMac á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááẠmalware ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááŒá¯áá¯ááºáá¬ážáááºá áá¯ááºááẠáá»á¬ážá áœá¬áááŒá±á¬ááºážáá²áá±ážáá±á¬áºáááºáž Mac á¡áá¯á¶ážááŒá¯áá°á¡áá»á¬ážá¡ááŒá¬ážááẠáá¯á¶ááŒá¯á¶áá±ážáá¯ááºáá¯ááºáá»á¬ážááᯠáá»á áºáá»á°ááŸá¯áá¬ážáá±á¬ááŒá±á¬áá·áº Malware ááŸá¬ááœá±ááŒááºážá០áá¬ááœááºááŒááºážááẠáá¯áááá¡áá±ážááŒá®ážáá«áááºá
ESET áá¯ááºáá¯ááºáá»á¬ážááẠáá¯áá±ááááŒá¯áá»áááºááœáẠá€ááá¯ááºááᯠááŸá¬ááœá±ááœá±á·ááŸááá±ááŒá®ááŒá áºáááºá C&C áááºááœááºáá±ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº ááœááºáááºá á¬ááŒáá·áºááá¯ááºááᯠááᯠáá áºááºáá±á«áºááœáẠáá¯ááºááŸááºáá¬ážáá±á¬ááŒá±á¬áá·áºá ááá¯ááºááá¯ááºáá°áá»á¬áž á¡áá¯á¶ážááŒá¯ááá·áº ááœááºáááºáááá¯ááá¯áá±á¬ á¡ááá¡áá»ááᯠáááááá±ážáá«á
á¡áá±ážá¡áá°á¡ááœáŸááºážáá»á¬áž
á¡áá±ážá¡áá°áá¯ááºááŒááºážááá¯ááºáᬠá¡ááœáŸááºážááááºážáá»á¬ážá¡ááŒáẠMITER ATT&CK áááºááœáŸááºážáá»ááºáá»á¬ážááá¯áááºáž áááŸáááá¯ááºáá«áááºá
source: www.habr.com