1、賬號安全
基本使用:
1 )用 戶 信 息 文 件 /etc/passwd root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用戶名:密碼:用戶ID:組ID:用戶說明:家目錄:登陸之后shell 注:無密碼只允許本機登陸,遠程不允許登陸
2)影子文件/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數(shù):密碼過期之
后的寬限天數(shù):賬號失效時間:保留
who//查看當前登錄用戶(tty本地登陸pts遠程登錄)
w //查看系統(tǒng)信息,想知道某一時刻用戶的行為
uptime //查看登陸多久、多少用戶,負載
入侵排查:
1)查詢特權(quán)用戶特權(quán)用戶(uid 為0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2)查詢可以遠程登錄的帳號信息
[root@localhost ~]# awk '/$1|$6/{print $1}' /etc/shadow
3)除root帳號外,其他帳號是否存在sudo權(quán)限。如非管理需要,普通帳號應刪除sudo權(quán)限[root@localhost ~]# more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)" 4、禁用或刪除多余及可疑的帳號
usermod -L user禁用帳號,帳號無法登錄,/etc/shadow第二欄為!開頭
userdel user刪除user用戶
userdel -r user將刪除user用戶,并且將/home目錄下的user目錄一并刪除
2、文件排查
1)敏感目錄的文件分析[類/tmp 目錄,命令目錄/usr/bin /usr/sbin 等]
ls用來顯示目標列表
2)查看 tmp 目錄下的文件:ls –alt /tmp/
3)查看開機啟動項內(nèi)容:ls -alt /etc/init.d/,/etc/init.d 是 /etc/rc.d/init.d的軟鏈接
基本使用:
系統(tǒng)運行級別示意圖:
入侵排查:
啟動項文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d
4)按時間排序查看指定目錄下文件:ls -alt | head -n 10
針對可疑文件可以使用 stat 進行創(chuàng)建修改時間、訪問時間的詳細查看,若修改時間距離事件日期接近,有線性關(guān)聯(lián),說明可能被篡改或者其他。
(1) Access Time:簡寫為 atime,表示文件的訪問時間。當文件內(nèi)容被訪問時,更新這個時間。
(2) Modify Time:簡寫為 mtime,表示文件內(nèi)容的修改時間,當文件的數(shù)據(jù)內(nèi)容被修改時,更新這個時間。
(3) Change Time:簡寫為 ctime,表示文件的狀態(tài)時間,當文件的狀態(tài)被修改時,更新這個時間,例如文件的鏈接數(shù),大小,權(quán)限,Blocks 數(shù)。
5)查看歷史命令記錄文件~/.bash_history
查找~/.bash_history 命令執(zhí)行記錄,主要分析是否有賬戶執(zhí)行過惡意操作系統(tǒng);命令在 linux 系統(tǒng)里,只要執(zhí)行過命令的用戶,那么在這個用戶的 HOME 目錄下,都會有一個.bash_history 的文件記錄著這個用戶都執(zhí)行過什么命令;
那么當安全事件發(fā)生的時候,我們就可以通過查看每個用戶所執(zhí)行過的命令,來分析一下這個用戶是否有執(zhí)行惡意命令,如果發(fā)現(xiàn)哪個用戶執(zhí)行過惡意命令, 那么我們就可以鎖定這個線索,去做下一步的排查。
基本使用:
通過.bash_history查看帳號執(zhí)行過的系統(tǒng)命令
①root的歷史命令
histroy
②打開/home各帳號目錄下的.bash_history,查看普通帳號的歷史命令
為歷史的命令增加登錄的IP地址、執(zhí)行命令時間等信息:
a)保存1萬條命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
b)在/etc/profile的文件尾部添加如下行數(shù)配置信息:
######jiagu history xianshi#########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` " shopt -s histAppend
export PROMPT_COMMAND="history -a"
######### jiagu history xianshi ##########
c)source /etc/profile讓配置生效
生成效果: 12018-07-10 19:45:39 192.168.204.1 root source /etc/profile
③歷史操作命令的清除:history -c
注:此命令并不會清除保存在文件中的記錄,因此需要手動刪除.bash_profile文件中的記錄。
入侵排查:
進入用戶目錄下
cat .bash_history >> history.txt
6)查看操作系統(tǒng)用戶信息文件/etc/passwd
查找/etc/passwd 文件, /etc/passwd 這個文件是保存著這個 linux 系統(tǒng)所有用戶的信息,通過查看這個文件,我們就可以嘗試查找有沒有攻擊者所創(chuàng)建的用戶,或者存在異常的用戶。我們主要關(guān)注的是第 3、4 列的用戶標識號和組標識號,和倒數(shù)一二列的用戶主目錄和命令解析程序。一般來說最后一列命令解析程序如果是設(shè)置為 nologin 的話,那么表示這個用戶是不能登錄的,所以可以結(jié)合我們上面所說的 bash_history 文件的排查方法。首先在/etc/passwd 中查找命令解釋程序不是 nologin 的用戶, 然后再到這些用戶的用戶主目錄里, 找到bash_history,去查看這個用戶有沒執(zhí)行過惡意命令。
/etc/passwd 中一行記錄對應著一個用戶,每行記錄又被冒號(:)分隔為 7 個字段, 其格式和具體含義如下:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄 Shell
7)查看新增文件
find:在指定目錄下查找文件
例:find ./ -mtime 0 -name "*.php"(查找 24 小時內(nèi)被修改的 php 文件)
find / -ctime 2(查找 72 小時內(nèi)新增的文件)
8)特殊權(quán)限的文件查看
查找 777 的權(quán)限的文件:find / *.jsp -perm 4777
9)隱藏的文件(以 "."開頭的具有隱藏屬性的文件)
注:在文件分析過程中,手工排查頻率較高的命令是 find grep ls 核心目的是為了關(guān)聯(lián)推理出可疑文件;
3、端口、進程排查
1)使用netstat 網(wǎng)絡(luò)連接命令,分析可疑端口、IP、PID
netstat -antlp|more
查看下pid所對應的進程文件路徑:運行l(wèi)s -l /proc/$PID/exe或file /proc/$PID/exe($PID 為對應的pid 號)
netstat 用于顯示與 IP、TCP、UDP 和 ICMP 協(xié)議相關(guān)的統(tǒng)計數(shù)據(jù),一般用于檢驗本機各端口的網(wǎng)絡(luò)連接情況。
選項參數(shù):
-a 顯示所有連線中的 Socket。
-n 直接使用 IP 地址,而不通過域名服務(wù)器。
-t 顯示 TCP 傳輸協(xié)議的連線狀況。
-u 顯示 UDP 傳輸協(xié)議的連線狀況。
-v 顯示指令執(zhí)行過程。
-p 顯示正在使用 Socket 的程序識別碼和程序名稱。
-s 顯示網(wǎng)絡(luò)工作信息統(tǒng)計表。
2)根據(jù) netstat 定位出的 pid,使用 ps 命令,分析進程
-a 代表 all。同時加上 x 參數(shù)會顯示沒有控制終端的進程
-aux 顯示所有包含其他使用者的行程(ps -aux --sort -pcpu | less 根據(jù) cpt 使用率進行排序)
-C 顯示某的進程的信息
-axjf 以樹形結(jié)構(gòu)顯示進程
ps aux | grep pid | grep –v grep
將 netstat 與 ps 結(jié)合:
4、日志排查
1)查看系統(tǒng)用戶登錄信息
a)使用 lastlog 命令,系統(tǒng)中所有用戶最近一次登錄信息。
b)使用 lastb 命令,用于顯示用戶錯誤的登錄列表;
c)使用 last 命令,用于顯示用戶最近登錄信息(數(shù)據(jù)源為/var/log/wtmp,var/log/btmp);
utmp 文件中保存的是當前正在本系統(tǒng)中的用戶的信息。
wtmp 文件中保存的是登錄過本系統(tǒng)的用戶的信息。
/var/log/wtmp 文 件 結(jié) 構(gòu) 和 /var/run/utmp 文 件 結(jié) 構(gòu) 一 樣 , 都 是 引 用
/usr/include/bits/utmp.h 中 的 struct utmp;






