最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用Shell腳本掩蓋Linux服務器上的操作痕跡(推薦)

 更新時間:2017年12月04日 08:49:46   作者:JingleCats  
這篇文章主要介紹了使用Shell腳本掩蓋Linux服務器上的操作痕跡,需要的朋友可以參考下

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

 

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

操作步驟

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

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

touch file

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

touch *

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

stat file

 

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

ls –l

 

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

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

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

ls -l file

 

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

步驟二:組織Shell腳本

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

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

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

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

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

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

步驟三:開始腳本

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

nano timestamps.sh

然后進行下列命令:

<br />
#!/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í)行保存功能:

<br />
if [ $1 ="-s" ] ; then
fi

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

rm -f timestamps;

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

ls –l

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

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

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

 

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

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

 

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

./timestamps.sh –s
cat timestamps

 

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

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

if $1 = "-r" ; then
fi

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

cat timestamps |while read line
do
done<br />

然后再分配一些變量讓文件數(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ā)生的,它只會顯示時間而不是年份。如果需要確定當前年份,我們可以分配為寫腳本的年份,也可以從系統(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

 

步驟六:使用腳本

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

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

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

 

總結

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

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

以上所述是小編給大家介紹的如何使用Shell腳本掩蓋Linux服務器上的操作痕跡(推薦),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • Linux Shell 生成隨機數(shù)和隨機字符串的方法示例

    Linux Shell 生成隨機數(shù)和隨機字符串的方法示例

    這篇文章主要介紹了Linux Shell 生成隨機數(shù)和隨機字符串的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Shell eval通過變量獲取環(huán)境變量的方法實現(xiàn)

    Shell eval通過變量獲取環(huán)境變量的方法實現(xiàn)

    這篇文章主要介紹了Shell eval通過變量獲取環(huán)境變量的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • linux下部署kodexplorer的方法

    linux下部署kodexplorer的方法

    下面小編就為大家?guī)硪黄猯inux下部署kodexplorer的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • shell腳本function傳參的具體使用

    shell腳本function傳參的具體使用

    本文主要介紹了shell腳本function傳參的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Shell腳本學習指南之查找與替換介紹

    Shell腳本學習指南之查找與替換介紹

    Shell腳本學習指南之查找與替換介紹,需要的朋友可以參考下
    2013-02-02
  • Shell編程之/bin/bash和/bin/sh的區(qū)別淺析

    Shell編程之/bin/bash和/bin/sh的區(qū)別淺析

    在redhat的系統(tǒng)中,sh是一個到bash的軟鏈接,但是如果運行如下程序會產(chǎn)生不一樣的結果,下面這篇文章主要給大家介紹了關于Shell編程之/bin/bash和/bin/sh的區(qū)別的相關資料,需要的朋友可以參考下
    2022-07-07
  • Linux中cat命令的使用詳解

    Linux中cat命令的使用詳解

    cat?命令的用途不僅僅是顯示文件內(nèi)容,還可以打印文本文件的文件內(nèi)容,下面就為大家詳細介紹一下Linux中cat命令的具體用法,需要的小伙伴可以了解一下
    2023-08-08
  • linux鏈接編譯詳解

    linux鏈接編譯詳解

    通過自己編寫Makefile文件來實現(xiàn)多目標文件的鏈接,其實就是將gcc 編譯命令寫入到Makefile文件,通過執(zhí)行make 指令來實現(xiàn)編譯。這樣我不需要每次都敲入gcc -指令。直接輸入make就OK了。
    2014-02-02
  • 一鍵備份gitolite服務器的Shell腳本

    一鍵備份gitolite服務器的Shell腳本

    這篇文章主要介紹了一鍵備份gitolite服務器的Shell腳本,需要的朋友可以參考下
    2014-09-09
  • Linux系統(tǒng)中同時執(zhí)行多個腳本運行方法小結

    Linux系統(tǒng)中同時執(zhí)行多個腳本運行方法小結

    文章詳細解釋了在命令行中使用&&,||,;和&符號來控制Python腳本的執(zhí)行順序和錯誤處理策略,&&確保前一個腳本成功后執(zhí)行下一個,||則在前一個腳本失敗后執(zhí)行后續(xù)腳本,;無論前一個腳本是否出錯都會執(zhí)行下一個,而&則用于并行執(zhí)行多個腳本,需要的朋友可以參考下
    2024-12-12

最新評論

天全县| 大姚县| 高台县| 静乐县| 通道| 湘潭市| 海伦市| 万盛区| 巴彦县| 永平县| 江西省| 镇康县| 云和县| 许昌市| 潼关县| 泾源县| 北票市| 克东县| 松原市| 宁都县| 萝北县| 阜平县| 包头市| 庆阳市| 得荣县| 闽清县| 济宁市| 衡南县| 容城县| 麟游县| 舟山市| 苗栗县| 昭平县| 安达市| 永胜县| 杨浦区| 阳新县| 万山特区| 汝州市| 正宁县| 斗六市|