Windows UAC tidak pernah berhenti memukau, atau Cara mendeteksi orang dalam

gambar

Halo semuanya! Saya yakin Anda telah mendengar tentang kekurangan teknologi Windows UAC, tetapi baru-baru ini muncul rincian kerentanan yang aneh, eksploitasi yang memungkinkan pengguna yang tidak memiliki hak istimewa untuk memaksimalkan hak istimewa. Di Jet CSIRT, kami tidak meninggalkan kasus ini tanpa pengawasan, karena untuk tim pemantau dan respons IS apa pun, kerentanan kelas Privilege Escalation menjadi perhatian khusus. Di bawah cut - deskripsi kerentanan, metode deteksi dan perlindungan.

Detail Kerentanan


Peneliti Eduardo Braun Prado dari tim Zero Day Initiative telah menemukan kerentanan eskalasi hak istimewa lokal dalam komponen Dialog Sertifikat Windows yang terjadi karena pemrosesan hak pengguna yang salah. Kerentanan ini memungkinkan peningkatan hak pengguna hingga SISTEM semaksimal mungkin dan melewati semua mekanisme perlindungan Windows. Ini terjadi ketika mekanisme Windows UAC digunakan, ketika pengguna berinteraksi dengan komponen Desktop Aman dengan membuka dialog peluncuran file atas nama Administrator.

gambar

Apa esensi dari kerentanan? Sertifikat file yang dapat dieksekusi berisi bidang numerik opsional "Pengidentifikasi Kebijakan" dalam format pengidentifikasi objek spesifik Microsoft (OID).

gambar

File header Wintrust.h mendefinisikan bidang ini sebagai SPC_SP_AGENCY_INFO_OBJID. Meskipun tujuannya kurang didokumentasikan, kemungkinan besar dianalisis ketika jendela dengan rincian sertifikat dibuka. Ketika bidang ini disajikan dalam format yang benar, bidang yang diterbitkan oleh akan ditampilkan sebagai hyperlink dengan nilai yang diambil dari atribut SpcSpAgencyInfo.

gambar

Saat Anda mengklik tautan dengan bidang Dikeluarkan oleh, Internet Explorer terbuka dengan izin SISTEM. Proses induk untuk itu akan menjadi proses consent.exe. Ini juga berjalan dengan hak maksimum, dan dalam konteksnya dialog UAC dimulai. Dengan demikian, lebih lanjut menjadi mungkin untuk menjalankan file sewenang-wenang (cmd.exe, powershell.exe) dari menu browser dengan hak SISTEM yang diwarisi.

gambar

Sebagai PoC untuk menunjukkan eksploitasi kerentanan (video diberikan di bawah ini), peneliti menyarankan menggunakan utilitas Bantuan HTML ActiveX Control, sertifikat yang memiliki fitur yang dijelaskan di atas.

Pada saat yang sama, dimungkinkan untuk menandatangani file yang dapat dieksekusi dengan cara ini, misalnya, menggunakan PowerShell cmdlet Set-AuthenticodeSignature. Pertama, Anda perlu membuat sertifikat otoritas sertifikat root yang ditandatangani sendiri dan sertifikat akhir menggunakan utilitas makecert dari Windows SDK. Instruksi diberikan di sini .

Kerentanan telah menerima pengidentifikasi CVE-2019-1388 dan CVSS 7.8. Semua versi OS dari Windows 7 ke Windows Server 2019 terkena dampaknya.Setelah menginstal tambalan, bidang Dikeluarkan oleh dalam rincian sertifikat tidak lagi ditampilkan sebagai hyperlink.

Eksploitasi massal terhadap kerentanan ini tidak mungkin disebabkan oleh kesulitan otomatisasi. Memang, untuk mengimplementasikan serangan berdasarkan itu, pengguna perlu melakukan banyak tindakan - mulai dari membuka jendela dengan sertifikat file yang dapat dieksekusi hingga meluncurkan baris perintah melalui antarmuka Internet Explorer. Oleh karena itu, skenario serangan yang paling mungkin terkait dengan tindakan pengganggu internal.


Bagaimana cara mendeteksi


Untuk mendeteksi eksploitasi kerentanan pada platform Windows x64, kami menggunakan aturan korelasi dalam sistem SIEM dalam sistem SIEM yang memantau rantai peristiwa (pada simpul yang dipantau, Anda harus terlebih dahulu mengaktifkan audit proses startup menggunakan kebijakan grup yang sesuai atau menggunakan utilitas Sysmon dari Sysinternals):

  1. Mendeteksi awal proses constent.exe dengan hak istimewa SYSTEM (kode acara 4688 ).
  2. Mendeteksi awal proses C: \ Program Files \ iexplore.exe dengan hak SISTEM, di mana consent.exe bertindak sebagai proses induk.
  3. Mendeteksi awal proses C: \ Program Files (x86) \ iexplore.exe dengan hak istimewa SYSTEM, di mana C: \ Program Files \ iexplore.exe bertindak sebagai proses induk.

    gambar
  4. Mendeteksi peluncuran shell (cmd.exe, powershell.exe) dengan hak istimewa SISTEM, di mana C: \ Program Files (x86) \ iexplore.exe bertindak sebagai proses induk.

    gambar
  5. ID proses: \ Program Files (x86) \ iexplore.exe dari langkah 3 dan ID C: \ Program Files (x86) \ iexplore.exe karena proses induk dari paragraf sebelumnya sama.

Mari kita beri contoh aturan korelasi yang dijelaskan di sisi FortiSIEM.

Ketentuan yang digunakan



Merinci ketentuan persetujuan launch.exe



Detail Kondisi Peluncuran IEx64



Detail kondisi peluncuran IEx86



Detail kondisi peluncuran cmd.exe, powershell.exe



Kode Sumber Aturan Korelasi FortiSIEM
<rules><DataRequest advanced="true" custId="1" type="Rule"> <Name>UAC Privilege Escalation through Secure Desktop</Name> <Description>   UAC Secure Desktop CVE-2019-1388</Description> <Remediation/> <CustomerScope groupByEachCustomer="true"> <Include>1</Include> <Exclude/> </CustomerScope> <PatternClause window="300"> <SubPattern id="148021654" name="Consent_Execution"> <SingleEvtConstr>eventType = "Win-Security-4688" AND procName CONTAIN "consent.exe" AND user IN ("","SYSTEM")</SingleEvtConstr> <GroupEvtConstr>COUNT(*) >= 1</GroupEvtConstr> <GroupByAttr>user,procName</GroupByAttr> </SubPattern> <Operator rank="0" type="FOLLOWED_BY"/> <SubPattern id="148021655" name="IE_x64_Execution"> <SingleEvtConstr>eventType = "Win-Security-4688" AND procName REGEXP (".*Files\\\\Internet.*\\\\iexplore\\.exe$") AND parentProcName CONTAIN "consent.exe" OR user IN ("","SYSTEM")</SingleEvtConstr> <GroupEvtConstr>COUNT(*) >= 1</GroupEvtConstr> <GroupByAttr>procId,user,parentProcName,procName</GroupByAttr> </SubPattern> <Operator rank="0" type="FOLLOWED_BY"/> <SubPattern id="148021664" name="IE_x86_Execution"> <SingleEvtConstr>eventId = 4688 AND procName REGEXP (".*\\(x86\\)\\\\.*\\\\iexplore\\.exe$") AND parentProcName REGEXP (".*Files\\\\Internet.*\\\\iexplore\\.exe$") AND user IN ("","SYSTEM")</SingleEvtConstr> <GroupEvtConstr>COUNT(*) >= 1</GroupEvtConstr> <GroupByAttr>procName,parentProcName,procId,user</GroupByAttr> </SubPattern> <Operator rank="0" type="FOLLOWED_BY"/> <SubPattern id="148021656" name="Cmd_Execution"> <SingleEvtConstr>eventType = "Win-Security-4688" AND ( procName CONTAIN "cmd.exe" OR procName CONTAIN "powershell.exe" ) AND parentProcName REGEXP (".*\\(x86\\)\\\\.*\\\\iexplore\\.exe$") AND user IN ("","SYSTEM")</SingleEvtConstr> <GroupEvtConstr>COUNT(*) >= 1</GroupEvtConstr> <GroupByAttr>user,parentProcName,procName,parentProcId</GroupByAttr> </SubPattern> <GlobalConstr>IE_x86_Execution.procId = Cmd_Execution.parentProcId</GlobalConstr> </PatternClause> <IncidentDef eventType="UAC_Privilege_Escalation_through_Secure_Desktop" eventTypeGroup="PH_SYS_EVENT_PH_RULE_SEC" fireFreq="900" severity="7"> <ArgList>procName=Cmd_Execution.procName,parentProcName=Cmd_Execution.parentProcName,user=Cmd_Execution.user</ArgList> </IncidentDef> <DynWatchListDef/> <userRoles> <roles custId="0"></roles> </userRoles> <TriggerEventDisplay> <AttrList>phRecvTime,eventType,reptDevName,reptDevIpAddr,destIpAddr,destName,user,parentProcId,parentProcName,procId,procName,rawEventMsg</AttrList> </TriggerEventDisplay> </DataRequest> </rules> 


Peneliti Florian Roth memposting aturan Sigma untuk mendeteksi upaya untuk mengeksploitasi kerentanan ini. Namun, karena batasan bahasa, dengan menggunakan aturan, dimungkinkan untuk mendeteksi hanya acara peluncuran Internet Explorer dengan hak SISTEM dan proses parent.exe.exe tanpa deteksi selanjutnya dari peluncuran shell. Tidak mungkin melacak rantai peristiwa yang diperlukan dalam kondisi yang dijelaskan di atas (1-5) menggunakan alat Sigma, itulah sebabnya kami dipaksa untuk mengembangkan aturan kami sendiri.

Cara melindungi diri sendiri


1. Instal Microsoft patch tanggal 12 November untuk versi OS yang sesuai.

2. Jika tambalan tidak dapat dipasang untuk menghilangkan kerentanan ini, Anda harus menggunakan:

  • Aturan AppLocker yang melarang peluncuran shell cmd.exe dan powershell.exe untuk akun yang termasuk dalam grup Pengguna (Anda harus mempertimbangkan utilitas dan teknik akun yang menghindari AppLocker yang tercantum dalam LOLBINS );
  • IPS berbasis host menggunakan sistem kelas EPP, EDR (Anda perlu mengonfigurasi aturan akses yang melarang proses iexplore.exe mengakses cmd.exe, powershell.exe).

Source: https://habr.com/ru/post/id478616/


All Articles