Konuyu inceledim, olaylarla herhangi bir bağlantım yok sadece incelemelerim üzerine gidişatı anlayabilmek için yorumda bulunmak istiyorum çünkü araştırdığımda VM silinme olayının esası kim bunu çözemedim.
BatchQueryResult.php" dosyası üzerinde "__wakeup" ve "__sleep" fonksiyonları ile açığı kapattıklarını söylüyorlar.
https://github.com/yiisoft/yii2 üzerinden 2.0.37 ve daha eski sürümleri kontrol edebilirsiniz.
**sanırım** Açığı incelediğimde "framework/helpers/BaseVarDump.php" dosyasınıda kontrol edecek olursanız "VarDumper" sınıfı üzerinde zaafiyet olduğu anlaşılıyor, $output içerisinde serialize üzerinden veriler eklendiği için ve bu output "dumpasString" fonksiyonu üzerinde "<?php" olarak belirtilmiş olup ve output içerisinde serialize içerisinden alınan veriler eklenmiş, sorun tamamen framework üzerinde gözüküyor:
public static function dumpAsString($var, $depth = 10, $highlight = false) {
self::$_output = '';
self::$_objects = [];
self::$_depth = $depth;
self::dumpInternal($var, 0);
if ($highlight) {
$result = highlight_string("<?php\n" . self::$_output, true);
self::$_output = preg_replace('/<\\?php<br \\/>/', '', $result, 1); }
return self::$_output;
}Yukarıda gösterdiğim kod üzerinde çalıştırılıyor highlight kapalı kaldığında herhangi bir preg_replace işlemi olmadığı için direkt php kod output'u return ediliyor ve "dumpAsString" fonksiyonuna serialize olarak gelen bu veriler kullanıcı tarafından unserialize edilirse tamamen php kod çalıştırma zaafiyeti söz konusu olabilir.
Eğer ki belirttiğim gibi php çalıştırıyorsa zaten open source bir kaynak olduğu için fonksiyonlar kullanılarak sorgu gönderilebilir sorgu gönderilen sınıflarıda inceledim gayet işleme müsait duruyor, eğer sorgu çalıştırılabiliyor ise sorgu içerisinden dosya oluşturulabilir, oturum oluşturulabilir, kullanıcı parolası değiştirilebilir vs. vs...
VM silinme olayında ise dediğim gibi php çalıştırılıyor ise dosya oluşturma(python vs.), işleme geçirme herhangi bir durum her türlü ele alınabilir.
Ben direkt saldırganların zafiyeti nasıl sömüre bildiklerine dair explotiler gönderdim ama onatweb hala bu işlem yapılanmaz diyor
@onatweb;
Konuya son bir açıklık getirmek istiyorum. Bu saate kadar sürekli sakinliğimi korudum, herkese saygı çerçevesinde cevap vermeye çalıştım. Sakinliğimin getirdiği cevaplar neticesinde ise sanki bu açık benden kaynaklanıyormuş gibi algılanmış ve buna inanıp adeta bir vatan savunması yapanları gördükçe, dün "daha tartışmayacağım" dediğim halde tekrardan bir açıklama yapma gereğinde gördüm kendimi.
Konuya girmeden önce dediğim gibi mağdur olan firmalar ile iletişimdeyim. Elimden ne geliyorsa bu firmalar için yapmaya dünden razı olduğumu zaten herkes biliyor. Sorumlusu ben olmadığım halde, sorumluluk almaya razıyım. Tekrardan aşağıda yazacaklarımı üstüne alınmak isteyenler alınsın.
Herkesin ön yargılarını bir kenara koyarak bu yazdıklarımı gerçekten tek taraflı olmadan, sağ duyulu bir şekilde okumasını tavsiye ediyorum. Bu bugün benim başıma geldi yarın sizin başınıza da gelebilir. Haksız ve sebebi sen olmadığın halde linçlenmek gerçekten kötü bir şey bunu belirteyim öncelikle.
Öncelikle şu konuya açıklık getirmek istiyorum. Ve anlaşılır bir dilden anlatmak istiyorum. İnternette framework ile alakalı 2-3 tane web sitesinde bir içerik yayınlanmış. Bu konu hakkında hiç bir detaylı döküman yok. "Bakın şöyle bir şey var, güncellerseniz iyi olur" şeklinde paylaşımlar var. Detaylı bir döküman bulamadığım içinde kendim biraz kodların içine girdim. Yii'nin paylaşmış olduğu update ile diğer versiyonu karşılaştırarak bir çıkarımda bulundum. Bu çıkarımı da yanılma payım var diyerek ölümüne savunmuşluğum yok. Ama kesin olarak baktığım tek şey ; bu bir database açığı. İnternette php'nin serialize, unserialize fonksiyonlarını araştırırsanız eğer mantığı anlarsınız. Framework kendi içerisinde database içerisine sorgu sokarken bu fonksiyonları kullanıyor. Bu fonksiyonları kullanım biçimlerinde ise bir yanlışlık varmış bunu update ile düzeltmişler.
En kötü senaryoyu düşünerek yazıyorum. Framework kendi içerisinde database sorgusu yaparken unserialize fonksiyonunu kullanıyor. Bazı yanlış kullanımlar, sorgunun önüne geçebilmeye büyük ihtimalle olanak sağlıyor. Yani örnek veriyorum sorgunun amacı "Veri tabanından sadece 1 id sini sil" ise açık kullanılarak bu sorgu "Veri tabanından tüm verileri" sil olarak değiştirilerek bir nevi database'den veri kaybına yol açıyor.
Yani burada 0'dan bir sorgu oluşturulması mümkün değil. Sadece var olan bir sorgunun devamını bazı operatörler ile getirerek o alana etki ediyorsunuz. Bu açık size veri tabanı ile alakalı komple bir erişim sunmuyor.
Bu database sorgularınının devamına açık ile ek sorgu eklediler diyelim. Burada etkilenen tek veri database içerisindeki önemsiz bir veri olacaktır. Tutup da ESXI'den herhangi bir düzenleme yapmaz. Böyle bir şey yapıldığını savunan bir insan varsa da şuna da inanmalı kendisi;
Bir not defteri açıp, içine herhangi bir ip adresi yazdıktan sonra, yazdığı ip adresini backspace ile silip, sildiği bu ip adresinin ESXI'den de silinmesini beklemek. Bu ne kadar saçmaysa veri tabanından bir veri silmesi, veya düzenlemesi yapıldıktan sonra ESXI tarafına işlemesi de o kadar mantıksız.
Bu açık ile ssh root girişi yapılabilir gibi birisi kuyuya taş atmış, tüm herkeste inanıyor. Anlayabilmiş değilim. İnsanların bu kadar kolay manipüle edildiğini görünce gerçekten şok yaşadım. Böyle bir şeyin olması imkansız. Konuyu açan kişinin WP konuşmasındaki yazısını okuyarak ve çok küçük bir araştırma yaparak bunun ne kadar saçma bir argüman olduğunu anlayabilirsiniz.
Database sorgusu ile ssh root girişi yapılabilmesinin imkanı yoktur.
Hadi diyelim ki olmayacak bir senaryoyu canlandıralım ve database sorgusu ile ssh girişi yaptığını düşünelim.
Burada gene suçlu ben değilim ki ? Ben açık kaynak kodlu bir yazılımda düzenleme yaptım. Bu yazılım framework olarak yii2 kullanıyor. Açık framework tarafında ?
Firmaların çokça şikayet ettiği ve eklenmesi iyi olur dediği şeyleri analiz ederek bu açık kaynak kodlu yazılımın içine ekledim. Bu eklediğim özellikleri ise pazarladım.
Yani bazı insanların yaptığı olaya çok basite indirgeyerek bir örnek vereyim;
"Bir bina var ve bu binanın dış cephe boyasına ihtiyacı var. Ben buradaki dış cephe boyasını yapan bir bireyim. İnsanların yaptığı ise bina çöktü, suçlu boyacıdır demek."
Önceden yazdığımı tekrarlıyorum, muhatap alınabilecek tek türk kişi benim. Ve linçlemeyi seven bir toplum da olduğumuz için sonuç buraya kadar geldi.
Aynı hassasiyeti, Altında binlerce çalışanı olan ve binlerce firmayı mağdur eden vmware'ye de göstermenizi isterim açıkçası.
Daha yazmak istediğim çok şey var. Çirkinleşen insanlar gibi, çirkinleşmek istemiyorum kısacası, o yüzden diğer yazmak istediğim şeyleri yazmak istemiyorum.
Artık komplo teorilerini ve içi boş kartezyen düşünceleri bırakın lütfen.
Selametle.
ortada olan açık bir Remote Command Execution Vulnerability (RCE) kendinin attığı linktede görebilirsin:
bu ne demek hemen açıklayayım yada direkt google açıklasın;
Her türlü komut çalıştırılabilir çalıştırılamaz diye bir şey yok ve gerekli açıklama için alıntı yaptığım yazıyı okuyabilirsin. Sabırlı davrandığını söylüyorsun ancak mesajları gözden geçir sabırlı ve sana anlayışlı bir şekilde yaklaşmaya çalışan ve ticaretinin zarar görmemesi için sorularla yaklaşan benim. Ama gördüğüm güvenlik tarafında bilgin 0 yok. Boyacı örneği vermiştin madem boya yapıyorsun o zaman boyanı sat direkt evi boyalı olarak satma sen evi boyalı olarka satarsan ve evde problem varsa muhattap sensindir yok öyle yağma. Ben zamanımı ayırdım sana direkt exploit dosyalarını gönderdim hala saçma açıklamalarla geliyorsun? Sadece bi ton insan şimdi adama yazıyordur anlayışlı oluyum dedim hatta konuşmadan sonra anladığınızı düşünerek kendimi report edip konudaki bazı yorumların silinmesini bile rica ettim(
silinmedi) sırf sizin ticaretinize problem olmasın diye ama siz açık sizin verdiğiniz hizmetten kaynaklandığı halde böyle saçma bir açıklama yapıyorsanız kusura bakmayın ama suçlusunuz. Autovm sanal makinaları yöneten bir panel ve bu panelde yetkili olan kişi alt sitelere istediğini yapabilir ve açık ise sizin sağladığınız autovm hizmetinde. her şey ortada ve net. Size dün gece yazdıklarımı oturup araştırsanız bu gün bu konuşmayı yapmak zorunda kalmayacaktık.
+ olarak "Artık komplo teorilerini ve içi boş kartezyen düşünceleri bırakın lütfen." komplo teorisi değil konuşmalarım tamamen ortada olan şeyler. (wmvare ve center tarafında ilgili firmaların direkt network tarafında hizmetini sağlayan
@SponneR; yorum attı konuya local dışına erişimleri kapalı olarak. dışarı açık olan tek şey autovm ve sistemlerin hepsi güncell hala ne anlatıyorsunuz bizdekide sabır. Sevdiğim dostlarımın canı yandı siz burda olan açığa yok bu böyle kullanılamaz komplo falan diyorsunuz ünlü triplerine girmeyi bırakın)