1、查詢特權使用者特權使用者(uid 為0)
[root@localhost ~]# awk -f: '$3==0' /etc/passwd
2、查詢可以遠端登入的帳號資訊
[root@localhost ~]# awk '/\$1|\$6/' /etc/shadow
3、除root帳號外,其他帳號是否存在sudo許可權。如非管理需要,普通帳號應刪除sudo許可權
[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "all=(all)"
4、禁用或刪除多餘及可疑的帳號
# 禁用帳號,帳號無法登入,/etc/shadow第二欄為!開頭
usermod -l user
# 刪除user使用者
userdel user
# 將刪除user使用者,並且將/home目錄下的user目錄一併刪除
userdel -r user
進入使用者目錄下
cat .bash_history >> history.txt
使用netstat網路連線命令,分析可疑埠、ip、pid
netstat -antlp|more
檢視下pid所對應的程序檔案路徑,執行
ls -l /proc/$pid/exe
或file /proc/$pid/exe($pid為對應的pid號)
使用ps命令,分析程序
ps aux | grep pid
檢查啟動項檔案
more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/
重點關注以下目錄中是否存在惡意指令碼
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
rpm包安裝的服務
# 檢視服務自啟動狀態,可以看到所有的rpm包安裝的服務
chkconfig --list
# 檢視當前服務
ps aux | grep crond
原始碼包安裝的服務
檢視服務安裝位置 ,一般是在/user/local/
搜尋/etc/rc.d/init.d/檢視是否存在
日誌檔案
說明/var/log/cron
記錄了系統定時任務相關的日誌
/var/log/cups
記錄列印資訊的日誌
/var/log/dmesg
記錄了系統在開機時核心自檢的資訊,也可以使用dmesg命令直接檢視核心自檢資訊
/var/log/mailog
記錄郵件資訊
/var/log/message
記錄系統重要資訊的日誌。這個日誌檔案中會記錄linux系統的絕大多數重要資訊,如果系統出現問題時,首先要檢查的就應該是這個日誌檔案
/var/log/btmp
記錄錯誤登入日誌,這個檔案是二進位制檔案,不能直接vi檢視,而要使用lastb命令檢視
/var/log/lastlog
記錄系統中所有使用者最後一次登入時間的日誌,這個檔案是二進位制檔案,不能直接vi,而要使用lastlog命令檢視
/var/log/wtmp
永久記錄所有使用者的登入、登出資訊,同時記錄系統的啟動、重啟、關機事件。同樣這個檔案也是乙個二進位制檔案,不能直接vi,而需要使用last命令來檢視
/var/log/utmp
記錄當前已經登入的使用者資訊,這個檔案會隨著使用者的登入和登出不斷變化,只記錄當前登入使用者的資訊。同樣這個檔案不能直接vi,而要使用w,who,users等命令來查詢
/var/log/secure
記錄驗證和授權方面的資訊,只要涉及賬號和密碼的程式都會記錄,比如ssh登入,su切換使用者,sudo授權,甚至新增使用者和修改使用者密碼都會記錄在這個日誌檔案中
linux下常用的shell命令如:find
、grep
、egrep
、awk
、sed
1、grep顯示前後幾行資訊:
標準unix/linux下的grep通過下面引數控制上下文:
# 顯示file檔案裡匹配foo字串那行以及上下5行
grep -c 5 foo file
# 顯示foo及前5行
grep -b 5 foo file
# 顯示foo及後5行
grep -a 5 foo file
# 檢視grep版本號的方法是
grep -v
2、grep查詢含有某字串的所有檔案
grep -rn "hello,world!"
* : 表示當前目錄所有檔案,也可以是某個檔名
-r : 是遞迴查詢
-n : 是顯示行號
-r : 查詢所有檔案包含子目錄
-i : 忽略大小寫
3、如何顯示乙個檔案的某幾行:
# 從第1000行開始,顯示2000行。即顯示1000~2999行
cat input_file | tail -n +1000 | head -n 2000
4、在目錄/etc中查詢檔案init
find /etc -name init
5、只是顯示/etc/passwd的賬戶
# awk -f指定域分隔符為':',將記錄按指定的域分隔符劃分域
# 填充域,$0則表示所有域,$1表示第乙個域,$n表示第n個域
cat /etc/passwd |awk -f ':' ''
6、刪除歷史操作記錄,只保留前153行
sed -i '153,$d' .bash_history
定位有多少ip在爆破主機的root帳號:
grep "failed password for root" /var/log/secure | awk '' | sort | uniq -c | sort -nr | more
定位有哪些ip在爆破:
grep "failed password" /var/log/secure|grep -e -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4] [0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破使用者名稱字典是什麼:
grep "failed password" /var/log/secure|perl -e 'while($_=<>)'|uniq -c|sort -nr
登入成功的ip有哪些:
grep "accepted " /var/log/secure | awk '' | sort | uniq -c | sort -nr | more
登入成功的日期、使用者名稱、ip:
grep "accepted " /var/log/secure | awk ''
suid shell是一種可用於以擁有者許可權執行的shell
# 在linux中查詢suid設定的檔案
find . -perm /4000
# 在linux中查詢使用sgid設定的檔案
find . -perm /2000
# 取消s許可權
chmod u-s /tmp/shell
檢視 /root/.ssh/authorized_keys 是否被修改
程序、埠都可以發現異常
# 結束程序即可清除後門
kill -s 9 pid
# 可通過重灌ssh服務恢復
ls -al /usr/sbin/sshd
cat /usr/sbin/sshd
# 獲取可疑程序pi
ps aux | grep sshd
# 跟蹤sshd pid
strace -o aa -ff -p pid
# 檢視記錄密碼開啟檔案
grep open sshd* | grep -v -e no -e null -e denied| grep wr
利用方法:
排查:
# 通過strace跟蹤ssh
ps axu | grep sshd
strace -o aa -ff -p pid
grep open aa* | grep -v -e no -e null -e denied| grep wr
# 檢查pam_unix.so的修改時間
stat /lib/security/pam_unix.so #32位
stat /lib64/security/pam_unix.so #64位
Linux 應急響應基礎
0x01 技能樹 0x02 linux 常用命令 find name jsp find type f mtime 3 find type f ctime 3 grep nv root etc passwd grep nr root grep nr v 404 grep e jsp jspx more...
Linux應急響應基礎
伺服器被攻擊,或多或少都會有相對應的症狀,例如 挖礦病毒,cpu利用率公升高,記憶體佔用率增加,出現異常程序,伺服器響應速度變慢等等。根據病毒傳播傳播途徑,對系統進行加固,防止再次感染。通過.bash history檢視帳號執行過的系統命令 root的歷史命令 histroy 開啟 home各帳號目...
安全應急響應流程
根據業界的經驗,可以通過分階段的方式來更清晰地看待整個安全應急響應過程。任何乙個具體的安全應急響應過程都多多少少地涉及到六個階段,即準備 檢測 抑制 恢復和跟蹤階段。準備階段 實現與其他安全環節的互動 檢測階段 初步事件分析 把事件分析與業務恢復程序分離 抑制階段 抑制事件對業務影響 階段 事件分析...