info[at]nsec.ir
(+۹۸)-۳۱-۳۳۹۱۵۳۳۶

بدافزار shamoon

به گزارش کمپانی روسی Kaspersky، شرکت فعال در زمینه مبارزه با بدافزارهای رایانه‌ای، بدافزار جدیدی با هدف تخریب اطلاعات کشف و گزارش شده است.

شواهد بیان‌گر این موضوع می‌باشد که همانند بدافزار مهدی، این بدافزار نیز توسط چندی از نفوذگران مبتدی تهیه شده است.
دلیل انتخاب نام این بدافزار نیز از وجود رشته زیر در فایل‌های این بدافزار نشات میگیرد
C:\Shamoon\ArabianGulf\wiper\release\wiper.pdb
بدافزار فوق یادآور شواهد مرتبط با حملات با نتیجه تخریب اطلاعات در ماه آوریل سال ۲۰۱۲ در ایران می‌باشد.
تحلیل فنی بدافزار
اطلاعات ابتدائی از بدافزار فوق و نمونه‌های کشف شده از این بدافزار، بیانگر این است که زبان مورد استفاده برای تولید این بدافزار C++ نسخه ۸.۰ از کمپانی مایکروسافت (Visual C++ 2005) می‌باشد.
لیست توابع مورد استفاده بدافزار نیز بیانگر وجود ارتباط بدافزار با سرویس‌های ویندوزی، رجیستری، ارتباطات شبکه‌ای و حجم بالائی از تعاملات با منابع درونی می‌باشد:
Address
Ordinal Name
Library
۴۱۶۰۰۰
StartServiceCtrlDispatcherW
ADVAPI32
۴۱۶۰۰۴
RegisterServiceCtrlHandlerW
ADVAPI32
۴۱۶۰۰۸
SetServiceStatus
ADVAPI32
۰۰۴۱۶۰۰C
RegQueryValueExW
ADVAPI32
۴۱۶۰۱۰
OpenSCManagerW
ADVAPI32
۴۱۶۰۱۴
OpenServiceW
ADVAPI32
۴۱۶۰۱۸
QueryServiceConfigW
ADVAPI32
۰۰۴۱۶۰۱C
ChangeServiceConfigW
ADVAPI32
۴۱۶۰۲۰
CloseServiceHandle
ADVAPI32
۴۱۶۰۲۴
CreateServiceW
ADVAPI32
۴۱۶۰۲۸
ChangeServiceConfig2W
ADVAPI32
۰۰۴۱۶۰۲C
RegOpenKeyExW
ADVAPI32
۴۱۶۰۳۰
RegDeleteValueW
ADVAPI32
۴۱۶۰۳۴
RegCloseKey
ADVAPI32
۴۱۶۰۳۸
StartServiceW
ADVAPI32
۴۱۶۰۴۰
LocalAlloc
KERNEL32
۴۱۶۰۴۴
GetLastError
KERNEL32
۴۱۶۰۴۸
MoveFileExW
KERNEL32
۰۰۴۱۶۰۴C
DeleteFileW
KERNEL32
۴۱۶۰۵۰
GetProcAddress
KERNEL32
۴۱۶۰۵۴
GetModuleHandleW
KERNEL32
۴۱۶۰۵۸
WriteFile
KERNEL32
۰۰۴۱۶۰۵C
CreateFileW
KERNEL32
۴۱۶۰۶۰
SizeofResource
KERNEL32
۴۱۶۰۶۴
LockResource
KERNEL32
۴۱۶۰۶۸
LoadResource
KERNEL32
۰۰۴۱۶۰۶C
FindResourceW
KERNEL32
۴۱۶۰۷۰
GetCommandLineW
KERNEL32
۴۱۶۰۷۴
GetFileTime
KERNEL32
۴۱۶۰۷۸
GetWindowsDirectoryW
KERNEL32
۰۰۴۱۶۰۷C
Sleep
KERNEL32
۴۱۶۰۸۰
CreateThread
KERNEL32
۴۱۶۰۸۴
CreateProcessW
KERNEL32
۴۱۶۰۸۸
CopyFileW
KERNEL32
۰۰۴۱۶۰۸C
MoveFileW
KERNEL32
۴۱۶۰۹۰
ReadFile
KERNEL32
۴۱۶۰۹۴
GetSystemTime
KERNEL32
۴۱۶۰۹۸
LeaveCriticalSection
KERNEL32
۰۰۴۱۶۰۹C
EnterCriticalSection
KERNEL32
۰۰۴۱۶۰A0
DeleteCriticalSection
KERNEL32
۰۰۴۱۶۰A4
WaitForSingleObject
KERNEL32
۰۰۴۱۶۰A8
InitializeCriticalSection
KERNEL32
۰۰۴۱۶۰AC
GetStringTypeW
KERNEL32
۰۰۴۱۶۰B0
IsValidCodePage
KERNEL32
۰۰۴۱۶۰B4
LocalFree
KERNEL32
۰۰۴۱۶۰B8
VirtualAlloc
KERNEL32
۰۰۴۱۶۰BC
VirtualFree
KERNEL32
۰۰۴۱۶۰C0
GetCurrentProcess
KERNEL32
۰۰۴۱۶۰C4
OpenProcess
KERNEL32
۰۰۴۱۶۰C8
CreateToolhelp32Snapshot
KERNEL32
۰۰۴۱۶۰CC
Process32FirstW
KERNEL32
۰۰۴۱۶۰D0
Process32NextW
KERNEL32
۰۰۴۱۶۰D4
CloseHandle
KERNEL32
۰۰۴۱۶۰D8
GetTickCount
KERNEL32
۰۰۴۱۶۰DC
HeapReAlloc
KERNEL32
۴.۱۶E+03
HeapSize
KERNEL32
۴.۱۶E+07
GetUserDefaultLCID
KERNEL32
۴.۱۶E+11
GetLocaleInfoA
KERNEL32
۰۰۴۱۶۰EC
EnumSystemLocalesA
KERNEL32
۰۰۴۱۶۰F0
IsValidLocale
KERNEL32
۰۰۴۱۶۰F4
WriteConsoleW
KERNEL32
۰۰۴۱۶۰F8
SetStdHandle
KERNEL32
۰۰۴۱۶۰FC
GetProcessHeap
KERNEL32
۴۱۶۱۰۰
CreateFileA
KERNEL32
۴۱۶۱۰۴
SetEndOfFile
KERNEL32
۴۱۶۱۰۸
SetFileTime
KERNEL32
۰۰۴۱۶۱۰C
GetOEMCP
KERNEL32
۴۱۶۱۱۰
GetACP
KERNEL32
۴۱۶۱۱۴
InterlockedIncrement
KERNEL32
۴۱۶۱۱۸
InterlockedDecrement
KERNEL32
۰۰۴۱۶۱۱C
EncodePointer
KERNEL32
۴۱۶۱۲۰
DecodePointer
KERNEL32
۴۱۶۱۲۴
RaiseException
KERNEL32
۴۱۶۱۲۸
RtlUnwind
KERNEL32
۰۰۴۱۶۱۲C
HeapFree
KERNEL32
۴۱۶۱۳۰
ExitProcess
KERNEL32
۴۱۶۱۳۴
HeapSetInformation
KERNEL32
۴۱۶۱۳۸
WideCharToMultiByte
KERNEL32
۰۰۴۱۶۱۳C
LCMapStringW
KERNEL32
۴۱۶۱۴۰
MultiByteToWideChar
KERNEL32
۴۱۶۱۴۴
GetCPInfo
KERNEL32
۴۱۶۱۴۸
HeapAlloc
KERNEL32
۰۰۴۱۶۱۴C
IsProcessorFeaturePresent
KERNEL32
۴۱۶۱۵۰
TerminateProcess
KERNEL32
۴۱۶۱۵۴
UnhandledExceptionFilter
KERNEL32
۴۱۶۱۵۸
SetUnhandledExceptionFilter
KERNEL32
۰۰۴۱۶۱۵C
IsDebuggerPresent
KERNEL32
۴۱۶۱۶۰
TlsAlloc
KERNEL32
۴۱۶۱۶۴
TlsGetValue
KERNEL32
۴۱۶۱۶۸
TlsSetValue
KERNEL32
۰۰۴۱۶۱۶C
TlsFree
KERNEL32
۴۱۶۱۷۰
SetLastError
KERNEL32
۴۱۶۱۷۴
GetCurrentThreadId
KERNEL32
۴۱۶۱۷۸
HeapCreate
KERNEL32
۰۰۴۱۶۱۷C
SetHandleCount
KERNEL32
۴۱۶۱۸۰
GetStdHandle
KERNEL32
۴۱۶۱۸۴
InitializeCriticalSectionAndSpinCount
KERNEL32
۴۱۶۱۸۸
GetFileType
KERNEL32
۰۰۴۱۶۱۸C
GetStartupInfoW
KERNEL32
۴۱۶۱۹۰
GetConsoleCP
KERNEL32
۴۱۶۱۹۴
GetConsoleMode
KERNEL32
۴۱۶۱۹۸
FlushFileBuffers
KERNEL32
۰۰۴۱۶۱۹C
SetFilePointer
KERNEL32
۰۰۴۱۶۱A0
LoadLibraryW
KERNEL32
۰۰۴۱۶۱A4
GetLocaleInfoW
KERNEL32
۰۰۴۱۶۱A8
GetModuleFileNameW
KERNEL32
۰۰۴۱۶۱AC
FreeEnvironmentStringsW
KERNEL32
۰۰۴۱۶۱B0
GetEnvironmentStringsW
KERNEL32
۰۰۴۱۶۱B4
QueryPerformanceCounter
KERNEL32
۰۰۴۱۶۱B8
GetCurrentProcessId
KERNEL32
۰۰۴۱۶۱BC
GetSystemTimeAsFileTime
KERNEL32
۰۰۴۱۶۱C4
NetApiBufferFree
NETAPI32
۰۰۴۱۶۱C8
NetApiBufferAllocate
NETAPI32
۰۰۴۱۶۱CC
NetRemoteTOD
NETAPI32
۰۰۴۱۶۱D0
NetScheduleJobDel
NETAPI32
۰۰۴۱۶۱D8
CommandLineToArgvW
SHELL32
۴.۱۶E+03
LoadImageW
USER32
۴.۱۶E+11
۱۱۵ WSAStartup
WS2_32
۰۰۴۱۶۱EC
۱۲ inet_ntoa
WS2_32
۰۰۴۱۶۱F0
۵۲ gethostbyname
WS2_32
۰۰۴۱۶۱F4
۵۷ gethostname
WS2_32
۰۰۴۱۶۱F8
۱۱۶ WSACleanup
WS2_32
وجود resource ها بیانگر فعالیت بیشتر بدافزار از طریق منابع داخلی بدافزار با استفاده از بارگذاری آنها که توسط کلید‌های زیر رمزنگاری شده‌اند می باشد
{۰x25, 0x7f, 0x5d, 0xfb}
{۰x17, 0xd4, 0xba, 0x00}
{۰x5c, 0xc2, 0x1a, 0xbb}
{۰x15, 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 ۲>nul >>f1.inf
dir C:\Users\ ‎/s ‎/b ‎/a:-D 2>nul | findstr -i document ۲>nul >>f1.inf
dir C:\Users\ ‎/s ‎/b ‎/a:-D 2>nul | findstr -i picture ۲>nul >>f1.inf
dir C:\Users\ ‎/s ‎/b ‎/a:-D 2>nul | findstr -i video ۲>nul >>f1.inf
dir C:\Users\ ‎/s ‎/b ‎/a:-D 2>nul | findstr -i music ۲>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 ۲>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
۱
HKLM\​SYSTEM\​Setup
SystemSetupInProgress
۰
۱
HKLM\​Software\​Policies\​Microsoft\​Windows\​Safer\​CodeIdentifiers
TransparentEnabled
۱
۱
HKLM\​System\​CurrentControlSet\​Control\​ServiceCurrent
۹
۱

فایل‌(هائی) که توسط بدافزار بروی دیسک سخت ایجاد می‌شوند:
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
۱
HKLM\​SYSTEM\​Setup
SystemSetupInProgress
۰
۱
HKLM\​System\​CurrentControlSet\​Control\​ServiceCurrent
۱۰
۱
در هر حال حاضر اطلاعات بیشتری در رابطه با فعالیت این بدافزار در دسترس نمی‌باشد و در صورت موفقیت آمیز بودن تحلیل‌های در حال پیشرفت مرکز آپا دانشگاه صنعتی اصفهان، دیگر گزارش‌های خود را مرتبط با این بدافزار منتشر خواهد نمود.
ابزار حذف تروجان Shamoon

برای دانلود ابزار حذف تروجان Shamoon اینجا را کلیک کنید

(توضیح: برای استفاده، ملزم به نصب Microsoft .net Framework 4 هستید)