Uygulamalı Yazıcı Hackleme ve Güvenliği
Merhaba RC Ailesi Bugün sizlere elimden geldiğince Yazıcı hackleme ve yazıcımızın güvenliğini nasıl sağlarız bunlardan bahsedeceğim.
Giriş
Bu konuda, en yaygın yazıcı hackleme tekniklerine bakacağız ve neden savunmasız olduklarına bakacağız.
Kitlesel yazıcı korsanlığı, son birkaç yıldır avantaj sağlıyor.
Örneğin, bir saldırgan yaklaşık 50.000 yazıcıyı hacklediğinde, insanlardan PewDiePieye abone olmalarını isteyen mesajları yazdırdı.
Bir sonraki görevde, bu saldırının başarısının arkasındaki nedenlere bir göz atacağız.
PewDiePie yazıcı hackleme olayından bir örnek fotoğraf
IPP Bağlantı Noktası
Yazıcıların bu 50.000 yazıcıyı etkileyen güvenlik açığının arkasındaki sebep, açık bir IPP bağlantı noktasıydı.
IPP Nedir?
İnternet Yazdırma Protokolü (IPP) - istemci aygıtlar ve yazıcılar arasındaki iletişim için özel bir İnternet protokolüdür.
İstemcilerin bir veya daha fazla yazdırma işini yazıcıya veya yazdırma sunucusuna göndermesine ve bir yazıcının durumunu sorgulama gibi görevleri gerçekleştirmesine olanak tanır.
Yazdırma işlerinin durumunu alma veya tek tek yazdırma işlerini iptal etme protokolüdür.
Nasıl Çalışır?
Bir IPP bağlantı noktası internete açık olduğunda, herhangi birinin yazıcıya yazdırması hatta kötü amaçlı verileri yazıcıdan aktarması (saldırılar için aracı olmak) mümkündür.
lt;ahref= "https://www.variot.eu/" gt;VarIOT lt;/a gt; (IoT için Güvenlik Açığı ve Saldırı Deposu) tarafından yapılan yakın tarihli bir araştırma, hala dünyaya açılan yaklaşık 80 bin savunmasız yazıcının olduğunu gösterdi.
Çoğu, CUPS (basit bir UNIX yazdırma sistemi olan) sunucusunu çalıştırıyor.
Açık bir IPP bağlantı noktası, yazıcı adı, konumu, modeli, ürün yazılımı sürümü ve hatta yazıcı wifi SSID si gibi birçok hassas bilgiyi açığa çıkarabilir.
Soru: IPP hangi bağlantı noktasında çalışıyor?
Soruyu google den aratarak cevabımızı alıyoruz.
Hedef Belirleme ve Açığı Sömürmek
Makinemizi başlatıp terminale git clone https://github.com/RUB-NDS/PRET cd PRET sırasıyla dosyamızı indirip dosyanın içerisine gidiyoruz.
python2 -m pip install colorama pysnmP yazarak kurulum işlemlerini tamamlıyoruz.
Python sürümünüze göre python3-2 yazabilirsiniz.
Bu uygulamanın amacı yerel ağımıza sanal bir yazıcı oluşturmak.
Ağınızın tamamında bir Nmap taraması çalıştırarak da mümkündür, ancak maalesef daha uzun sürebilir.
Bunun nedeni, pret.py taramasının varsayılan olarak yazıcı iletişiminin açık olduğu bağlantı noktalarına odaklanması ve böylece onu çok daha hızlı hale getirmesidir.
Şimdi, nihayet yazıcıdan yararlanmanın zamanı geldi.
PRET kullanarak bir yazıcıdan yararlanırken denemeniz gereken tam olarak üç seçenek vardır:
# ps (Postscript)
#pjl (Yazıcı İş Dili)
#pcl (Yazıcı Komut Dili)
Hangisinin yazıcı tarafından anlaşılacağını görmek için üç dili de denemeniz gerekiyor
Kullanışı ise;
python pret.py IP pjl
python pret.py laserjet.lan ps
python pret.py /dev/usb/lp0 pcl
Eğer bilgisayarınıza bağlı olan bir yazıcı varsa son komut çalışır.
Bir komutu çalıştırdıktan sonrasında ne yapacağınızı bilmiyorsanız help komutu size yardımcı olacaktır.
Yazıcıların iletişim kurmak için kullanabileceği farklı dillerde bulunan çeşitli örnek komutlar yukarıdaki gibidir.
Gördüğünüz gibi, PRET, uzak bir dizinde çalışıyormuşuz gibi yazıcıyla etkileşime girmemize izin veriyor.
Artık yazıcıda bilgi depolayabilir, silebilir veya bilgi ekleyebiliriz.
(Daha fazla komut ve örnek için projenin GitHubını okuyun)
Sadece güvenliğini test etmek için yazıcınızda PRETi evde deneyebilirsiniz. lt;ahref= "http://hacking-printers.net/wiki/index.php/Printer_Security_Testing_Cheat_Sheet" gt
aha Fazla Komut lt;/a gt;
Bu göreve TryHackme lt;ahref= "https://tryhackme.com/room/printerhacking101" gt;printerhacking101 lt;/a gt; odasında çalışcağız.
Odayı başlatıp İP:631 de IPP bağlantı noktasına bağlantı kuralım. Hassas bilgilere ulaşıp ulaşamıcamızı kontrol edelim.
NOT:PRET, varsayılan olarak 9000 numaralı bağlantı noktasını kullandığı için burada çalışmayacaktır.
Makineye bir ssh erişimi, ssh tünel oluşturmanıza, tüm CUPS özelliklerini açmanıza ve bağlı yazıcıları kullanmanıza olanak tanır. SSH parolası kolayca kaba kuvvet saldırısı ile zorlanabilir.
Örnek Bağlantı: ssh printer@machineip -T -L 3631:localhost:631
Şifreyi kırmak için hydra programını kullanacağız.
Komutu kullanarak belli bir zaman sonrasında şifreyi bize vermektedir.
Verdiği şifre ile ssh bağlantısını kurabiliriz.
Bunu yaptıktan sonra, CUPS sunucusunu sanal makinenizin yazıcı ayarlarına kolayca ekleyebilir ve hatta bazı yazdırma işleri göndermeyi deneyebilirsiniz.
Soru1: Basit bir yazıcı TCP DoS saldırısı tek satırlık bir komut olarak nasıl görünür?
Bu sorunun cevabını daha fazla komut listesinde bulunmaktadır.
Soru2: Yukarıdaki görev okumasında verilen hile sayfasını gözden geçirin. Önceden ayrılmış bir arabellek boyutu aşılana kadar daha fazla bilgi göndermeyi içeren yazıcılar genellikle hangi saldırıya açıktır?
Bu sorunun cevabı da daha fazla komut listesinde bulunmaktadır.
Soru3: Yukarıdaki talimatlara göre yazıcıya bağlanın. Fox_Printer nerede bulunur?
Bu sorunun cevabını localhost:3631 de ufak araştırmayla bulabilirsiniz.
Soru4: Test sayfasının boyutu nedir?
Bu sorunun cevabını localhost:3631 de ufak araştırmayla bulabilirsiniz.
Sonuç
Yazıcı korsanlığının o kadar da zor olmadığı ortaya çıktı.
Buradaki sorun, bu sorunların düşük farkındalığından ve yöneticiler ve kullanıcılar tarafından yapılan birden çok yanlış yapılandırmadan kaynaklanmaktadır.
Şimdi, dış internet için görünmez hale getirerek ve yönetici erişimini yeniden yapılandırarak yazıcınızın güvenliğini sağladığınızdan emin olmanız sizin faydanıza olur.
Yazıcımı nasıl güvenilir hale getiririm?
#Yazıcınızın ip adresine nmap taraması yapmak.
#9100, 515 ve 721–731 yönlendirici bağlantı noktalarını kapatın. Nasıl yapacağınızı öğrenmek için yönlendiricinizin kullanım kılavuzuna bakın.
#İnternet üzerinden yazdırma ile ilgili bütün yazıcı ayarlarını devre dışı bırakın.
#Kullanıcı adınızı ve şifrenizi değiştirin (yazıcınız giriş kimlik bilgileri kullanıyorsa) varsayılan değerleri asla kullanmayın.
#Kullanmadığınız yazıcıyı veya yazıcıları kapatın.
Merhaba RC Ailesi Bugün sizlere elimden geldiğince Yazıcı hackleme ve yazıcımızın güvenliğini nasıl sağlarız bunlardan bahsedeceğim.
Giriş
Bu konuda, en yaygın yazıcı hackleme tekniklerine bakacağız ve neden savunmasız olduklarına bakacağız.
Kitlesel yazıcı korsanlığı, son birkaç yıldır avantaj sağlıyor.
Örneğin, bir saldırgan yaklaşık 50.000 yazıcıyı hacklediğinde, insanlardan PewDiePieye abone olmalarını isteyen mesajları yazdırdı.
Bir sonraki görevde, bu saldırının başarısının arkasındaki nedenlere bir göz atacağız.
PewDiePie yazıcı hackleme olayından bir örnek fotoğraf
IPP Bağlantı Noktası
Yazıcıların bu 50.000 yazıcıyı etkileyen güvenlik açığının arkasındaki sebep, açık bir IPP bağlantı noktasıydı.
IPP Nedir?
İnternet Yazdırma Protokolü (IPP) - istemci aygıtlar ve yazıcılar arasındaki iletişim için özel bir İnternet protokolüdür.
İstemcilerin bir veya daha fazla yazdırma işini yazıcıya veya yazdırma sunucusuna göndermesine ve bir yazıcının durumunu sorgulama gibi görevleri gerçekleştirmesine olanak tanır.
Yazdırma işlerinin durumunu alma veya tek tek yazdırma işlerini iptal etme protokolüdür.
Nasıl Çalışır?
Bir IPP bağlantı noktası internete açık olduğunda, herhangi birinin yazıcıya yazdırması hatta kötü amaçlı verileri yazıcıdan aktarması (saldırılar için aracı olmak) mümkündür.
lt;ahref= "https://www.variot.eu/" gt;VarIOT lt;/a gt; (IoT için Güvenlik Açığı ve Saldırı Deposu) tarafından yapılan yakın tarihli bir araştırma, hala dünyaya açılan yaklaşık 80 bin savunmasız yazıcının olduğunu gösterdi.
Çoğu, CUPS (basit bir UNIX yazdırma sistemi olan) sunucusunu çalıştırıyor.
Açık bir IPP bağlantı noktası, yazıcı adı, konumu, modeli, ürün yazılımı sürümü ve hatta yazıcı wifi SSID si gibi birçok hassas bilgiyi açığa çıkarabilir.
Soru: IPP hangi bağlantı noktasında çalışıyor?
Soruyu google den aratarak cevabımızı alıyoruz.
Hedef Belirleme ve Açığı Sömürmek
Makinemizi başlatıp terminale git clone https://github.com/RUB-NDS/PRET cd PRET sırasıyla dosyamızı indirip dosyanın içerisine gidiyoruz.
python2 -m pip install colorama pysnmP yazarak kurulum işlemlerini tamamlıyoruz.
Python sürümünüze göre python3-2 yazabilirsiniz.
Bu uygulamanın amacı yerel ağımıza sanal bir yazıcı oluşturmak.
Ağınızın tamamında bir Nmap taraması çalıştırarak da mümkündür, ancak maalesef daha uzun sürebilir.
Bunun nedeni, pret.py taramasının varsayılan olarak yazıcı iletişiminin açık olduğu bağlantı noktalarına odaklanması ve böylece onu çok daha hızlı hale getirmesidir.
Şimdi, nihayet yazıcıdan yararlanmanın zamanı geldi.
PRET kullanarak bir yazıcıdan yararlanırken denemeniz gereken tam olarak üç seçenek vardır:
# ps (Postscript)
#pjl (Yazıcı İş Dili)
#pcl (Yazıcı Komut Dili)
Hangisinin yazıcı tarafından anlaşılacağını görmek için üç dili de denemeniz gerekiyor
Kullanışı ise;
python pret.py IP pjl
python pret.py laserjet.lan ps
python pret.py /dev/usb/lp0 pcl
Eğer bilgisayarınıza bağlı olan bir yazıcı varsa son komut çalışır.
Bir komutu çalıştırdıktan sonrasında ne yapacağınızı bilmiyorsanız help komutu size yardımcı olacaktır.
Yazıcıların iletişim kurmak için kullanabileceği farklı dillerde bulunan çeşitli örnek komutlar yukarıdaki gibidir.
Gördüğünüz gibi, PRET, uzak bir dizinde çalışıyormuşuz gibi yazıcıyla etkileşime girmemize izin veriyor.
Artık yazıcıda bilgi depolayabilir, silebilir veya bilgi ekleyebiliriz.
(Daha fazla komut ve örnek için projenin GitHubını okuyun)
Sadece güvenliğini test etmek için yazıcınızda PRETi evde deneyebilirsiniz. lt;ahref= "http://hacking-printers.net/wiki/index.php/Printer_Security_Testing_Cheat_Sheet" gt
Bu göreve TryHackme lt;ahref= "https://tryhackme.com/room/printerhacking101" gt;printerhacking101 lt;/a gt; odasında çalışcağız.
Odayı başlatıp İP:631 de IPP bağlantı noktasına bağlantı kuralım. Hassas bilgilere ulaşıp ulaşamıcamızı kontrol edelim.
NOT:PRET, varsayılan olarak 9000 numaralı bağlantı noktasını kullandığı için burada çalışmayacaktır.
Makineye bir ssh erişimi, ssh tünel oluşturmanıza, tüm CUPS özelliklerini açmanıza ve bağlı yazıcıları kullanmanıza olanak tanır. SSH parolası kolayca kaba kuvvet saldırısı ile zorlanabilir.
Örnek Bağlantı: ssh printer@machineip -T -L 3631:localhost:631
Şifreyi kırmak için hydra programını kullanacağız.
Komutu kullanarak belli bir zaman sonrasında şifreyi bize vermektedir.
Verdiği şifre ile ssh bağlantısını kurabiliriz.
Bunu yaptıktan sonra, CUPS sunucusunu sanal makinenizin yazıcı ayarlarına kolayca ekleyebilir ve hatta bazı yazdırma işleri göndermeyi deneyebilirsiniz.
Soru1: Basit bir yazıcı TCP DoS saldırısı tek satırlık bir komut olarak nasıl görünür?
Bu sorunun cevabını daha fazla komut listesinde bulunmaktadır.
Soru2: Yukarıdaki görev okumasında verilen hile sayfasını gözden geçirin. Önceden ayrılmış bir arabellek boyutu aşılana kadar daha fazla bilgi göndermeyi içeren yazıcılar genellikle hangi saldırıya açıktır?
Bu sorunun cevabı da daha fazla komut listesinde bulunmaktadır.
Soru3: Yukarıdaki talimatlara göre yazıcıya bağlanın. Fox_Printer nerede bulunur?
Bu sorunun cevabını localhost:3631 de ufak araştırmayla bulabilirsiniz.
Soru4: Test sayfasının boyutu nedir?
Bu sorunun cevabını localhost:3631 de ufak araştırmayla bulabilirsiniz.
Sonuç
Yazıcı korsanlığının o kadar da zor olmadığı ortaya çıktı.
Buradaki sorun, bu sorunların düşük farkındalığından ve yöneticiler ve kullanıcılar tarafından yapılan birden çok yanlış yapılandırmadan kaynaklanmaktadır.
Şimdi, dış internet için görünmez hale getirerek ve yönetici erişimini yeniden yapılandırarak yazıcınızın güvenliğini sağladığınızdan emin olmanız sizin faydanıza olur.
Yazıcımı nasıl güvenilir hale getiririm?
#Yazıcınızın ip adresine nmap taraması yapmak.
#9100, 515 ve 721–731 yönlendirici bağlantı noktalarını kapatın. Nasıl yapacağınızı öğrenmek için yönlendiricinizin kullanım kılavuzuna bakın.
#İnternet üzerinden yazdırma ile ilgili bütün yazıcı ayarlarını devre dışı bırakın.
#Kullanıcı adınızı ve şifrenizi değiştirin (yazıcınız giriş kimlik bilgileri kullanıyorsa) varsayılan değerleri asla kullanmayın.
#Kullanmadığınız yazıcıyı veya yazıcıları kapatın.