一、前言
? ? 因近期護網(wǎng)要求,為確保本次攻防演練可靠,特對此梳理相關安全巡檢及使用命令,供相關需求同學參考!
二、詞匯解釋
2.1、pv和uv的區(qū)別
PV(Page View訪問量/也賣弄瀏覽數(shù)):指在一定統(tǒng)計周期內(nèi),用戶每次刷新網(wǎng)頁一次即計算一次。PV高不一定代表來訪者多:PV與來訪者的數(shù)量成正比,但是PV并不直接決定頁面的真實來訪者數(shù)量。比如一個網(wǎng)站就即使一個人進來,但通過不斷的刷新頁面,也可以制造出非常高的PV。
UV(Unique Visitor獨立訪客數(shù)):指訪問您網(wǎng)站的一個客戶端(非出口ip)即為一個訪客。UV是指不同的、通過互聯(lián)網(wǎng)訪問、瀏覽一個網(wǎng)頁的自然人。00:00-24:00內(nèi)相同的客戶端只被計算一次。在同一天內(nèi),UV只記錄第一次進入網(wǎng)站的訪問者,在同一天內(nèi)再次訪問該網(wǎng)站則不計數(shù);UV的計算是和瀏覽器的Cookie密切相關的。如果cookie沒變,即使ip變了,但客戶端沒變,UV還是之前的記錄,不會重復統(tǒng)計;
2.2、tcp狀態(tài)解釋
CLOSED 無連接是活動的或正在進行
LISTEN 服務器在等待進入呼叫
SYN_RECV 一個連接請求已經(jīng)到達,等待確認
SYN_SENT 應用已經(jīng)開始,打開一個連接
ESTABLISHED 正常數(shù)據(jù)傳輸狀態(tài)/當前并發(fā)連接數(shù)
FIN_WAIT1 應用說它已經(jīng)完成
FIN_WAIT2 另一邊已同意釋放
ITMED_WAIT 等待所有分組死掉
CLOSING 兩邊同時嘗試關閉
TIME_WAIT 另一邊已初始化一個釋放
LAST_ACK 等待所有分組死掉
三、日志及網(wǎng)絡連接巡檢
1)查看TCP連接狀態(tài)
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n | awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
命令示例說明:
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
這個命令是用于顯示當前系統(tǒng)的網(wǎng)絡連接狀態(tài)和統(tǒng)計信息。目的就是顯示當前系統(tǒng)中各個TCP連接狀態(tài)的統(tǒng)計信息。例如,ESTABLISHED表示已建立連接,TIME_WAIT表示等待關閉連接等。輸出結(jié)果將以連接狀態(tài)和對應的出現(xiàn)次數(shù)的形式呈現(xiàn)。下面來逐步解釋這個命令的含義:
netstat -n:這是netstat命令的一個選項,用于顯示網(wǎng)絡連接信息。"-n"選項指定不要解析IP地址和端口號為主機名和服務名,而是直接顯示IP地址和端口號。
|:這個符號是管道操作符,用于將一個命令的輸出作為另一個命令的輸入。awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
:這部分是利用awk工具對netstat命令的輸出進行處理和統(tǒng)計。'/^tcp/ {++arr[$NF]}'
:這個部分使用正則表達式匹配以"tcp"開頭的行,并使用數(shù)組arr記錄每個狀態(tài)出現(xiàn)的次數(shù)。$NF表示當前行的最后一個字段,即表示連接狀態(tài)。NF 每行字段總數(shù)(Number of Font)。END {for(k in arr) print k,"\t",arr[k]}
:在處理完所有行后,使用for循環(huán)遍歷數(shù)組arr中的鍵(連接狀態(tài))并打印出鍵和對應的值(狀態(tài)出現(xiàn)次數(shù))。
2)查找請求數(shù)請20個IP(多用于查找攻來源):
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20
#其他
//獲得訪問前10位的ip地址
cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -n 10
cat access.log|awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url],url}'
//查看訪問次數(shù)最多的文件或頁面,取前20
cat access.log|awk '{print $11}'|sort|uniq -c|sort -nr|head -n 20
//列出傳輸最大的幾個rar文件
cat access.log |awk '($7~/\.rar/){print $10 " " $1 " " $4 " " $7}'|sort -nr|head -n 20
//列出輸出大于200000byte(約200kb)的rar文件以及對應文件發(fā)生次數(shù)
cat access.log |awk '($10 > 200000 && $7~/\.rar/){print $7}'|sort -n|uniq -c|sort -nr|head -n 100
//如果日志最后一列記錄的是頁面文件傳輸時間,則有列出到客戶端最耗時的頁面
cat access.log |awk '($7~/\.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -n 100
//.列出最最耗時的頁面(超過60秒的)的以及對應頁面發(fā)生次數(shù)
cat access.log |awk '($NF > 60 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -n 100
//列出傳輸時間超過 30 秒的文件
cat access.log |awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -n 20
#統(tǒng)計網(wǎng)站流量(GB/s)
cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}'
#統(tǒng)計404的連接數(shù)
awk '($9 ~/404/)' access.log | awk '{print $9,$7}' | sort
#統(tǒng)計http status
cat access.log |awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}'
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn
#查看是哪些爬蟲在抓取內(nèi)容
tcpdump -i eth0 -l -s 0 -w - dst port 80 | strings | grep -i user-agent | grep -i -E 'bot|crawler|slurp|spider'
#按域統(tǒng)計流量
zcat access.log.tar.gz| awk '{print $10,$7}' |awk 'BEGIN{FS="[ /]"}{trfc[$4]+=$1}END{for(domain in trfc){printf "%s\t%d\n",domain,trfc[domain]}}'
cat access.log| awk '{print $10,$7}' |awk 'BEGIN{FS="[ /]"}{trfc[$4]+=$1}END{for(domain in trfc){printf "%s\t%d\n",domain,trfc[domain]}}'
#
3)用tcpdump嗅探80端口的訪問最高的IP
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
4)查找較多time_wait連接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
5)找查較多的SYN連接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
6)根據(jù)端口查找進程ID
netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1
netstat -b //顯示在創(chuàng)建每個連接或偵聽端口時涉及到的可執(zhí)行文件
netstat -o //顯示擁有的與每個連接關聯(lián)的進程ID
7)數(shù)據(jù)庫:查看數(shù)據(jù)庫執(zhí)行的sql
/usr/sbin/tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | egrep -i 'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL'
8)進程跟蹤
系統(tǒng)Debug分析:strace -p pid
跟蹤指定進程的PID:gdb -p pid
9)日志分析
//查看安全日志/var/log/audit中成功登陸服務器的IP和用戶,并統(tǒng)計次數(shù)
cat /var/log/audit/audit.log |grep failed -v|awk '{print $10,$13}' |grep '/' -v |grep old -v |grep acct |awk -F "=" '{print $2,$3}' |awk -F "(" '{print $1,$2}'|awk -F "," '{print $1}'|uniq -c |grep ? -v|sort -d
//查看最近20條登陸服務器用戶的持續(xù)時間、IP、用戶
last |awk '{print $1,$3,$4,$5,$6,$7.$8.$9,$10}'|head -n20
#/var/log/secure 日志分析.查看哪些IP掃描過本機
grep "Failed password" /var/log/secure|grep invalid|awk '{print $13}'| sort |uniq
//查看成功登陸本機的記錄
cat /var/log/secure |awk '{print $5,$9,$11,$12,$13}'|grep su -v|grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'|awk -F ":" '{print $1,$2}'|uniq -c
cat /var/log/secure |awk '{print $1,$2,$3,$5,$9,$11,$12,$13}'|grep su -v|grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'|less
#定位有多少IP在爆破主機的root帳號
grep "Failed password for root" /var/log/secure|awk'{print $11}'|sort|uniq -c|sort- nr |more
#查看定位有哪些IP在爆破
grep -E "(Failed password)|(incorrect 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($_=<> ){/for (.*?) from /;print "$1\n";}'|uniq -c|sort -nr
#查看登錄成功的IP
grep "Accepted password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
#查看登錄成功的日期、用戶名、IP
grep "Accepted password" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
10)檢查系統(tǒng)
dmesg 檢查硬盤是否運行在DMA模式
dmesg |grep DMA dmesg 檢查網(wǎng)卡是否運行正常
dmesg |grep eth0 dmesg探測系統(tǒng)內(nèi)核模塊的加載情況
dmesg |grep acpi
systemctl list-units --type=service:列出當前系統(tǒng)上所有已啟動的服務
chkrootkit:檢查系統(tǒng)是否被rootkit攻擊。
rkhunter:檢查系統(tǒng)的安全性和完整性。rkhunter(Rootkit Hunter)是一款用于檢測和報告系統(tǒng)上潛在的Rootkit、后門和可疑文件的工具。安裝執(zhí)行:sudo yum install rkhunter
udo rkhunter --update
//運行系統(tǒng)檢查:
sudo rkhunter --check
#查看檢查結(jié)果:檢查結(jié)果會被保存在一個日志文件中,通常是/var/log/rkhunter.log。
使用以下命令查看日志文件內(nèi)容:sudo cat /var/log/rkhunter.log
sudo rkhunter --propupd:更新rkhunter的文件屬性數(shù)據(jù)庫,以減少誤報。
sudo rkhunter --list propfiles:列出rkhunter監(jiān)控的文件和目錄。
#查詢特權用戶特權用戶(uid 為0)
awk -F: '$3==0 {print $1}' /etc/passwd
#查詢可以遠程登錄的帳號信息
awk '/\$1|\$6/{print $1}' /etc/shadow
#查看sudo權限
more /etc/sudoers|grep -v "^#\|^$" |grep "ALL=(ALL)"
usermod -L user 禁用帳號,帳號無法登錄,/etc/shadow第二欄為!開頭
userdel user 刪除user用戶
userdel -r user 將刪除user用戶,并且將/home目錄下的user目錄一并刪除
#修改histroy記錄
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile //保存1萬條命令
#為歷史的命令增加登錄的IP地址、執(zhí)行命令時間等信息
vim /etc/profile
######history #########
USER_IP=`who -uam 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"
#########history##########
#僅讓歷史記錄中帶上命令執(zhí)行時間
vi /home/$USER/.bash_profile //新增如下
export HISTTIMEFORMAT='%F %T ' //注意”%T”后面的空格,用來將時間和命令之間分割
或
export HISTTIMEFORMAT="%F %Twho -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'whoami "
#修改bash源碼,讓history記錄通過syslog發(fā)送到遠程logserver中,下載bash源碼
env | grep SHELL //查看系統(tǒng)當前使用的shell
bash --version
//從https://mirrors.ustc.edu.cn/gnu/bash/或https://ftp.gnu.org/gnu/bash/下載對應版本bash源碼包,重新編譯
wget https://ftp.gnu.org/gnu/bash/bash-4.2.53.tar.gz
tar -xvf bash-3.2.tar.gz -C /opt/sources/
cd /opt/sources/bash-3.2
vim bashhist.c //修改如下
syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "PID=%d UID=%d User=%s Cmd=%s", getpid(), current_user.uid, current_user.user_name, line);
syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "PID=%d UID=%d User=%s Cmd=%s", getpid(), current_user.uid, current_user.user_name, trunc);
//修改源碼config-top.h,取消/\#define SYSLOG_HISTORY/這行的注釋
define SYSLOG_HISTORY #syslog的FACILITY為 LOCAL6,日志級別為NOTICE
./configure --prefix=/opt/bash
#備份源bash
cp -pr /usr/bin/bash /usr/bin/bash_r_`date`
chmod 755 /opt/bash/bin/bash
cp -pr /opt/bash/bin/bash /usr/bin
#驗證
tail -f /var/log/message #這時,發(fā)現(xiàn)history記錄已經(jīng)寫到了/var/log/message中
#轉(zhuǎn)發(fā)到log服務器
vim /etc/rsyslog.conf //修改
local6.notice /var/log/bash.log
*.info;mail.none;authpriv.none;cron.none;local6.none; /var/log/messages
local6.notice @172.16.1.33:13514
#修改歷史記錄文件為只能被追加來進行阻止
chattr +a /home/bob/.bash_history
hattr +a /home/bob/.bash_profile
chattr +a /home/bob/.bash_login
chattr +a /home/bob/.profile
chattr +a /home/bob/.bash_logout
chattr +a /home/bob/.bashrc #只在當non-login交互式shell調(diào)用時被讀取,其他三個配置文件本身會調(diào)用.bashrc
#將此用戶的密碼最長使用天數(shù)設為30,最短使用天數(shù)設為0,密碼2000年1月1日過期,過期前七天警告用戶。
chage -m0 -M30 -E2000-01-01 -W7 <用戶名>
設置連續(xù)輸錯三次密碼,賬號鎖定五分鐘。使用命令
vi/etc/pam.d/common-auth //修改配置文件,添加
auth required pam tally.so onerr=fail deny=3 unlock time=300
more /etc/rc.local /etc/rc.d/rc[0~6] .dls-l /etc/rc.d/rc3.d/
//定位有多少IP在爆破主機的root帳號:
grep "Failedpasswordforroot"/var/log/secure|awk'{print$11}'|sort|uniq-c|sort- nr |more
//SHELL中的內(nèi)置命令約有60個,通過內(nèi)置的enable命令即可查看所有的內(nèi)部命
enable
enable -n cd #禁用命令cd在SHELL中的內(nèi)置功能
chkconfig --list | grep "3:on\|5:on" //查看系統(tǒng)在3與5級別下的啟動項
#系統(tǒng)完整性檢查
/rpm -Va > rpm.log //通過rpm自帶的-Va來校驗檢查所有的rpm軟件包,查看哪些命令是否被替換了,如果一切均校驗正常將不會產(chǎn)生任何輸出,如果有不一致的地方,就會顯示出來,輸出格式是8位長字符串,每個字符都用以表示文件與RPM數(shù)據(jù)庫中一種屬性的比較結(jié)果 ,如果是. (點) 則表示測試通過
rpm -qf /bin/ls #查詢ls命令屬于哪個軟件包
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio-idv ./bin/ls #提取rpm包中l(wèi)s命令到當前目錄的/bin/ls下,-i:copy-in模式,還原;-d:還原時自動新建目錄;-v:顯示還原過程
cp /root/bin/ls /bin/ #把ls命令復制到/bin/目錄修復文件丟失,最后就按著舊文件授權修改一致即可
#僵尸進程,找到該defunct僵尸進程的父進程,將該進程的父進程殺掉,則此defunct進程將自動消失
ps aux | grep Zs | grep -v grep
ps -ef | grep defunct
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
ps -ef | grep defunct | grep -v grep | awk {print "kill -9 " $2,$3} //謹慎kill
cat /proc/defunct_pid/stack #查看具體僵尸進程的情況
lsof -p defunct_pid
#查看stopped進程,stopped進程的STAT狀態(tài)為T
ps -e j | grep T
ps -A -ostat,ppid,pid,cmd | grep -e '^[T]'
#搜索偽裝成病毒的可執(zhí)行文件
find / -size -1223124c -size +1223122c -exec ls -id {} \; 搜索1223123大小的文件
ll -h /etc/rc.d/init.d/
less /etc/rc.local #查看啟動文件里是否嵌入啟動腳本命令
var/log/cron 記錄了系統(tǒng)定時任務相關的日志
/var/log/cups 記錄打印信息的日志
/var/log/dmesg 記錄了系統(tǒng)在開機時內(nèi)核自檢的信息,也可以使用dmesg命令直接查看內(nèi)核自檢信息
/var/log/mailog 記錄郵件信息
/var/log/message 記錄系統(tǒng)重要信息的日志。這個日志文件中會記錄Linux系統(tǒng)的絕大多數(shù)重要信息,如果系統(tǒng)出現(xiàn)
問題時,首先要檢查的就應該是這個日志文件
/var/log/btmp 記錄錯誤登錄日志,這個文件是二進制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 記錄系統(tǒng)中所有用戶最后一次登錄時間的日志,這個文件是二進制文件,不能直接vi,而要使用
lastlog命令查看
/var/log/wtmp 永久記錄所有用戶的登錄、注銷信息,同時記錄系統(tǒng)的啟動、重啟、關機事件。同樣這個文件也是
一個二進制文件,不能直接vi,而需要使用last命令來查看
/var/log/utmp 記錄當前已經(jīng)登錄的用戶信息,這個文件會隨著用戶的登錄和注銷不斷變化,只記錄當前登錄用戶 的信息。同樣這個文件不能直接vi,而要使用w,who,users等命令來查詢
/var/log/secure 記錄驗證和授權方面的信息,只要涉及賬號和密碼的程序都會記錄,比如SSH登錄,su切換用戶
附:SSH暴力破解,三次握手會話狀態(tài)回顧
① TCP初始化連接三次握手:發(fā)SYN包,然后返回SYN/ACK包,再發(fā)ACK包,連接正式建立。但有些異常,當請求者收到SYS/ACK包后,就開始建立連接了,而被請求者第三次握手結(jié)束后才建立連接。
② 客戶端TCP狀態(tài)遷移:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
服務器TCP狀態(tài)遷移:
CLOSED->LISTEN->SYN_recv->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED
③ 當客戶端開始連接時,服務器還處于LISTENING,客戶端發(fā)一個SYN包后,服務端接收到了客戶端的SYN并 且發(fā)送了ACK時,服務器處于SYN_RECV狀態(tài),有些異常時候會出現(xiàn),之后沒有再收到客戶端的ACK就進入了ESTABLISHED狀態(tài),而服務端顯示一直停留在SYN_RECV狀態(tài),很可能是爆破了。
11)MAC欺騙
arp -an //查看所有連接本地主機的ip和mac地址
12)windows
netsh wlan show profiles //查看連接過的wifi點
netsh wlan show profile name='sdc-qwimq' key=clear //查看wifi key
net view hostname/ip //查看對應IP地址共享的資源
net share //顯示本地共享資源
net share ipc$ /del //刪除ipc$共享
net share c$ /del //刪除C:共享
net user //查看用戶
net user 帳戶名 //查看帳戶的屬性
net use
net start //查看開啟了哪些服務
net time \\目標ip /set #設置本地計算機時間與“目標IP”主機的時間同步,加上參數(shù)/yes可取消確認信息
net config 顯示系統(tǒng)網(wǎng)絡設置
finger username @host //查看最近有哪些用戶登陸
attrib 文件名(目錄名) //查看某文件(目錄)的屬性
attrib 文件名 -A -R -S -H 或 +A +R +S +H //去掉(添加)某文件的 存檔,只讀,系統(tǒng),隱藏 屬性;用+則是添加為某屬性
date /t 、 time /t //將只顯示當前日期和時間
set //顯示當前所有的環(huán)境變量
ver //在cmd窗口下顯示版本信息
winver //彈出一個窗口顯示版本信息
type 文件名 顯示文本文件的內(nèi)容
more 文件名 逐屏顯示輸出文件
msinfo32 //軟件環(huán)境→正在運行任務”就可以查看到進程的詳細信息
systeminfo //查看系統(tǒng)信息
cacls 文件名 /參數(shù) #顯示或修改文件訪問控制列表(ACL)--針對NTFS格式時。參數(shù):/D 用戶名:設定拒絕某用戶訪問;/P 用戶名erm 替換指定用戶的訪問權限;/G 用戶名erm 賦予指定用戶訪問權限;Perm 可以是: N 無,R 讀取, W 寫入, C 更改(寫入),F(xiàn) 完全控制;
icacls 文件名
at //查看計劃任務
eventvwr.msc //查看日志
運行,輸入%UserProfile%\Recent //分析最近打開分析可疑文件
#好玩的
color 顏色值 設置cmd控制臺前景和背景顏色;0=黑、1=藍、2=綠、3=淺綠 、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白
wmic process get caption,commandline /value >> tmp.txt //進程分析
wmic process where caption=”svchost.exe” get caption,commandline /value #查詢某一個進程的信息,得到進程的可執(zhí)行文件位置等信息
13)工具
1、使用WWWGrep來檢查你的網(wǎng)站元素安全
WWWGrep是一款針對HTML安全的工具,該工具基于快速搜索“grepping”機制實現(xiàn)其功能,并且可以按照類型檢查HTML元素,并允許執(zhí)行單個、多個或遞歸搜索。Header名稱和值同樣也可以通過這種方式實現(xiàn)遞歸搜索。
2、chkrootkit
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense
./chkrootkit //檢查
3、rkhunter:http://rkhunter.sourceforge.net
wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
tar -zxvfrkhunter-1.4.4.tar.gz
cd rkhunter-1.4.4
./installer.sh --install
rkhunter -c
4、Clamav:病毒查殺
wget http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.gz
tar-zxvfzlib-1.2.7.tar.gz
cd zlib-1.2.7
#安裝依賴的gcc編譯環(huán)境:
yum install gcc -y
CFLAGS=“-O3-fPIC” ./configure --prefix=/usr/local/zlib/
make && makeinstall
#添加用戶組clamav和組成員clamav:
groupadd clamav
useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav
#安裝Clamav
tar –zxvf clamav-0.97.6.tar.gz
cd clamav-0.97.6
./configure–prefix=/opt/clamav–disable-clamav-with-zlib=/usr/local/zlib
make
make install
#配置Clamav
mkdir /opt/clamav/logs
mkdir /opt/clamav/updata
touch /opt/clamav/logs/freshclam.log
touch /opt/clamav/logs/clamd.log
cd /opt/clamav/logs
chown clamav:clamav clamd.log
chown clamav:clamav freshclam.log5、ClamAV 使用:
/opt/clamav/bin/freshclam #升級病毒庫
./clamscan –h #查看相應的幫助信息
./clamscan-r/home #掃描所有用戶的主目錄就使用
./clamscan -r --bell -i /bin #掃描bin目錄并且顯示有問題的文件的掃描結(jié)果
#使用
yum install -y clamav #更新病毒庫
freshclam #掃描方法
clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log
clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log
clamscan -r /us r–max-dir-recursion=5 -l /root/usrclamav.log #掃描并殺毒
clamscan -r --remove /usr/bin/bsd-port
clamscan -r --remove /usr/bin/
clamscan -r–remove /usr/local/zabbix/sbin #查看日志發(fā)現(xiàn)
cat /root/usrclamav.log |grep FOUND
5、日志分析:使用LogParser對windows日志提取數(shù)據(jù)分析
6、360勒索病毒網(wǎng)站(http://lesuobingdu.#)
7、D盾_Web查殺軟件:能剖析更加掩藏的WebShell后門個人行為。能查殺更加掩藏的后門,并把異常的基本參數(shù)呈現(xiàn)在你眼前,讓你能更迅速的掌握后門的狀況。
8、“拒絕勒索軟件”網(wǎng)站:https://www.nomoreransom.org/zh/index.html
9、IpTool抓包工具
10、河馬查殺:支持多平臺,但是需要聯(lián)網(wǎng)環(huán)境
wget http://down.shellpub.com/hm/latest/hm-linux-amd64.tgz
tar xvf hm-linux-amd64.tgz
hm scan /www
四、日志配置
4.1、Nginx被篡改示例
上圖中,Nginx配置文件VirtualHost.conf被篡改,通過反向代理匹配以“sc”后綴的專題鏈接, 劫持到http://103.233.248.163,該網(wǎng)站為博彩鏈接導航網(wǎng)站。
4.2、Nginx后臺網(wǎng)頁js文件被篡改劫持示例
五、腳本示例
5.1 Nginx 腳本
#!/bin/bash
# Nginx日志路徑
LOG_PATH="/var/log/nginx/access.log"
# 檢查IP訪問頻率/次數(shù)
check_ip_frequency() {
echo "IP訪問頻率檢查結(jié)果:"
awk '{print $1}' $LOG_PATH | sort | uniq -c sort -nr
}
# 檢查訪問狀態(tài)碼
check_response_codes() {
echo "訪問狀態(tài)碼檢查結(jié)果:"
awk '{print $9}' $LOG_PATH | sort | uniq -c | sort -nr
}
# 檢查請求來源URL
check_referers() {
echo "請求來源URL檢查結(jié)果:"
awk '{print $11}' $LOG_PATH | sort | uniq -c | sort -nr
}
# 檢查異常User-Agent
check_user_agents() {
echo "異常User-Agent檢查結(jié)果:"
awk -F\" '{print $6}' $LOG_PATH | sort | uniq -c | sort -nr
}
# 檢查潛在的SQL注入攻擊
check_sql_injections() {
echo "潛在的SQL注入攻擊檢查結(jié)果:"
grep -iE "(union|select|from|where|insert|update|delete|drop)" $LOG_PATH
}
# 執(zhí)行巡檢
echo "開始巡檢Nginx日志安全性..."
echo ""
check_ip_frequency
echo ""
check_response_codes
echo ""
check_referers
echo ""
check_user_agents
echo ""
check_sql_injections
echo ""
echo "巡檢完成!"
5.2、短連接捕捉腳本文章來源:http://www.zghlxwxcb.cn/news/detail-655037.html
短連接(short connnection)是相對于長連接而言的概念,指的是在數(shù)據(jù)傳送過程中,只在需要發(fā)送數(shù)據(jù)時,才去建立一個連接,數(shù)據(jù)發(fā)送完成后,則斷開此連接,即每次連接只完成一項業(yè)務的發(fā)送。 在系統(tǒng)維護中,一般很難去察覺,需要借助網(wǎng)絡安全設備或者抓包分析,才能夠去發(fā)現(xiàn)。多次刷新netstat命令可能會看到,但該進程pid多變,不容易被捕捉,很難捕捉到對應的進程和源文件;文章來源地址http://www.zghlxwxcb.cn/news/detail-655037.html
#!/bin/bash
ip=外連異常ip
i=1 while :
do
tmp=netstat-anplt|grep $ip|awk -F'[/]' '{print $1}'|awk'{print $7}'
#echo $tmp
if test -z "$tmp" ;then
((i=i+1))
else
for pid in $tmp;
do echo "PID: "${pid}
result=ls -lh /proc/$pid|grep exe
echo "Process: "${result}
kill -9 $pid
done
break
fi
done
echo "Total number of times: "${i}
到了這里,關于Nginx訪問日志及安全巡檢統(tǒng)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!