Skip to content

Latest commit

 

History

History
633 lines (458 loc) · 24.7 KB

取证.md

File metadata and controls

633 lines (458 loc) · 24.7 KB

取证

注 : 笔记中拓扑图 xmind 源文件在其图片目录下


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


大纲


操作系统取证

Android

Windows

通用取证工具

系统日志

DNS

动作记录

key

蓝牙

无线

NTFS 记录

Linux


文件取证

文件取证常用工具

  • binwalk - 固件分析工具
    • kali 自带, 递归提取 binwalk -Me xxx.bin
  • foremost - 文件分离工具
    • kali 不一定自带, foremost -i 1.png
  • strings
    strings start.bin | grep -a "pass"
    strings .* | grep -a "root"
    strings -o start.bin 		# 获取所有 ASCII 字符偏移
    

CTF writup

压缩包

相关文章

爆破压缩包

相关工具

  • 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 rarcrack
    
    rarcrack aaa.rar --threads 50 --type rar
    rarcrack aaa.7z --threads 50 --type 7z
    
  • cRARk for 7-Zip
  • hashcat、John the Ripper
  • 7z2hashcat - 从受密码保护的.7z存档(和.sfx文件)中提取信息 bash # 7z2hashcat.pl 比 7z2john.pl 好用

伪加密

  • 50 4B 03 04 为数据区头文件标记,这里 deFlags 位改为 09 00 可变成伪加密
  • 50 4B 01 02 为目录区头文件标记,后面的 deFlags 是加密标记,将 00 00 改为 09 00 可变成伪加密
  • 50 4B 05 06 为目录区结束文件标记

明文攻击

相关文章

相关工具

CRC32碰撞


视频

Deegger_Embedder

相关工具


图片

相关文章

在线分析工具

图片隐写通用工具

  • Stegsolve - 隐写图片查看的利器
  • stegosuite - 一个用 Java 编写的免费和开源的图片隐写工具。使用 Stegosuite,你可以轻松地隐藏图像文件中的信息。
  • zsteg - 图片隐写信息快速检测工具
    gem install zsteg
    zsteg 1.png --all
  • PixelJihad - 一个JavaScript隐写工具

writup

Tips

  • exif 信息
  • 十六进制下搜文件头 89504E47 搜文件头数据块 IHDR
  • strings 查看可见字符
  • 有些会修改图片宽高,直接010打开改大点试试
  • 2张图试试 xor

LSB隐写

LSB(英文 least significant bit)即最低有效位,位于二进制数的最右侧。图像的每一个像素点都是由 RGB(红、绿、蓝)三原色组成,每个颜色占8位(如#FFFFFF)。由于修改最后1位对人眼不敏感,这样一个像素点就可以携带3位信息。应用 LSB 算法的图像格式需为无损压缩数据格式,例如图像中的 bmp、png 格式和音频的 wav 格式。

LSB 隐写专用工具

相关文章

exif

可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif信息是可以被任意编辑的,因此只有参考的功能。

相关文章

相关工具


音频

音频隐写通用工具

  • Detect DTMF Tones - 分析音频录音,并提供一些统计数字、图表和表格,显示数据中包含了哪些 DTMF 音调,以及在哪里。
  • Audacity - 一款易于使用的多轨音频编辑器和记录器
  • MP3stego - MP3Stego 将在压缩过程中隐藏 MP3 文件中的信息。

CTF writup

sstv 音频图像


电子文档

相关文章

Office

相关文章

word 隐藏文本

  • 文件->选项->显示->勾选隐藏文字

word、xml 转换

  • 提取信息时,将 word 转化成 xml,查看额外信息
  • .doc -> 后缀改为.zip -> 解压 ->.xml

爆破Office加密

相关工具

破解 ppt

  • 相关工具
    • Advanced Office Password Recovery

PDF

PDF 隐写取证工具

  • PDF Parser
  • jesparza/peepdf
  • wbStego4.3open
    • wbStego4open 会把插入数据中的每一个 ASCII 码转换为二进制形式,然后把每一个二进制数字再替换为十六进制的 20 或者 09,20 代表 0,09 代表 1。这些转换后的十六进制数据被嵌入到 PDF 文件中。查看用 wbStego4open 修改后的文件内容,会发现文件中已混入了很多由 20 和 09 组成的 8 位字节。

CTF writup

爆破PDF加密

相关文章

获取 hash

相关工具


流量分析


USB取证


蓝牙取证


磁盘取证


内存取证


应用程序取证

远程连接工具取证

向日葵

  • 向日葵客户端运行过程中的日志文件保存路径: C:\Program Files (x86)\Oray\SunLogin\SunloginClient\log
  • 向日葵的免安装版会在 C:\ProgramData\Oray\SunloginClient\ 默认路径下生成 config.ini 配置文件,配置文件中的 fastcodehistroy 值以 base64 编码形式存储着向日葵历史连接记录
  • 向日葵软件在渗透测试中的应用
  • wafinfo/Sunflower_get_Password - 一款针对向日葵的识别码和验证码提取工具

xshell

  • xshell 默认是不开启会话日志记录的
  • 会话日志文件夹路径 : C:\Users\<user>\Documents\NetSarang Computer\6\Xshell\Logs
  • 会话文件夹路径 : C:\Users\<user>\Documents\NetSarang Computer\6\Xshell\Sessions

Teamviewer

  • 连接日志文件路径 : C:\Program Files (x86)\TeamViewer\Connections_incoming.txt

浏览器取证

工具


WEB取证

文章


中间件配置

临时目录

  • 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 团队安全文章]

辅助工具

IIS

C:\WINDOWS\system32\LogFiles : 日志内容包括访问域名时间、ip、访问 url 等信息。

httpd

  • /etc/httpd/logs/

apache

apache 日志一般分为 access_logerror_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.logerror.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 logdomain 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

数据库取证

部分内容来自项目 [theLSA/emergency-response-checklist 和 Tide 团队安全文章]

misc

  • mysql\lib\plugin 目录的异常文件
  • select * from mysql.func 的异常
  • mssql 检查 xp_cmdshell 等存储过程
  • 异常数据库登录
  • 数据库用户弱口令
  • 注意 mysqld 配置文件

mysql

mysql 日志

  • 错误日志:默认开启,hostname.err
  • 查询日志:记录用户的所有操作。默认关闭,general_log_file(常见 getshell 手法)
  • 慢查询日志:记录执行时间超过指定时间的查询语句,slow_query_log_file(慢查询 getshell)
  • 事务日志:ib_logfile0
  • 二进制日志:记录修改数据或有可能引起数据改变的 mysql 语句,log_bin,默认在数据目录,如 mysql-bin.000001
  • ErrorLog : 记录 Mysql 运行过程中的 Error、Warning、Note 等信息,系统出错或者某条记录出问题可以查看 Error 日志;
  • GenaralQuery Log :记录 mysql 的日常日志,包括查询、修改、更新等的每条 sql;
    show variables like '%general%';        -- 查看log配置信息
    SET GLOBAL general_log = 'On';          -- 开启日志
    SET GLOBAL general_log_file = '/var/lib/mysql/mysql.log';  -- 指定日志文件路径
  • Binary Log :二进制日志,包含一些事件,这些事件描述了数据库的改动,如建表、数据改动等,主要用于备份恢复、回滚操作等;
  • Slow QueryLog* :记录 Mysql 慢查询的日志;
  • 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

mssql

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

Oracle 日志

  • 查看日志 : SQL> show parameter dump
  • 查看 v$diag_info 系统视图 : SQL> select * from v$diag_info;
  • 查询 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