1. 程式人生 > 實用技巧 >應急響應排查大全

應急響應排查大全

第一章:入侵排查篇

第1篇:window入侵排查

前言

當企業發生黑客入侵、系統崩潰或其它影響業務正常執行的安全事件時,急需第一時間進行處理,使企業的網路資訊
系統在最短時間內恢復正常工作,進一步查詢入侵來源,還原入侵事故過程,同時給出解決方案與防範措施,為企業
挽回或減少經濟損失。
常見的應急響應事件分類:
web入侵:網頁掛馬、主頁篡改、Webshell
系統入侵:病毒木馬、勒索軟體、遠控後門
網路攻擊:DDOS攻擊、DNS劫持、ARP欺騙
針對常見的攻擊事件,結合工作中應急響應事件分析和解決的方法,總結了一些Window伺服器入侵排查的思路。

1 入侵排查思路

1.1 檢查系統賬號安全

1、檢視伺服器是否有弱口令,遠端管理埠是否對公網開放。
檢查方法:據實際情況諮詢相關伺服器管理員。
2、檢視伺服器是否存在可疑賬號、新增賬號。
檢查方法:開啟 cmd 視窗,輸入 lusrmgr.msc 命令,檢視是否有新增/可疑的賬號,如有管理員群組的
(Administrators)裡的新增賬戶,如有,請立即禁用或刪除掉。
3、檢視伺服器是否存在隱藏賬號、克隆賬號。
檢查方法:
a、開啟登錄檔 ,檢視管理員對應鍵值。
b、使用D盾_web查殺工具,集成了對克隆賬號檢測的功能。

4、結合日誌,檢視管理員登入時間、使用者名稱是否存在異常。
檢查方法:
a、Win+R開啟執行,輸入“eventvwr.msc”,回車執行,開啟“事件檢視器”。
b、匯出Windows日誌--安全,利用Log Parser進行分析。

1.2 檢查異常埠、程序

1、檢查埠連線情況,是否有遠端連線、可疑連線。
檢查方法:
a、netstat -ano 檢視目前的網路連線,定位可疑的ESTABLISHED
b、根據netstat 定位出的pid,再通過tasklist命令進行程序定位 tasklist | findstr “PID”

2、程序
檢查方法:
a、開始--執行--輸入msinfo32,依次點選“軟體環境→正在執行任務”就可以檢視到程序的詳細資訊,比如程序
路徑、程序ID、檔案建立日期、啟動時間等。
b、開啟D盾_web查殺工具,程序檢視,關注沒有簽名信息的程序。
c、通過微軟官方提供的 Process Explorer 等工具進行排查 。
d、檢視可疑的程序及其子程序。可以通過觀察以下內容:
3、小技巧:
a、檢視埠對應的PID: netstat -ano | findstr “port”
b、檢視程序對應的PID:工作管理員--檢視--選擇列--PID 或者 tasklist | findstr “PID”
c、檢視程序對應的程式位置:
工作管理員--選擇對應程序--右鍵開啟檔案位置
執行輸入 wmic,cmd介面 輸入 process
d、tasklist /svc 程序--PID--服務
e、檢視Windows服務所對應的埠: %system%/system32/drivers/etc/services(一般%system%就是
C:\Windows)

1.3 檢查啟動項、計劃任務、服務

1、檢查伺服器是否有異常的啟動項。
檢查方法:
a、登入伺服器,單擊【開始】>【所有程式】>【啟動】,預設情況下此目錄在是一個空目錄,確認是否有非業
務程式在該目錄下。 b、單擊開始選單 >【執行】,輸入 msconfig,檢視是否存在命名異常的啟動專案,是則
取消勾選命名異常的啟動專案,併到命令中顯示的路徑刪除檔案。 c、單擊【開始】>【執行】,輸入 regedit,
開啟登錄檔,檢視開機啟動項是否正常,特別注意如下三個登錄檔項:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce 檢查右側是否有啟動異常
的專案,如有請刪除,並建議安裝防毒軟體進行病毒查殺,清除殘留病毒或木馬。
d、利用安全軟體檢視啟動項、開機時間管理等。
e、組策略,執行gpedit.msc。

2、檢查計劃任務
檢查方法:
a、單擊【開始】>【設定】>【控制面板】>【任務計劃】,檢視計劃任務屬性,便可以發現木馬檔案的路徑。
b、單擊【開始】>【執行】;輸入 cmd,然後輸入at,檢查計算機與網路上的其它計算機之間的會話或計劃任
務,如有,則確認是否為正常連線。
3、服務自啟動
檢查方法:單擊【開始】>【執行】,輸入services.msc,注意服務狀態和啟動型別,檢查是否有異常服務。

1.4 檢查系統相關資訊

1、檢視系統版本以及補丁資訊
檢查方法:單擊【開始】>【執行】,輸入systeminfo,檢視系統資訊
2、查詢可疑目錄及檔案
檢查方法:
a、 檢視使用者目錄,新建賬號會在這個目錄生成一個使用者目錄,檢視是否有新建使用者目錄。
Window 2003 C:\Documents and Settings
Window 2008R2 C:\Users
b、單擊【開始】>【執行】,輸入%UserProfile%\Recent,分析最近開啟分析可疑檔案。
c、在伺服器各個目錄,可根據資料夾內檔案列表時間進行排序,查詢可疑檔案。
d、回收站、瀏覽器下載目錄、瀏覽器歷史記錄
e、修改時間在建立時間之前的為可疑檔案
3、得到發現WEBSHELL、遠控木馬的建立時間,如何找出同一時間範圍內建立的檔案?
a、利用 Registry Workshop 登錄檔編輯器的搜尋功能,可以找到最後寫入時間區間的檔案。
b、利用計算機自帶檔案搜尋功能,指定修改時間進行搜尋。

1.5 自動化查殺

病毒查殺
檢查方法:下載安全軟體,更新最新病毒庫,進行全盤掃描。
webshell查殺
檢查方法:選擇具體站點路徑進行webshell查殺,建議使用兩款webshell查殺工具同時查殺,可相互補充
規則庫的不足。

1.6 日誌分析

系統日誌
分析方法:
a、前提:開啟稽核策略,若日後系統出現故障、安全事故則可以檢視系統的日誌檔案,排除故障,追查入侵者
的資訊等。
b、Win+R開啟執行,輸入“eventvwr.msc”,回車執行,開啟“事件檢視器”。
C、匯出應用程式日誌、安全日誌、系統日誌,利用Log Parser進行分析。
WEB訪問日誌
分析方法:
a、找到中介軟體的web日誌,打包到本地方便進行分析。
b、推薦工具:Window下,推薦用 EmEditor 進行日誌分析,支援大文字,搜尋效率還不錯。
Linux下,使用Shell命令組合查詢分析

2 工具篇

2.1 病毒分析

PCHunter:http://www.xuetr.com
火絨劍:https://www.huorong.cn
Process Explorer:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
processhacker:https://processhacker.sourceforge.io/downloads.php
autoruns:https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns
OTL:https://www.bleepingcomputer.com/download/otl/
SysInspector:http://download.eset.com.cn/download/detail/?product=sysinspector

2.2 病毒查殺

卡巴斯基:http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe (推薦理由:綠色版、最新
病毒庫)
大蜘蛛:http://free.drweb.ru/download+cureit+free(推薦理由:掃描快、一次下載只能用1周,更新病毒庫)
火絨安全軟體:https://www.huorong.cn
360防毒:http://sd.360.cn/download_center.html

2.3 病毒動態

CVERC-國家計算機病毒應急處理中心:http://www.cverc.org.cn
微步線上威脅情報社群:https://x.threatbook.cn
火絨安全論壇:http://bbs.huorong.cn/forum-59-1.html
愛毒霸社群:http://bbs.duba.net
騰訊電腦管家:http://bbs.guanjia.qq.com/forum-2-1.html

2.4 線上病毒掃描網站

http://www.virscan.org //多引擎線上病毒掃描網 v1.02,當前支援 41 款防毒引擎
https://habo.qq.com //騰訊哈勃分析系統
https://virusscan.jotti.org //Jotti惡意軟體掃描系統
http://www.scanvir.com //針對計算機病毒、手機病毒、可疑檔案等進行檢測分析

2.5 webshell查殺

D盾_Web查殺:http://www.d99net.net/index.asp
河馬webshell查殺:http://www.shellpub.com
深信服Webshell網站後門檢測工具:http://edr.sangfor.com.cn/backdoor_detection.html
Safe3:http://www.uusec.com/webshell.zip

第2篇:Linux入侵排查

前言

當企業發生黑客入侵、系統崩潰或其它影響業務正常執行的安全事件時,急需第一時間進行處理,使企業的網路資訊
系統在最短時間內恢復正常工作,進一步查詢入侵來源,還原入侵事故過程,同時給出解決方案與防範措施,為企業
挽回或減少經濟損失。
針對常見的攻擊事件,結合工作中應急響應事件分析和解決的方法,總結了一些Linux伺服器入侵排查的思路。

1 入侵排查思路

1.1 賬號安全

基本使用:
入侵排查:

1.2 歷史命令

基本使用:

1、使用者資訊檔案/etc/passwd
root❌0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
使用者名稱:密碼:使用者ID:組ID:使用者說明:家目錄:登陸之後shell
注意:無密碼只允許本機登陸,遠端不允許登陸
2、影子檔案/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0
UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
使用者名稱:加密密碼:密碼最後一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過
期之後的寬限天數:賬號失效時間:保留
who   檢視當前登入使用者(tty本地登陸 pts遠端登入)
w    檢視系統資訊,想知道某一時刻使用者的行為
uptime 檢視登陸多久、多少使用者,負載

入侵排查:

1、查詢特權使用者特權使用者(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許可權。如非管理需要,普通帳號應刪除sudo許可權
[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目錄一併刪除

1.2 歷史命令

基本使用:

通過.bash_history檢視帳號執行過的系統命令
1、root的歷史命令
histroy
2、開啟/home各帳號目錄下的.bash_history,檢視普通帳號的歷史命令
為歷史的命令增加登入的IP地址、執行命令時間等資訊:
1)儲存1萬條命令
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
2)在/etc/profile的檔案尾部新增如下行數配置資訊:

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 ##########
3)source /etc/profile讓配置生效
生成效果: 1 2018-07-10 19:45:39 192.168.204.1 root source /etc/profile
3、歷史操作命令的清除:history -c
但此命令並不會清除儲存在檔案中的記錄,因此需要手動刪除.bash_profile檔案中的記錄。
入侵排查:
進入使用者目錄下
cat .bash_history >> history.txt
1.3 檢查異常埠
使用netstat 網路連線命令,分析可疑埠、IP、PID
netstat -antlp|more
檢視下pid所對應的程序檔案路徑,
執行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 為對應的pid 號)
1.4 檢查異常程序
使用ps命令,分析程序
ps aux | grep pid
1.5 檢查開機啟動項
基本使用:
系統執行級別示意圖:
執行級別 含義
0 關機
1 單使用者模式,可以想象為windows的安全模式,主要用於系統修復
2 不完全的命令列模式,不含NFS服務
3 完全的命令列模式,就是標準字元介面
4 系統保留
5 圖形模式
6 重啟動
檢視執行級別命令 runlevel
系統預設允許級別
vi /etc/inittab
id=3:initdefault 系統開機後直接進入哪個執行級別
開機啟動配置檔案
/etc/rc.local
/etc/rc.d/rc[0~6].d
例子:當我們需要開機啟動自己的指令碼時,只需要將可執行指令碼丟在/etc/init.d目錄下,然後在/etc/rc.d/rc*.d中建立
軟連結即可
root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此處sshd是具體服務的指令碼檔案,S100ssh是其軟連結,S開頭代表載入時自啟動;如果是K開頭的指令碼檔案,代表
執行級別載入時需要關閉的。
入侵排查:
啟動項檔案: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/

1.6 檢查定時任務

基本使用
1、利用crontab建立計劃任務

  • 基本命令
    crontab -l 列出某個使用者cron服務的詳細內容
    Tips:預設編寫的crontab檔案會儲存在 (/var/spool/cron/使用者名稱 例如: /var/spool/cron/root
    crontab -r 刪除每個使用者cront任務(謹慎:刪除所有的計劃任務)
    crontab -e 使用編輯器編輯當前的crontab檔案
    vi /etc/inittab
    id=3:initdefault 系統開機後直接進入哪個執行級別
    /etc/rc.local
    /etc/rc.d/rc[0~6].d
    root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
    如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分鐘寫入檔案
    2、利用anacron實現非同步定時任務排程
  • 使用案例
    每天執行 /home/backup.sh指令碼: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh
    當機器在 backup.sh 期望被執行時是關機的,anacron會在機器開機十分鐘之後執行它,而不用再等待 7天。
    入侵排查
    重點關注以下目錄中是否存在惡意指令碼

/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/*
小技巧:
more /etc/cron.daily/* 檢視目錄下所有檔案

1.7 檢查服務

服務自啟動
第一種修改方法:

chkconfig [--level 執行級別] [獨立服務名] [on|off]
chkconfig –level 2345 httpd on 開啟自啟動
chkconfig httpd on (預設level是2345)
第二種修改方法:
修改/etc/re.d/rc.local 檔案
加入 /etc/init.d/httpd start
第三種修改方法:
使用ntsysv命令管理自啟動,可以管理獨立服務和xinetd服務。
入侵排查
1、查詢已安裝的服務:
RPM包安裝的服務
chkconfig --list 檢視服務自啟動狀態,可以看到所有的RPM包安裝的服務
ps aux | grep crond 檢視當前服務
系統在3與5級別下的啟動項
中文環境
chkconfig --list | grep "3:啟用|5:啟用"
英文環境
chkconfig --list | grep "3:on|5:on"
原始碼包安裝的服務
檢視服務安裝位置 ,一般是在/user/local/
service httpd start
搜尋/etc/rc.d/init.d/ 檢視是否存在

1.8 檢查異常檔案

1、檢視敏感目錄,如/tmp目錄下的檔案,同時注意隱藏資料夾,以“..”為名的資料夾具有隱藏屬性
2、得到發現WEBSHELL、遠控木馬的建立時間,如何找出同一時間範圍內建立的檔案?
可以使用find命令來查詢,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前訪問過的檔案
3、針對可疑檔案可以使用stat進行建立修改時間。

1.9 檢查系統日誌

日誌預設存放位置:/var/log/
檢視日誌配置情況:more /etc/rsyslog.conf
差個圖片
日誌分析技巧:

1、定位有多少IP在爆破主機的root帳號:  
grep "Failed password for root" /var/log/secure | awk '{print $11}' | 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($_=<>){ /for(.*?) from/; print
"$1\n";}'|uniq -c|sort -nr
2、登入成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登入成功的日期、使用者名稱、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
3、增加一個使用者kali日誌:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001,
home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali

grep "useradd" /var/log/secure

4、刪除使用者kali日誌:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'

grep "userdel" /var/log/secure

5、su切換使用者:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by
root(uid=0)
sudo授權執行:
sudo -l
Jul 10 00:43:09 localhost sudo:  good : TTY=pts/4 ; PWD=/home/good ; USER=root ;
COMMAND=/sbin/shutdown -r now

0x02 工具篇

2.1 Rootkit查殺

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense

編譯完成沒有報錯的話執行檢查

./chkrootkit

使用方法:
Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-
1.4.4.tar.gz
tar -zxvf rkhunter-1.4.4.tar.gz
cd rkhunter-1.4.4
./installer.sh --install
rkhunter -c

2.2 病毒查殺

1、安裝zlib:
wget http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.gz
tar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7

安裝一下gcc編譯環境: yum install gcc

CFLAGS="-O3 -fPIC" ./configure --prefix= /usr/local/zlib/
make && make install
2、新增使用者組clamav和組成員clamav:
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
3、安裝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
4、配置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.log
5、ClamAV 使用:
/opt/clamav/bin/freshclam 升級病毒庫
./clamscan –h 檢視相應的幫助資訊
./clamscan -r /home 掃描所有使用者的主目錄就使用
./clamscan -r --bell -i /bin 掃描bin目錄並且顯示有問題的檔案的掃描結果
安裝方式二:

安裝

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 /usr --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

檢視日誌發現

cat /root/usrclamav.log |grep FOUND

2.3 webshell查殺

linux版:

河馬webshell查殺:http://www.shellpub.com
深信服Webshell網站後門檢測工具:http://edr.sangfor.com.cn/backdoor_detection.html

2.4 RPM check檢查

系統完整性可以通過rpm自帶的-Va來校驗檢查所有的rpm軟體包,檢視哪些命令是否被替換了:

./rpm -Va > rpm.log
如果一切均校驗正常將不會產生任何輸出,如果有不一致的地方,就會顯示出來,輸出格式是8位長字串,每個字
符都用以表示檔案與RPM資料庫中一種屬性的比較結果 ,如果是. (點) 則表示測試通過。
驗證內容中的8個資訊的具體內容如下:
S     檔案大小是否改變
M     檔案的型別或檔案的許可權(rwx)是否被改變
5     檔案MD5校驗是否改變(可以看成檔案內容是否改變)
D     裝置中,從程式碼是否改變
L     檔案路徑是否改變
U     檔案的屬主(所有者)是否改變
G     檔案的屬組是否改變
T     檔案的修改時間是否改變
如果命令被替換了,如果還原回來:
檔案提取還原案例:
rpm -qf /bin/ls 查詢ls命令屬於哪個軟體包
mv /bin/ls /tmp 先把ls轉移到tmp目錄下,造成ls命令丟失的假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls 提取rpm包中
ls命令到當前目錄的/bin/ls下
cp /root/bin/ls /bin/ 把ls命令複製到/bin/目錄 修復檔案丟失

2.5 linux安全檢查指令碼

Github專案地址:
https://github.com/grayddq/GScan
https://github.com/ppabc/security_check
https://github.com/T0xst/linux

第3篇:常見的Webshell查殺工具

當網站伺服器被入侵時,我們需要一款Webshell檢測工具,來幫助我們發現webshell,進一步排查系統可能存在的
安全漏洞。
本文推薦了10款Webshll檢測工具,用於網站入侵排查。當然,目前市場上的很多主機安全產品也都提供這種
WebShell檢測能力,比如阿里雲、青藤雲、safedog等,本文暫不討論。

1、D盾_Web查殺

阿D出品,使用自行研發不分副檔名的程式碼分析引擎,能分析更為隱藏的WebShell後門行為。
相容性:只提供Windows版本。
工具下載地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip

2、百度WEBDIR+

下一代WebShell檢測引擎,採用先進的動態監測技術,結合多種引擎零規則查殺。
相容性:提供線上查殺木馬,免費開放API支援批量檢測。
線上查殺地址:https://scanner.baidu.com/

3、河馬

專注webshell查殺研究,擁有海量webshell樣本和自主查殺技術,採用傳統特徵+雲端大資料雙引擎的查殺技術。查
殺速度快、精度高、誤報低。
相容性:支援Windows、linux,支援線上查殺。
官方網站:https://www.shellpub.com/

4、Web Shell Detector

Webshell Detector具有“ Webshell”簽名資料庫,可幫助識別高達99%的“ Webshell”。
相容性:提供php/python指令碼,可跨平臺,線上檢測。
官方網站:http://www.shelldetector.com/
github專案地址:https://github.com/emposha/PHP-Shell-Detector

5、CloudWalker(牧雲)

一個可執行的命令列版本 Webshell 檢測工具。目前,專案已停止更新。
相容性,提供linux版本,Windows 暫不支援。
線上查殺demo:https://webshellchop.chaitin.cn/
github專案地址:https://github.com/chaitin/cloudwalker

6、Sangfor WebShellKill

Sangfor WebShellKill(網站後門檢測工具)是一款web後門專殺工具,不僅支援webshell的掃描,同時還支援暗鏈的
掃描。是一款融合了多重檢測引擎的查殺工具。能更精準地檢測出WEB網站已知和未知的後門檔案。
相容性:支援Windows、linux
工具下載地址:http://edr.sangfor.com.cn/backdoor_detection.html(已停止訪問)

7、深度學習模型檢測PHP Webshell

一個深度學習PHP webshell查殺引擎demo,提供線上樣本檢測。
線上查殺地址:http://webshell.cdxy.me/

8、PHP Malware Finder

PHP-malware-finder 是一款優秀的檢測webshell和惡意軟體混淆程式碼的工具
相容性:提供linux版本,Windows 暫不支援。
github專案地址:https://github.com/jvoisin/php-malware-finder

9、findWebshell

這個專案是一款基於python開發的webshell檢查工具,可以根據特徵碼匹配檢查任意型別的webshell後門。
github專案地址:https://github.com/he1m4n6a/findWebshell

10、線上webshell查殺工具

線上查殺地址:http://tools.bugscaner.com/killwebshell/

第4篇:如何發現隱藏的Webshell後門

如何在百萬行程式碼裡發現隱藏的後門,試想一下,如果你的網站被入侵,攻擊者留下隱藏的後門,你真的都可以找出
來嘛?面對一個大中型的應用系統,數以百萬級的程式碼行,是不可能做到每個檔案每段程式碼進行手工檢查的。
即使是一款擁有99.9%的Webshell檢出率的檢測引擎,依然可能存在Webshell繞過的情況。另外,像暗鏈、網頁劫
持、頁面跳轉等常見的黑帽SEO手法,也很難通過手動檢測或工具檢測全部識別出來。
最好的方式就是做檔案完整性驗證。通過與原始程式碼對比,可以快速發現檔案是否被篡改以及被篡改的位置。當然,
第一個前提是,你所在的團隊已具備程式碼版本管理的能力,如果你是個人站長,相信你已經備份了原始程式碼。
本文將結合實際應用,介紹幾種檔案完整性驗證方式,可以幫助你找出程式碼中所有隱藏的後門。

1、檔案MD5校驗

下載D盾_Web查殺工具的時候,我們可以留意到下載的壓縮包裡,除了有一個exe可執行檔案,還有一個檔案md5
值。這個是軟體作者在釋出軟體時,通過md5演算法計算出該exe檔案的“特徵值”。

下載地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip
檔案MD5:29285decadbce3918a4f8429ec33df46  WebShellKill.exe
當用戶下載軟體時,可以使用相同的校驗演算法計算下載到exe檔案的特徵值,並與軟體開發者釋出的特徵值比較。如
果兩個特徵值相同,則認為下載到的exe檔案是正確的。如果兩個特徵值不同,則認為下載到exe檔案是被篡改過
的。
那同理可得,我們可以將所有網站檔案計算一次hash值儲存,當出現應急情況時,重新計算一次hash值,並與上次
儲存的hash值進行對比,從而輸出新建立的、修改過及刪除的檔案列表。
檔案hash值計算:
def md5sum(file):
 m=hashlib.md5()
 if os.path.isfile(file):
   f=open(file,'rb')
   for line in f:
     m.update(line)
   f.close
 else:
   m.update(file)
 return (m.hexdigest())
對檔案進行雜湊值重新計算,進行校驗對比,測試效果:

如上圖,在上傳目錄新增了一個evil.php檔案,還有一個被篡改的檔案是low.php。使用常見的編輯器NotePad++進
行對比,可以發現low.php檔案裡被插入了一句話webshell。

2、diff命令

在linux中,我們經常使用diff來比較兩個文字檔案的差異。同樣,我們可以通過一行命令快速找出兩個專案檔案的差
異。

diff -c -a -r cms1 cms2
如下圖所示,前三行列出了兩個要對比的檔案目錄的差異,可以發現low.php檔案被篡改過,篡改的內容是 @eval($_POST['g']); 。

備註:如果只是想檢視兩個檔案是否不同又不想顯示差異之處的話,可以加上-q選項。

3、版本控制工具

版本控制工具,比如說git,重新上傳程式碼到git,add+commit+push,然後開啟專案,點選commits,在歷史提交版
本里面,檢視檔案更改內容,很容易就可以發現程式碼被篡改的地方了。
另外,也可以通過git diff 用來比較檔案之間的不同。

4、檔案對比工具

關鍵詞:程式碼對比工具,你會找到很多好用的工具,這裡我們推薦兩款效果還不錯的工具,Beyond Compare和
WinMerge。

Beyond Compare

Beyond Compare是一套由Scooter Software推出的檔案比較工具。主要用途是對比兩個資料夾或者檔案,並將差異
以顏色標示,比較範圍包括目錄,文件內容等。
下載地址:http://www.scootersoftware.com/download.php
軟體使用示例,通過資料夾比較,找出資料夾中的差異內容。
1、雙擊Beyond Compare ,開啟軟體主頁,選擇資料夾比較。

2、在雙邊欄輸入資料夾路徑,點選顯示差別,列出差異部分的內容,紫色部分為新增檔案,紅色部分為篡改檔案。

3、雙擊具體檔案,進入程式碼對比,找到程式碼差異部分。

WinMerge

WinMerge是一款運行於Windows系統下的檔案比較和合並工具,使用它可以非常方便地比較資料夾和檔案,以易於
理解的可視文字格式顯示差異。
下載地址:https://winmerge.org/downloads/
1、檔案--開啟,選擇檔案或資料夾,然後點選進行比較。

2、在同一個介面裡,通過顏色和文字提示,顯示資料夾內容差異。

第5篇:勒索病毒自救指南

經常會有一些小夥伴問:中了勒索病毒,該怎麼辦,可以解密嗎?
第一次遇到勒索病毒是在早幾年的時候,客戶因網站訪問異常,進而遠端協助進行排查。登入伺服器,在站點目錄下
發現所有的指令碼檔案及附件字尾名被篡改,每個資料夾下都有一個檔案開啟後顯示勒索提示資訊,這便是勒索病毒的
特徵。
出於職業習慣,我打包了部分加密檔案樣本和勒索病毒提示資訊用於留檔,就在今天,我又重新上傳了樣本,至今依
然無法解密。
作為一個安全工程師,而非一個專業的病毒分析師,我們可以藉助各大安全公司的能力,尋找勒索病毒的解密工具。
本文整理了一份勒索病毒自救指南,通過勒索病毒索引引擎查詢勒索病毒相關資訊,再通過各個安全公司提供的免費
勒索軟體解密工具解密。當然,能否解密全憑運氣,so,平時還是勤打補丁多備份。

勒索病毒搜尋引擎

在勒索病毒搜尋引擎輸入病毒名、勒索郵箱、被加密後文件的字尾名,或直接上傳被加密檔案、勒索提示資訊,即可
可快速查詢到病毒詳情和解密工具。

這些網站的解密能力還在持續更新中,是值得收藏的幾個勒索病毒工具型網站。
【360】 勒索病毒搜尋引擎,支援檢索超過800種常見勒索病毒,

http://lesuobingdu.360.cn
【騰訊】 勒索病毒搜尋引擎,支援檢索超過 300 種常見勒索病毒
https://guanjia.qq.com/pr/ls/
【啟明】VenusEye勒索病毒搜尋引擎,超300種勒索病毒家族
https://lesuo.venuseye.com.cn/
【奇安信】勒索病毒搜尋引擎
https://lesuobingdu.qianxin.com/
【深信服】勒索病毒搜尋引擎
https://edr.sangfor.com.cn/#/information/ransom_search

勒索軟體解密工具集

很多安全公司都提供了免費的勒索病毒解密工具下載,收集和整理相關下載地址,可以幫助我們瞭解和獲取最新的勒
索病毒解密工具。
【騰訊哈勃】勒索軟體專殺工具

https://habo.qq.com/tool/index
【金山毒霸】勒索病毒免疫工具
http://www.duba.net/dbt/wannacry.html
【火絨】安全工具下載
http://bbs.huorong.cn/forum-55-1.html
【瑞星】解密工具下載
http://it.rising.com.cn/fanglesuo/index.html
【nomoreransom】勒索軟體解密工具集
https://www.nomoreransom.org/zh/index.html
【MalwareHunterTeam】勒索軟體解密工具集
https://id-ransomware.malwarehunterteam.com/
【卡巴斯基】免費勒索解密器
https://noransom.kaspersky.com/
【Avast】免費勒索軟體解密工具
https://www.avast.com/zh-cn/ransomware-decryption-tools
【Emsisoft】免費勒索軟體解密工具
https://www.emsisoft.com/ransomware-decryption-tools/free-download
【Github專案】勒索病毒解密工具收集彙總
https://github.com/jiansiting/Decryption-Tools

第二章 日誌分析篇

第1篇:Window日誌分析

Window事件日誌簡介

Windows系統日誌是記錄系統中硬體、軟體和系統問題的資訊,同時還可以監視系統中發生的事件。使用者可以通過
它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。
Windows主要有以下三類日誌記錄系統事件:應用程式日誌、系統日誌和安全日誌。
系統日誌

記錄作業系統元件產生的事件,主要包括驅動程式、系統元件和應用軟體的崩潰以及資料丟失錯誤等。系統日誌中記錄的時
間型別由Windows NT/2000作業系統預先定義。
預設位置: %SystemRoot%\System32\Winevt\Logs\System.evtx

應用程式日誌

包含由應用程式或系統程式記錄的事件,主要記錄程式執行方面的事件,例如資料庫程式可以在應用程式日誌中記錄檔案錯
誤,程式開發人員可以自行決定監視哪些事件。如果某個應用程式出現崩潰情況,那麼我們可以從程式事件日誌中找到相應
的記錄,也許會有助於你解決問題。
預設位置:%SystemRoot%\System32\Winevt\Logs\Application.evtx
安全日誌
記錄系統的安全審計事件,包含各種型別的登入日誌、物件訪問日誌、程序追蹤日誌、特權使用、帳號管理、策略變更、系
統事件。安全日誌也是調查取證中最常用到的日誌。預設設定下,安全性日誌是關閉的,管理員可以使用組策略來啟動安全
性日誌,或者在登錄檔中設定稽核策略,以便當安全性日誌滿後使系統停止響應。
預設位置:%SystemRoot%\System32\Winevt\Logs\Security.evtx
系統和應用程式日誌儲存著故障排除資訊,對於系統管理員更為有用。 安全日誌記錄著事件審計資訊,包括使用者驗
證(登入、遠端訪問等)和特定使用者在認證後對系統做了什麼,對於調查人員而言,更有幫助。

稽核策略與事件檢視器

Windows Server 2008 R2 系統的稽核功能在預設狀態下並沒有啟用 ,建議開啟稽核策略,若日後系統出現故障、安
全事故則可以檢視系統的日誌檔案,排除故障,追查入侵者的資訊等。
PS:預設狀態下,也會記錄一些簡單的日誌,日誌預設大小20M
設定1:開始 → 管理工具 → 本地安全策略 → 本地策略 → 稽核策略,參考配置操作:

設定2:設定合理的日誌屬性,即日誌最大大小、事件覆蓋閥值等:

檢視系統日誌方法:
  1. “開始”選單上,依次指向“所有程式”“管理工具”,然後單擊“事件檢視器”
  2. "Window+R",輸入 ”eventvwr.msc“ 也可以直接進入“事件檢視器”
事件日誌分析

對於Windows事件日誌分析,不同的EVENT ID代表了不同的意義,摘錄一些常見的安全事件的說明:
差個圖
每個成功登入的事件都會標記一個登入型別,不同登入型別代表不同的方式:
差個圖
關於更多EVENT ID,詳見微軟官方網站上找到了“Windows Vista 和 Windows Server 2008 中的安全事件的說明”。

原文連結 :https://support.microsoft.com/zh-cn/help/977519/description-of-security-events-in-windows-7-and-in-windows-server-2008
案例1:可以利用eventlog事件來檢視系統賬號登入情況:

  1. “開始”選單上,依次指向“所有程式”“管理工具”,然後單擊“事件檢視器”
  2. 在事件檢視器中,單擊“安全”,檢視安全日誌;
  3. 在安全日誌右側操作中,點選“篩選當前日誌”,輸入事件ID進行篩選。
    4624 --登入成功
    4625 --登入失敗
    4634 -- 登出成功 4647 -- 使用者啟動的登出
    4672 -- 使用超級使用者(如管理員)進行登入
    我們輸入事件ID:4625進行日誌篩選,發現事件ID:4625,事件數175904,即使用者登入失敗了175904次,那麼這
    臺伺服器管理員賬號可能遭遇了暴力猜解。

案例2:可以利用eventlog事件來檢視計算機開關機的記錄:
1、在“開始”選單上,依次指向“所有程式”“管理工具”,然後單擊“事件檢視器”
2、在事件檢視器中,單擊“系統”,檢視系統日誌;
3、在系統日誌右側操作中,點選“篩選當前日誌”,輸入事件ID進行篩選。
其中事件ID 6006 ID6005、 ID 6009就表示不同狀態的機器的情況(開關機)。 6005 資訊 EventLog 事件日誌服務
已啟動。(開機) 6006 資訊 EventLog 事件日誌服務已停止。(關機) 6009 資訊 EventLog 按ctrl、alt、delete鍵(非正
常)關機
我們輸入事件ID:6005-6006進行日誌篩選,發現了兩條在2018/7/6 17:53:51左右的記錄,也就是我剛才對系統進
行重啟的時間。

日誌分析工具

Log Parser

Log Parser(是微軟公司出品的日誌分析工具,它功能強大,使用簡單,可以分析基於文字的日誌檔案、XML 文
件、CSV(逗號分隔符)檔案,以及作業系統的事件日誌、登錄檔、檔案系統、Active Directory。它可以像使用
SQL 語句一樣查詢分析這些資料,甚至可以把分析結果以各種圖表的形式展現出來。
Log Parser 2.2下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659
Log Parser 使用示例:https://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/

基本查詢結構

Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM c:\xx.evtx"

使用Log Parser分析日誌

1、查詢登入成功的事件

登入成功的所有事件
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM c:\Security.evtx where EventID=4624"
指定登入時間範圍的事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM c:\Security.evtx where
TimeGenerated>'2018-06-19 23:32:11' and TimeGenerated<'2018-06-20 23:34:00' and
EventID=4624"
提取登入成功的使用者名稱和IP:
LogParser.exe -i:EVT –o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as
EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as
Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM c:\Security.evtx where EventID=4624"
2、查詢登入失敗的事件
登入失敗的所有事件:
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM c:\Security.evtx where EventID=4625"
提取登入失敗使用者名稱進行聚合統計:
LogParser.exe -i:EVT "SELECT EXTRACT_TOKEN(Message,13,' ') as
EventType,EXTRACT_TOKEN(Message,19,' ') as user,count(EXTRACT_TOKEN(Message,19,' ')) as
Times,EXTRACT_TOKEN(Message,39,' ') as Loginip FROM c:\Security.evtx where EventID=4625
GROUP BY Message"
3、系統歷史開關機記錄:
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated,EventID,Message FROM c:\System.evtx where EventID=6005 or EventID=6006"

LogParser Lizard

對於GUI環境的Log Parser Lizard,其特點是比較易於使用,甚至不需要記憶繁瑣的命令,只需要做好設定,寫好基
本的SQL語句,就可以直觀的得到結果。
下載地址:http://www.lizard-labs.com/log_parser_lizard.aspx
依賴包:Microsoft .NET Framework 4 .5,下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=42642
查詢最近使用者登入情況:

Event Log Explorer

Event Log Explorer是一款非常好用的Windows日誌分析工具。可用於檢視,監視和分析跟事件記錄,包括安全,系
統,應用程式和其他微軟Windows 的記錄被記載的事件,其強大的過濾功能可以快速的過濾出有價值的資訊。
下載地址:https://event-log-explorer.en.softonic.com/

參考連結:
Windows日誌分析 https://mp.weixin.qq.com/s/ige5UO8WTuOOO3yRw-LeqQ

第2篇:Linux日誌分析

前言

Linux系統擁有非常靈活和強大的日誌功能,可以儲存幾乎所有的操作記錄,並可以從中檢索出我們需要的資訊。 本
文簡介一下Linux系統日誌及日誌分析技巧。

日誌簡介

日誌預設存放位置:/var/log/
檢視日誌配置情況:more /etc/rsyslog.conf
差個圖片
比較重要的幾個日誌: 登入失敗記錄:/var/log/btmp //lastb 最後一次登入:/var/log/lastlog //lastlog 登入成功記
錄: /var/log/wtmp //last 登入日誌記錄:/var/log/secure
目前登入使用者資訊:/var/run/utmp //w、who、users
歷史命令記錄:history 僅清理當前使用者: history -c

日誌分析技巧

A、常用的shell命令

Linux下常用的shell命令如:find、grep 、egrep、awk、sed
小技巧:
1、grep顯示前後幾行資訊:

標準unix/linux下的grep通過下面引數控制上下文:
• grep -C 5 foo file 顯示file檔案裡匹配foo字串那行以及上下5行
• grep -B 5 foo file 顯示foo及前5行
• grep -A 5 foo file 顯示foo及後5行
• 檢視grep版本號的方法是
• grep -V
2、grep 查詢含有某字串的所有檔案
grep -rn "hello,world!"

  • : 表示當前目錄所有檔案,也可以是某個檔名
    -r 是遞迴查詢
    -n 是顯示行號
    -R 查詢所有檔案包含子目錄
    -i 忽略大小寫
    3、如何顯示一個檔案的某幾行:
    cat input_file | tail -n +1000 | head -n 2000

從第1000行開始,顯示2000行。即顯示1000~2999行

4、find /etc -name init
//在目錄/etc中查詢檔案init
5、只是顯示/etc/passwd的賬戶
cat /etc/passwd |awk -F ':' '{print $1}'
//awk -F指定域分隔符為':',將記錄按指定的域分隔符劃分域,填充域,•$0則表示所有域,$1表示第一個域,•$n表示第n個域。
6、sed -i '153,$d' .bash_history
刪除歷史操作記錄,只保留前153行

B、日誌分析技巧

A、/var/log/secure

1、定位有多少IP在爆破主機的root帳號:  
grep "Failed password for root" /var/log/secure | awk '{print $11}' | 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($_=<>){ /for(.*?) from/; print
"$1\n";}'|uniq -c|sort -nr
2、登入成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登入成功的日期、使用者名稱、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
3、增加一個使用者kali日誌:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001,
home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali

grep "useradd" /var/log/secure

4、刪除使用者kali日誌:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'

grep "userdel" /var/log/secure

5、su切換使用者:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by
root(uid=0)
sudo授權執行:
sudo -l
Jul 10 00:43:09 localhost sudo:  good : TTY=pts/4 ; PWD=/home/good ; USER=root ;
COMMAND=/sbin/shutdown -r now

2、/var/log/yum.log

軟體安裝升級解除安裝日誌:

yum install gcc
[root@bogon ~]# more /var/log/yum.log
Jul 10 00:18:23 Updated: cpp-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:24 Updated: libgcc-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:24 Updated: libgomp-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:28 Updated: gcc-4.8.5-28.el7_5.1.x86_64
Jul 10 00:18:28 Updated: libgcc-4.8.5-28.el7_5.1.i686

第3篇:Web日誌分析

Web日誌

Web訪問日誌記錄了Web伺服器接收處理請求及執行時錯誤等各種原始資訊。通過對WEB日誌進行的安全分析,不
僅可以幫助我們定位攻擊者,還可以幫助我們還原攻擊路徑,找到網站存在的安全漏洞並進行修復。
我們來看一條Apache的訪問日誌:
127.0.0.1 - - [11/Jun/2018:12:47:22 +0800] "GET /login.html HTTP/1.1" 200 786 "-" "Mozilla/5.0
(Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139
Safari/537.36"
通過這條Web訪問日誌,我們可以清楚的得知使用者在什麼IP、什麼時間、用什麼作業系統、什麼瀏覽器的情況下訪問
了你網站的哪個頁面,是否訪問成功。
本文通過介紹Web日誌安全分析時的思路和常用的一些技巧。

2 日誌分析技巧

在對WEB日誌進行安全分析時,一般可以按照兩種思路展開,逐步深入,還原整個攻擊過程。
第一種:確定入侵的時間範圍,以此為線索,查詢這個時間範圍內可疑的日誌,進一步排查,最終確定攻擊者,還原
攻擊過程。
第二種:攻擊者在入侵網站後,通常會留下後門維持許可權,以方便再次訪問,我們可以找到該檔案,並以此為線索來
展開分析。
常用分析工具:
Window下,推薦用 EmEditor 進行日誌分析,支援大文字,搜尋效率還不錯。
Linux下,使用Shell命令組合查詢分析。
Shell+Linux命令實現日誌分析,一般結合grep、awk等命令等實現了幾個常用的日誌分析統計技巧。
Apache日誌分析技巧:

1、列出當天訪問次數最多的IP命令:
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20
2、檢視當天有多少個IP訪問:
awk '{print $1}' log_file|sort|uniq|wc -l
3、檢視某一個頁面被訪問的次數:
grep "/index.php" log_file | wc -l
4、檢視每一個IP訪問了多少個頁面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file
5、將每個IP訪問的頁面數進行從小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n
6、檢視某一個IP訪問了哪些頁面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
7、去掉搜尋引擎統計當天的頁面:
awk '{print $12,$1}' log_file | grep ^"Mozilla | awk '{print $2}' |sort | uniq | wc -l
8、檢視2018年6月21日14時這一個小時內有多少IP訪問:
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l

3 日誌分析案例

Web日誌分析例項:通過nginx代理轉發到內網某伺服器,內網伺服器某站點目錄下被上傳了多個圖片木馬,雖然II7
下不能解析,但還是想找出誰通過什麼路徑上傳的。
在這裡,我們遇到了一個問題:由於設定了代理轉發,只記錄了代理伺服器的ip,並沒有記錄訪問者IP?這時候,如
何去識別不同的訪問者和攻擊源呢?
這是管理員日誌配置不當的問題,但好在我們可以通過瀏覽器指紋來定位不同的訪問來源,還原攻擊路徑。
1、定位攻擊源
首先訪問圖片木馬的記錄,只找到了一條,由於所有訪問日誌只記錄了代理IP,並不能通過IP來還原攻擊路徑,這時
候,可以利用瀏覽器指紋來定位。

瀏覽器指紋:
Mozilla/4.0+
(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/7.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5
.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E)
2、搜尋相關日誌記錄
通過篩選與該瀏覽器指紋有關的日誌記錄,可以清晰地看到攻擊者的攻擊路徑。

3、對找到的訪問日誌進行解讀,攻擊者大致的訪問路徑如下:

A、攻擊者訪問首頁和登入頁
B、攻擊者訪問MsgSjlb.aspx和MsgSebd.aspx
C、攻擊者訪問Xzuser.aspx
D、攻擊者多次POST(懷疑通過這個頁面上傳模組缺陷)
E、攻擊者訪問了圖片木馬
開啟網站,訪問Xzuser.aspx,確認攻擊者通過該頁面的進行檔案上傳了圖片木馬,同時,發現網站了存在越權訪問
漏洞,攻擊者訪問特定URL,無需登入即可進入後臺介面。通過日誌分析找到網站的漏洞位置並進行修復。

4 日誌統計分析技巧

統計爬蟲:

grep -E 'Googlebot|Baiduspider'  /www/logs/access.2019-02-23.log | awk '{ print $1 }' |sort | uniq
統計瀏覽器:
cat /www/logs/access.2019-02-23.log | grep -v -E
'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n
100
IP 統計:
grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print
$1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10
 2206 219.136.134.13
 1497 182.34.15.248
 1431 211.140.143.100
 1431 119.145.149.106
 1427 61.183.15.179
 1427 218.6.8.189
 1422 124.232.150.171
 1421 106.187.47.224
 1420 61.160.220.252
 1418 114.80.201.18
統計網段:
cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print$1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200
統計域名:
cat  /www/logs/access.2019-02-23.log |awk '{print $2}'|sort|uniq -c|sort -rn|more
HTTP Status:
cat  /www/logs/access.2019-02-23.log |awk '{print $9}'|sort|uniq -c|sort -rn|more
5056585 304
1125579 200
 7602 400
   5 301
URL 統計:
cat  /www/logs/access.2019-02-23.log |awk '{print $7}'|sort|uniq -c|sort -rn|more
檔案流量統計:
cat /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print
sum[i],i}}'|sort -rn|more
grep ' 200 ' /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print
sum[i],i}}'|sort -rn|more
URL訪問量統計:
cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '?|&' | sort | uniq -c |sort -rn | more
指令碼執行速度:
查出執行速度最慢的指令碼
grep -v 0$ /www/logs/access.2019-02-23.log | awk -F '" ' '{print $4" " $1}' web.log | awk
'{print $1" "$8}' | sort -n -k 1 -r | uniq > /tmp/slow_url.txt
IP, URL 抽取:

tail -f /www/logs/access.2019-02-23.log | grep '/test.html' | awk '{print $1" "$7}'

參考連結:

https://www.jb51.net/article/53954.htm
https://www.jb51.net/article/58017.htm
https://cloud.tencent.com/developer/article/1051427

第4篇:MSSQL日誌分析

常見的資料庫攻擊包括弱口令、SQL注入、提升許可權、竊取備份等。對資料庫日誌進行分析,可以發現攻擊行為,進
一步還原攻擊場景及追溯攻擊源。

MSSQL日誌分析

首先,MSSQL資料庫應啟用日誌記錄功能,預設配置僅限失敗的登入,需修改為失敗和成功的登入,這樣就可以對
使用者登入進行稽核。

登入到SQL Server Management Studio,依次點選 管理--SQL Server 日誌

雙擊日誌存檔檔案即可開啟日誌檔案檢視器,並可以對日誌進行篩選或者匯出等操作。