0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

馬哥Linux運(yùn)維 ? 2018-02-09 15:23 ? 次閱讀

使用 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

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

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

ls –l

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

現(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 -l file

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

這種方法適用于修改個(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ù)用戶(hù)的輸入或者參數(shù)的不同而觸發(fā),腳本會(huì)根據(jù)這些參數(shù)執(zhí)行相應(yīng)的功能,同時(shí)我們需要有一種方法來(lái)處理錯(cuò)誤。根據(jù)用戶(hù)的輸入將會(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/bashif [$# -eq 0];thenecho “Use asave (-s) or restore (-r) parameter.”exit 1fi

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

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

chmod +x timestamps.sh

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

./timestamps.sh

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

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

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

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

當(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 -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;'

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

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

然后將輸出結(jié)果通過(guò) “>>” 發(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

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

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

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

./timestamps.sh –scat timestamps

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

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

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

if $1 = "-r" ; thenfi

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

cat timestamps |while read linedodone

然后再分配一些變量讓文件數(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 命令可以查看日歷。

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

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

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

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

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

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

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

if [ $YEAR == *:* ]; thentouch -d $CURRENTYEAR-$MONTH-$DAY $YEAR:00 $FILENAME;elsetouch -d ""$YEAR-$MONTH-$DAY"" $FILENAME;fi

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

步驟六:使用腳本

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

./timestamps.sh –s 保存文件時(shí)間戳touch -d “2050-10-12 10:00:00″ * 修改目錄下的所有文件時(shí)間戳ls –a 確認(rèn)修改的文件./timestamps.sh –r 恢復(fù)文件原始時(shí)間戳

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

使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡的步驟解析

總結(jié)

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207892
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    359

    瀏覽量

    23191

原文標(biāo)題:神不知鬼不曉,使用 Shell 腳本掩蓋 Linux 服務(wù)器上的操作痕跡

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用Shell腳本Linux 服務(wù)器尋找攻擊證據(jù)

    使用 Shell 腳本Linux 服務(wù)器能夠控制、毀壞或者獲取任何東西,通過(guò)一些巧妙的攻擊方法黑客可能會(huì)獲取巨大的價(jià)值,但大多數(shù)攻擊也
    的頭像 發(fā)表于 10-09 14:24 ?889次閱讀

    Linux中執(zhí)行shell腳本的兩種方式

      Linux中要操作任何步驟以及執(zhí)行任何動(dòng)作都是通過(guò)一些命令來(lái)完成的,有些時(shí)候只需要執(zhí)行一行命令,基本都是通過(guò)簡(jiǎn)單的命令操作來(lái)完成的,但
    發(fā)表于 11-18 16:49 ?1732次閱讀
    <b class='flag-5'>Linux</b>中執(zhí)行<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>的兩種方式

    Linux Shell腳本入門(mén)到實(shí)戰(zhàn)詳解

    Linux Shell腳本入門(mén)到實(shí)戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?572次閱讀

    嵌入式Linux入門(mén)(五、Shell腳本編程:認(rèn)識(shí)Shell腳本

    大家好,是矜辰所致,嵌入式 Linux入 門(mén)第五課,本課開(kāi)始簡(jiǎn)單學(xué)習(xí)一下 Shell 腳本編程。
    的頭像 發(fā)表于 07-13 16:10 ?1316次閱讀
    嵌入式<b class='flag-5'>Linux</b>入門(mén)(五、<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>編程<b class='flag-5'>上</b>:認(rèn)識(shí)<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>)

    Linux shell腳本分享

    今天浩道跟大家分享幾個(gè)Linux運(yùn)維中常用到的shell腳本
    發(fā)表于 07-18 09:53 ?521次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>分享

    linux的命令行操作shell的區(qū)別 / 服務(wù)器選購(gòu)!

    hell翻譯成殼的意思,它是包裹在linux內(nèi)核外層的,一個(gè)可通過(guò)一系列的linux命令對(duì)操作系統(tǒng)發(fā)出相關(guān)指令的人機(jī)界面。 shell可以通過(guò)其條件語(yǔ)句和循環(huán)語(yǔ)句等,把一系列
    發(fā)表于 03-27 14:54

    如何通過(guò)Linux系統(tǒng)的Shell用戶(hù)訪問(wèn)操作系統(tǒng)內(nèi)核服務(wù)

    。Bash 由于易用和免費(fèi),在日常工作中被廣泛使用。同時(shí),Bash 也是大多數(shù) Linux 系統(tǒng)默認(rèn)的 Shellshell 解釋java 需要虛擬機(jī)解釋
    發(fā)表于 06-14 16:50

    如何利用Shell腳本掩藏Linux服務(wù)器使用痕跡

    使用 Shell 腳本Linux 服務(wù)器能夠控制、毀壞或者獲取任何東西,通過(guò)一些巧妙的攻擊方法黑客可能會(huì)獲取巨大的價(jià)值,但大多數(shù)攻擊也
    的頭像 發(fā)表于 02-13 13:21 ?3231次閱讀

    如何創(chuàng)建和執(zhí)行一個(gè)簡(jiǎn)單的Linux shell腳本

     如果您愿意要嘗試更長(zhǎng)的shell腳本,請(qǐng)將下面的shell腳本(并附加為PDF和ODT文件)復(fù)制到文本編輯中,保存,使其可執(zhí)行并運(yùn)行。當(dāng)
    的頭像 發(fā)表于 11-06 17:28 ?1.3w次閱讀

    Linux系統(tǒng)命令及shell腳本實(shí)踐指南

    Linux系統(tǒng)命令及shell腳本實(shí)踐指南資料下載。
    發(fā)表于 06-01 14:47 ?28次下載

    Linux命令行與shell腳本編寫(xiě)

    Linux命令行與shell腳本編寫(xiě)
    發(fā)表于 01-11 16:50 ?4次下載

    通過(guò)Shell腳本掩蓋Linux系統(tǒng)操作痕跡

    使用 Shell 腳本Linux 服務(wù)器能夠控制、毀壞或者獲取任何東西,通過(guò)一些巧妙的攻擊方法黑客可能會(huì)獲取巨大的價(jià)值,但大多數(shù)攻擊也
    的頭像 發(fā)表于 04-03 10:43 ?465次閱讀

    shell腳本基礎(chǔ)知識(shí)

    shell腳本是一個(gè)文件,里面存放的是特定格式的指令,系統(tǒng)可以使用腳本解析器翻譯或解析指令并執(zhí)行(無(wú)需編譯),
    的頭像 發(fā)表于 04-17 15:00 ?963次閱讀

    使用Shell腳本掩蓋Linux操作痕跡

    使用 Shell 腳本Linux 服務(wù)器能夠控制、毀壞或者獲取任何東西,通過(guò)一些巧妙的攻擊方法黑客可能會(huì)獲取巨大的價(jià)值,但大多數(shù)攻擊也
    的頭像 發(fā)表于 05-23 09:15 ?544次閱讀
    使用<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b><b class='flag-5'>掩蓋</b><b class='flag-5'>Linux</b><b class='flag-5'>上</b>的<b class='flag-5'>操作</b><b class='flag-5'>痕跡</b>

    Linux Shell腳本經(jīng)典案例分享

    ? 作為一名 Linux 運(yùn)維工程師,會(huì)寫(xiě)好的腳本不僅能提高工作效率,還能有更多的時(shí)間做自己的事。最近在網(wǎng)上沖浪的時(shí)候,發(fā)現(xiàn)大家對(duì)Shell腳本都有“心結(jié)”,要么覺(jué)得自己寫(xiě)出來(lái)不好
    發(fā)表于 06-16 14:03 ?588次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經(jīng)典案例分享