Sıkıcı kullanım girişiyle karşılaştırıldığında, Pocsuite3'ün neden bu işlevlere sahip olduğu ve nasıl uygulandıkları hakkında konuşmak istiyorum. Benzer bir araç yapmak istiyorsanız, Pocsuite3'ün fikirlerinden bazıları size yardımcı olabilir. Bu makale ayrıca Pocsuite3'ün geliştirilmesi sırasında bazı düşünceler ve anlayışları da kaydeder.
Giriş
Pocsuite, Know Chuangyu 404 Lab tarafından oluşturulmuş açık kaynaklı bir uzaktan güvenlik açığı testi çerçevesidir. Ekibin geliştirilmesinden bu yana sürdürdüğü bir proje olan Chuangyu'nun güvenlik araştırma ekibinin gelişiminin temel taşıdır ve web güvenliği araştırma yeteneklerinde liderliğimizi sağlamıştır.
Güvenlik açıklarını doğrulamak ve kullanmak için doğrudan Pocsuite'i kullanabilirsiniz; aynı zamanda bir PoC geliştirme çerçevesi olduğu için Pocsuite'e dayalı PoC / Exp geliştirebilirsiniz; aynı zamanda Pocsuite'i güvenlik açığı test aracınıza da doğrudan entegre edebilirsiniz. Standart çağrı sınıfları sağlayın.
Pocsuite3 tamamen Python3 ile yazılmıştır, Windows / Linux / Mac OSX ve diğer sistemleri destekler.Orijinal Pocsuite temelinde bir bütün olarak yeniden yazılmış ve yükseltilmiş, tüm çerçeveyi daha fazla çalıştırılabilirlik ve esneklik haline getirmiştir.
Devlerin omuzları
Pocsuite3, piyasadaki birçok açık kaynak çerçevesine ve popüler olgun çerçevelere atıfta bulunarak yazılmıştır, Sqlmap kod mühendisliği yapısında referans alınmıştır ve Pocsuite-konsol modu, yönlendirici kullanımı ve metasploit'e atıfta bulunulmuştur, bu nedenle PoC'nin kod formatı öncekilerden biraz farklıdır (ancak Kısıtlanmış büyük değişiklikler). Pocsuite3 ayrıca diğer güvenlik araçlarına entegre edilebilen çok basit bir arayüz çağrısı sağlar.
indir
Pip kurulumu
İki kurulum vardır, pip ve doğrudan çalışan kaynak kodu.
pip install -U pocsuite3 --no-cache-dirPocsuite3'ün en son sürümü kullanılacaktır.
gerçekleştirillen:
pocsuite -hKurulum etkisini kontrol edin.
Kaynak kurulumu
Eğer atabileceğinizden eminseniz, kaynak kodunu indirip kullanabilirsiniz.Bu bizim de önerdiğimiz yoldur çünkü pip güncellemesi github'dan daha yavaş olabilir.
wget https://github.com/knownsec/pocsuite3/archive/master.zip master.zip dosyasını açınAynı anda iki bağımlılığın yüklenmesi gerekir:
pip yükleme istekleri-araç kemeriAynı zamanda bir Windows sistemiyse, yukarıdaki bağımlılıklara ek olarak, birinin yüklenmesi gerekir:
pip install pyreadline # Windows konsol modunda kullanın, kullanmıyorsanız yüklemenize gerek yokturSonunda:
python cli.py -hKurulum etkisini kontrol edin.
Ek olarak, iki kurulum yönteminden yalnızca birinin aynı anda kullanılamayacağına dikkat edilmelidir. Kaynak kurulumunun kullanılması tavsiye edilir.
Genel kullanım yardımı
Çoğu durumda -h, Pocsuite tarafından desteklenen işlevleri anlamanıza yardımcı olabilir.
Basit bir test
python3 cli.py -r pocs / ecshop_rce.py --dork ecshop - iş parçacığı 5Ecshop aramak için ZoomEye kullanacak ve algılamak için ecshop_rce.py kullanacak, iş parçacığı sayısını 5 olarak belirleyecektir
Pocsuite'in varsayılan çalışma modu, doğrulama doğrulama modudur.Şu anda, hedef üzerindeki etki minimumdur.Ayrıca, hedef üzerinde ilgili saldırıları ve mermi geri tepmesini gerçekleştirmek için saldırı ve mermi modları da vardır (elbette, PoC desteği gereklidir. Pocsuite'in PoC yazma formatı bu üç modu saklar. , Ve bu üç arayüzün gerçekleştirilmesine yardımcı olacak birçok yerleşik API vardır).
Kabuk modu
Pocsuite3, kabuk modu ayarını yeni ekledi. Bu işlevi seçtiğinizde, Pocsuite3 bir bağlantı noktasını izleyecek ve hedefin tekrar bağlanmasını bekleyecektir. Çeşitli dillerde ters bağlantı için yükler ve Windows / Linux platformlarında çalıştırılabilen kabuk kodları sunuyoruz.
Yapılandırma dosyasından çalıştır
Bazen çok fazla komut satırı komutu vardır ve bazı parametreler daha fazla yeniden kullanılabilir.Pocsuite ayrıca konfigürasyon dosyasından çalıştırmanın bir yolunu sağlar.
Redis yetkisiz erişim zafiyetini örnek olarak alalım, bu dosyayı pocsuite.ini değiştiriyoruz.
İpliği ayarlayın, ÇALIŞTIRIN!
python3 cli.py -c ../pocsuite.iniKarşılaştırma parametresi açık olduğundan daha fazla bilgi görebiliriz:
Aynı zamanda bir Zoomeye VIP iseniz, hedefleri toplarken bal küpü bilgilerini de tanımlayabilirsiniz. Şu anda, yalnızca Zoomeye arayüzü aracılığıyla elde edilen veriler bir bal küpü olarak tanımlanabilir. Shodan ve Censys henüz ilgili API arayüzlerini açmadı.
Eklenti sistemi
Pocsuite bir eklenti sistemini destekler.Yükleme hedeflerine (hedefler), yükleme PoC'ye (pocs) ve sonuç işleme (sonuçlar) göre üç tip eklentiye ayrılır.
Hedefler eklentisi
Yerel hedefleri yüklemek için -u, -f kullanmanın yanı sıra, hedefleri (örneğin: Zoomeye, Shodan) yüklemek istediğiniz yerden (örneğin: Zoomeye, Shodan) veya hatta web sayfalarından, redis'den yüklemek için hedef türü bir eklenti yazabilirsiniz. Pocsuite3, yerleşik dört hedef yükleme eklentisine sahiptir.
Yukarıdan da görülebileceği gibi, dork dork, dork_zoomeye, dork_shodan, dork_censys arama kullanılırsa, ilgili eklentiler manuel spesifikasyon olmadan otomatik olarak yüklenecektir.
Pocs eklentisi
Eklentiyi seebug'dan çağırmanın tek yolu buydu, ancak şimdi bu yöntem bir eklenti olarak çıkarıldı, bu da erişilebilir herhangi bir yerden çağrı yapmaya izin verecek ve hatta github'da bir depo çağrısını sürdürmek için bir eklenti yazacak.
Demo:
https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/poc_from_redis.py https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/poc_from_seebug.pySonuçlar eklentisi
Sonuçlar eklentisi, taramanın sonuçlarını işlemenize izin verir, iki yerleşik eklentiye başvurabilir, sonuçları html olarak kaydedebilir ve sonuçları txt olarak kaydedebilirsiniz. Sonuçlar eklentisinin sonuçları, plugins / file_record.py uygulamasına bağlı olarak gerçek zamanlıdır.
https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/html_report.py https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/file_record.pyÇağrı eklentisi
Eklenti adını daha sonra --plugins ile belirtin, birden fazla eklenti kullanılabilir ve bölünebilir. Örneğin --plugins html_report, HTML rapor biçimi belgeleri oluşturacaktır.
Yerleşik API
Güvenlik açığı acil durum müdahalemizin birikimine bağlı olarak, temelde Pocsuite'in yerleşik API arayüzü PoC tarafından tamamen kapsanabilir. Sonraki bölümde birçok API arayüzünden bahsedeceğiz İşte iki ilginç durum daha.
Shellcode oluşturma desteği
Bazı özel Linux ve Windows ortamlarında, ters kabuğun koşullarını elde etmek daha zordur. Bu nedenle Windows / Linux x86 x64 ortamında rebound için shellcode yaptık ve arayüz desteği yaptık.Hedef makineye otomatik olarak shellcode yazabilir ve komut çalıştırma izni altında rebound çalıştırabilirsiniz. kabuk komutu.
Demo Poc: https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/pocs/thinkphp_rce2.py
Yerleşik HTTP hizmeti
Hala Jenkins Hacking Part 2 - Kimlik Doğrulaması yapılmamış RCE için Meta Programlamayı Kötüye Kullanmaktan etkileniyorsanız. Ne mükemmel bir boşluk, ancak PoC yazarken zorluklarla karşılaştık. Doğrulama modunda, onu tanımlamak için Ceye'ı kolayca kullanabiliriz, ancak saldırı modunda ve kabuk modunda, kendi Jar'ımızı yapmalı ve sunucuya yüklemeliyiz!
Bu amaçla, Jar formatında paketlenmiş API ve HTTP servis API'sini yaptık ve otomatikleştirilmesi gittikçe zorlaşan sonraki PoC yazımında, onu çok faydalı bulacağız.
Pocsuite3 demo videosuyla birlikte Jenkins, Kimliği Doğrulanmamış RCE (CVE-2019-1003000) için Meta Programlamayı Kötüye Kullanıyor:
https://www.youtube.com/watch?v=5P7WWlqYt4U
Özel parametre geçişi
Programcıların güvenlik bilincinin kademeli olarak iyileştirilmesiyle, RCE'nin bir bağlantıyla elde edilebileceği çağın geçtiğini göreceklerdir. Giderek daha fazla güvenlik açığı tetiklemek için belirli "izinler" gerektirmeye başladı. Bunun için Pocsuite3'te bir parametre arabirimi ayırmamız gerekiyor.
Orijinal PoC formatını olabildiğince korumak amacıyla, kullanıcı tarafından iletilen parametreleri belirtmek için bir _options yöntemi ekledik.
DemoPoc: https://github.com/knownsec/pocsuite3/blob/master/tests/login_demo.py
Kullanıcı adı ve şifre olmak üzere iki parametrenin Poc'ta geçirilmesi gerektiğini belirledik.Kullanım kolaylığı için, komut satırı modunu aşağıdaki gibi doğrudan kullanabilirsiniz:
python3 cli.py -u http: // localhost -r testleri / login_demo.py - kullanıcı adı "404team" - parola "şifre"Evet, bu kadar basit! PoC'de tanımlanan parametrelerin Pocsuite ile gelen parametre isimleriyle çakışması durumunda nasıl çözüleceğini sorabilirsiniz. Çözümümüz, çakışan parametre adlarının tanımlanmasına izin verilmemesidir. Pocsuite bunu başlangıçta kontrol eder. Çakışan parametre adları varsa, PoC'deki özel parametre adlarını değiştirmenizi ister.
Konsol modu
Bazı durumlarda, etkileşimli komut modunu da (bilgisayar korsanının ritüel duygusu) dikkate alırız. Ve komut satırı modunda PoC ile tamamen uyumludur.Linux veya Mac altında kullanırsanız, daha iyi bir deneyim elde edersiniz.
API genel entegrasyonu
Güvenlik ürünlerinin bir parçası olarak Pocsuite3'ü teşvik ediyor ve destekliyoruz. Pocsuite3'ü bir modül olarak projenize aktarın ve kolayca kullanın. Daha sonra Pocsuite3'ün bunu nasıl yaptığını ayrıntılı olarak açıklayacağız.
pocsuite3.api, ister PoC yazıyor olun, ister kendi ortamınıza entegre ediyor olun, Pocsuite'deki tüm arayüzleri ortaya çıkarır, yalnızca bunu kullanmanız gerekir. Demo'ya basit bir çağrı.
pocsuite3.api'den import init_pocsuite pocsuite3.api'den import start_pocsuite pocsuite3.api'den get_result içe aktar pocsuite3.api içe aktarma yolundan işletim sistemini içe aktar config = { 'url': 'https: //www.baidu.com/', 'poc': os. yol. birleştirme (yollar. POCSUITE_ROOT_PATH, "../tests/login_demo.py"), 'kullanıcı adı': "asd", 'password': 'asdss', 'ayrıntılı': 0 } # Yapılandırma sözlüğünün yapılandırması, cli komut satırı parametre yapılandırmasıyla tamamen aynıdır init_pocsuite (yapılandırma) start_pocsuite () sonuç = get_results (). pop () baskı (sonuç)Sonunda
Tamamen işlevsel bir çerçeve, yalnızca görevleri gruplar halinde işleyebilen bir motor değildir. Pek çok şeyin gerçek savaşta biriktirilmesi ve en iyi şekilde uygulanması gerekir (genellikle çukura adım atmak olarak bilinir). Kendi PoC çerçevenizi oluşturma sürecinde, neye ihtiyacınız olduğu ve onu nasıl zarif bir şekilde çözeceğiniz konusunda net olmalısınız? Bir sonraki bölüm özellikle Pocsuite3'teki çerçeve yapısından bahsedecek.
* Yazar: Knownsec, FreeBuf.COM'dan yeniden basılan Chong Yu'yu biliyor