日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]反彈Shell是黑客(即Shell攻擊者)用于控制受害服務(wù)器的一種手段。Shell攻擊者指定服務(wù)端,并將需要受害服務(wù)器執(zhí)行的命令(標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤等)重定向到該服務(wù)端。

使用 Shell 腳本在 Linux 服務(wù)器上能夠控制、毀壞或者獲取任何東西,通過(guò)一些巧妙的攻擊方法黑客可能會(huì)獲取巨大的價(jià)值,但大多數(shù)攻擊也留下蹤跡。當(dāng)然,這些蹤跡也可通過(guò) Shell 腳本等方法來(lái)隱藏。

尋找攻擊證據(jù)就從攻擊者留下的這些痕跡開(kāi)始,如文件的修改日期。每一個(gè) Linux 文件系統(tǒng)中的每個(gè)文件都保存著修改日期。系統(tǒng)管理員發(fā)現(xiàn)文件的最近修改時(shí)間,便提示他們系統(tǒng)受到攻擊,采取行動(dòng)鎖定系統(tǒng)。然而幸運(yùn)的是,修改時(shí)間不是絕對(duì)可靠的記錄,修改時(shí)間本身可以被欺騙或修改,通過(guò)編寫(xiě)Shell 腳本,攻擊者可將備份和恢復(fù)修改時(shí)間的過(guò)程自動(dòng)化。

操作步驟

第一步:查看和操作時(shí)間戳

多數(shù) Linux 系統(tǒng)中包含一些允許我們快速查看和修改時(shí)間戳的工具,其中最具影響的當(dāng)數(shù) “Touch”,它允許我們創(chuàng)建新文件、更新文件 / 文件組最后一次被 “touched” 的時(shí)間。

touch file

若該文件不存在, 運(yùn)行上面的命令將創(chuàng)建一個(gè)名為 “file” 的新文件;若它已經(jīng)存在,該命令將會(huì)更新修改日期為當(dāng)前系統(tǒng)時(shí)間。我們也可以使用一個(gè)通配符,如下面的字符串。

touch*

這個(gè)命令將更新它運(yùn)行的文件夾中的每個(gè)文件的時(shí)間戳。在創(chuàng)建和修改文件之后,有幾種方法可以查看它的詳細(xì)信息,第一個(gè)使用的為 “stat” 命令。

stat file

運(yùn)行 stat 會(huì)返回一些關(guān)于文件的信息,包含訪問(wèn)、修改或更新時(shí)間戳。針對(duì)一批文件可使用 ls 參數(shù)查看各文件的時(shí)間戳,使用 “-l” 或者 “l(fā)ong”,該命令會(huì)列出文件詳細(xì)信息,包含輸出時(shí)間戳。

ls–l

現(xiàn)在就可以設(shè)置當(dāng)前時(shí)間戳并查看已經(jīng)設(shè)置的時(shí)間戳,也可使用 touch 來(lái)定義一個(gè)自定義時(shí)間戳,可使用 “d” 標(biāo)志,用 yyyy-mm-dd 格式定義日期,緊隨其后設(shè)置時(shí)間的小時(shí)、分鐘及秒,如下:

touch -d"2001-01-01 20:00:00"file

通過(guò) ls 命令來(lái)確認(rèn)修改信息:

ls-lfile

這種方法適用于修改個(gè)別時(shí)間戳,對(duì)于隱藏服務(wù)器上的操作痕跡,這個(gè)方法不太奏效,可以使用 shell 腳本將該過(guò)程自動(dòng)化。

步驟二:組織 Shell 腳本

在開(kāi)始編寫(xiě)腳本之前需要考慮清楚需要執(zhí)行哪些過(guò)程。為了在服務(wù)器上隱藏痕跡,攻擊者需要將文件夾的原始時(shí)間戳寫(xiě)入一個(gè)文件,同時(shí)能夠在我們進(jìn)行任何修改設(shè)置之后還能回到原始文件。

這兩個(gè)不同的功能會(huì)根據(jù)用戶的輸入或者參數(shù)的不同而觸發(fā),腳本會(huì)根據(jù)這些參數(shù)執(zhí)行相應(yīng)的功能,同時(shí)我們需要有一種方法來(lái)處理錯(cuò)誤。根據(jù)用戶的輸入將會(huì)進(jìn)行三種可能的操作:

沒(méi)有參數(shù)——返回錯(cuò)誤消息;

保存時(shí)間戳標(biāo)記——將時(shí)間戳保存到文件中;

恢復(fù)時(shí)間戳標(biāo)記——根據(jù)保存列表恢復(fù)文件的時(shí)間戳。

我們可以使用嵌套語(yǔ)句 if/or 語(yǔ)句來(lái)創(chuàng)建腳本,也可以根據(jù)條件將每個(gè)函數(shù)分配給自己的 “if” 語(yǔ)句,可選擇在文本編輯器或者 nano 中開(kāi)始編寫(xiě)腳本。

步驟三:開(kāi)始腳本

從命令行啟動(dòng) nano 并創(chuàng)建一個(gè)名為 “timestamps.sh” 的腳本,命令如下:

nano timestamps.sh

然后進(jìn)行下列命令:

#!/bin/bash

if[$#-eq 0];then

echo“Use asave (-s) or restore (-r) parameter.”

exit1

fi

在 nano 中按下 Ctrl + O 保存這個(gè)文件,通過(guò) chmod 命令將它標(biāo)記為可運(yùn)行的腳本。

chmod +xtimestamps.sh

然后運(yùn)行腳本,測(cè)試無(wú)參數(shù)時(shí)返回錯(cuò)誤信息的功能。如果腳本返回我們的 echo 語(yǔ)句,我們就可以繼續(xù)下一個(gè)條件了。

./timestamps.sh

步驟四:將時(shí)間戳寫(xiě)入文件

定義 if 語(yǔ)句的條件,“-s” 表示執(zhí)行保存功能:

if[$1="-s"] ; then

fi

當(dāng)然,需要檢查計(jì)劃保存的時(shí)間戳文件是否存在,如果存在,我們可以刪除它(名為 timestamps 的文件),避免重復(fù)或錯(cuò)誤的輸入,使用下面的命令:

rm-f timestamps;

然后使用 “l(fā)s” 命令列出所有文件和它的修改時(shí)間,可將其輸出到另一個(gè)程序,如 sed,以幫助我們稍后清理這個(gè)輸入。

ls–l

通常會(huì)出現(xiàn)下面的顯示結(jié)果:

-rw-r--r-- 1 user user 0 Jan 1 2017 file

為了保存時(shí)間戳,我們只需要年、月、日及文件名,下面命令可以清除 “Jan” 之前的信息:

ls-lfile| sed 's/^.*Jan/Jan/p'

這樣顯示的就是我們程序需要的信息,只是需要修改月份格式為數(shù)字格式:

ls-lfile| sed 's/^.*Jan/01/p'

將所有月份都替換為數(shù)字:

ls -l | sed -n 's/^.*Jan/01/p;s/^.*Feb/02/p;s/^.*Mar/03/p;s/^.*Apr/04/p;s/^.*May/05/p;s/^.*Jun/06/p;s/^.*Jul/07/p;s/^.*Aug/08/p;s/^.*Sep/09/p;s/^.*Oct/10/p;s/^.*Nov/11/p;s/^.*Dec/12/p;'

在一個(gè)文件夾中運(yùn)行我們會(huì)看到如下圖所示的結(jié)果:


然后將輸出結(jié)果通過(guò) “>>” 發(fā)送到名為 “timestamps” 的文件中:

doecho $x | ls -l |sed -n 's/^.*Jan/01/p;s/^.*Feb/02/p;s/^.*Mar/03/p;s/^.*Apr/04/p;s/^.*May/05/p;s/^.*Jun/06/p;s/^.*Jul/07/p;s/^.*Aug/08/p;s/^.*Sep/09/p;s/^.*Oct/10/p;s/^.*Nov/11/p;s/^.*Dec/12/p;'>> timestamps

至此,腳本的前兩個(gè)操作就完成了,顯示結(jié)果如下圖:


下面可用 “-s” 標(biāo)示測(cè)試腳本,用 cat 檢查保存的信息:

./timestamps.sh–s

cattimestamps

步驟五:恢復(fù)文件的時(shí)間戳

在保存好原始時(shí)間戳后,需要恢復(fù)時(shí)間戳讓別人覺(jué)察不到文件被修改過(guò),可使用下面命令:

if$1= "-r"; thenfi

然后使用下面命令,轉(zhuǎn)發(fā)文本文件的內(nèi)容,并一行一行運(yùn)行:

cattimestamps |whilereadlinedodone

然后再分配一些變量讓文件數(shù)據(jù)的使用更簡(jiǎn)單:

MONTH=$(echo $line| cut -f1 -d );

DAY=$(echo $line| cut -f2 -d );

FILENAME=$(echo $line| cut -f4 -d );

YEAR=$(echo $line| cut -f3 -d )

雖然這四個(gè)變量在保存的時(shí)間戳文件中是一致的,但是如果時(shí)間戳是在過(guò)去一年中發(fā)生的,它只會(huì)顯示時(shí)間而不是年份。如果需要確定當(dāng)前年份,我們可以分配為寫(xiě)腳本的年份,也可以從系統(tǒng)中返回年份,使用 cal 命令可以查看日歷。

然后檢索第一行,只讓顯示想要得年份信息:

CURRENTYEAR=$(cal | head -1| cut -f6- -d | sed 's/ //g')

定義了所有變量之后可以使用 “if else” 語(yǔ)句,根據(jù)格式化的日期更新文件的時(shí)間戳,使用 touch 語(yǔ)法:

touch -d "2001-01-01 20:00:00"file

由于每個(gè)時(shí)間都包含冒號(hào),因此可使用下面的 “ifelse” 語(yǔ)句完成操作,整體操作如下圖所示:

if[ $YEAR== *:* ]; then

touch -d $CURRENTYEAR-$MONTH-$DAY$YEAR:00 $FILENAME;

else

touch -d ""$YEAR-$MONTH-$DAY""$FILENAME;

步驟六:使用腳本

使用的命令主要有以下幾個(gè):

./timestamps.sh–s 保存文件時(shí)間戳

touch -d “2050-10-1210:00:00″ * 修改目錄下的所有文件時(shí)間戳

ls–a確認(rèn)修改的文件

./timestamps.sh–r 恢復(fù)文件原始時(shí)間戳

最后可以再次運(yùn)行 “l(fā)s -a” 來(lái)查看文件的時(shí)間戳是否和之前備份的時(shí)間戳一致,整個(gè)的腳本就執(zhí)行完成了。

總結(jié)

該腳本只是用來(lái)清除攻擊服務(wù)器之后遺留的一些痕跡。為了隱藏痕跡,黑客在針對(duì)服務(wù)器實(shí)施具體的攻擊時(shí),必須仔細(xì)考慮使用的每一個(gè)方法,以及入侵服務(wù)器之后如何隱藏自己的痕跡。

通過(guò)上面的介紹我們了解到,時(shí)間戳也是 “會(huì)撒謊的”,因此系統(tǒng)管理員必須意識(shí)到他們的許多日志和保護(hù)措施是可以被操縱的,雖然看起來(lái)好像沒(méi)有異常。

反彈Shell是黑客(即Shell攻擊者)用于控制受害服務(wù)器的一種手段。Shell攻擊者指定服務(wù)端,并將需要受害服務(wù)器執(zhí)行的命令(標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤等)重定向到該服務(wù)端。受害服務(wù)器主動(dòng)連接攻擊者的服務(wù)端程序,攻擊者的服務(wù)端通過(guò)監(jiān)聽(tīng)來(lái)自受害服務(wù)器的請(qǐng)求,對(duì)目標(biāo)服務(wù)器下發(fā)指令并獲取執(zhí)行結(jié)果,以達(dá)到攻擊者可以控制受害服務(wù)器的目的。

反彈Shell攻擊現(xiàn)狀

阿里云云安全中心通過(guò)分析歷史中云上環(huán)境的Linux服務(wù)器入侵事件,總結(jié)出了攻擊鏈路中實(shí)現(xiàn)反彈Shell的語(yǔ)言及工具使用率,詳情如下圖所示。

其中交互式Bash+/dev/tcp是使用最多的反彈Shell,/dev/tcp作為Bash的默認(rèn)特性使得該反彈方式兼容絕大多數(shù)環(huán)境,因此使用率高。緊隨其后的是兼容性較好且靈活易用的Python。隨著Go語(yǔ)言的興起,云上入侵事件開(kāi)始出現(xiàn)Go反彈Shell。從上圖可以看出彈Shell實(shí)現(xiàn)的方式靈活多樣,每種語(yǔ)言都可以進(jìn)一步延伸和擴(kuò)展。因此,為了保障最優(yōu)的檢出效果,反彈Shell的檢測(cè)方案需要綜合考慮多種場(chǎng)景因素。

常規(guī)檢測(cè)方法

常見(jiàn)的檢測(cè)方案是通過(guò)正則匹配的方式,提取反彈Shell命令的特征去匹配命令日志、流量日志。該方案具有以下不足:

命令日志采集不完整:例如通過(guò)Netlink等方式采集的日志,在碰到管道符、重定向時(shí)會(huì)無(wú)法采集完整的原始執(zhí)行命令。而通過(guò)Patch Bash的方式記錄命令日志,在遇到服務(wù)器使用Zsh、Ksh等其他Shell環(huán)境,或攻擊者上傳自己編譯的Bash時(shí)會(huì)失效。正則匹配無(wú)法覆蓋無(wú)窮無(wú)盡的文本對(duì)抗:攻擊者可以不斷挖掘出新的變形方式來(lái)繞過(guò)正則匹配。在實(shí)際業(yè)務(wù)場(chǎng)景中,過(guò)多復(fù)雜的正則匹配會(huì)帶來(lái)更大性能壓力,而通配性更廣的正則匹配會(huì)帶來(lái)更多誤報(bào)。特征匹配失效:在網(wǎng)絡(luò)流量被加密后,特征匹配會(huì)失效。

分類檢測(cè)思想

因?yàn)楸韺訉?duì)抗是無(wú)窮無(wú)盡的,檢測(cè)需要由表及里,盡可能挖掘出更本質(zhì)的解決方法。從檢測(cè)的角度來(lái)看,反彈Shell的本質(zhì)可以理解為:網(wǎng)絡(luò)通信+命令執(zhí)行+重定向方式。

命令執(zhí)行和網(wǎng)絡(luò)通信借助重定向,可以構(gòu)建出一條流動(dòng)的數(shù)據(jù)通道。攻擊者可以利用這條通道下發(fā)指令控制受害服務(wù)器。不同的實(shí)現(xiàn)方式組合在一起,就形成了多種多樣的反彈Shell。例如:

網(wǎng)絡(luò)通信可以使用TCP、UDP、ICMP等協(xié)議,TCP協(xié)議再細(xì)分又可以包含HTTP、HTTPS協(xié)議等,UDP包含DNS等。命令執(zhí)行可以通過(guò)調(diào)用Shell解釋器、Glibc庫(kù)、Syscall等方式實(shí)現(xiàn)。重定向可以通過(guò)管道、成對(duì)的偽終端、內(nèi)存文件等實(shí)現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉