誰動了我的主機?活用history命令

點擊下方“IT牧場”,選擇“設爲星標”


作者:懸鏡安全實驗室

鏈接:https://www.freebuf.com/articles/system/135845.html

Linux系統下可通過history命令查看用戶所有的歷史操作記錄,在安全應急響應中起着非常重要的作用,但在未進行附加配置情況下,history命令只能查看用戶歷史操作記錄,並不能區分用戶以及操作時間,不便於審計分析。

當然,一些不好的操作習慣也可能通過命令歷史泄露敏感信息。

下面我們來介紹如何讓history日誌記錄更細化,更便於我們審計分析。

1、命令歷史記錄中加時間

默認情況下如下圖所示,沒有命令執行時間,不利於審計分析。

通過設置export HISTTIMEFORMAT='%F %T ',讓歷史記錄中帶上命令執行時間。

注意”%T”和後面的”’”之間有空格,不然查看歷史記錄的時候,時間和命令之間沒有分割。

要一勞永逸,這個配置可以寫在/etc/profile中,當然如果要對指定用戶做配置,這個配置可以寫在/home/$USER/.bash_profile中。

本文將以/etc/profile爲例進行演示。

要使配置立即生效請執行source /etc/profile,我們再查看history記錄,可以看到記錄中帶上了命令執行時間。

如果想要實現更細化的記錄,比如登陸過系統的用戶、IP地址、操作命令以及操作時間一一對應,可以通過在/etc/profile裏面加入以下代碼實現

export HISTTIMEFORMAT="\%F \%T`who \-u am i 2>/dev/null| awk '{print $NF}'|sed \-e 's/[()]//g'``whoami` 

注意空格都是必須的。

修改/etc/profile並加載後,history記錄如下,時間、IP、用戶及執行的命令都一一對應。

通過以上配置,我們基本上可以滿足日常的審計工作了,但瞭解系統的朋友應該很容易看出來,這種方法只是設置了環境變量,攻擊者unset掉這個環境變量,或者直接刪除命令歷史,對於安全應急來說,這無疑是一個災難。

針對這樣的問題,我們應該如何應對,下面纔是我們今天的重點,通過修改bash源碼,讓history記錄通過syslog發送到遠程logserver中,大大增加了攻擊者對history記錄完整性破壞的難度。

2、修改bash源碼,支持syslog記錄

首先下載bash源碼,可以從gnu.org下載,這裏不做詳細說明了,系統需要安裝gcc等編譯環境。我們用bash4.4版本做演示。

修改源碼:bashhist.c

修改源碼config-top.h,取消/#define SYSLOG_HISTORY/這行的註釋

編譯安裝,編譯過程不做詳細說明,本文中使用的編譯參數爲:./configure --prefix=/usr/local/bash,安裝成功後對應目錄如下:

此時可以修改/etc/passwd中用戶shell環境,也可以用編譯好的文件直接替換原有的bash二進制文件,但最好對原文件做好備份。

替換時要注意兩點:

1、一定要給可執行權限,默認是有的,不過有時候下載到windows系統後,再上傳就沒有可執行權限了,這裏一定要確定,不然你會後悔的;

2、替換時原bash被佔用,可以修改原用戶的bash環境後再進行替換。

查看效果,我們發現history記錄已經寫到了/var/log/message中。

如果要寫到遠程logserver,需要配置syslog服務,具體配置這裏不做詳細講解,大家自己研究,發送到遠端logserver效果如下圖所示。

通過以上手段,可以有效保證history記錄的完整性,避免攻擊者登錄系統後,通過取消環境變量、刪除history記錄等方式抹掉操作行爲,爲安全審計、應急響應等提供了完整的原始數據。

乾貨分享

最近將個人學習筆記整理成冊,使用PDF分享。關注我,回覆如下代碼,即可獲得百度盤地址,無套路領取!

001:《Java併發與高併發解決方案》學習筆記;002:《深入JVM內核——原理、診斷與優化》學習筆記;003:《Java面試寶典》004:《Docker開源書》005:《Kubernetes開源書》006:《DDD速成(領域驅動設計速成)》007:全部008:加技術羣討論

近期熱文

LinkedBlockingQueue vs ConcurrentLinkedQueue解讀Java 8 中爲併發而生的 ConcurrentHashMapRedis性能監控指標彙總最全的DevOps工具集合,再也不怕選型了!微服務架構下,解決數據庫跨庫查詢的一些思路聊聊大廠面試官必問的 MySQL 鎖機制

關注我

喜歡就點個"在看"唄^_^

本文分享自微信公衆號 - IT牧場(itmuch_com)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章