Soru netcat -e: GAPING_SECURITY_HOLE


BSD sürüm 1.10 neden nc devre dışı bırak -e Aynı tehlikeli özellik, "güvenli" sürümüyle bile aşağıdaki gibi elde edilebildiği zaman, güvensiz dağılımlar olarak adlandırılan başka bir seçenek bulundu nc:

$ # Machine A
$ mkfifo pipe
$ nc -l 4000 <pipe | bash >pipe

$ # Machine B
$ nc MachineA 4000

Şimdi, eğer bir makinede A komutunu bir senaryoda tamamlayacak olsaydım (ki eğer bir '-e' argümanını geçerse, etkili bir şekilde yaparsak), aşağı doğru adım atmak zorunda kalmadan temelde 'şaşkın güvenlik çukurunu' tanıttım. Makefile ve inşa seviyesi.

Öyleyse neden düzelsin? #define-ing GAPING_SECURITY_HOME  içinde netcat.c?


5
2018-02-19 08:54


Menşei


Çok aptal olduğum için üzgünüm, ama burada güvenlik problemini anlamadım. Makineyi A savunmasız hale getirmek için nc -e / bin / bash ... ya da A makinesinde benzeri bir şey söylemeniz gerekecek gibi görünüyor. Öyleyse bunu yapmayı seçersem, bu benim saçma kusurumdur, ama belki de bir şey için istiyorum: nc -e knockknockwhosthere.sh ... tamamen zararsız bir sunucu oluşturmak için. Böyle bir şeyden vazgeçmek, mikrodalga fırınları yasaklamak gibi görünüyor, bu yüzden insanlar evcil hayvanlarını içlerinde kurutmaya çalışmıyorlar. Yoksa bir şey özledim mi?


Cevaplar:


Kesin bir cevap vermemekle birlikte, boşluktaki güvenlik deliğinin sadece sizin nc vardır -e etkin ve setuid köküdür. (Gibi nc Genellikle bağlantı noktalarına bağlanmak için kullanılır, tüm kullanıcıların 1024 altındaki ayrıcalıklı bağlantı noktalarına bağlanabilmesi için setuid kök paketlenmiş olabilir.)

Bu durumda nc -e olur exec root olarak verilen süreç - herhangi bir kullanıcının root olarak herhangi bir süreç. Eminim bunun açık bir güvenlik deliği olduğunu anlayacaksınız. Aksine, kendi sürecinizi çalıştırırsanız ve bunu bağlamak için boruları kullanırsanız ncBu işlem, yükseltmek için başka bir yolunuz olmadığı sürece root olarak çalışmaz ( sudo erişim).

Gibi grawity işaret etti, netcat Orijinal yayın duyurusu şikayet etti

Ticari satıcılar muhtemelen [netcat] setuid root ve -DGAPING_SECURITY_HOLE açık ancak belgelenmemiş.

Bu, teorime ağırlık veriyor, bence. :)


2
2017-10-17 04:22





Örneğin, imap veya pop3 gibi başka bir uygulamayı çalıştırmak için "netcat -e" yi kullanabilirim. "#ifdef GAPING_SECURITY_HOLE" bölümü, bir kabuk çalıştırmanıza olanak tanıyan bir hata içerebilir, bu nedenle varsayılan olarak silinir. güvenlik açısından kritik bölümler ifdef.


1
2018-02-19 09:38



Benim çalıştırılabilirim denir nc; Fedora12 ile geldi (nc-1.84-21.fc12.i686) ve sahip değil -eseçeneği. Bazı dağıtımlar yapar, ancak bunu yapmaz. Ve bu yokluğun 'gerekçesi' bu gibi yerlerde ele alınır. Örneğin. Sorum şu: devre dışı bırakılan dağıtımlar hakkında -e. Yukarıda tartıştığım gibi, sözde güvenli versiyonlarda bile, zaten güvenlik deliğine sahipsin ... o zaman neden olmasın ki -e ve etik hacker ve güç kullanıcısı için biraz daha kolay hale getirin. - Harry
Muhtemelen anti virüs satıcılarını yatıştırmak için. - LawrenceC


itibaren Orijinal yayın duyurusu:

Zorunlu satıcı-bash: Eğer "nc" yıllar önce standart bir fayda haline gelmiş olsaydı,   Ticari satıcılar büyük olasılıkla kök setini ve    -DGAPING_SECURITY_HOLE açık ancak belgelenmemiş. Bu netcat umuldu   insanlara bu tür no-brainer deliklerini bulma ve düzeltme konusunda yardımcı olacak   "çıplak metali" ile daha kolay denemeye izin vererek görünmeye devam edin   ağ katmanı.

Daha net bir şey yapmadığı için ...


1
2018-02-19 11:35



Bu, çok iyi bir argüman gibi görünmüyor çünkü güvenlik deliği, her ne kadar sözde güvenli sürümde bile nc Bu kod parçası ile devre dışı bırakıldı. Böylece yeni kullanıcılara yanlış bir güvenlik hissi verir. Daha iyi bir strateji olan IMO, bu programın çok tehlikeli olduğu ve bu yüzden herkesin ona erişim vermesini isteyebileceğinizi ya da istemeyebileceğiniz yüksek sesli ve açık bir şekilde uyarmak olacaktır. (Ya da, bu etki için bir şey.) - Harry