<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

馬哥Linux運維 ? 2018-02-09 15:23 ? 次閱讀

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

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

操作步驟

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

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

touch file

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

touch *

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

stat file

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

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

ls –l

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

現在就可以設置當前時間戳并查看已經設置的時間戳,也可使用 touch 來定義一個自定義時間戳,可使用 “d” 標志,用 yyyy-mm-dd 格式定義日期,緊隨其后設置時間的小時、分鐘及秒,如下:

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

通過 ls 命令來確認修改信息:

ls -l file

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

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

步驟二:組織 Shell 腳本

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

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

沒有參數——返回錯誤消息;

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

恢復時間戳標記——根據保存列表恢復文件的時間戳。

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

步驟三:開始腳本

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

nano timestamps.sh

然后進行下列命令:

#!/bin/bashif [$# -eq 0];thenecho “Use asave (-s) or restore (-r) parameter.”exit 1fi

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

在 nano 中按下 Ctrl + O 保存這個文件,通過 chmod 命令將它標記為可運行的腳本。

chmod +x timestamps.sh

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

./timestamps.sh

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

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

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

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

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

rm -f timestamps;

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

ls –l

通常會出現下面的顯示結果:

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

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

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

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

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

將所有月份都替換為數字:

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

在一個文件夾中運行我們會看到如下圖所示的結果:

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

然后將輸出結果通過 “>>” 發送到名為 “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

至此,腳本的前兩個操作就完成了,顯示結果如下圖:

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

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

./timestamps.sh –scat timestamps

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

步驟五:恢復文件的時間戳

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

if $1 = "-r" ; thenfi

然后使用下面命令,轉發文本文件的內容,并一行一行運行:

cat timestamps |while read linedodone

然后再分配一些變量讓文件數據的使用更簡單:

MONTH=$(echo $line | cut -f1 -d );DAY=$(echo $line| cut -f2 -d );FILENAME=$(echo $line | cut -f4 -d );YEAR=$(echo $line | cut -f3 -d )

雖然這四個變量在保存的時間戳文件中是一致的,但是如果時間戳是在過去一年中發生的,它只會顯示時間而不是年份。如果需要確定當前年份,我們可以分配為寫腳本的年份,也可以從系統中返回年份,使用 cal 命令可以查看日歷。

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

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

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

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

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

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

由于每個時間都包含冒號,因此可使用下面的 “ifelse” 語句完成操作,整體操作如下圖所示:

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

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

步驟六:使用腳本

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

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

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

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

總結

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11012

    瀏覽量

    206923
  • Shell
    +關注

    關注

    1

    文章

    358

    瀏覽量

    22935

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

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用Shell腳本Linux 服務器尋找攻擊證據

    使用 Shell 腳本Linux 服務器上能夠控制、毀壞或者獲取任何東西,通過一些巧妙的攻擊方法黑客可能會獲取巨大的價值,但大多數攻擊也留下蹤跡。當然,這些蹤跡也可通過
    的頭像 發表于 10-09 14:24 ?792次閱讀

    Linux中執行shell腳本的兩種方式

    一條的執行很是不大方便,這種太多命令的才能完成的,一般都是編寫一個shell腳本來進行操作,而不用一步一步的進行。有些時候在Linux中的很多對應的應用程序目錄下有很多.sh結尾的
    發表于 11-18 16:49 ?1468次閱讀
    <b class='flag-5'>Linux</b>中執行<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>的兩種方式

    Linux Shell腳本入門到實戰詳解

    Linux Shell腳本入門到實戰詳解
    發表于 02-17 15:03 ?488次閱讀

    嵌入式Linux入門(五、Shell腳本編程上:認識Shell腳本

    大家好,是矜辰所致,嵌入式 Linux入 門第五課,本課開始簡單學習一下 Shell 腳本編程。
    的頭像 發表于 07-13 16:10 ?1062次閱讀
    嵌入式<b class='flag-5'>Linux</b>入門(五、<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>編程上:認識<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>)

    Linux shell腳本分享

    今天浩道跟大家分享幾個Linux運維中常用到的shell腳本!
    發表于 07-18 09:53 ?467次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>分享

    linux的命令行操作shell的區別 / 服務器選購!

    hell翻譯成殼的意思,它是包裹在linux內核外層的,一個可通過一系列的linux命令對操作系統發出相關指令的人機界面。 shell可以通過其條件語句和循環語句等,把一系列
    發表于 03-27 14:54

    如何通過Linux系統的Shell用戶訪問操作系統內核服務

    。Bash 由于易用和免費,在日常工作中被廣泛使用。同時,Bash 也是大多數 Linux 系統默認的 Shell。shell 解釋java 需要虛擬機解釋
    發表于 06-14 16:50

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

    使用 Shell 腳本Linux 服務器上能夠控制、毀壞或者獲取任何東西,通過一些巧妙的攻擊方法黑客可能會獲取巨大的價值,但大多數攻擊也留下蹤跡。當然,這些蹤跡也可通過
    的頭像 發表于 02-13 13:21 ?3150次閱讀

    如何創建和執行一個簡單的Linux shell腳本

     如果您愿意要嘗試更長的shell腳本,請將下面的shell腳本(并附加為PDF和ODT文件)復制到文本編輯器中,保存,使其可執行并運行。當您了解更多
    的頭像 發表于 11-06 17:28 ?1.3w次閱讀

    Linuxshell腳本執的4種方式

    Linuxshell腳本的執行通常有4種方式,分別為工作目錄執行,絕對路徑執行,sh執行,shell環境執行。
    發表于 05-23 09:28 ?817次閱讀
    <b class='flag-5'>Linux</b>中<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>執的4種方式

    Linux命令行與shell腳本編寫

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

    100個Shell腳本經典案例解析

    今天浩道跟大家分享100個Linux Shell腳本經典案例,讓你一次擼個夠。
    的頭像 發表于 02-10 13:51 ?1235次閱讀

    通過Shell腳本掩蓋Linux系統上的操作痕跡

    使用 Shell 腳本Linux 服務器上能夠控制、毀壞或者獲取任何東西,通過一些巧妙的攻擊方法黑客可能會獲取巨大的價值,但大多數攻擊也留下蹤跡。
    的頭像 發表于 04-03 10:43 ?402次閱讀

    shell腳本基礎知識

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

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

    使用 Shell 腳本Linux 服務器上能夠控制、毀壞或者獲取任何東西,通過一些巧妙的攻擊方法黑客可能會獲取巨大的價值,但大多數攻擊也留下蹤跡。
    的頭像 發表于 05-23 09:15 ?458次閱讀
    使用<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>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>