Jumat, 12 Oktober 2012

[Analisa] Tati My Love




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
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

(C) 2018. Diberdayakan oleh Blogger.

Categories

Followers