Pada artikel ini,saya akan mencoba menganalisa malware lokal yang sudah lumayan lama tapi masih banyak "kembarannya" yang hampir sama tehniknya bernama Tati atau W32\Auto-RUN.KJ dari Database Avast atau Tari dari Databasenya DrWeb.
Dari tampilannya dia menggunakan icon folder dan memakai extension *.scr untuk mengelabui user..
informasi umum
nama : 1.scr
icon : folder
CRC32 = 2BA09F1D
MD5 = 7653184A7BD039EF59CD58F2D1801DF3
SHA-1 = B979A2D374609C2BAA1ACF7E00E75E05199CF39B
SHA-256 = A997E3AAB93BB7946B92CCC7B47C97F251E86EC139A420AF8B09DA06882EFE01
karena si Tati ini dipack dengan UPX ,oia dari mana saya tahu bahwa malware Tati ini di pack dengan UPX? maka kita buka terlebih dahulu,dan isinya :
Section name:UPX0
Size:0x39000
Aligned size: 0x0
Virtual address:0x1000
0xE0000080 SECTION_UNINITIALIZED_DATA + EXECUTABLE + READABLE + WRITABLE
Section name: UPX1
Size: 0x2E000
Aligned size:0x2DC00
Virtual address: 0x3A000
0xE0000040 SECTION_INITIALIZED_DATA + EXECUTABLE + READABLE + WRITABLE
nah berawal dari inilah saya tahu bahwa malware ini dipack dengan UPX (membaca section name)
Oke lanjut,sebelum dipack,fungsi yang ada didalam Tati ini hanya sedikit yang bisa terbaca atau dianalisa yaitu:
KERNEL32.DLL
Function name: LoadLibraryA
Function name: GetProcAddress
Function name: ExitProcess
ADVAPI32.DLL
Function name: RegCloseKey
COMCTL32.DLL
makanya para VX atau pembuat malware sangat suka jika malwarenya di pack dengan UPX,maka akan kita unpack Tati tersebut dengan cara:
buat file baru dengan nama unpack.bat
edit lalu tambahkan kode :
@echo off
upx -d 1.scr
@echo off
pause
simpan lalu jalankan,pastikan file yang ingin dipack berada satu folder dengan UPX dan unpack.bat
keterangan: parameter -d adalah fungsi untuk melakukan unpack program yang di pack dengan UPX
tambahan: pada beberapa kondisi,file Tati yang di-unpack menjadi tidak bisa dijalankan
nah setelah diunpack,lebih jelas untuk dianalisa =)
Section name: .text
Size: 0x4DF71
Aligned size: 0x4E000
Virtual address:0x1000
0x60000020 SECTION_CODE + EXECUTABLE + READABLE
Section name: .rdata
Size: 0x946C
Aligned size: 0x9600
Virtual address: 0x4F000
0x40000040 SECTION_INITIALIZED_DATA + READABLE
Section name: .data
Size: 0x75F4
Aligned size: 0x2200
Virtual address: 0x59000
0xC0000040 SECTION_INITIALIZED_DATA + READABLE + WRITABLE
Section name: .rsrc
Size: 0x4000
Aligned size:0x3400
Virtual address: 0x61000
0x40000040 SECTION_INITIALIZED_DATA + READABLE
fungsi-fungsi yang ada dalam tubuh Tati juga terbuka semuanya =)
KERNEL32.DLL
Function name: GetFullPathNameA
Function name: GetShortPathNameA
Function name: FileTimeToLocalFileTime
Function name: GetSystemTimeAsFileTime
Function name: MoveFileA
Function name: Beep
Function name: GetExitCodeProcess
Function name: MultiByteToWideChar
Function name: SetEnvironmentVariableA
Function name: OutputDebugStringA
Function name: CreateProcessA
Function name: MulDiv
Function name: ReadFile
Function name: GetFileSize
Function name: CreateFileA
Function name: WideCharToMultiByte
Function name: ReadProcessMemory
Function name: WriteProcessMemory
Function name: TerminateProcess
Function name: SetPriorityClass
Function name: OpenProcess
Function name: GetCurrentProcessId
Function name: GetEnvironmentVariableA
Function name: GetTimeFormatA
Function name: GlobalSize
Function name: GetDiskFreeSpaceA
Function name: SetErrorMode
Function name: DeviceIoControl
Function name: GetVolumeInformationA
Function name: GetDriveTypeA
Function name: SetVolumeLabelA
Function name: GetComputerNameA
Function name: CreateDirectoryA
Function name: WriteFile
Function name: DeleteFileA
Function name: SetFileAttributesA
Function name: SetFileTime
Function name: LocalFileTimeToFileTime
Function name: FreeLibrary
Function name: LoadLibraryA
Function name: SetLastError
Function name: CompareStringA
Function name: RemoveDirectoryA
Function name: CopyFileA
Function name: GetCurrentProcess
Function name: GetPrivateProfileStringA
Function name: WritePrivateProfileStringA
Function name: FormatMessageA
Function name: MapViewOfFile
Function name: CreateFileMappingA
Function name: UnmapViewOfFile
Function name: SystemTimeToFileTime
Function name: FileTimeToSystemTime
Function name: GetTempPathA
Function name: GetWindowsDirectoryA
Function name: GetCommandLineA
Function name: GetStartupInfoA
Function name: HeapFree
Function name: HeapReAlloc
Function name: ExitProcess
Function name: HeapAlloc
Function name: HeapCreate
Function name: VirtualFree
Function name: VirtualAlloc
Function name: HeapSize
Function name: GetSystemTime
Function name: GetLocalTime
Function name: GetDateFormatA
Function name: FindFirstFileA
Function name: FindNextFileA
Function name: FindClose
Function name: GetModuleFileNameA
Function name: GetVersionExA
Function name: CreateThread
Function name: SetThreadPriority
Function name: GetExitCodeThread
Function name: CloseHandle
Function name: CreateMutexA
Function name: GetLastError
Function name: lstrcmpiA
Function name: GetCurrentThreadId
Function name: GlobalUnlock
Function name: GlobalAlloc
Function name: GlobalLock
Function name: GlobalFree
Function name: LCMapStringA
Function name: LCMapStringW
Function name: RtlUnwind
Function name: GetCurrentDirectoryA
Function name: GetModuleHandleA
Function name: GetProcAddress
Function name: Sleep
Function name: SetCurrentDirectoryA
Function name: GetTickCount
Function name: InterlockedExchange
Function name: VirtualQuery
Function name: SetHandleCount
Function name: GetStdHandle
Function name: GetFileType
Function name: GetACP
Function name: GetOEMCP
Function name: GetCPInfo
Function name: UnhandledExceptionFilter
Function name: FreeEnvironmentStringsA
Function name: GetEnvironmentStrings
Function name: FreeEnvironmentStringsW
Function name: GetEnvironmentStringsW
Function name: SetFilePointer
Function name: GetStringTypeA
Function name: GetStringTypeW
Function name: HeapDestroy
Function name: GetLocaleInfoA
Function name: VirtualProtect
Function name: GetSystemInfo
Function name: SetStdHandle
Function name: FlushFileBuffers
Function name: QueryPerformanceCounter
Function name: GetFileAttributesA
Function name: SetEndOfFile
ADVAPI32.DLL
Function name: RegDeleteValueA
Function name: RegDeleteKeyA
Function name: RegCreateKeyExA
Function name: RegSetValueExA
Function name: RegQueryValueExA
Function name: OpenProcessToken
Function name: LookupPrivilegeValueA
Function name: AdjustTokenPrivileges
Function name: OpenSCManagerA
Function name: LockServiceDatabase
Function name: UnlockServiceDatabase
Function name: CloseServiceHandle
Function name: GetUserNameA
Function name: RegOpenKeyExA
Function name: RegQueryInfoKeyA
Function name: RegEnumValueA
Function name: RegEnumKeyExA
Function name: RegCloseKey
Function name: RegConnectRegistryA
pada offset 000555f8 rva 000561f8 maka terlihat string Microsoft Visual C++ Runtime library,dan jika dibuka dengan PEiD,terlihat bahwa Tati dikompile dengan Microsoft Visual C++ 7.0 [2002]
Ketika Dijalankan,maka Tati akan:
membuat mutex dengan nama _SHuassist.mtx
meng-copy dirinya ke:
C:\WINDOWS\Tati.EXE
C:\Documents and Settings\All Users\Start Menu\Programs\Startup\Tati.exe
membuat file tati.my.love.txt dan autorun.inf pada removable drive
membuat registry key untuk menyembunyikan extension:
HKCUsoftware\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt
Memodifikasi file :
C:\Documents and Settings\%username%\Local Settings\History\History.IE5\index.dat
C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\Content.IE5\index.dat
referensi:
http://inet.detik.com/index.php/detik.read/tahun/2008/bulan/01/tgl/16/time/150208/idnews/879857/idkanal/323
http://virusindonesia.com/2007/12/09/virus-tati-rc22-update-build4/
Semoga Bermanfaat =)
Artikel ini dibuat oleh Yudha Tri Putra,segala macam bentuk pengcopyan atau menyalin sebagian atau seluruh halaman ini,dapat dikenakan sanksi dan melanggar Hak Cipta Yudha Tri Putra sebagai Blogger
0 komentar:
Posting Komentar