RootkitRevealer v1.71

Oleh Mark Russinovich

Diterbitkan: 1 November 2006

UnduhUnduh RootkitRevealer (231 KB)
Jalankan sekarang dari Sysinternals Live.

Pendahuluan

RootkitRevealer adalah utilitas deteksi rootkit tingkat lanjut. Ini berjalan pada Windows XP (32-bit) dan Windows Server 2003 (32-bit), dan outputnya mencantumkan perbedaan Registri dan SISTEM file yang mungkin menunjukkan adanya rootkit mode pengguna atau mode kernel. RootkitRevealer berhasil mendeteksi banyak rootkit persisten termasuk AFX, Vanquish dan HackerDefender (catatan: RootkitRevealer tidak dimaksudkan untuk mendeteksi rootkit seperti Fu yang tidak mencoba menyembunyikan file atau kunci registri mereka). Jika Anda menggunakannya untuk mengidentifikasi keberadaan rootkit, beri tahu kami!

Alasan bahwa tidak ada lagi versi baris perintah adalah bahwa penulis malware telah mulai menargetkan pemindaian RootkitRevealer dengan menggunakan nama yang dapat dieksekusi. Oleh karena itu, kami telah memperbarui RootkitRevealer untuk menjalankan pemindaiannya dari salinan bernama acak dirinya sendiri yang berjalan sebagai layanan Windows. Jenis eksekusi ini tidak kondusif untuk antarmuka baris perintah. Perhatikan bahwa Anda dapat menggunakan opsi baris perintah untuk menjalankan pemindaian otomatis dengan hasil yang dicatat ke file, yang setara dengan perilaku versi baris perintah.

Apa itu Rootkit?

Istilah rootkit digunakan untuk menggambarkan mekanisme dan teknik di mana malware, termasuk virus, spyware, dan trojan, mencoba menyembunyikan keberadaannya dari pemblokir spyware, antivirus, dan utilitas manajemen sistem. Ada beberapa klasifikasi rootkit tergantung pada apakah malware bertahan dari boot ulang dan apakah itu dijalankan dalam mode pengguna atau mode kernel.

Rootkit Persisten
Rootkit persisten adalah salah satu yang terkait dengan malware yang diaktifkan setiap kali sistem boot. Karena malware tersebut berisi kode yang harus dijalankan secara otomatis setiap sistem dimulai atau ketika pengguna masuk, mereka harus menyimpan kode di penyimpanan persisten, seperti Registri atau sistem file, dan mengonfigurasi metode di mana kode dijalankan tanpa intervensi pengguna.

Rootkit Berbasis Memori
Rootkit berbasis memori adalah malware yang tidak memiliki kode persisten dan oleh karena itu tidak bertahan dari boot ulang.

Rootkit mode pengguna
Ada banyak metode di mana rootkit mencoba menghindari deteksi. Misalnya, rootkit mode pengguna mungkin mencegat semua panggilan ke WINDOWS FindFirstFile/FindNextFile API, yang digunakan oleh utilitas eksplorasi sistem file, termasuk Explorer dan prompt perintah, untuk menghitung konten direktori sistem file. Ketika aplikasi melakukan daftar direktori yang akan mengembalikan hasil yang berisi entri yang mengidentifikasi file yang terkait dengan rootkit, rootkit mencegat dan memodifikasi output untuk menghapus entri.

API asli Windows berfungsi sebagai antarmuka antara klien mode pengguna dan layanan mode kernel dan rootkit mode pengguna yang lebih canggih mencegat sistem file, Registri, dan fungsi enumerasi proses API Asli. Ini mencegah deteksi mereka oleh pemindai yang membandingkan hasil enumerasi Windows API dengan yang dikembalikan oleh enumerasi API asli.

Rootkit mode kernel
Rootkit mode kernel dapat menjadi lebih kuat karena, tidak hanya dapat mencegat API asli dalam mode kernel, tetapi juga dapat langsung memanipulasi struktur data mode kernel. Teknik umum untuk menyembunyikan keberadaan proses malware adalah menghapus proses dari daftar proses aktif kernel. Karena API manajemen proses mengandalkan konten daftar, proses malware tidak akan ditampilkan dalam alat manajemen proses seperti Pengelola Tugas atau Penjelajah Proses.

Cara Kerja RootkitRevealer

Karena rootkit persisten bekerja dengan mengubah hasil API sehingga tampilan sistem yang menggunakan API berbeda dari tampilan aktual dalam penyimpanan, RootkitRevealer membandingkan hasil pemindaian sistem pada tingkat tertinggi dengan yang pada tingkat terendah. Tingkat tertinggi adalah WINDOWS API dan tingkat terendah adalah konten mentah dari volume sistem file atau sarang Registri (file apache hive adalah format penyimpanan pada disk Registri). Dengan demikian, rootkit, baik mode pengguna atau mode kernel, yang memanipulasi Windows API atau API asli untuk menghapus kehadiran mereka dari daftar direktori, misalnya, akan dilihat oleh RootkitRevealer sebagai perbedaan antara informasi yang dikembalikan oleh WINDOWS API dan yang terlihat dalam pemindaian mentah struktur sistem file volume FAT atau NTFS.

Dapatkah Rootkit bersembunyi dari RootkitRevealer
Secara teoritis dimungkinkan bagi rootkit untuk bersembunyi dari RootkitRevealer. Melakukannya akan mengharuskan mencegat pembacaan Data registri RootkitRevealer atau data sistem file dan mengubah konten data sehingga data atau file Registri rootkit tidak ada. Namun, ini akan membutuhkan tingkat kecanggihan yang tidak terlihat di rootkit hingga saat ini. Perubahan pada data akan memerlukan pengetahuan intim tentang format sarang NTFS, FAT, dan Registri, ditambah kemampuan untuk mengubah struktur data sehingga mereka menyembunyikan rootkit, tetapi tidak menyebabkan struktur yang tidak konsisten atau tidak valid atau perbedaan efek samping yang akan ditandai oleh RootkitRevealer.

Apakah ada cara pasti untuk mengetahui kehadiran rootkit
Secara umum, bukan dari dalam sistem yang sedang berjalan. Rootkit mode kernel dapat mengontrol aspek apa pun dari perilaku sistem sehingga informasi yang dikembalikan oleh API apa pun, termasuk pembacaan mentah sarang Registri dan data sistem file yang dilakukan oleh RootkitRevealer, dapat disusupi. Meskipun membandingkan pemindaian on-line sistem dan pemindaian off-line dari lingkungan yang aman seperti boot menjadi instalasi sistem operasi berbasis CD lebih dapat diandalkan, rootkit dapat menargetkan alat tersebut untuk menghindari deteksi bahkan oleh mereka.

Intinya adalah bahwa tidak akan pernah ada pemindai rootkit universal, tetapi pemindai yang paling kuat adalah pemindai perbandingan on-line/off-line yang terintegrasi dengan antivirus.

Menggunakan RootkitRevealer

RootkitRevealer mengharuskan akun tempat eksekusinya ditetapkan ke dalamnya file dan direktori Cadangan, Memuat driver dan Melakukan tugas pemeliharaan volume (pada Windows XP dan yang lebih tinggi). Grup Administrator diberi hak istimewa ini secara default. Untuk meminimalkan positif palsu, jalankan RootkitRevealer pada sistem menganggur.

Untuk hasil terbaik keluar dari semua aplikasi dan menjaga sistem tetap diam selama proses pemindaian RootkitRevealer.

Jika Anda memiliki pertanyaan atau masalah, kunjungi Forum Sysinternals RootkitRevealer.

Pemindaian Manual

Untuk memindai sistem meluncurkannya pada sistem dan tekan tombol Pindai. RootkitRevealer memindai sistem yang melaporkan tindakannya di area status di bagian bawah jendelanya dan mencatat perbedaan dalam daftar output. Opsi yang dapat Anda konfigurasi:

  • Sembunyikan File Metadata NTFS: opsi ini aktif secara default dan memiliki RootkitRevealer tidak menampilkan file metadata NTFS standar, yang disembunyikan dari WINDOWS API.
  • Pindai Registri: opsi ini aktif secara default. Membatalkan pilihannya memiliki RootkitRevealer yang tidak melakukan pemindaian Registri.

Meluncurkan Pemindaian Otomatis

RootkitRevealer mendukung beberapa opsi untuk sistem pemindaian otomatis:

Penggunaan: rootkitrevealer [-a [-c] [-m] [-r] outputfile]

Parameter Deskripsi
-sebuah Pindai dan keluar secara otomatis setelah selesai.
-c Format output sebagai CSV.
-m Tampilkan file metadata NTFS.
-r Jangan pindai Registri.

Perhatikan bahwa lokasi output file harus berada pada volume lokal.

Jika Anda menentukan opsi -c, opsi tersebut tidak melaporkan kemajuan dan perbedaan dicetak dalam format CSV agar mudah diimpor ke dalam database. Anda dapat melakukan pemindaian sistem jarak jauh dengan menjalankannya dengan utilitas Sysinternals PsExec menggunakan baris perintah seperti berikut:

psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log

Menginterpretasikan Output

Ini adalah cuplikan layar RootkitRevealer yang mendeteksi keberadaan rootkit HackerDefender populer. Perbedaan kunci Registri menunjukkan bahwa kunci Registri yang menyimpan pengaturan driver perangkat dan layanan HackerDefender tidak terlihat oleh WINDOWS API, tetapi ada dalam pemindaian mentah data sarang Registri. Demikian pula, file terkait HackerDefender tidak terlihat oleh pemindaian direktori Windows API, tetapi ada dalam pemindaian data sistem file mentah.

Pengungkap Rootkit

Anda harus memeriksa semua perbedaan dan menentukan kemungkinan bahwa mereka menunjukkan adanya rootkit. Sayangnya, tidak ada cara pasti untuk menentukan, berdasarkan output, jika ada rootkit, tetapi Anda harus memeriksa semua perbedaan yang dilaporkan untuk memastikan bahwa mereka dapat dijelaskan. Jika Anda menentukan bahwa Anda memiliki rootkit yang terinstal, cari di web untuk instruksi penghapusan. Jika Anda tidak yakin tentang cara menghapus rootkit, Anda harus memformat ulang hard disk sistem dan menginstal ulang Windows.

Selain informasi di bawah ini tentang kemungkinan perbedaan RootkitRevealer, Forum RootkitRevealer di Sysinternals membahas rootkit yang terdeteksi dan positif palsu tertentu.

Disembunyikan dari Windows API

Perbedaan ini adalah yang dipamerkan oleh sebagian besar rootkit; namun, jika Anda belum memeriksa file sembunyikan metadata NTFS, Anda harus berharap untuk melihat sejumlah entri tersebut pada volume NTFS apa pun, karena NTFS menyembunyikan file metadatanya, seperti $MFT dan $Secure, dari WINDOWS API. File metadata yang ada pada volume NTFS bervariasi menurut versi NTFS dan fitur NTFS yang telah diaktifkan pada volume. Ada juga produk antivirus, seperti Kaspersky Antivirus, yang menggunakan teknik rootkit untuk menyembunyikan data yang mereka simpan di aliran data alternatif NTFS. Jika Anda menjalankan pemindai virus seperti itu, Anda akan melihat perbedaan Tersembunyi dari Windows API untuk aliran data alternatif pada setiap file NTFS. RootkitRevealer tidak mendukung filter output karena rootkit dapat memanfaatkan pemfilteran apa pun. Terakhir, jika file dihapus selama pemindaian, Anda mungkin juga melihat perbedaan ini.

Ini adalah daftar file metadata NTFS yang didefinisikan pada Windows Server 2003:

  • $AttrDef
  • $BadClus
  • $BadClus:$Bad
  • $BitMap
  • $Boot
  • $LogFile
  • $Mft
  • $MftMirr
  • $Secure
  • $UpCase
  • $Volume
  • $Extend
  • $Extend\$Reparse
  • $Extend\$ObjId
  • $Extend\$UsnJrnl
  • $Extend\$UsnJrnl:$Max
  • $Extend\$Quota

Akses Ditolak.
RootkitRevealer tidak boleh melaporkan perbedaan ini karena menggunakan mekanisme yang memungkinkannya mengakses file, direktori, atau kunci registri apa pun pada sistem.

Terlihat di Windows API, indeks direktori, tetapi tidak di MFT.
Terlihat di Windows API, tetapi tidak di MFT atau indeks direktori.
Terlihat di Windows API, MFT, tetapi tidak dalam indeks direktori.
Terlihat dalam indeks direktori, tetapi bukan Windows API atau MFT.

Pemindaian sistem file terdiri dari tiga komponen: API Windows, Tabel File Master (MFT) NTFS, dan struktur indeks direktori lokal NTFS. Perbedaan ini menunjukkan bahwa file hanya muncul dalam satu atau dua pemindaian. Alasan umumnya adalah bahwa file dibuat atau dihapus selama pemindaian. Ini adalah contoh laporan perbedaan RootkitRevealer untuk file yang dibuat selama pemindaian:

C:\newfile.txt
3/1/2005 17:26 PM
8 byte
Terlihat di Windows API, tetapi tidak di MFT atau indeks direktori.

Panjang WINDOWS API tidak konsisten dengan data sarang mentah.
Rootkit dapat mencoba menyembunyikan diri dengan salah menggambarkan ukuran nilai Registri sehingga kontennya tidak terlihat oleh WINDOWS API. Anda harus memeriksa perbedaan tersebut, meskipun mungkin juga muncul sebagai akibat dari nilai Registri yang berubah selama pemindaian.

Ketik ketidakcocokan antara Windows API dan data hive mentah.
Nilai registri memiliki jenis, seperti DWORD dan REG_SZ, dan perbedaan ini mencatat bahwa jenis nilai seperti yang dilaporkan melalui WINDOWS API berbeda dari data sarang mentah. Rootkit dapat menutupi datanya dengan menyimpannya sebagai nilai REG_BINARY, misalnya, dan membuat API Windows percaya bahwa itu adalah nilai REG_SZ; jika menyimpan 0 di awal data, Windows API tidak akan dapat mengakses data berikutnya.

Nama kunci berisi null yang disematkan.
WINDOWS API memperlakukan nama kunci sebagai string null-terminated, sedangkan kernel memperlakukannya sebagai string yang dihitung. Dengan demikian, dimungkinkan untuk membuat kunci Registri yang terlihat oleh sistem operasi, namun hanya terlihat sebagian oleh alat Registri seperti Regedit. Kode sampel Reghide di Sysinternals menunjukkan teknik ini, yang digunakan oleh malware dan rootkit untuk menyembunyikan data Registri. Gunakan utilitas Sysinternals RegDelNull untuk menghapus kunci dengan null yang disematkan.

Ketidakcocokan data antara Windows API dan data hive mentah.
Perbedaan ini akan terjadi jika nilai Registri diperbarui saat pemindaian Registri sedang berlangsung. Nilai yang sering berubah termasuk tanda waktu seperti nilai waktu aktif Microsoft SQL Server, yang ditunjukkan di bawah ini, dan nilai "pemindai terakhir" pemindai virus. Anda harus menyelidiki nilai yang dilaporkan untuk memastikan bahwa itu adalah aplikasi atau nilai Registri sistem yang valid.

HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc
3/1/2005 4:33 PM
8 byte

Sumber Daya Rootkit

Situs web dan buku berikut adalah sumber informasi lebih lanjut tentang rootkit:

Sony, Rootkit, dan Manajemen Hak Digital Hilang Terlalu Jauh
Baca entri blog Mark pada penemuannya dan analisis rootkit Sony di salah satu komputernya.

Mengalihkan Rootkit
Artikel Majalah TI Pro Windows Juni Mark menyediakan gambaran umum tentang teknologi rootkit dan cara kerja RootkitRevealer.

Rootkit: Subverting Kernel Windows
Buku karya Greg Hoglund dan Jamie Butler ini adalah perawatan rootkit paling komprehensif yang tersedia.

www.phrack.org
Situs ini menyimpan arsip Phrack, majalah berorientasi cracker di mana pengembang membahas kelemahan dalam produk terkait keamanan, teknik rootkit, dan trik malware lainnya.

Seni Penelitian dan Pertahanan Virus Komputer, oleh Peter Szor

Malware: Memerangi Kode Berbahaya, oleh Ed Skoudis dan Lenny Zeltser

Windows Internals, Edisi Ke-4, oleh Mark Russinovich dan Dave Solomon (buku ini tidak berbicara tentang rootkit, tetapi memahami arsitektur Windows sangat membantu untuk memahami rootkit).

UnduhUnduh RootkitRevealer (231 KB)

Jalankan sekarang dari Sysinternals Live.