GithubHelp home page GithubHelp logo

kagancapar / cve-2022-29072 Goto Github PK

View Code? Open in Web Editor NEW
692.0 26.0 106.0 43 KB

7-Zip through 21.07 on Windows allows privilege escalation and command execution when a file with the .7z extension is dragged to the Help>Contents area.

License: GNU General Public License v3.0

HTML 100.00%

cve-2022-29072's Introduction

INFORMATION

I haven't posted any poc code anywhere for privilege escalation attack. The poc codes found have nothing to do with privilege escalation. For your information.

7-zip hakkında

7-Zip, özgür ve ücretsiz bir dosya arşivleyicisidir. 7-Zip’in Komut İstemi sürümü Unix benzeri sistemler içinde düşünülmüş hatta AmigaOS bu saydıklarımıza dahil. Aynı zamanda DOS için de uyumlu Dost Portu için veya HX-DOS genişletişicisi ile Windows komut İstemcisi'nde çalıştırılabilir.

CVE-2022-29072

Türkçe yazacağım biraz da siz Türkçe öğrenin.

Öncelikle zafiyeti bulma hikayeme değinmek istiyorum. WinRAR üzerinde XXE zafiyetini gerçekleştiren bir payload gördüm. Aynı zamanda HTML Helper dosyasının kullanarak javascript üzerinden ActiveXObject ve WScript.Shell sayesinde komut çalıştırmaya imkan sağlıyordu. Bunun lolbinlerde kullanılan HTA'dan hiç bir farkı yoktu olayı nasıl lehime döüştürebileceğimi düşündüm.

(https://www.exploit-db.com/exploits/47526)

Aslında amacım 7z, zip, rar vb sıkıştırma teknolojilerinin uzantılarına çift tıkladıktan sonra hedef bilgisayar üzerinden reverse-shell alabilmekti bunun içinde HTML Helper dosyasını kullanabilir miyim diye düşünüyordum. WinAFL ile uzun fuzzing işlemleri sonrası FzGM.exe üzerinde heap-overflow olduğunu keşfettim fakat heap overflow sonrası yetkim yine aynı kullanıcı üzerinden olacağından bir anlamı da yoktu. Bu yüzden CreateRemoteThread kullanmadım çünkü API'i çağırmam gerekiyordu ve bu API'i tetikleyebilmek için bir chm dosyasına ihtiyacım vardı. Kaynak kodu incelediğimde özellikle iki yerde Windows API'ını çağırırken hatalı işlemler olduğunu farkettim ve bu direk yetkilendirme problemi yaratıyordu. Bu keşfetme noktam aşağıdaki resim de görüldüğü üzere FzGM.exe altında bir child process oluşturuyor. Normalde bu işlemin hh.exe üzerinde olmasını bekleriz.

7-zip-1

api

Eğer API'ı include etmeyip fonksiyon üzerinden doğru yapılandırma işlemi olsaydı hh.exe altında child process oluşturmasını beklerdim fakat 7-zip.chm dosyası bunu kendi üzerinden çağırmaktadır tipik bir örneği 7-zip.chm dosyasını editleyip komut çalıştırma işlemi uygularsanız o zamanda görebilirsiniz. Heap overflow sonrası çağırılan API'nin yetkilendirme sorunu sonra 7z.dll dosyası içerisinde bulunan hatalı yapılandırmadan faydalandım ki bunun için uzun bir süredir uğraşıyorum. CreateRemoteThread() yapmanın bir anlamı yok. Benim payload'ın içerisinde çalıştırmam ve çağırmam gereken şey HTML Helper API'ın bizzat kendisi değil 7-zip üzerinden bu API'ın hook edildiği nokta ve o noktayı execute edebilmem fakat bu payload sadece hh.exe entegrasyonu ile çalıştığı için bu yüzden sürükle bırak gibi fonksiyon ile çalışmaktadır. 7-zip.chm dosyasının, 7-zip üzerinden HELP butonu ile çağırılması ve buraya çağırılan adresin payload içerisinde yetkilendirme sorunu görülen "base pointer" yönlendirmem bizi bir üst kullanıcıya taşımaktadır. Buradan sonraki işlem ise payload'ın içerisinde psexec'in bulunması ve psexec -s cmd.exe komutuyla nt authority/system olarak system yetkisine yükselmesidir.

7-zip-2

poc video:

priv1.mp4

ActiveXObject bypass hakkında

Soruların bir çoğu da ActiveX uyarısı üzerineydi bu problemin en temel şöyle giderebilirsiniz. Payload çalışmadan önce;

<'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0' -Name '1201' -Value '0' -PropertyType "DWord"> kontrol sağlamaktadır eğer bu değeri 1 ise popup ekrana gelmektedir şayet 0 olarak yeni bir değer atandıysa bypass edilmektedir. Fakat belirtmek gerekirse ki o an hangi user payload'ı çalıştırıyorsa onu etkilemektedir.

Önemli not

Ben gereken noktaları geliştiriciye söyledim ve CVE tarafından da bu kabul edildi. İnsanların kendini otorite zannetmesi ve onlara exploit'i vermem gerektiği gibi bir algı oluşmasına anlam veremiyorum. Ben zaten güncelleme sonrası yayınlayacağımı belirttiğim halde henüz update olmadan yapılan bu saygısızlık sanıyorum kendini otorite görmekten geçmektedir. Ben yetki yükseltme saldırısının poc kodunu hiçbir zaman yayınlamak istemeyebilirim bu benim hür irademdir ve bunun doğruluğu sorgulamak noktasında kimin ne düşündüğü ile zerre ilgilenmiyorum.

Alınabilecek önlem

Birinci yöntem: Eğer 7-zip güncelleme geçmezse 7-zip.chm dosyasının silinmesi gerçekleştirilebilir. İkinci yöntem: Program içerisinde yer alan tüm kullanıcılar read ve execute yetkisi ile erişim sağlamalıdır.

Sigma kuralı

İlgili sigma kuralı https://github.com/kagancapar/CVE-2022-29072/blob/main/7z_CVE-2022-29072.yml

cve-2022-29072's People

Contributors

kagancapar avatar tsale avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cve-2022-29072's Issues

Missing files

Hey bro,
I can't reproduce in my environment. Some files appear to be missing. Would you kindly upload the privesc part?

including or excluding 21.07?

the wording "7-Zip through 21.07" is not clear
I think it'll be informative to make it more understandable if there is a safe version

Bir paket yükelemesinde bu rastladım

Merhaba Kağan Bey

Bu sorunu kaspersky öneresinde buldum ve github linki ile sizin çalışmanızı gördüm bunun için size teşekkür ederim . Ben büyük bir .exe çalıştırdım ve kuruşum dosyalarında bahsedilen dosya bulunuyordu şayet ben 7zip kullanmıyorum Winrar kullanıyordum
ve akabinde direk sildim şuan sanırım kurtuldum sizlerede danışmak istedim
Çalışmalarınız için tebrik ederim iyi çalışmalar

Is this really a 7-zip issue, or is it a Microsoft issue?

The mitigation steps don't quite make sense to me, because if someone really wanted to exploit this, they would just have to download the affected 7zip executable, the affected chm file, and the specifically crafted 7z file to any system, and voila. So that means there really is no mitigation to this other than, maybe, application blacklisting?

Am I missing something?

Expanding on the above, that means it would be far easier for someone to create a malicious dll file that explots the inherent vulnerability in Microsoft's CHM system, and then you have an exploit that doesn't depend on 7zip at all. This means that the vulnerability isn't really with 7zip at all, but with Microsoft, and there is no type of mitigation until Microsoft patches it.

无法复现

按照视频中的程序跑了一下,不存在这个提权行为,权限还是原来的普通用户权限 测试来源win10 21h2 7z版本目前最新的测试版,难道说有通过其他的方式来利用或者说是的方式有误吗 视频中的文件可否发一下

I can't reproduce

I can't reproduce the problem described in your video. what is the "privese.exe"? Is this what caused it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.