如何使用Linux伺服器的巡檢使用者和基礎命令,捕捉使用者登入痕跡?
本文使用一個 最普通的巡檢使用者,檢視RedHat 7.4系統日誌,檢查 使用者登入痕跡,說明如何判斷是否存在 違規訪問記錄,如跳板訪問等。
這裡需要關心的日誌列表如下
-
/var/log/lastlog 二進位制檔案,記錄了最近的連線記錄
-
/var/log/wtmp 二進位制檔案,記錄每個使用者的登入和登出資訊
-
/var/log/secure 文字檔案,記錄使用者的登入行為資訊
-
/var/log/btmp 二進位制檔案,記錄失敗的登入嘗試資訊
-
/run/utmp 二進位制檔案,記錄當前登入使用者資訊
01
—
使用cat命令檢視
如果只有cat等基礎命令,二進位制檔案輸出的內容會以亂碼形式出現
不過雖然亂碼很多,但是也可以看到關鍵資訊, 圖中可以看出歷史訪問的IP資訊,以及所用的訪問使用者。 如果發現可疑的IP地址,那就可以深入的行為分析了。
02
—
使用strings命令檢視
用strings命令可以檢視二進位制檔案資訊,輸出的內容比較接近文字內容。分別檢視檔案內容如下:
執行命令: strings lastlog
-
關注的要點是檢查是否存在可疑IP地址
[root@test log]# strings lastlog ^pts/2 182.207.162.59 [pts/1 ^pts/0 182.207.162.59 ^pts/0 ^pts/7
執行命令: strings wtmp
-
因為輸出內容過多,擷取部分展示,關注的要點是使用者和IP地址是否可疑
ts/0cams 182.207.177.97 pts/0 pts/0 ts/0root 182.207.177.122 pts/0 pts/0 ts/0cams 182.119.114.218 pts/0 pts/0 ts/0cams 182.207.162.59
執行命令: strings /run/utmp
-
關注當前是否還有其他IP地址連上伺服器
[cams@test log]$ strings /run/utmp reboot 3.10.0-693.el7.x86_64 runlevel 3.10.0-693.el7.x86_64 pts/0 ts/0cams 182.207.162.59 pts/1 ts/1 pts/2 ts/2root 182.207.162.59
03
—
其他情況
但是也可能存在部分系統日誌無許可權訪問的情況
[cams@test log]$ strings btmp strings: btmp: 許可權不夠 [cams@test log]$ strings secure strings: secure: 許可權不夠
對於 執行cat命令 提示許可權不夠的檔案,如果有sudo cat許可權就能看,如果沒有sudo cat許可權就不能看。一般情況下,生產環境巡檢使用者擁有sudo cat許可權。
對於btmp檔案,可以結合secure檔案判斷是否存在 嘗試登入行為,重點還是關注日誌中的IP地址是否可疑,訪問行為是否合規等!
擷取和展示/var/log/secure文字檔案部分內容,可以清晰看到帶時間戳的日誌資訊,失敗的登入資訊是Failed開頭,成功的登入資訊是Accepted開頭,IP地址和使用者等資訊也清晰可見。
Jun 18 19:13:09 test sshd[24648]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=182.207.162.59 user=root Jun 18 19:13:09 test sshd[24648]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root" Jun 18 19:13:11 test sshd[24648]: Failed password for root from 182.207.162.59 port 28680 ssh2 Jun 18 19:13:16 test sshd[24648]: error: Received disconnect from 182.207.162.59 port 28680:0: [preauth] Jun 18 19:13:16 test sshd[24648]: Disconnected from 182.207.162.59 port 28680 [preauth] Jun 18 19:13:59 test sshd[24683]: Accepted password for root from 182.207.162.59 port 28814 ssh2 Jun 18 19:13:59 test sshd[24683]: pam_unix(sshd:session): session opened for user root by (uid=0)
可能有的同學會問,為什麼不用grep、awk、sed等命令匹配日誌檔案中的IP地址,或者執行shell指令碼,然後輸出結果呢?
答:因為一般生產環境有命令白名單,限制了很多命令的使用,最基礎的命令才能適用於絕大多數生產環境。另外,巡檢使用者只有讀許可權,建立和執行shell指令碼等也不會被允許。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31394774/viewspace-2699571/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux基礎命令---顯示登入使用者lognameLinux
- Linux基礎命令---顯示登入使用者wLinux
- Linux基礎命令—顯示登入使用者wLinux
- Linux入門_基礎命令_使用者和組相關命令Linux
- 『學了就忘』Linux基礎命令 — 36、檢視系統痕跡相關命令Linux
- Linux基礎命令---新增使用者useraddLinux
- Linux基礎命令—新增使用者useraddLinux
- Linux基礎命令---刪除使用者userdelLinux
- Linux基礎命令---切換使用者suLinux
- Linux 系統中如何檢視當前所有登入的使用者Linux
- 在Linux中如何禁止使用者登入Linux
- Linux透過什麼命令可以檢視有多少個使用者登入?Linux
- Linux 踢出登入使用者Linux
- Linux基礎之使用者和組Linux
- Linux基礎之檢視、新增、修改、刪除使用者命令介紹Linux
- Linux系統上的常用基礎命令,深入使用者與使用者組的相關命令!Linux
- 如何使用 Shell 指令碼掩蓋 Linux 伺服器上的操作痕跡?指令碼Linux伺服器
- 使用者登入管理的幾個命令
- 如何在 Linux 中建立非登入使用者?Linux
- Linux基礎命令---查詢使用者資訊fingerLinux
- Linux基礎命令---修改使用者密碼passwdLinux密碼
- Linux基礎命令---修改使用者資訊usermodLinux
- 如何檢視網站伺服器被攻擊的痕跡網站伺服器
- Windows檢視登入使用者會話Windows會話
- Linux命令分享- 新建使用者和組命令Linux
- Linux 下檢視系統當前登入使用者資訊Linux
- Linux系統中的使用者的基礎認識及操作命令Linux
- 檢視linux系統當前登陸的使用者Linux
- Linux基礎服務巡檢指令碼模板Linux指令碼
- 使用Forms Authentication實現使用者註冊、登入 (一)基礎知識ORM
- Linux中如何禁止普通使用者使用su命令Linux
- linux使用者和組管理常見命令Linux
- 如何在 Linux 命令列中切換使用者Linux命令列
- 【Linux】使用者和使用者組Linux
- 基於websocket的實時通告功能,推送線上使用者,新登入使用者Web
- Linux 使用者和使用者組管理Linux
- Linux使用者和組管理常用命令Linux
- TortoiseSVN如何更換或重置登入使用者