注 : 笔记中拓扑图 xmind 源文件在其图片目录下
本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.
数据恢复
操作系统取证
Android
Windows
Linux
文件取证
Office
html
爆破Office加密
爆破PDF加密
deepsound
LSB音频隐写
sstv音频图像
DTMF拨号音识别
png
jpg
GIF
exif
Steghide
PixelJihad
盲水印
LSB隐写
Deegger_Embedder
爆破压缩包
伪加密
明文攻击
CRC32碰撞
压缩包
视频
图片
音频
文本
电子文档
网络取证
流量分析
TTL隐写
USB取证
蓝牙取证
磁盘取证
内存取证
应用程序取证
浏览器取证
其他软件
WEB取证
中间件配置
中间件服务器程序日志
常见web服务日志
数据库取证
mysql
mssql
Oracle
相关文章
常用软件
recuva
DiskGenius
tips
第一时间关闭服务或关机,因为运行的系统会持续覆盖磁盘
需要更专业的数据恢复能力,建议找做数据恢复的公司,效果比软件恢复会好很多
相关文章
Windows加固+维护+应急响应参考
通用取证工具
The Sleuth Kit (TSK) - 一套强大的数字调查、取证工具集合
系统日志
本部分内容见 Secure-Win 日志部分
DNS
本部分内容见 Secure-Win DNS 部分
动作记录
相关文章
powershell历史运行命令取证
相关工具
Device Cleanup Tool - 查看电脑连接过的设备
LastActivityView - 最近你干什么了
OpenSaveFilesView - 显示文件打开、保存记录
TurnedOnTimesView - 快速查看系统开关机时间
uknowsec/loginlog_windows - 读取登录过本机的登录失败或登录成功的所有计算机信息
剪切板内容
# 获取剪切板文本内容(只能获取当前复制内容)
powershell get-clipboard# 获取文件内容(非文本类型)
powershell Get-Clipboard -format FileDropList
便签信息
win7中存储路径:
C:\Users\username\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes\win10中存储路径:
C:\Users\username\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\p
lum.sqlite
代理信息
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer
历史命令
powershell 历史命令记录 : %appdata%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
# 查看存放位置
Get-PSReadlineOption
powershell Get-PSReadlineOption
# 查看存放位置2
Get-History
Get-History | Format-List -Property *
# 直接查看 powershell 历史命令
powershell Get-Content (Get-PSReadlineOption).HistorySavePath# 清除 powershell 历史记录
powershell Remove-Item (Get-PSReadlineOption).HistorySavePath
cmd 历史记录
# 直接查看 cmd 历史命令
doskey /h# 清除 cmd 历史记录
doskey /reinstall
RDP
本部分内容见 Windows 安全
BitLocker
本部分内容见 Windows 安全
认证
本部分内容见 Windows 安全
蓝牙
相关工具
bluetoothview - 监控周围的蓝牙设备
无线
相关工具
wifihistoryview - Wi-Fi 连接历史记录
wirelesskeyview- 查看本地 wifi 密码
NTFS 记录
相关工具
jschicht/UsnJrnl2Csv
ntfs 数据流
相关工具
NtfsStreamsEditor
Tips
如果使用 7z 进行解压,无法进行恢复 !!!! 建议使用 winrar 解压
注册表
相关工具
RegJump - 注册表快速跳转工具
RegCool - 注册表管理工具
日志
Linux基本信息查询命令
Linux加固+维护+应急响应参考
相关文章
linux应急响应手册
unhide
Linux 取证工具,能够发现那些借助 rootkit、LKM 及其它技术隐藏的进程和 TCP/UDP 端口。
apt-get install unhide
或
yum install unhideunhide [options] test_list
unhide proc
unhide sys
unhide quick
文件取证常用工具
binwalk - 固件分析工具
kali 自带, 递归提取 binwalk -Me xxx.bin
foremost - 文件分离工具 - 有时 binwalk 跑不出来可以试试,挺好用的
kali 不一定自带, foremost -i 1.png
strings
strings start.bin | grep -a "pass"
strings .* | grep -a "root"
strings -o start.bin # 获取所有 ASCII 字符偏移
相关文章
CTF-MISC隐写总结
CTF writup
OpenToAll CTF2015 - Gone (Forensics) - 知识点 : ext4修复+AES解密
write-ups-2015/opentoall-ctf-2015/forensics/gone at master - 同上
相关文章
ctf-wiki/zip.md at master · ctf-wiki/ctf-wiki
【CTF 攻略】CTF比赛中关于zip的总结
给你压缩包却不给你密码的人到底在想什么
RAR文件格式分析
相关工具
Hashcat
pyrofex/breakzip - 用于破解使用弱加密的加密压缩文件的实用工具。
archpr(Advanced Archive Password Recovery) - 一个灵活的,适用于 ZIP 和 RAR 档案的高度优化的口令恢复工具。
Ziperello - zip 爆破工具
fcrackzip
fcrackzip -v -u -D -p rockyou.txt sample.zip# -u : use-unzip 有助于误报
# -D : 选择字典模式
# -p : 选择字典文件
# -v : 详细
rarcrack - 支持爆破 rar、zip、7z 三种类型
apt install -y rarcrackrarcrack aaa.rar --threads 50 --type rar
rarcrack aaa.7z --threads 50 --type 7z
cRARk for 7-Zip
hashcat、John the Ripper
7z2hashcat - 从受密码保护的.7z存档(和.sfx文件)中提取信息
# 7z2hashcat.pl 比 7z2john.pl 好用
john
相关工具
ZipCenOp
相关文章
关于压缩包伪加密的相关问题
zip
50 4B 03 04 为数据区头文件标记,这里 deFlags 位改为 09 00 可变成伪加密
50 4B 01 02 为目录区头文件标记,后面的 deFlags 是加密标记,将 00 00 改为 09 00 可变成伪加密
50 4B 05 06 为目录区结束文件标记
rar
伪加密只发生在 RAR5.0 以前的版本中
在 RAR 的第 24 个字节,也就是 010 Editor 显示的文件结构中的 ubyte PASSWORD_ENCRYPTED 字段,修改其字段为 1 即可实现 RAR 伪加密
或者修改第11个字节,也就是010 Editor显示的文件结构中的ubyte BLOCK_HEADERS_ENCRYPTED字段的值。修改为1即可造成RAR伪加密。
ZIP明文攻击
CRC32:CRC 本身是 “冗余校验码” 的意思,CRC32 则标识会产生一个 32bit(8 位十六进制)的校验值。
CRC 校验实用程序库,在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。
在诸多检错手段中,CRC 是最著名的一种。CRC 的全称是循环冗余校验。
在产生 CRC32 时,源数据块的每一位都参与了运算,因此即使数据块中只有一位发生改变也会得到不同的 CRC32 值,利用这个原理我们可以直接爆破出加密文件中的内容。
每个文件都有唯一的 CRC32 值,即便数据中一个 bit 发生变化,也会导致 CRC32 值不同。若是知道一段数据的长度和 CRC32 值,便可穷举数据,与其 CRC32 对照,以此达到暴力猜解的目的。但限于 CPU 的能力,通常只适用于较小文本文件。
相关工具
theonlypwner/crc32
python crc32.py reverse crc32密文(16进制形式)
分析工具
kinovea - 帮助捕获、放慢速度、研究、比较、注释。
相关工具
DeEgger Embedder
相关文章
CTF中常见图片隐写
隐写术总结
Steganography
misc-stegaBasic
在线分析工具
Forensically, free online photo forensics tools
隐写分析工具
Stegsolve - 隐写图片查看的利器
File Format:文件格式
Data Extract:数据提取
Steregram Solve:立体视图 可以左右控制偏移
Frame Browser:帧浏览器
Image Combiner:拼图,图片拼接
stegsolve使用方法
stegosuite - 一个用 Java 编写的免费和开源的图片隐写工具。使用 Stegosuite,你可以轻松地隐藏图像文件中的信息。
zsteg - 图片隐写信息快速检测工具,可以检测PNG和BMP图片里的隐写数据。
gem install zsteg
zsteg 1.png --all
bannsec/stegoVeritas
pip3 install stegoveritas
stegoveritas_install_depsstegoveritas test.png
OurSecret
writup
[IceCTF 2016] [Stega 100 - Pretty Pixels] Write Up - 知识点 : 图片隐写
Tips
exif 信息
十六进制下搜文件头 89504E47
搜文件头数据块 IHDR
strings 查看可见字符
有些会修改图片宽高,直接010打开改大点试试
2张图试试 xor
crc
http://www.ip33.com/crc.html
png文件分析工具
pngcheck
LSB(英文 least significant bit)即最低有效位,位于二进制数的最右侧。图像的每一个像素点都是由 RGB(红、绿、蓝)三原色组成,每个颜色占8位(如#FFFFFF)。由于修改最后1位对人眼不敏感,这样一个像素点就可以携带3位信息。应用 LSB 算法的图像格式需为无损压缩数据格式,例如图像中的 bmp、png 格式和音频的 wav 格式。
修改十进制中的最低位,颜色看起来几乎没有变化,我们就可以修改最低位的信息,实现隐写。
LSB 隐写专用工具
livz/cloacked-pixel - LSB 隐写和检测
python2 lsb.py extract samples/orig.jpg-stego.png out [email protected]$5w0rD
RobinDavid/LSB-Steganography - 使用最低有效位将隐写文件转换为图像。
python3 LSBSteg.py decode -i <input> -o <output>
相关文章
隐写技巧——PNG文件中的LSB隐写
jpg文件分析工具
JPHS
隐写工具
Silenteye
matthewgao/F5-steganography
# 加密
java Embed lopez.bmp lopez.jpg -c "" -e bin.noise -p pleasechangethispassphrasetoyourown# 解密
java Extract 123456.jpg -p [password]/[空]
FreeFileCamouflage
crorvick/outguess
git clone https://github.com/crorvick/outguess
cd outguess
./configure && make && make install# 加密
outguess -k "my secret key" -d hidden.txt demo.jpg out.jpg# 解密
outguess -k "my secret key" -r out.jpg hidden.txtoutguess -r out.jpg hidden.txt
resurrecting-open-source-projects/outguess
分割每一帧
convert test.gif out.png
分析每一帧的时间间隔
apt install graphicsmagick-imagemagick-compatidentify -format "%s %T \n" test.gif
横向合成
montage flag*.png -tile x1 -geometry +0+0 a.png
# -tile 是拼接时每行和每列的图片数,这里用 x1,就是只一行
# -geometry 是首选每个图和边框尺寸,我们边框为 0,图照原始尺寸即可
# * 的意思指的所有的. png
可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif信息是可以被任意编辑的,因此只有参考的功能。
相关文章
Explainer: how law enforcement decodes your photos - 作者描述了关于数字调查者如何拆解数码照片,寻找关于制造和模型线索的过程。
相关工具
ExifTool - 用于读取,写入和编辑各种文件中的 exif 信息的工具
exiftool xxx.jpg
EXIF信息查看器
ExifShot App
如何为老照片添加 Exif 日期数据?
steghide
apt-get install steghidesteghide info x.jpg # 查看图片中的嵌入信息
steghide extract -sf x.jpg -p password # 提取信息
steghide embed -cf x.jpg -ef xxx.txt -p password # 隐藏信息
PixelJihad - 一个 JavaScript 隐写工具
http://tools.jb51.net/aideddesign/img_add_info
一般是给2张相同的图片的场景
chishaxie/BlindWaterMark
python2 bwm.py decode hui.png hui_with_wm.png wm_from_hui.png
音频隐写通用工具
Detect DTMF Tones - 分析音频录音,并提供一些统计数字、图表和表格,显示数据中包含了哪些 DTMF 音调,以及在哪里。
Audacity - 一款易于使用的多轨音频编辑器和记录器
MP3stego - MP3Stego 将在压缩过程中隐藏 MP3 文件中的信息。
decode.exe -X test.mp3 -P test
morse2ascii - 分析音频中的莫斯电码(虚拟机里需要有声音)
apt-get install morse2asciimorse2ascii xxx.wav
CTF writup
音频隐写 MP3stego+wav隐写+题目 - MP3stego+频谱图+猪圈密码
Tips
将波形进一步转化为 01 字符串试试
音频中的频谱隐写是将字符串隐藏在频谱中,此类音频通常会有一个较明显的特征,听起来是一段杂音或者比较刺耳。
https://deepsound.en.uptodown.com/windows
Silenteye - 针对 wav 文件的隐写
相关工具
如果无虚拟输入源,需要下载安装一个 https://vac.muzychenko.net/cn/download.htm
RX-SSTV
相关工具
dtmf2num
dtmf2num.exe test.wav
Unicode Text Steganography
Unicode Text Steganography Encoders/Decoders
Unicode Steganography with Zero-Width Characters
相关文章
Misc 总结 ----隐写术之电子文档隐写
相关文章
PowerPoint — What data is beneath the surface? - 介绍了几种在ppt中隐藏图片的小技巧
如何从 Microsoft Office 文档中完全删除那些暴露你身份的元数据?
word 隐藏文本
文件->选项->显示->勾选隐藏文字
word、xml 转换
提取信息时,将 word 转化成 xml,查看额外信息
.doc -> 后缀改为.zip -> 解压 ->.xml
相关工具
Hashcat
破解 ppt
相关工具
Advanced Office Password Recovery
PDF 隐写取证工具
PDF Parser
Demo | PDF Parser
jesparza/peepdf
wbStego4.3open - BMP、RLE、TXT、ASC、XML、PDF、HTML 格式都有可能
wbStego4open 会把插入数据中的每一个 ASCII 码转换为二进制形式,然后把每一个二进制数字再替换为十六进制的 20 或者 09,20 代表 0,09 代表 1。这些转换后的十六进制数据被嵌入到 PDF 文件中。查看用 wbStego4open 修改后的文件内容,会发现文件中已混入了很多由 20 和 09 组成的 8 位字节。
pdfinfo - kali 自带
# pdf属性
pdfinfo test.pdf# 查看pdf隐藏文本
pdftotext test.pdf
CTF writup
[XDCTFOWASP](https://www.jianshu.com/p/3aaa632ebfea)
Tips
不可见的图层
Adobe 的元数据格式‘XMP’
Adobe 的 XMP 元数据
PDF 的‘增量生成’功能允许保留用户不可见的前版本信息
白色的文字或背景图
图片背后的文字信息
图层后面被覆盖的另一个图层
不显示的注释层。
相关文章
使用pdfcrack破解PDF密码(Linux)
获取 hash
PDF hash Extractor - instantly
john 的脚本
cd /usr/share/john/
./pdf2john.pl xxx.pdf
相关工具
Hashcat
snow隐写
http://fog.misty.com/cgi/snow
tcpdump 常用
tcpdump -n -r test.pcapng
tshark 常用
tshark -r test.pcap -T fields -e data > out.txt
去重
cat out.txt | uniq > out2.txt
内容见 流量分析
IP 报文在路由间穿梭的时候每经过一个路由,TTL 就会减 1,当 TTL 为 0 的时候,该报文就会被丢弃。
TTL 所占的位数是 8 位,也就是 0-255 的范围,但是在大多数情况下通常只需要经过很小的跳数就能完成报文的转发,
远远比上限 255 小得多,所以我们可以用 TTL 值的前两位来进行传输隐藏数据。
如:须传送 H 字符,只需把 H 字符换成二进制,每两位为一组,每次填充到 TTL 字段的开头两位并把剩下的 6 位设置为 1(xx111111),这样发 4 个 IP 报文即可传送 1 个字节。
TTL隐写中用到四个值:00 111111(63),01 111111(127),10 111111(191),11 111111(255),解密的时候只取前两位,然后转换成ascii
CTF Writeup
[SWPU2019]Network
内容见 USB取证
内容见 磁盘取证
内容见 内存取证
相关文章
相关工具
obsidianforensics/hindsight - chrome历史访问记录取证工具(真是不给人留条活路)
x899/chrome_password_grabber - 从 Chrome 获取未加密的“保存的密码”
m0rv4i/SharpCookieMonster - 从 Chrome 中提取 cookie
djhohnstein/SharpChromium - 用于从 Chromium 系列浏览器中获取 Cookie、访问历史、网站登录凭据等敏感信息的工具
QAX-A-Team/BrowserGhost - 一个抓取浏览器密码的工具
wekillpeople/browser-dumpwd - 使用 sqlite3 lib 转储浏览器密码(chrome,firefox)。
moonD4rk/HackBrowserData - 一款可全平台运行的浏览器数据导出解密工具。
SD-XD/Catch-Browser - This is a crawler password tool
hayasec/360SafeBrowsergetpass - 一键辅助抓取360安全浏览器密码的CobaltStrike脚本以及解密小工具
相关工具
Arvanaghi/SessionGopher - 使用 WMI 提取 WinSCP、PuTTY、SuperPuTTY、FileZilla 和 Microsoft remote Desktop 等远程访问工具保存的会话信息的 ps 脚本
RowTeam/SharpDecryptPwd
uknowsec/SharpDecryptPwd - 对密码已保存在 Windwos 系统上的部分程序进行解析,包括:Navicat,TeamViewer,FileZilla,WinSCP,Xmangager 系列产品(Xshell,Xftp)。
微信
ecat-sec/wechat_info_collect - 针对微信客户端的信息收集工具, 自动化提取本地 PC 所有的微信信息, 包括微信号, 手机号等
Mr0x01/WXDBDecrypt.NET - 微信 PC 版数据库解密工具 .NET 版本
x1hy9/WeChatUserDB - GetWeChat DBPassword&&UserInfo(PC 数据库密码以及相关微信用户信息)
Ormicron/chatViewTool - 基于 Java 实现的图形化微信聊天记录解密查看器
https://github.com/Ormicron/Sharp-dumpkey - 基于C#实现的获取微信数据库密钥的小工具
greycodee/wechat-backup - 微信聊天记录持久化备份本地硬盘,释放手机存储空间。
sn00pyd0g3/wechat-export - 获取微信聊天记录数据库密钥并导出聊天记录,各版本通用。
向日葵
向日葵客户端运行过程中的日志文件保存路径: C:\Program Files (x86)\Oray\SunLogin\SunloginClient\log
向日葵的免安装版会在 C:\ProgramData\Oray\SunloginClient\
默认路径下生成 config.ini
配置文件,配置文件中的 fastcodehistroy 值以 base64 编码形式存储着向日葵历史连接记录
wafinfo/Sunflower_get_Password - 一款针对向日葵的识别码和验证码提取工具
Xmanager
HyperSine/how-does-Xmanager-encrypt-password
JDArmy/SharpXDecrypt - Xshell 全版本密码解密工具
xshell 默认是不开启会话日志记录的
会话日志文件夹路径 : C:\Users\<user>\Documents\NetSarang Computer\6\Xshell\Logs
5.x 会话文件夹路径 : C:\Users\<user>\Documents\NetSarang\Xshell\Sessions
6.x 会话文件夹路径 : C:\Users\<user>\Documents\NetSarang Computer\6\Xshell\Sessions
SecureCRT
HyperSine/how-does-SecureCRT-encrypt-password
FinalShell
jas502n/FinalShellDecodePass - FinalShellDecodePass 加密解密
从 ~/Library/FinalShell/conn/xxxxxx/xxxxxx_connect_config.json 获取保存的密码,填入解密javac FinalShellDecodePass.java
java FinalShellDecodePass
命令行获取finalshell软件保存的公钥
Teamviewer
连接日志文件路径 : C:\Program Files (x86)\TeamViewer\Connections_incoming.txt
MobaXterm
HyperSine/how-does-MobaXterm-encrypt-password
xillwillx/MobaXterm-Decryptor
UltraVNC Server
jeroennijhof/vncpwd
c:\Program Files\uvnc bvba\UltraVNC\ultravnc.ini
vncpwd.exe -k <hash>
TightVNC Server
HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC\Server
HKEY_CURRENT_USER\SOFTWARE\TigerVNC\WinVNC4
RealVNC Server
HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver
WinSCP
HKCU\Software\Martin Prikryl\WinSCP 2\Sessions
anoopengineer/winscppasswd
Remote Desktop Organizer
Hzllaga/RDODecrypt - Remote Desktop Organizer 密码破解
FileZilla
C:\Users\<user>\AppDataoaming\FileZilla\recentservers.xml
Foxmail
Foxmail Password Decryptor
解密 Foxmail 安装目录下的 Storage 目录中的 Account.rec0 文件
Navicat
HyperSine/how-does-navicat-encrypt-password
数据库连接记录 : HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\
当前用户的所有连接记录 : HKEY_CURRENT_USER\Software\PremiumSoft
Mysql
离线解密(mysql5.0)
skip-grant-tables
mysql> select user,password,host from mysql.user;
无需密码直接登录 mysql 执行, 即可拿到完整的密码 hash
将目标 Mysql data 目录下的 user.frm ,user.MYD ,user.MYI 文件托回
本地安装 MySQL Server,装完之后立即停掉服务,将拖回来的那三个文件分别丢到 C:\Program Files\MySQL\MySQL Server\data\mysql 目录下进行替换
修改 Mysql 服务配置文件 C:\Program Files\MySQL\MySQL Server\my.ini 在 mysqld 配置项下添加如下配置,之后启动 Mysql 服务
PLSQL
离线解密
PLSQL Developer 默认连接账密保存位置位于当前用户如下路径的 user.prefs 文件中,账号和密码的加密方式比较简单,只是简单异或
C:\Users\<username>\AppData\Roaming\PLSQL Developer\Preferences\<username>\
C:\Program Files\PLSQL Developer\Preferences\<username>\
C:\Program Files (x86)\PLSQL Developer\Preferences\<username>\
user.prefs 文件需关注 LogonHistory 和 CurrentConnections 下的内容,每一行都代表一条单独的连接记录
将 LogonHistoryCurrentConnections 下的内容原样粘回本地,在代码中替换,解密即可
using System;
using System.Collections.Generic; using System.IO;
public class Program
{
public static void Main() {
var values = new List<int>(); var ret = string.Empty;
string scrambled = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; for (var i = 0; i < scrambled.Length; i += 4)
{
values.Add(Convert.ToInt32(scrambled.Substring(i, 4))); }
var key = values[0]; values.RemoveAt(0);
for (var i = 0; i < values.Count; i++) {
var val = values[i] - 1000;var mask = key + (10 * (i + 1));
ret += (char)((val ^ mask) >> 4); }
Console.WriteLine(ret); }
}
相关文章
比敌人更了解敌人 [ 取证入门 web篇 ]
记一次IIS劫持处置
相关资源
ffffffff0x/LOG-HUB - 日志分析库
临时目录
IIS
IIS 临时压缩文件 : C:\inetpub\temp\IIS Temporary Compressed Files\WEBUI$_gzip_D\WEB\WEBUI\UPLOAD
Linux
/tmp
IIS
C:\Windows\System32\inetsrv\config
NGINX
目录 : /etc/nginx/conf.d/
httpd
目录 : /etc/httpd/conf/
部分内容来自项目 [theLSA/emergency-response-checklist 和 Tide 团队安全文章]
辅助工具
JeffXue/web-log-parser - 开源的分析 web 日志工具,采用 python 语言开发,具有灵活的日志格式配置。
360星图
TurboWay/bigdata_practice - nginx 日志分析可视化
辅助命令
# 统计请求ip
awk '{print $1}' access.log | sort | uniq -c | sort -rn | more# 状态码统计
cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn# 200 ok URL 统计
grep "183.6.56.66" access.log | awk '{if ($9==200) print $1,$7,$9}'# 查看并统计200的状态码及ip(去重后)
cat access.log | awk '{if ($9=200) print $1,$7,$9}'|sort|uniq -c|sort -rn | head -20# sql注入事件
more access.log | egrep "%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec| information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema|order%20by|select"# 扫目录行为
more access.log | egrep "\.zip|\.rar|\.mdb|\.inc|\.sql|\.config|\.bak|/login.inc.php|/.svn/|/mysql/|config.inc.php|\.bak|wwwroot|网站备份|/gf_admin/|/DataBackup/|/Web.config|/web.config|/1.txt|/test.txt|www.zip|www.tar|admin"# webshell事件
more access.log | egrep "eval|%eval|%execute|%3binsert|%20makewebtaski%20|/div.asp|/1.asp|/1.jsp|/1.php|/1.aspx|xiaoma.jsp|tom.jsp|py.jsp|k8cmd.jsp|/k8cmd|ver007.jsp|ver008.jsp|ver007|ver008|%if|\.aar|\.php3|\.php4|\.php5|\.pht|\.phm|\.phml|\.php2|\.phtm|shell.php|\.Php"# 基础攻击事件
more access.log | egrep "/passwd|%00|/win.ini|/my.ini|/MetaBase.xml|/web.xml|/ServUDaemon.ini|ssh|alert|<script>|include|filename|\.sh"
IIS
C:\WINDOWS\system32\LogFiles
: 日志内容包括访问域名时间、ip、访问 url 等信息。
httpd
/etc/httpd/logs/
apache
apache 日志一般分为 access_log
和 error_log
两种,通过查看 httpd.conf
文件查看 apache 日志路径:
grep -i "CustomLog" /etc/httpd/conf/httpd.conf
grep -i "ErrorLog" /etc/httpd/conf/httpd.conf
Linux : /usr/local/apache/logs/
Linux : /var/log/apache2
Windows : apache/logs/
access_log
: 访问日志,记录所有对 apache 服务器进行请求的访问
error_log
: 错误日志,记录下任何错误的处理请求,通常服务器出现什么错误,可对该日志进行查看
nginx
nginx 的日志主要分为 access.log
、error.log
两种,可通过查看 nginx.conf
文件来查找相关日志路径
/var/log/nginx/access.log
: 主要记录访问日志,记录访问客户端 ip 地址、访问时间、访问页面等信息。
/var/log/nginx/error.log
: 主要记录一些错误信息。
tomcat
tomcat 日志默认路径:在安装目录下的 logs 文件夹下
如果在安装中默认修改了日志存储位置,可在 conf/logging.properties
文件中查看
catalina.out
: 运行中的日志,主要记录运行中产生的一些信息,尤其是一些异常错误日志信息
catalina.Y-M-D.log
: 是 tomcat 自己运行的一些日志,这些日志还会输出到 catalina.out
,但是应用向 console 输出的日志不会输出到 catalina.{yyyy-MM-dd}.log
host-manager.xx.log
: 管理日志
localhost.xx.log
: 程序异常没有被捕获的时候抛出的地方,Tomcat 下内部代码丢出的日志(jsp 页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service
类丢出的,日志信息就在该文件!)应用初始化(listener,filter, servlet)未处理的异常最后被 tomcat 捕获而输出的日志,而这些未处理异常最终会导致应用无法启动。
manager.xx.log
localhost_access_log
: 主要记录访问日志信息,记录访问的的时间、ip 地址等信息,也是应急中经常用到的日志信息
weblogic
weblogic 在安装结束后默认开启了日志记录功能,默认配置情况下,weblogic 会有3种日志,分别是 accesslog
, Server log
和 domain log
,WebLogic8.x 和 9 及以后的版本目录结构有所不同。
domain_name/servers/server_name/logs/
$MW_HOME
是 WebLogic 的安装目录
<domain_name>
是域的实际名称,是在创建域的时候指定的
<server_name>
是 Server 的实际名称,是在创建 Server 的时候指定的
<adminserver_name>
是 Admin Server 的实际名称,是在创建 Admin Server 的时候指定的。
WebLogic 9及以后版本:
domain log
: 主要记录了一个 domain 的运行情况,一个 domain 中的各个 weblogic server 可以把它们的一些信息(如:严重错误)发送到 AdminServer 上,AdminServer 把这些信息传递到 domain.log 上.
$MW_HOME\user_projects\domains\<domain_name>\servers\<adminserver_name>\logs\<domain_name>.log
server log
: 主要用于服务器的一般日志记录,比如 weblogic 的启动、关闭、部署应用等相关记录,日志格式:依次为时间戳,严重程度,子系统,计算机名,服务器名,线程 ID.
$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\<server_name>.log
access log
: 主要记录 http 请求,默认情况下日志记录处于启用状态,服务器将 http 请求保存在单独的日志文件中,日志主要记录了 http 请求请求 ip 地址、请求时间、访问页面、响应状态等信息.
$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log
WebLogic 8.x版本:
access log
$MW_HOME\user_projects\domains\<domain_name>\<server_name>\access.log
server log
$MW_HOME\user_projects\domains\<domain_name>\<server_name>\<server_name>.log
domain log
$MW_HOME\user_projects\domains\<domain_name>\<domain_name>.log
jboss
LOG4J 配置默认 Deploy/conf/
如 jboss/server/default/conf/jboss-log4j.xml
sonarqube
日志文件
sonarqube 默认生成的日志只保留7天
-这个看 $SONARQUBE-HOME/conf/sonar.properties
里的 sonar.log.maxFiles
配置
gitlab
相关文章
常见目录
/var/log/gitlab/
/home/gitlab/logs/
日志文件
同步动作(git clone/fetch/pull):command:gitaly-upload-pack
推送操作(git push):command:gitaly-receive-pack
production.log: 该日志位于 gitlab-rails 中,其作用是记录 gitlab 的每次请求的具体信息,包括请求的 URL、ip 地址、请求类型、以及此次请求所涉及的具体代码、SQL 请求以及 SQL 请求消耗的时间。
application.log: 此日志文件位于 gitlab-rails 中,其作用是记录创建用户、创建项目、移动项目等日志。
githost.log: 此日志文件位于 gitlab-rails 中,此日志的作用是记录对 gitlab 服务器的错误请求日志。
sidekiq.log: 此日志文件位于 gitlab-rails 中,gitlab 中可能存在一些任务需要运行很长时间,因此会选择将这些任务在后台执行,sidekiq.log 文件就是用来记录这一类任务的处理信息,此日志文件是一个软连接文件。
gitlab-shell.log: 此日志文件位于 gitlab-shell 中,该日志文件的作用是记录执行 gitlab 命令以及为项目添加 ssh 权限的日志文件
unicorn_stderr.log: 此日志文件位于 unicorn,该日志文件的作用是记录 gitlab 的 web 服务器的相关记录。
gitlab 默认 svlogd 生成的日志只保留30天
使用控制台实时查看 logs
# 查看所有的logs; 按 Ctrl-C 退出
sudo gitlab-ctl tail# 拉取/var/log/gitlab下子目录的日志
sudo gitlab-ctl tail gitlab-rails# 拉取某个指定的日志文件
sudo gitlab-ctl tail nginx/gitlab_error.log
https://docs.gitlab.com/omnibus/settings/logs.html
gitlab 的 [安全审计/审计事件]
功能只有付费版才有
本质上是对 audit_json.log 日志的读取
https://docs.gitlab.cn/jh/administration/audit_events.html
部分内容来自项目 [theLSA/emergency-response-checklist 和 Tide 团队安全文章]
misc
mysql\lib\plugin
目录的异常文件
select * from mysql.func 的异常
mssql 检查 xp_cmdshell 等存储过程
异常数据库登录
数据库用户弱口令
注意 mysqld 配置文件
mysql 日志
/root/.mysql_history
错误日志 ErrorLog
: 记录 Mysql 运行过程中的 Error、Warning、Note 等信息,系统出错或者某条记录出问题可以查看 Error 日志,hostname.err
二进制日志 Binary Log
:包含一些事件,这些事件描述了数据库的改动,如建表、数据改动等,主要用于备份恢复、回滚操作等,记录修改数据或有可能引起数据改变的 mysql 语句,log_bin,默认在数据目录,如 mysql-bin.000001
二进制日志 (binary log) 主要用于数据库恢复和主从复制, 以及审计 (audit) 操作。审计提供了一种用来追踪用户活动的办法。二进制日志记录了 MySQL 数据库的更新变化。二进制日志还记录了每个更新数据库语句的执行时间 。它不会显示没有修改的数据,只有通用查询日志才记录了所有的数据。二进制日志可以最大可能的恢复数据库,因为二进制日志包含备份后所有的更新。
二进制日志不能直接用文本的方式打开, MySQL 提供了相应的查看工具: mysqlbinlog
cd /var/lib/mysql
lsmysqlbinlog -vv --base64-output=decode-rows xxx.xxx
# 如果报错可以加上 --no-defaults
通用查询日志 GenaralQuery Log
: 记录用户的所有操作,记录 mysql 的日常日志,包括查询、修改、更新等的每条 sql;默认关闭,general_log_file
show variables like '%general%'; -- 查看log配置信息
SET GLOBAL general_log = 'On'; -- 开启日志
SET GLOBAL general_log_file = '/var/lib/mysql/mysql.log'; -- 指定日志文件路径
慢查询日志 Slow QueryLog*
: 记录执行时间超过指定时间的查询语句,slow_query_log_file
事务日志:ib_logfile0
mysql 相关命令
status;
show global variables like '%log%';
show global variables like '%gene%';
show master status;
systemmore /mydata/data/stu18_slow.log;
showbinary logs;
showmaster logs;
showbinlog events in 'mysql-bin.000011';
show processlist;
更多 mysql 日志类型可参考 https://www.jianshu.com/p/db19a1d384bc
有哪些IP在爆破?
grep "Access denied" mysql.log |cut -d "'" -f4|uniq -c|sort -nr
爆破用户名字典都有哪些?
grep "Access denied" mysql.log |cut -d "'" -f2|uniq -c|sort -nr
访问审计
追踪是哪个用户执行的操作行为,就需要增加用户访问审计。
MySQL 的连接首先都是要通过 init-connect 初始化,然后连接到实例。利用这一点,通过在 init-connect 的时候记录下用户的 thread_id, 用户名和用户地址实现数据库的访问审计功能。
配置 init-connect 参数
show variables like 'init_connect%';-- 创建审计用的库表
use db_monitor;create table auditlog(thread_id int(11) DEFAULT NULL,
log_time datetime default null,
localname varchar(50) DEFAULT NULL,
matchname varchar(50) DEFAULT NULL,
key idx_log_time(log_time)
);-- 动态调整 init-connect 参数,设置当前登录 ID, 当前登录时间,登录用户名
set global init_connect='insert into db_monitor.auditlog(thread_id,log_time,localname,matchname) values(connection_id(),now(),user(),current_user());';-- 授予普通用户对 auditlog 表的 insert 权限
grant insert on db_monitor.auditlog to 'test'@'localhost';
在配置文件 /etc/my.cnf 中添加 init_connect 参数
init_connect='insert into db_monitor.auditlog(thread_id,log_time,localname,matchname) values(connection_id(),now(),user(),current_user());'
mssql 日志
SQL Server 日志记录了完整的 SQL Server 数据库运行的状态信息,并以消息的形式记录系统级、应用级操作。
可以使用 SQL Server Management Studio 中的日志文件查看器来访问有关在以下日志中捕获的错误和事件的信息:
SQL Server Management Studio 连接 sqlserver 数据库,查看与常规 SQL Server 活动相关的日志。
登录到 SQL Server Management Studio,依次点击 管理--SQL Server 日志
exec xp_readerrorlog
object Explorer-Management-SQL Server logs-view-logs
SQL Server 2008: R2\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG
查询最近一次启动 sqlserver 时间:
select sqlserver_start_time fromsys.dm_os_sys_info;
历史 sql 记录查询:SQLServer 并没有这样的实现,只有 sys.dm_exec_query_stats
缓存了一部分 (sql server 服务开启后执行的语句,某些不被缓存执行计划的语句并不记录)。
Sqlserver 开启日志审计功能可参考 https://blog.51cto.com/gaowenlong/1908381
xp_cmdshell 在 mssql2005 之后的版本中是默认禁止的,查看 xp_cmdshell 是否被启用。
Exec master.dbo.xp_cmdshell 'whoami'
Oracle 日志
查看日志 : SQL> show parameter dump
查看 v
查询 bdump 参数,来找到 alert 日志位置 : show parameter background_dump_dest
Oracle 日志文件分为两种:重做日志文件(redo log file)、归档日志文件,其中重做日志文件主要记录了数据库的操作过程,可以在进行数据库恢复时,将重做日志文件在还原的数据库上进行执行,以达到数据库的最新状态。
Oracle 数据库默认只是对数据库的登录情况记录,但是不对数据库的查询记录统计,可通过 show parameter audit
,查看审计功能是否开启,若 audit_sys_operations 值为 DB。
开启审计功能
alter system set audit_sys_operations=TRUEscope=spfile;
alter system set audit_trail=db,extendedscope=spfile;
重启实例即可,开启后会把审计内容记录到 sys 库的 AUD$
表中
数据库连接日志
cat /opt/oracle/diag/tnslsnr/localhost/listener/trace/listener.log
关注微信公众号学习更多技术。
成为会员可以看所有视频教程,长期更新。
每一个月都会有视频教程出来,只要我一直在安全行业,教程就一直会更新下去,同时也欢迎各位前来提意见。
联系作者:
github github.com/haidragon