當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導(dǎo)讀]來自:開源Linux1前言使用Shell腳本在Linux服務(wù)器上能夠控制、毀壞或者獲取任何東西,通過一些巧妙的攻擊方法黑客可能會獲取巨大的價值,但大多數(shù)攻擊也留下蹤跡。當(dāng)然,這些蹤跡也可通過Shell腳本等方法來隱藏。尋找攻擊證據(jù)就從攻擊者留下的這些痕跡開始,如文件的修改日期。每...

來自:開源Linux

1前言

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

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

2操作步驟

第一步:查看和操作時間戳

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

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

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

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

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

touch?-d"2001-01-01?20:00:00"?file
通過ls命令來確認修改信息:

ls?-l?file
這種方法適用于修改個別時間戳,對于隱藏服務(wù)器上的操作痕跡,這個方法不太奏效,可以使用shell腳本將該過程自動化。

步驟二:組織Shell腳本

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

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

  • 沒有參數(shù)——返回錯誤消息;

  • 保存時間戳標記——將時間戳保存到文件中;

  • 恢復(fù)時間戳標記——根據(jù)保存列表恢復(fù)文件的時間戳。

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

步驟三:開始腳本

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

nano?timestamps.sh
然后進行下列命令:

#!/bin/bash
if?[?$#?-eq?0?];then
echo?“Use?asave?(-s)?or?restore?(-r)?parameter.”
exit?1
fi
在nano中按下Ctrl O保存這個文件,通過chmod命令將它標記為可運行的腳本。

chmod? x?timestamps.sh
然后運行腳本,測試無參數(shù)時返回錯誤信息的功能。如果腳本返回我們的echo語句,我們就可以繼續(xù)下一個條件了。

./timestamps.sh

步驟四:將時間戳寫入文件

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


if?[?$1?="-s"?]?;?then
fi
當(dāng)然,需要檢查計劃保存的時間戳文件是否存在,如果存在,我們可以刪除它(名為timestamps的文件),避免重復(fù)或錯誤的輸入,使用下面的命令:

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

ls?–l
通常會出現(xiàn)下面的顯示結(jié)果:

-rw-r--r--?1?user?user?0?Jan?1?2017?file
為了保存時間戳,我們只需要年、月、日及文件名,下面命令可以清除“Jan”之前的信息:

ls?-l?file?|?sed?'s/^.*Jan/Jan/p'
這樣顯示的就是我們程序需要的信息,只是需要修改月份格式為數(shù)字格式:

ls?-l?file?|?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;'
在一個文件夾中運行我們會看到如下圖所示的結(jié)果:

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

do?echo?$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
此腳本的前兩個操作就完成了,顯示結(jié)果如下圖:

下面可用“-s”標示測試腳本,用cat檢查保存的信息:

./timestamps.sh?–s
cat?timestamps

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

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

if?$1?=?"-r"?;?then
fi
然后使用下面命令,轉(zhuǎn)發(fā)文本文件的內(nèi)容,并一行一行運行:

cat?timestamps?|while?read?line
do
done
然后再分配一些變量讓文件數(shù)據(jù)的使用更簡單:

MONTH=$(echo?$line?|?cut?-f1?-d\?);
DAY=$(echo?$line|?cut?-f2?-d\?);
FILENAME=$(echo?$line?|?cut?-f4?-d\?);
YEAR=$(echo?$line?|?cut?-f3?-d\?)
雖然這四個變量在保存的時間戳文件中是一致的,但是如果時間戳是在過去一年中發(fā)生的,它只會顯示時間而不是年份。如果需要確定當(dāng)前年份,我們可以分配為寫腳本的年份,也可以從系統(tǒng)中返回年份,使用cal命令可以查看日歷。

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

CURRENTYEAR=$(cal?|?head?-1?|?cut?-f6-?-d\?|?sed?'s/?//g')
定義了所有變量之后可以使用“if else”語句,根據(jù)格式化的日期更新文件的時間戳,使用touch語法:

touch?-d?"2001-01-01?20:00:00"?file
由于每個時間都包含冒號,因此可使用下面的“ifelse”語句完成操作,整體操作如下圖所示:

if?[?$YEAR?==?*:*?];?then
touch?-d?$CURRENTYEAR-$MONTH-$DAY\?$YEAR:00?$FILENAME;
else
touch?-d?""$YEAR-$MONTH-$DAY""?$FILENAME;
fi

步驟六:使用腳本

使用的命令主要有以下幾個:

  • ./timestamps.sh –s ? 保存文件時間戳

  • touch -d “2050-10-12 10:00:00″ * ? 修改目錄下的所有文件時間戳

  • ls –a ? 確認修改的文件

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

最后可以再次運行“l(fā)s -a”來查看文件的時間戳是否和之前備份的時間戳一致,整個的腳本就執(zhí)行完成了,如下圖所示:

3總結(jié)

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

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


END
來源:開源Linux版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。
嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉