info[at]nsec.ir
(+98)-31-33915336

بدافزار 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
سرویس‌هائی که توسط بدافزار ایجاد می‌شود:
Name
Type
Path
TrkSvr
SERVICE_AUTO_START
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 هستید)