Tautan ke semua bagian:Bagian 1. Mendapatkan akses awal (Akses Awal)Bagian 2. EksekusiBagian 3. Fastening (Kegigihan)Bagian 4. Eskalasi PrivilegeBagian 5. Pertahanan EvasionBagian 6. Mendapatkan kredensial (Akses Kredensial)Bagian 7. PenemuanBagian 8. Gerakan LateralEskalasi hak istimewa adalah hasil dari tindakan yang memungkinkan penyerang atau program jahat memperoleh tingkat izin yang lebih tinggi dalam sistem atau jaringan yang diserang. Teknik eskalasi hak istimewa menggambarkan metode yang digunakan musuh, setelah mendapatkan akses tidak terbatas ke sistem yang diserang, menggunakan berbagai "kelemahan" sistem dapat memperoleh administrator lokal, sistem, atau hak root. Penggunaan oleh penyerang akun pengguna dengan hak akses ke sistem atau izin tertentu untuk melakukan operasi tertentu juga dapat dianggap sebagai eskalasi hak istimewa.
Penulis tidak bertanggung jawab atas konsekuensi yang mungkin dari penerapan informasi yang ditetapkan dalam artikel, dan juga meminta maaf atas kemungkinan ketidakakuratan yang dibuat dalam beberapa formulasi dan ketentuan. Informasi yang dipublikasikan adalah pengungkapan kembali gratis konten MITER ATT & CK .Penting untuk membatalkan bahwa beberapa teknik yang dijelaskan dalam matriks
ATT @ CK secara bersamaan termasuk dalam beberapa tahap rantai serangan, misalnya, intersepsi pencarian DLL dapat digunakan baik untuk mengamankan akses dengan eksekusi yang tidak sah dari DLL jahat dan untuk meningkatkan hak istimewa dengan meluncurkan DLL dalam proses, bekerja dalam konteks pengguna yang lebih istimewa.
Sistem: Windows
Hak: Pengguna, Administrator
Deskripsi: Penyerang dapat menggunakan Token Akses untuk melakukan tindakan dalam berbagai konteks keamanan pengguna atau sistem, sehingga menghindari deteksi aktivitas jahat. Musuh dapat menggunakan fungsi Windows API untuk menyalin token akses dari proses yang ada (mencuri Token), untuk ini ia harus berada dalam konteks pengguna yang diistimewakan (misalnya, administrator). Pencurian token akses biasanya digunakan untuk meningkatkan hak istimewa dari tingkat administrator ke tingkat Sistem. Musuh juga dapat menggunakan token akses akun untuk otentikasi pada sistem jarak jauh, jika akun ini memiliki izin yang diperlukan pada sistem jarak jauh.
Pertimbangkan beberapa cara untuk menyalahgunakan token akses:
- Pencurian dan peniruan token. Peniruan token adalah kemampuan OS untuk memulai utas dalam konteks keamanan selain konteks proses di mana utas ini berada. Dengan kata lain, personifikasi token memungkinkan Anda untuk melakukan tindakan apa pun atas nama pengguna lain. Musuh dapat menduplikasi token akses menggunakan fungsi DuplicateTokenEX dan menggunakan ImpersonateLoggedOnUser untuk memanggil utas dalam konteks pengguna yang masuk, atau menggunakan SetThreadToken untuk menetapkan token akses ke aliran.
- Buat proses menggunakan token akses. Penyerang dapat membuat token akses menggunakan fungsi DuplicateTokenEX dan kemudian menggunakannya dengan CreateProcessWithTokenW untuk membuat proses baru yang berjalan dalam konteks pengguna yang ditiru.
- Memperoleh dan menyamar sebagai token akses. Musuh, yang memiliki nama pengguna dan kata sandi, dapat membuat sesi login menggunakan fungsi LogonUser API, yang akan mengembalikan salinan token akses sesi sesi baru, dan kemudian menggunakan fungsi SetThreadToken untuk menetapkan token ke utas. Metasploit Meterpreter dan CobaltStrike memiliki alat untuk memanipulasi token akses untuk meningkatkan hak istimewa.
Rekomendasi perlindungan: Untuk memanfaatkan sepenuhnya taktik di atas, penyerang harus memiliki hak administrator sistem, jadi jangan lupa untuk membatasi hak istimewa pengguna biasa. Setiap pengguna dapat menipu token akses jika mereka memiliki kredensial yang sah. Batasi kemampuan pengguna dan grup untuk membuat token akses:
GPO: Konfigurasi Komputer> [Kebijakan]> Pengaturan Windows> Pengaturan Keamanan> Kebijakan Lokal> Penugasan Hak Pengguna: Buat objek tokenTentukan juga siapa yang dapat mengganti token proses layanan lokal atau jaringan:
GPO: Konfigurasi Komputer> [Kebijakan]> Pengaturan Windows> Pengaturan Keamanan> Kebijakan Lokal> Penugasan Hak Pengguna: Ganti token level prosesSistem: Windows
Hak: Administrator
Deskripsi: Aplikasi aksesibilitas (pembesar layar, keyboard di layar, dll.) Dapat diluncurkan menggunakan kombinasi tombol sebelum pengguna masuk ke sistem. Seorang penyerang dapat mengganti file startup dari program-program ini atau mengubah cara mereka diluncurkan dan membuka konsol perintah atau mendapatkan pintu belakang tanpa masuk.
- C: \ Windows \ System32 \ sethc.exe - diluncurkan 5 kali lipat dengan menekan tombol Shift;
- C: \ Windows \ System32 \ utilman.exe - diluncurkan dengan menekan kombinasi Win + U.
Di WinXP dan versi yang lebih baru, sethc.exe dan utilman.exe dapat diganti, misalnya, dengan cmd.exe, maka ketika Anda menekan kombinasi tombol yang diinginkan, cmd.exe dimulai sebelum memasuki Windows dengan hak istimewa Sistem.
Di Vista dan versi yang lebih baru, Anda perlu mengubah kunci registri yang mengkonfigurasi cmd.exe atau program lain sebagai debugger, misalnya, untuk ultiman.exe. Setelah mengedit registri dan menekan kombinasi tombol yang diinginkan pada layar login atau saat menghubungkan ke host melalui RDP, cmd.exe dengan hak sistem akan dieksekusi.
Ada juga program Windows yang dapat digunakan untuk menerapkan teknik serangan ini:
- C: \ Windows \ System32 \ osk.exe;
- C: \ Windows \ System32 \ Magnify.exe;
- C: \ Windows \ System32 \ Narrator.exe;
- C: \ Windows \ System32 \ DisplaySwitch.exe;
- C: \ Windows \ System32 \ AtBroker.exe.
Rekomendasi keamanan: Konfigurasikan awal otentikasi jaringan wajib untuk pengguna jarak jauh sebelum membuat sesi RDP dan menampilkan layar login (
diaktifkan secara default di Windows Vista dan yang lebih baru ). Gunakan Remote Desktop Gateway untuk mengelola koneksi dan mengkonfigurasi keamanan RDP.
Sistem: Windows
Hak: Administrator, Sistem
Deskripsi: DLL yang ditentukan dalam nilai kunci AppCertDLL dimuat ke dalam setiap proses yang memanggil fungsi API yang sering digunakan:
CreateProcess, CreateProcessAsUser, CreateProcessWithLoginW, CreateProcessWithTokenW, WinExec . Nilai kunci AppCertDLLs dapat disalahgunakan dengan menyebabkan DLL jahat memuat dan menjalankan proses tertentu. AppCertDLL disimpan dalam kunci registri berikut:
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager .
Rekomendasi perlindungan: Gunakan semua cara yang mungkin untuk memblokir perangkat lunak yang berpotensi berbahaya dan mengunduh DLL yang tidak dikenal, seperti AppLocker dan DeviceGuard.
Sistem: Windows
Hak: Administrator, Sistem
Deskripsi: DLL yang ditentukan dalam nilai kunci AppInit_DLLs dimuat ke dalam setiap proses yang memuat user32.dll. Dalam praktiknya, ini hampir setiap program.
AppInit_DLL disimpan dalam kunci registri berikut:
- HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows;
- HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion \ Windows.
Nilai kunci AppInit_DLLs dapat disalahgunakan untuk melampaui hak istimewa dengan memuat DLL jahat dan memulai proses tertentu. Fungsionalitas AppInit_DLL dinonaktifkan di Windows 8 dan yang lebih baru saat Secure Boot diaktifkan.
Rekomendasi perlindungan: Pertimbangkan untuk menggunakan versi OS tidak lebih awal dari Windows 8 dan mengaktifkan boot aman. Gunakan segala macam cara untuk memblokir perangkat lunak yang berpotensi berbahaya dan mengunduh DLL yang tidak dikenal, seperti AppLocker dan DeviceGuard.
Sistem: Windows
Hak: Administrator
Deskripsi: Infrastruktur / Kerangka Kerja Kompatibilitas Aplikasi Microsoft Windows dibuat untuk memastikan kompatibilitas program dengan pembaruan Windows dan perubahan kode OS. Sistem kompatibilitas menggunakan apa yang disebut shim ("gasket") - perpustakaan yang bertindak sebagai penyangga antara program dan OS. Menggunakan cache shim, sistem menentukan kebutuhan untuk gasket shim (disimpan sebagai database .sdb). Berbagai file .sdb menyimpan berbagai prosedur untuk memotong kode aplikasi, memprosesnya, dan kemudian mengarahkannya ke OS. Daftar semua shim-gasket yang diinstal oleh installer (sdbinst.exe) disimpan secara default di:
- % WINDIR% \ AppPatch \ sysmain.sdb ;
- HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ InstalledSDB .
Database shim khusus disimpan di:
- % WINDIR% \ AppPatch [64] \ Kustom;
- HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Kustom .
Untuk memastikan perlindungan dalam mode pengguna, kemampuan untuk mengubah kernel OS dengan menggunakan shim-gasket dikecualikan, dan hak administrator diperlukan untuk menginstalnya. Namun, beberapa bantalan shim dapat digunakan untuk memintas Kontrol Akun Pengguna (UAC), injeksi DLL, menonaktifkan
Pencegahan Eksekusi Data dan
Penanganan Pengecualian Srtucture , serta mencegat alamat memori. Seorang penyerang yang menggunakan shim-gasket dapat meningkatkan hak istimewa, menginstal backdoors, menonaktifkan perlindungan OS, seperti Windows Defender.
Rekomendasi perlindungan: Tidak ada banyak cara untuk mencegah shiming Aplikasi. Menonaktifkan kompatibilitas aplikasi tidak disarankan untuk menghindari masalah dengan stabilitas OS. Microsoft telah merilis
KB3045645 , yang akan menghapus flag "auto-elevate" di file sdbinst.exe untuk mencegah penggunaan sistem shim untuk memintas UAC.
Sistem: Windows
Hak: Pengguna, Administrator
Deskripsi: Ada banyak cara untuk mem-bypass UAC, yang paling umum diterapkan dalam proyek
UACMe . Cara-cara baru untuk memotong UAC secara teratur ditemukan, seperti menyalahgunakan aplikasi sistem
eventvwr.exe , yang dapat mengeksekusi file biner atau skrip yang ditinggikan. Program jahat juga dapat tertanam dalam proses tepercaya di mana UAC memungkinkan peningkatan hak istimewa tanpa mendorong pengguna.
Untuk memintas UAC menggunakan eventvwr.exe, kunci dimodifikasi di registri Windows:
[HKEY_CURRENT_USER] \ Software \ Classes \ mscfile \ shell \ open \ command .
Untuk memintas UAC menggunakan sdclt.exe, kunci dalam registri Windows dimodifikasi:
[HKEY_CURRENT_USER] \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths \ control.exe;
[HKEY_CURRENT_USER] \ Software \ Classes \ exefile \ shell \ runas \ command \ terisolasiCommand.Rekomendasi perlindungan: Hapus pengguna dari grup administrator lokal di sistem yang dilindungi. Jika memungkinkan, aktifkan tingkat perlindungan tertinggi di pengaturan UAC.
Sistem: Windows
Hak: Pengguna, Administrator, Sistem
Deskripsi: Teknik ini terdiri dari mengeksploitasi kelemahan dalam algoritma untuk menemukan oleh aplikasi file DLL yang mereka perlukan untuk bekerja (
MSA2269637 ). Seringkali, direktori pencarian DLL adalah direktori kerja program, sehingga penyerang dapat mengganti sumber DLL dengan yang jahat dengan nama file yang sama.
Serangan jarak jauh pada pencarian DLL dapat dilakukan ketika program menginstal direktori saat ini di direktori jarak jauh, misalnya, berbagi jaringan. Juga, penyerang dapat secara langsung mengubah metode mencari dan memuat DLL dengan mengganti file .manifest atau .local, yang menggambarkan parameter pencarian DLL. Jika program yang diserang bekerja dengan tingkat hak istimewa yang tinggi, maka DLL jahat yang dimuat olehnya juga akan dieksekusi dengan hak yang tinggi. Dalam hal ini, teknik ini dapat digunakan untuk meningkatkan hak istimewa dari pengguna ke administrator atau Sistem.
Rekomendasi perlindungan: Mencegah pemuatan DLL jarak jauh (diaktifkan secara default di Windows Server 2012+ dan tersedia dengan pembaruan untuk XP + dan Server 2003+). Mengaktifkan mode pencarian aman untuk DLL, yang membatasi direktori pencarian ke direktori seperti
% SYSTEMROOT% sebelum melakukan pencarian DLL di direktori aplikasi saat ini.
Mengaktifkan Mode Pencarian DLL Aman:
Konfigurasi Komputer> [Kebijakan]> Template Administratif> MSS (Legacy): MSS: (SafeDllSearchMode) Mengaktifkan mode pencarian DLL Aman.Kunci registri yang sesuai:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ SafeDLLSearchMode.Pertimbangkan untuk mengaudit sistem yang dilindungi untuk memperbaiki kekurangan DLL menggunakan alat seperti PowerUP di PowerSploit. Jangan lupa tentang memblokir perangkat lunak berbahaya dan berpotensi berbahaya, serta mengikuti
rekomendasi Microsoft .
Sistem: macOS
Hak: Pengguna
Deskripsi: Teknik ini didasarkan pada
kerentanan dalam algoritma pencarian perpustakaan dinamis dylib pada macOS dan OS X. Intinya adalah untuk menentukan dylib yang dimuat oleh aplikasi yang diserang dan kemudian menempatkan dylib versi berbahaya dengan nama yang sama di direktori kerja aplikasi. Ini akan menyebabkan aplikasi memuat dylib, yang terletak di direktori kerja program. Dalam hal ini, Dylib berbahaya akan dieksekusi dengan hak akses aplikasi yang diserang.
Kiat Keamanan
: Cegah pengguna dari menulis file ke direktori pencarian dylib. Kerentanan audit menggunakan
Dylib Hijacking Scanner dari Objective-See.
Sistem: Windows, Linux, macOS
Hak: Pengguna
Deskripsi: Penentang dapat meningkatkan hak istimewa dalam sistem yang diserang menggunakan kerentanan dalam perangkat lunak.
Rekomendasi perlindungan: Pembaruan perangkat lunak reguler pada semua workstation, server, peralatan jaringan yang dilindungi, dan perangkat lain yang terhubung ke jaringan yang dilindungi. Menganalisis jenis ancaman, kerentanan, dan mengeksploitasi program yang dapat digunakan terhadap organisasi yang dilindungi. Sistem perlindungan
eksploit seperti
Windows Defender Exploit Guard (WDEG) untuk Windows 10 atau
Enhanced Mitigation Experience Toolkit (EMET) untuk versi Windows sebelumnya juga disarankan.
h3
EWM Injection (Injeksi Memori Jendela Ekstra)Sistem: Windows
Hak: Administrator, Sistem
Deskripsi: Teknik ini adalah penyalahgunaan memori jendela Windows tambahan, yang disebut Memori Jendela Ekstra (EWM). Ukuran EWM adalah 40 byte, cocok untuk menyimpan pointer 32-bit dan sering digunakan untuk menunjukkan referensi ke prosedur. Program jahat selama rantai serangan dapat menempatkan pointer ke kode berbahaya di EWM, yang selanjutnya akan diluncurkan oleh proses aplikasi yang terinfeksi.
Rekomendasi perlindungan: Mengingat bahwa teknik injeksi EWM didasarkan pada penyalahgunaan fungsi pengembangan OS, upaya perlindungan harus diarahkan untuk mencegah peluncuran program jahat dan alat berbahaya. Merupakan praktik yang baik untuk mengidentifikasi dan memblokir perangkat lunak yang berpotensi berbahaya menggunakan AppLocker, aplikasi daftar putih, atau menerapkan Kebijakan Pembatasan Perangkat Lunak.
Sistem: Windows
Hak: Pengguna, Administrator
Deskripsi: Inti dari teknik ini adalah penggantian file yang dapat dieksekusi yang secara otomatis diluncurkan oleh berbagai proses (misalnya, ketika OS boot up atau pada waktu tertentu, jika hak atas file yang dapat dieksekusi tidak dikonfigurasi dengan benar). Setelah spoofing, file jahat akan diluncurkan dengan hak proses, jadi jika proses memiliki tingkat akses yang lebih tinggi, penyerang akan dapat meningkatkan hak istimewa. Dalam teknik ini, penyerang dapat mencoba untuk memanipulasi file biner layanan Windows.
Varian lain dari serangan dikaitkan dengan kekurangan algoritma dalam pekerjaan installer yang mengekstraksi sendiri. Selama proses instalasi, installer sering membongkar berbagai file yang berguna, termasuk .dll dan .exe, ke direktori% TEMP%, namun, mereka mungkin tidak mengatur izin yang sesuai untuk membatasi akses ke file yang tidak dibongkar, yang memungkinkan penyerang melakukan spoofing file dan, sebagai hasilnya, tingkatkan hak istimewa atau bypass kontrol akun, sebagai beberapa installer dijalankan dengan hak istimewa yang diperluas.
Rekomendasi perlindungan: Batasi hak istimewa akun sehingga hanya administrator yang dapat mengelola layanan dan berinteraksi dengan file biner yang digunakan oleh layanan. Nonaktifkan opsi eskalasi hak istimewa UAC untuk pengguna standar. Pengaturan UAC disimpan dalam kunci registri berikut:
- [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System] .
Untuk secara otomatis menolak permintaan peningkatan hak istimewa, Anda harus menambahkan kunci:
- "ConsentPromptBehaviorUser" = dword: 00000000.
Untuk mengontrol pekerjaan installer, Anda harus menambahkan kunci:
- "EnableInstallerDetection" = dword: 00000001 , yang akan memerlukan kata sandi untuk menginstal program.
Sistem: Windows
Hak: Administrator, Sistem
Deskripsi: Fungsi Windows API biasanya disimpan dalam DLL. Teknik mengaitkan adalah mengalihkan panggilan ke fungsi API dengan:
- Hook prosedur - prosedur yang dibangun ke dalam OS yang mengeksekusi kode ketika berbagai peristiwa dipanggil, misalnya, menekan tombol atau menggerakkan mouse;
- Modifikasi ke tabel alamat (IAT), yang menyimpan pointer ke fungsi API. Ini akan memungkinkan Anda untuk "menipu" aplikasi yang diserang, memaksanya untuk meluncurkan fungsi jahat;
- Direct change of function (splicing), di mana 5 byte pertama dari fungsi diubah, alih-alih transisi ke fungsi jahat atau fungsi lain yang ditentukan oleh penyerang dimasukkan.
Seperti suntikan, penyerang dapat menggunakan hooking untuk mengeksekusi kode berbahaya, menutupi eksekusi, mengakses memori dari proses yang diserang dan meningkatkan hak istimewa. Penyerang dapat menangkap panggilan API yang menyertakan parameter yang berisi data otentikasi. Hooking biasanya digunakan oleh rootkit untuk menyembunyikan aktivitas berbahaya dalam sistem.
Rekomendasi perlindungan: Intersepsi peristiwa dalam OS adalah bagian dari operasi normal sistem, sehingga segala pembatasan fungsi ini dapat mempengaruhi stabilitas aplikasi yang sah, seperti perangkat lunak anti-virus. Upaya untuk mencegah penggunaan teknik intersepsi perlu fokus pada tahap awal rantai serangan. Anda dapat mendeteksi aktivitas kait berbahaya dengan memantau panggilan ke fungsi SetWindowsHookEx dan SetWinEventHook, menggunakan detektor rootkit, dan menganalisis perilaku proses yang tidak normal.Sistem: Hak Windows : Administrator,Deskripsi Sistem : Mekanisme Opsi Eksekusi File Gambar (IFEO) memungkinkan Anda untuk menjalankan debugger program alih-alih program, yang sebelumnya ditentukan oleh pengembang dalam registri:- HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Opsi Eksekusi File Gambar / [dieksekusi]
- HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion \ Pilihan File Eksekusi File \ [executable] , di mana [executable] adalah biner executable debugger.
Seperti injeksi, nilai [yang dapat dieksekusi] dapat disalahgunakan dengan menjalankan kode arbitrer untuk meningkatkan hak istimewa atau mendapatkan pijakan dalam sistem. Program jahat dapat menggunakan IFEO untuk memintas perlindungan dengan mendaftarkan debugger yang mengarahkan dan menolak berbagai sistem dan aplikasi keamanan.Rekomendasi perlindungan: Teknik yang dijelaskan didasarkan pada penyalahgunaan alat pengembangan OS biasa, sehingga pembatasan apa pun dapat menyebabkan ketidakstabilan perangkat lunak yang sah, misalnya, aplikasi keamanan. Upaya untuk mencegah penggunaan teknik injeksi IFEO perlu difokuskan pada tahap awal rantai serangan. Untuk mendeteksi serangan tersebut dengan menggunakan proses pemantauan bendera Debug_process danProses Debug_only_ini_ .Sistem: macOSHak: AdministratorKeterangan: Teknik ini terdiri dalam mengubah parameter layanan tingkat peluncuran sistem - Luncurkan Daemon, ditentukan dalam file-file plist, oleh penyerang. Ketika sistem melakukan boot, proses Launchd memuat parameter layanan (daemon) dari file plist yang terletak di direktori berikut:- / Sistem / Perpustakaan / LaunchDeamons;
- / Library / LaunchDeamons.
Luncurkan Daemon dapat dibuat dengan hak administrator, tetapi berjalan di bawah akun root, sehingga penyerang dapat meningkatkan hak istimewa. Izin file plist harus di-root: sementara, skrip atau program yang ditentukan di dalamnya mungkin memiliki izin yang kurang ketat. Oleh karena itu, penyerang dapat memodifikasi file yang dapat dieksekusi yang ditentukan dalam plist, dan dengan demikian memodifikasi layanan sistem saat ini untuk mengamankan sistem atau meningkatkan hak istimewa. KiatKeamanan: Batasi hak pengguna sehingga hanya administrator yang berwenang yang dapat membuat Daemon Peluncuran. Pertimbangkan untuk memantau bagaimana file plist dibuat di sistem Anda menggunakan aplikasi seperti KnockKnock.Sistem: Hak Windows : Administrator,Deskripsi Sistem : Memberi nama akses ke sistem, penyerang dapat membuat layanan baru dan mengkonfigurasinya untuk memulai secara otomatis. Nama layanan dapat ditutup menggunakan nama khusus untuk sistem operasi. Layanan dapat dibuat dengan hak administrator, tetapi dijalankan atas nama Sistem. Layanan dapat dibuat dari baris perintah, menggunakan alat akses jarak jauh dengan interoperabilitas dengan Windows API, atau menggunakan alat manajemen Windows dan PowerShell standar.Rekomendasi keamanan: Batasi hak pengguna untuk membuat layanan baru sehingga hanya administrator yang berwenang yang dapat melakukan ini. Terapkan AppLocker dan Kebijakan Pembatasan Perangkat Lunak .Sistem: Hak Windows : Pengguna, administrator, sistemKeterangan: Teknik mencegat jalur adalah dengan menempatkan file yang dapat dieksekusi di direktori tempat aplikasi akan meluncurkannya, bukan file target. Seorang penyerang dapat menggunakan metode berikut:- Jalur yang tidak ada. Jalur ke file yang dapat dieksekusi layanan disimpan dalam kunci registri dan dapat memiliki satu atau beberapa ruang, misalnya, C: \ Program Files \ service.exe , jika penyerang membuat file C: \ Program.exe dalam sistem , maka Windows akan memulainya alih-alih memproses jalur. file target layanan.
- . PATH C:\example c:\Windows\System32 C:\example\net.exe , net, C:\example\net.exe , c:\Windows\System32\net.exe .
- (Search order hijacking). , Windows, , , . , «example.exe» cmd.exe net use. example.exe net.exe c:\Windows\System32\net.exe . , net.com net.exe, Windows net.com , PATHEXT.
Intersepsi urutan pencarian file juga digunakan untuk mengeksekusi DLL menggunakan teknik DLL Pencarian Hijacking .Rekomendasi keamanan: Tanda kutip menunjukkan jalur yang ditentukan dalam file konfigurasi, skrip, variabel PATH, pengaturan layanan, dan pintasan. Ingat urutan pencarian file yang dapat dieksekusi dan gunakan hanya path lengkap. Bersihkan kunci registri lama yang tersisa dari perangkat lunak jarak jauh sehingga tidak ada kunci yang tersisa di registri yang mengarah ke file yang tidak ada. Menetapkan larangan penulisan oleh pengguna sistem ke direktori root C: \ dan direktori sistem Windows, membatasi izin menulis ke direktori dengan file yang dapat dieksekusi.Sistem: macOSHak: Pengguna, AdministratorKeterangan: Penyerang dapat memodifikasi file plist, menunjukkan di dalamnya kode mereka sendiri untuk dieksekusi dalam konteks pengguna lain. File properti plist yang terletak di / Library / Preferences dijalankan dengan privilege yang ditinggikan, dan plist dari ~ / Library / Preferences dijalankan dengan privilege pengguna. Kiat Keamanan: Cegah file plist agar tidak dimodifikasi dengan membuatnya hanya baca.Sistem: Hak Windows : Administrator,Deskripsi Sistem : Penyerang dapat mengatur eksekusi DLL sewenang-wenang atas nama Sistem setiap kali Windows melakukan booting menggunakan penyalahgunaan pengaturan Print Manager (Spoolsv.exe). Untuk berinteraksi dengan perangkat cetak, Spoolsv.exe menggunakan apa yang disebut monitor port - ini adalah DLL yang menggunakan perintah tingkat rendah untuk dikirim ke perangkat cetak melalui LAN, USB, LPT, atau antarmuka COM. DLL di atas disimpan dalam C: \ windows \ system32 dan terdaftar di registri:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Print \ Monitor .Port Monitor dapat diinstal menggunakan AddMonitor API atau langsung dengan mengedit kunci registri di atas.Rekomendasi perlindungan: Atur pemblokiran perangkat lunak yang berpotensi berbahaya dan gunakan alat kontrol peluncuran aplikasi.Sistem: Windows, Linux, macOSHak: Pengguna, administrator, sistem, rootKeterangan: Proses injeksi adalah metode untuk mengeksekusi kode arbitrer di ruang alamat dari proses hidup terpisah. Menjalankan kode dalam konteks proses lain memungkinkan Anda untuk mengakses memori dari proses yang disuntikkan, sumber daya sistem / jaringan, dan kemungkinan hak istimewa yang ditingkatkan. Suntikan proses juga dapat digunakan untuk menghindari kemungkinan deteksi aktivitas jahat dengan cara keamanan. Teknik untuk menerapkan injeksi ke dalam proses didasarkan pada penyalahgunaan berbagai mekanisme yang memastikan multithreading pelaksanaan program di OS. Berikut ini adalah beberapa pendekatan untuk menyuntikkan kode ke dalam suatu proses.Windows• injeksi DLL. Mereka dilakukan dengan menulis jalur ke DLL berbahaya di dalam proses dan kemudian mengeksekusinya dengan membuat utas jauh (Utas jauh - utas yang berjalan di ruang alamat virtual proses lain). Dengan kata lain, malware menulis DLL ke disk dan kemudian menggunakan fungsi seperti CreateRemoteTread, yang akan memanggil fungsi LoadLibrary dalam proses yang disuntikkan.• Injeksi PE (Injeksi portabel yang dapat dijalankan) didasarkan pada penyalahgunaan fitur eksekusi memori file-PE, seperti DLL atau EXE. Kode berbahaya ditulis ke proses tanpa menulis file apa pun ke disk, dan kemudian eksekusi disebut menggunakan kode tambahan atau dengan membuat aliran jarak jauh.• Pembajakan eksekusi thread melibatkan menyuntikkan kode berbahaya atau jalur DLL langsung ke utas proses. Seperti teknik Proses Pelubang, aliran pertama-tama harus ditunda.• Injeksi ke injeksi Asynchronous Procedure Call (APC) melibatkan penyisipan kode jahat ke dalam Antrian APC dari utas proses. Salah satu metode injeksi APC, yang disebut "injeksi Earle Bird", melibatkan pembuatan proses yang ditangguhkan di mana kode berbahaya dapat ditulis dan diluncurkan ke titik masuk proses melalui APC. AtomBombing adalah opsi injeksi lain yang menggunakan APC untuk memohon kode jahat yang sebelumnya ditulis ke tabel atom global.• Injeksi injeksi Local Storage (TLS) Thread melibatkan manipulasi pointer memori di dalam file PE yang dapat dieksekusi untuk mengarahkan proses ke kode berbahaya.Mac dan Linux• Variabel sistem LD_RPELOAD, LD_LIBRARY_PATH (Linux), DYLIB_INSERT_LIBRARY (macOS X) atau antarmuka pemrograman aplikasi dlfcn (API) dapat digunakan untuk memuat perpustakaan secara dinamis (objek bersama) ke dalam proses, yang pada gilirannya dapat digunakan untuk mencegat panggilan API dari menjalankan proses.• Panggilan sistem Ptrace dapat digunakan untuk menghubungkan ke proses yang sedang berjalan dan mengubahnya saat sedang berjalan.• / proc / [pid] / mem menyediakan akses ke memori proses dan dapat digunakan untuk membaca / menulis data arbitrer, namun metode ini jarang digunakan karena kompleksitas implementasinya.• Pengambilan VDSO (Objek bersama dinamis dinamis) memungkinkan Anda untuk menyuntikkan kode saat menjalankan binari ELF dengan memanipulasi kode bertopik dari linux-vdso.so.Program jahat biasanya menggunakan injeksi kode ke dalam proses untuk mengakses sumber daya sistem, yang memungkinkan penyerang mendapatkan pijakan di sistem dan melakukan perubahan lain di lingkungan yang diserang. Sampel yang lebih kompleks dapat melakukan beberapa suntikan proses untuk membuatnya sulit dideteksi.Rekomendasi Perlindungan:Metode untuk menyuntikkan kode ke dalam proses didasarkan pada penyalahgunaan fungsi OS biasa yang secara langsung dapat berdampak pada operasi yang tidak stabil dari perangkat lunak dan produk keamanan yang sah. Upaya untuk mencegah penggunaan teknik intersepsi perlu fokus pada tahap awal rantai serangan. Gunakan alat untuk memblokir perangkat lunak yang berpotensi berbahaya, seperti AppLocker. Gunakan Yama sebagai tindakan pencegahan terhadap injeksi kode di ptrace, membatasi penggunaan ptrace hanya untuk pengguna yang memiliki hak istimewa. Langkah-langkah keamanan tambahan dapat mencakup penyebaran modul keamanan kernel yang memberikan kontrol akses tingkat lanjut dan pembatasan proses. Alat-alat tersebut termasuk SELinux, grsecurity, AppArmor.Sistem: Hak Windows : Administrator,Deskripsi sistem : Setiap kali suatu objek dipindahkan dari satu domain ke domain lain, SID baru dibuat, yang menjadi objekSID utama. SID sebelumnya terus disimpan di properti sIDHistory, sehingga memastikan bahwa hak-hak yang dimiliki objek sebelum migrasi lintas-domain dipertahankan. Penyerang dengan hak administrator dapat memasukkan SID yang sebelumnya dikumpulkan ke dalam SID-History untuk melakukan tindakan atas nama grup atau akun akses yang lebih istimewa, seperti administrator domain.Rekomendasi Perlindungan:Pada Windows Server OS versi 2003 dan lebih tinggi, SID Filtering diaktifkan secara default, yang melibatkan menghapus atau memfilter semua SID kecuali domain tepercaya, tetapi opsi ini dapat sengaja dinonaktifkan untuk memungkinkan akses lintas-domain.Metode utama untuk memfilter SID:• Menonaktifkan SIDHistory dalam pengaturan trust (trust) antara hutan domain menggunakan perintah: netdom trust / domain: / EnableSIDHistory: no ;• Aplikasi Karantina Filter SID . Ini memastikan bahwa objek yang mengandung SID selain dari domain tepercaya tidak dapat diautentikasi dengan domain yang dipercaya. SID Filter Quarantining diterapkan pada trust eksternal dengan menjalankan perintah:kepercayaan netdom / domain: / karantina: ya .Menggunakan SID Filtering antar domain di hutan yang sama tidak disarankan. Jika domain di hutan tidak dapat diandalkan, maka seharusnya tidak menjadi anggota hutan, dalam situasi seperti itu, Anda harus terlebih dahulu membagi domain yang dipercaya dan tidak dapat diandalkan menjadi hutan yang terpisah, dan kemudian menerapkan Penyaringan SID untuk kepercayaan di antara hutan.Sistem: Hak Windows : Pengguna, Administrator,Deskripsi Sistem : Utilitas seperti pada, schtasks dan Penjadwal Tugas Windows dapat digunakan untuk menjadwalkan program dan skrip untuk dijalankan pada tanggal dan waktu tertentu. Tugas dapat dijadwalkan pada sistem jarak jauh, asalkan RPC digunakan untuk otentikasi dan printer dan berbagi file diaktifkan. Menjadwalkan tugas pada sistem jarak jauh membutuhkan hak administrator. Seorang penyerang dapat menggunakan eksekusi kode jauh untuk mendapatkan hak istimewa Sistem atau untuk memulai proses di bawah akun tertentu.Rekomendasi Perlindungan:Batasi hak pengguna. Penggunaan alat, seperti modul PowerUP di PowerSploit, yang dapat digunakan untuk menemukan kelemahan dalam resolusi tugas yang dijadwalkan. Menonaktifkan kemampuan untuk memulai tugas atas nama Sistem, menonaktifkan opsi " Izinkan operator server untuk menjadwalkan tugas " dalam kebijakan keamanan , dan mengaktifkan pengaturan " Penetapan Hak Pengguna: Tingkatkan Prioritas Penjadwalan ".Sistem: Hak Windows : Administrator,Deskripsi Sistem : Jika izin pengguna dan grup memungkinkan perubahan nilai kunci di mana parameter layanan disimpan di registri Windows, maka penyerang dapat langsung memodifikasi kunci di mana jalur ke file yang dapat dieksekusi untuk meluncurkan layanan disimpan atau menggunakan berbagai alat manajemen layanan - sc.exe, PowerShell atau Reg. Penyerang juga dapat mengubah parameter yang terkait dengan kegagalan layanan, misalnya, FailureCommand, yang menunjukkan perintah yang akan dieksekusi jika terjadi kegagalan layanan atau kerusakan yang disengaja. Parameter layanan disimpan dalam layanan HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ .Rekomendasi Perlindungan:Pastikan bahwa pengguna sistem yang dilindungi tidak dapat mengubah kunci dalam registri yang menyimpan parameter komponen sistem. Gunakan semua cara yang mungkin untuk memblokir perangkat lunak yang berpotensi berbahaya, misalnya, Windows AppLocker.Sistem: Linux, macOSHak: Deskripsi Pengguna:Setuid dan Setgid adalah flag izin pada sistem Unix yang memungkinkan pengguna untuk menjalankan file yang dapat dieksekusi dengan hak pemilik atau grup dari file yang dapat dieksekusi. Jika aplikasi harus dijalankan sebagai root, maka alih-alih membuat entri dalam file sudo, pengguna dapat menentukan bendera Setuid atau Setgid. Lawan dapat menyalahgunakan bendera Setuid dan Setgid untuk melakukan shell escape (ketika aplikasi konsol menggunakan file yang terbuka di aplikasi lain) atau memanfaatkan kerentanan aplikasi dengan bendera Setuid dan Setgid dan menjalankan kode dalam konteks berbagai pengguna. Saat melihat atribut file dengan perintah ls -l, flag di atas ditandai dengan simbol "s" bukan "x". Utilitas chmod dapat mengatur flag Setuid dan Setgid menggunakan perintah chmod 4777 [file]atau chmod u + s [file] .Rekomendasi perlindungan: Usahakan agar jumlah program dengan bendera Setuid dan Setgid ditetapkan minimum.Sistem: hak macOS : AdministratorKeterangan: Penyerang dapat menggunakan usang, tetapi masih bekerja di macOS Sierra, mekanisme autostart untuk aplikasi menggunakan StartupItems untuk mengkonfigurasi peluncuran kodenya dengan hak akses root pada saat boot. StartupItems adalah direktori di / Library / Startupitems , skrip perintah, dan file properti StartupParameters.plist. File skrip dan properti harus di bagian atas hierarki: / Library / Startupitems / [MyStartupItem] .Rekomendasi perlindungan: Karena mekanisme StartupItems sudah usang, larangan menulis ke direktori / Library / Startupitems / akan memungkinkan Anda menghindari membuat item startup.Sistem: Linux, macOSHak: Deskripsi Pengguna : Penentang dapat memanfaatkan kelemahan konfigurasi Sudo untuk menjalankan perintah atas nama pengguna lain atau memunculkan proses dengan hak istimewa yang lebih tinggi. Opsi sudo disimpan dalam file / etc / sudoers , hak istimewa yang lebih tinggi diperlukan untuk mengedit file ini. File sudoers menjelaskan perintah mana yang dapat dijalankan pengguna atas nama pengguna atau grup lain, ini memungkinkan pengguna untuk bekerja sebagian besar waktu dengan hak istimewa minimal dan hanya meningkatkan hak istimewa jika perlu. Namun, dalam file sudoers, Anda dapat menentukan pengguna yang kata sandinya tidak akan diminta: username ALL = (ALL) NOPASSWD: ALL .Kiat Keamanan: File sudoers harus diedit agar pengguna selalu memasukkan kata sandi saat mengeksekusi sudo. Auditd di Linux dapat menghasilkan peringatan kapan pun ID pengguna yang nyata dan efektif tidak cocok (ini terjadi ketika pengguna menggunakan sudo).Sistem: Linux, macOS
Hak: Pengguna
Deskripsi: Berbagai malware, seperti
OCX Proton Malware , dapat menyalahgunakan pengaturan sudo untuk mengeksekusi kode sebagai root tanpa memasukkan kata sandi. Karena sudo toolkit dibuat untuk administrasi sistem, ia memiliki beberapa fungsi yang berguna seperti
timestamp_timeout - parameter ini menyimpan jumlah waktu dalam menit antara sudo mulai selama perintah tidak akan meminta kata sandi root. Sudo telah dapat menyimpan kredensial selama beberapa waktu. Stempel waktu awal terakhir Sudo disimpan di
/ var / db / sudo dan digunakan untuk menentukan batas waktu yang ditentukan. Selain itu, ada variabel
tty_tickets yang memproses setiap sesi terminal baru secara terpisah, sehingga batas waktu dalam satu instance konsol tidak akan memengaruhi timeout pada instance lain.
Rekomendasi perlindungan: Tetapkan
timestamp_timeout = 0 parameter sehingga sistem memerlukan kata sandi root setiap kali sudo dijalankan. Aktifkan parameter
tty_tickets untuk mencegah serangan diimplementasikan melalui sesi baris perintah.
Deskripsi: Penyerang dapat mencuri kredensial pengguna atau akun layanan tertentu menggunakan kredensial akses, menangkap kredensial dalam proses intelijen menggunakan rekayasa sosial. Kredensial yang dikompromikan dapat digunakan untuk mem-bypass sistem kontrol akses dan mendapatkan akses ke sistem jarak jauh dan layanan eksternal, seperti VPN, OWA, Remote Desktop, atau untuk mendapatkan hak yang lebih tinggi pada sistem dan area spesifik jaringan. Jika skenario berhasil, penyerang dapat menolak malware untuk membuatnya sulit dideteksi. Selain itu, penyerang dapat membuat akun menggunakan nama dan kata sandi yang telah ditentukan untuk mempertahankan akses cadangan jika ada upaya yang gagal untuk menggunakan cara lain.
Rekomendasi perlindungan: Terapkan kebijakan kata sandi, ikuti rekomendasi untuk merancang dan mengelola jaringan perusahaan untuk membatasi penggunaan akun istimewa di semua tingkat administrasi. Pemeriksaan rutin domain dan akun lokal dan hak-hak mereka untuk mengidentifikasi mereka yang dapat memungkinkan penyerang mendapatkan akses luas. Memantau aktivitas akun menggunakan sistem SIEM.
Sistem: Windows, Linux, macOS
Deskripsi: Web Shell dapat digunakan oleh penyerang sebagai gateway untuk mengakses jaringan Anda atau akses berlebihan ke sistem yang diserang, sebagai mekanisme cadangan untuk mengamankan jika terjadi deteksi dan pemblokiran saluran akses utama ke lingkungan yang diserang.
Rekomendasi perlindungan: Pastikan bahwa server web eksternal Anda diperbarui secara berkala dan tidak ada kerentanan yang diketahui yang memungkinkan penyerang mengunggah file atau skrip ke server dengan eksekusi selanjutnya. Verifikasi bahwa izin akun dan grup dengan hak manajemen server tidak cocok dengan akun jaringan internal yang dapat digunakan untuk masuk ke server web, luncurkan shell Web, atau pin ke server Web. Web Shell sulit dideteksi karena mereka tidak memulai koneksi dan sisi server mereka bisa kecil dan tidak berbahaya, misalnya, versi PHP dari shell Web Chopper Cina terlihat seperti garis:
[? php eval ($ _POST ['password']);]