بدافزار shamoon
به گزارش کمپانی روسی Kaspersky، شرکت فعال در زمینه مبارزه با بدافزارهای رایانهای، بدافزار جدیدی با هدف تخریب اطلاعات کشف و گزارش شده است.
شواهد بیانگر این موضوع میباشد که همانند بدافزار مهدی، این بدافزار نیز توسط چندی از نفوذگران مبتدی تهیه شده است.
دلیل انتخاب نام این بدافزار نیز از وجود رشته زیر در فایلهای این بدافزار نشات میگیرد
C:\Shamoon\ArabianGulf\wiper\release\wiper.pdb
بدافزار فوق یادآور شواهد مرتبط با حملات با نتیجه تخریب اطلاعات در ماه آوریل سال 2012 در ایران میباشد.
تحلیل فنی بدافزار
اطلاعات ابتدائی از بدافزار فوق و نمونههای کشف شده از این بدافزار، بیانگر این است که زبان مورد استفاده برای تولید این بدافزار C++ نسخه 8.0 از کمپانی مایکروسافت (Visual C++ 2005) میباشد.
لیست توابع مورد استفاده بدافزار نیز بیانگر وجود ارتباط بدافزار با سرویسهای ویندوزی، رجیستری، ارتباطات شبکهای و حجم بالائی از تعاملات با منابع درونی میباشد:
Address
|
Ordinal Name
|
Library
|
416000
|
StartServiceCtrlDispatcherW
|
ADVAPI32
|
416004
|
RegisterServiceCtrlHandlerW
|
ADVAPI32
|
416008
|
SetServiceStatus
|
ADVAPI32
|
0041600C
|
RegQueryValueExW
|
ADVAPI32
|
416010
|
OpenSCManagerW
|
ADVAPI32
|
416014
|
OpenServiceW
|
ADVAPI32
|
416018
|
QueryServiceConfigW
|
ADVAPI32
|
0041601C
|
ChangeServiceConfigW
|
ADVAPI32
|
416020
|
CloseServiceHandle
|
ADVAPI32
|
416024
|
CreateServiceW
|
ADVAPI32
|
416028
|
ChangeServiceConfig2W
|
ADVAPI32
|
0041602C
|
RegOpenKeyExW
|
ADVAPI32
|
416030
|
RegDeleteValueW
|
ADVAPI32
|
416034
|
RegCloseKey
|
ADVAPI32
|
416038
|
StartServiceW
|
ADVAPI32
|
416040
|
LocalAlloc
|
KERNEL32
|
416044
|
GetLastError
|
KERNEL32
|
416048
|
MoveFileExW
|
KERNEL32
|
0041604C
|
DeleteFileW
|
KERNEL32
|
416050
|
GetProcAddress
|
KERNEL32
|
416054
|
GetModuleHandleW
|
KERNEL32
|
416058
|
WriteFile
|
KERNEL32
|
0041605C
|
CreateFileW
|
KERNEL32
|
416060
|
SizeofResource
|
KERNEL32
|
416064
|
LockResource
|
KERNEL32
|
416068
|
LoadResource
|
KERNEL32
|
0041606C
|
FindResourceW
|
KERNEL32
|
416070
|
GetCommandLineW
|
KERNEL32
|
416074
|
GetFileTime
|
KERNEL32
|
416078
|
GetWindowsDirectoryW
|
KERNEL32
|
0041607C
|
Sleep
|
KERNEL32
|
416080
|
CreateThread
|
KERNEL32
|
416084
|
CreateProcessW
|
KERNEL32
|
416088
|
CopyFileW
|
KERNEL32
|
0041608C
|
MoveFileW
|
KERNEL32
|
416090
|
ReadFile
|
KERNEL32
|
416094
|
GetSystemTime
|
KERNEL32
|
416098
|
LeaveCriticalSection
|
KERNEL32
|
0041609C
|
EnterCriticalSection
|
KERNEL32
|
004160A0
|
DeleteCriticalSection
|
KERNEL32
|
004160A4
|
WaitForSingleObject
|
KERNEL32
|
004160A8
|
InitializeCriticalSection
|
KERNEL32
|
004160AC
|
GetStringTypeW
|
KERNEL32
|
004160B0
|
IsValidCodePage
|
KERNEL32
|
004160B4
|
LocalFree
|
KERNEL32
|
004160B8
|
VirtualAlloc
|
KERNEL32
|
004160BC
|
VirtualFree
|
KERNEL32
|
004160C0
|
GetCurrentProcess
|
KERNEL32
|
004160C4
|
OpenProcess
|
KERNEL32
|
004160C8
|
CreateToolhelp32Snapshot
|
KERNEL32
|
004160CC
|
Process32FirstW
|
KERNEL32
|
004160D0
|
Process32NextW
|
KERNEL32
|
004160D4
|
CloseHandle
|
KERNEL32
|
004160D8
|
GetTickCount
|
KERNEL32
|
004160DC
|
HeapReAlloc
|
KERNEL32
|
4.16E+03
|
HeapSize
|
KERNEL32
|
4.16E+07
|
GetUserDefaultLCID
|
KERNEL32
|
4.16E+11
|
GetLocaleInfoA
|
KERNEL32
|
004160EC
|
EnumSystemLocalesA
|
KERNEL32
|
004160F0
|
IsValidLocale
|
KERNEL32
|
004160F4
|
WriteConsoleW
|
KERNEL32
|
004160F8
|
SetStdHandle
|
KERNEL32
|
004160FC
|
GetProcessHeap
|
KERNEL32
|
416100
|
CreateFileA
|
KERNEL32
|
416104
|
SetEndOfFile
|
KERNEL32
|
416108
|
SetFileTime
|
KERNEL32
|
0041610C
|
GetOEMCP
|
KERNEL32
|
416110
|
GetACP
|
KERNEL32
|
416114
|
InterlockedIncrement
|
KERNEL32
|
416118
|
InterlockedDecrement
|
KERNEL32
|
0041611C
|
EncodePointer
|
KERNEL32
|
416120
|
DecodePointer
|
KERNEL32
|
416124
|
RaiseException
|
KERNEL32
|
416128
|
RtlUnwind
|
KERNEL32
|
0041612C
|
HeapFree
|
KERNEL32
|
416130
|
ExitProcess
|
KERNEL32
|
416134
|
HeapSetInformation
|
KERNEL32
|
416138
|
WideCharToMultiByte
|
KERNEL32
|
0041613C
|
LCMapStringW
|
KERNEL32
|
416140
|
MultiByteToWideChar
|
KERNEL32
|
416144
|
GetCPInfo
|
KERNEL32
|
416148
|
HeapAlloc
|
KERNEL32
|
0041614C
|
IsProcessorFeaturePresent
|
KERNEL32
|
416150
|
TerminateProcess
|
KERNEL32
|
416154
|
UnhandledExceptionFilter
|
KERNEL32
|
416158
|
SetUnhandledExceptionFilter
|
KERNEL32
|
0041615C
|
IsDebuggerPresent
|
KERNEL32
|
416160
|
TlsAlloc
|
KERNEL32
|
416164
|
TlsGetValue
|
KERNEL32
|
416168
|
TlsSetValue
|
KERNEL32
|
0041616C
|
TlsFree
|
KERNEL32
|
416170
|
SetLastError
|
KERNEL32
|
416174
|
GetCurrentThreadId
|
KERNEL32
|
416178
|
HeapCreate
|
KERNEL32
|
0041617C
|
SetHandleCount
|
KERNEL32
|
416180
|
GetStdHandle
|
KERNEL32
|
416184
|
InitializeCriticalSectionAndSpinCount
|
KERNEL32
|
416188
|
GetFileType
|
KERNEL32
|
0041618C
|
GetStartupInfoW
|
KERNEL32
|
416190
|
GetConsoleCP
|
KERNEL32
|
416194
|
GetConsoleMode
|
KERNEL32
|
416198
|
FlushFileBuffers
|
KERNEL32
|
0041619C
|
SetFilePointer
|
KERNEL32
|
004161A0
|
LoadLibraryW
|
KERNEL32
|
004161A4
|
GetLocaleInfoW
|
KERNEL32
|
004161A8
|
GetModuleFileNameW
|
KERNEL32
|
004161AC
|
FreeEnvironmentStringsW
|
KERNEL32
|
004161B0
|
GetEnvironmentStringsW
|
KERNEL32
|
004161B4
|
QueryPerformanceCounter
|
KERNEL32
|
004161B8
|
GetCurrentProcessId
|
KERNEL32
|
004161BC
|
GetSystemTimeAsFileTime
|
KERNEL32
|
004161C4
|
NetApiBufferFree
|
NETAPI32
|
004161C8
|
NetApiBufferAllocate
|
NETAPI32
|
004161CC
|
NetRemoteTOD
|
NETAPI32
|
004161D0
|
NetScheduleJobDel
|
NETAPI32
|
004161D8
|
CommandLineToArgvW
|
SHELL32
|
4.16E+03
|
LoadImageW
|
USER32
|
4.16E+11
|
115 WSAStartup
|
WS2_32
|
004161EC
|
12 inet_ntoa
|
WS2_32
|
004161F0
|
52 gethostbyname
|
WS2_32
|
004161F4
|
57 gethostname
|
WS2_32
|
004161F8
|
116 WSACleanup
|
WS2_32
|
وجود resource ها بیانگر فعالیت بیشتر بدافزار از طریق منابع داخلی بدافزار با استفاده از بارگذاری آنها که توسط کلیدهای زیر رمزنگاری شدهاند می باشد
{0x25, 0x7f, 0x5d, 0xfb}
{0x17, 0xd4, 0xba, 0x00}
{0x5c, 0xc2, 0x1a, 0xbb}
{0x15, 0xaf, 0x52, 0xf0}
بدافزار، با استفاده از الگوی زیر، بیان شده توسط تیم Kaspersky اطلاعات را از دستهای از فایلهای خاص در سیستم آلوده جمع آوری مینماید
dir "C:\Documents and Settings\" /s /b /a:-D 2>nul | findstr -i download 2>nul >f1.inf
dir "C:\Documents and Settings\" /s /b /a:-D 2>nul | findstr -i document 2>nul >>f1.inf
dir C:\Users\ /s /b /a:-D 2>nul | findstr -i download 2>nul >>f1.inf
dir C:\Users\ /s /b /a:-D 2>nul | findstr -i document 2>nul >>f1.inf
dir C:\Users\ /s /b /a:-D 2>nul | findstr -i picture 2>nul >>f1.inf
dir C:\Users\ /s /b /a:-D 2>nul | findstr -i video 2>nul >>f1.inf
dir C:\Users\ /s /b /a:-D 2>nul | findstr -i music 2>nul >>f1.inf
dir "C:\Documents and Settings\" /s /b /a:-D 2>nul | findstr -i desktop 2>nul >f2.inf
dir C:\Users\ /s /b /a:-D 2>nul | findstr -i desktop 2>nul >>f2.inf
dir C:\Windows\System32\Drivers /s /b /a:-D 2>nul >>f2.inf
dir C:\Windows\System32\Config /s /b /a:-D 2>nul | findstr -v -i systemprofile 2>nul >>f2.inf
dir f1.inf /s /b 2>nul >>f1.inf
dir f2.inf /s /b 2>nul >>f1.inf
یکی از منابع داخلی موجود در بدافزار حاوی یک درایور sign شده میباشد:
هدف اصلی این بدافزار، آلوده نمودن سیستمهای موجود در شبکه ، حذف و تخریب اطلاعات گزارش شده است.
تحلیلهای صورت پذیرفته نشانگر این موضوع است که بدافزار، فایل trksrv.exe را در مسیر system32 به عنوان یک کپی از بدافزار اجرا می نماید و همچنین با استفاده از قابلیت سرویسهای در ویندوز که دارای بالاترین سطح دسترسی سیستم عامل هستند توسط services.exe اجرا میشود
دیگر فعالیتهای بدافزار از دیدگاه رفتاری به شرح زیر میباشد:
اطلاعاتی که توسط بدافزار از رجیستری خوانده میشوند:
Key
|
Name
|
Value
|
Times
|
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
|
PROCESSOR_ARCHITECTURE
|
x86
|
1
|
HKLM\SYSTEM\Setup
|
SystemSetupInProgress
|
0
|
1
|
HKLM\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers
|
TransparentEnabled
|
1
|
1
|
HKLM\System\CurrentControlSet\Control\ServiceCurrent
|
|
9
|
1
|
فایل(هائی) که توسط بدافزار بروی دیسک سخت ایجاد میشوند:
C:\WINDOWS\system32\trksvr.exe
سرویسهائی که توسط بدافزار ایجاد میشود:
|
اطلاعاتی که توسط فایل trksvr از رجیستری خوانده میشود:
Key
|
Name
|
Value
|
Times
|
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
|
PROCESSOR_ARCHITECTURE
|
x86
|
1
|
HKLM\SYSTEM\Setup
|
SystemSetupInProgress
|
0
|
1
|
HKLM\System\CurrentControlSet\Control\ServiceCurrent
|
|
10
|
1
|
در هر حال حاضر اطلاعات بیشتری در رابطه با فعالیت این بدافزار در دسترس نمیباشد و در صورت موفقیت آمیز بودن تحلیلهای در حال پیشرفت مرکز آپا دانشگاه صنعتی اصفهان، دیگر گزارشهای خود را مرتبط با این بدافزار منتشر خواهد نمود.
ابزار حذف تروجان Shamoon
برای دانلود ابزار حذف تروجان Shamoon اینجا را کلیک کنید
(توضیح: برای استفاده، ملزم به نصب Microsoft .net Framework 4 هستید)