Windows取证

渗透第十九章

Posted by Sprint#51264 on March 30, 2021

引言

学习内容源于安全牛苑房弘老师讲的课程

FANGHONG.YUAN@163.COM forensic investigations 法庭取证调查 事件响应调查

概念

司法调查,事件响应人员将黑客、渗透测试者进入系统之后做了什么,留下什么证据,行为轨迹进行梳理还原

渗透测试者有必要留下自己的痕迹以证明没有进行恶意行为或者攻击行为,没有破坏没有下载内容

首页被篡改、公司被入侵,然后就要登录服务器查看攻击者及逆行了什么操作,行为轨迹,有没有留下后门,更多倾向于技术型

关注层面:数字取证/计算机取证/电子取证 智能设备、计算机、手机平板、IOT、有线及无线通讯、存储数据

攻击目的

  • 炫耀型

    上传黑页、到此一游.txt

  • 政治目的型

  • 利益链型

    偷数据、爬库,该连接,勒索,挖矿 (首要目标是止损)

  • 抓鸡型
  • DDOS型
  • 蠕虫感染型

    (内网传播,conficker,wannacry)

  • 持续性

    (长期潜伏式攻击、APT)

溯源线索

  • 了解黑客目的,针对性强,站在攻击者的角度,不要盲目地全部扫一遍

  • 从流量侧发现线索

    • Webshell操作

      webshell文件查找 web日志审计,连接webshell的IP、根据该IP遍历所有日志 漏洞利用成功,根据时间线查,了解第一次连接webshell时间

    • 异常的外联(通过IOC指标关联)

      漏洞利用成功(修复漏洞后尽快上线,确定没有横向的动作)

    • 横向渗透工具

  • 外界情报

    听说某公司出局(某系统失陷),做全盘的检查

  • 业务卡顿、服务受影响

  • 安全监控设备

检测到恶意文件

  • 上传到沙箱进行检测
  • 检测文件哈希值

通用原则

  • 维护证据完整性

    • 数字取证可以无限数量拷贝进行分析不会被污染破坏
    • 数字HASH值可以验证数据完整性
  • 维护监管链

    • 物理证据取证需要放入证物袋,每次取出都要又严格记录

    • 数字证物原始版本写保护,进行主拷贝

  • 取证分析全部过程记录文档

数字取证座右铭

  • 不要破坏数据现场

    很难实现,入侵者可能修改命令内容,一旦运行系统的某个命令ls,就再释放一个木马,或者使用某个命令的时候,木马判断已经被发现,自动销毁服务器中的数据

    所以要使用U盘操作系统更加安全,但是U盘申请使用计算机内存也会使其数据发生改变

  • 寄存器、CPU缓存、I/O设备缓存等易失性数据几乎无法获取(一旦断电关机或者误操作就发生变化,丢失)

  • 系统内存是主要的易失性存储介质取证对象,不修改无法获取其中的数据

  • 非易失性存储介质通常使用完整镜像

    拷贝保存(U盘、光盘、硬盘)

    镜像不同于文件备份(复制拷贝)

    把硬盘每个磁道的每个扇区的磁极指向标识数据0还是1完整地复制

    恶意攻击者可能在硬盘上使用过某个软件,使用后删除来掩盖自己的使用行为

    即使文件已经被删除,但是在扇区里还占有一定的空间,默认的操作系统上的删除,在磁盘里只是在硬盘分区表开头(第一个字符)做一个标记,标记该文件是删除状态,可以用来存储其他数据,但实际上文件所有内容仍旧在硬盘空间中,可以通过数据恢复工具对删掉的数据进行恢复。

  • 选择正常关机还是直接拔掉电源

    (如果发现服务器被入侵要怎样关机)

    如果直接拔电就会造成保存在内存中的数据丢失

    但是恶意程序如果发现关机行为可能把自己清除抹除犯罪证据,或者对硬盘数据进行擦除

    但是建议直接拔电源,尤其是Linux系统现在使用的是ExT4文件系统(日志型文件系统),可以通过日志对文件内容进行修复

  • 证据搜索

    如今的文件动辄几百G,难以搜索

    • 原数据

      保存下来的数据

    • 信息

      信息分析组成信息链

    • 证据

      信息提炼,攻击轨迹

取证科学

  • 通过取证还原黑客入侵的轨迹
  • 作为渗透测试和黑客的攻击区分标准

    有没有拿走数据

    • 世纪佳缘事件
    • 印象笔记渗透测试事件
      struts漏洞盛行,猪猪侠渗透对象是印象笔记,发现测试服务器上有struts漏洞,先从中国印象笔记来渗透,最后渗透到美国印象笔记
    

取证方法

  • 活取证

    发现服务器被攻击,在未关机时就进行最新鲜的取证

    • 抓取文件metadate(元数据)、创建时间线、命令历史、分析日志文件、HASH摘要、转存内存信息(最好不要再使用该机器上的任何命令) 建议新建用户,主目录下可能有病毒程序,打开终端产生病毒
    • 建议使用未受感染的干净程序(用U盘上的程序进行取证)
  • 死取证

    • 关机之后制作硬盘镜像、分析镜像

取证工具

  • 内存dump工具(活取证)

    内存是暂时存储程序以及数据的地方,当我们使用WPS处理文稿时,当你在键盘上敲入字符时,它将先被存入内存,当你选择存盘时,内存中的数据才会被存入硬盘

    要把内存中所有的信息拿出来保存一份

    • windows:Dumpit

      内存文件比实际文件稍微大一点,为raw格式

      readme.txt:建议使用USB设备运行而不是直接拷贝,拷贝文件会破坏文件完整性,二是拷贝进去的程序也会受到感染

      保存的是实时的内存信息

      双击就可以使用

      [图片02]

  • volatility(易失性的)

    kali一些版本上没有自带这个软件,需要自行安装,可能会报错,一般缺失的是Crypto插件和distorm3插件,根据错误信息自行下载

    • 常用命令

      volatility imageinfo -f xp.raw #文件信息,关注profile,查出镜像文件操作系统信息

      volatility -f second.raw --profile=Win7SP1x64 hivelist查看所有注册表信息

      volatility -f xp.raw --profile =WinXPSP3x86 hiveudmp -o 0xe124f8a8 #按虚拟内存地址查看注册表信息

      volatility -f xp.raw --profile=WinXPSP3x86 printkey -K "SAM\Domains\Account\Users\Names" # 用户账号

      volatility -f xp.raw --profile=WinXPSP3x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" #最后登录的用户

      volatility -f xp.raw --profile=WinXPSP3x86 userassist #正在运行的程序、运行过多少次、最后一次运行时间等

    • 系统信息dump

    volatility -f second.raw imageinfo

    [图片03]

    能查看到是什么系统,在以后的操作过程中会需要指定系统

    检测出多个内存文件格式,说明几个版本之间的内存文件类似

    • 进程dump

      使用dump保存内存文件之后,使用volatility对其进行分析。内存中保存的是当前系统正在运行的信息。其中更多的是核心的内容、正在运行的程序的信息。

      信息传递过程中是加密的,但是传到服务器之后就是解密之后的数据,所以在服务器内存之中很可能就有解密后的信息,假如是淘宝,很可能就能在内存之中看到正在浏览的用户的账号密码。

      volatility -f second.raw --profile=Win7SP1x64 pslist #查看进程信息(查找可疑进程、名称奇怪)

      [图片04]

      volatility -f second.raw --profile=Win7SP1x64 pstree#能更直观的显示进程与进程之间的关系,进程树

      知识补充:Linux中的程序和进程,PID和PPID 程序是静止的,程序就是磁盘上的一个文件 进程是一个正在执行的程序的实例,进程是动态的 一旦程序被操作系统加载进内存,那么程序就成为了进程

      [图片05]

      如果是对进程表中的某一个进程感兴趣的话可以使用:

      volatility -f second.raw --profile=Win7SP1x64 memdump -p(进程ID) xxxx -D XXXX#提取某个具体进程的内容到某个已有目录

      (在进程信息中很可能有恶意程序自己的函数或者调用信息的关键字,有哪些动作)

      stings 2012.dmp grep xxxx #查找关键字

      PID(process ID):PID是程序被操作系统加载到内存成为进程后动态分配的资源,每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的

      PPID(parent process ID):PPID是程序的父进程号

      一个进程创建的另一个新进程称为子进程、相反,创建子进程的进程就称为父进程,对于一个普通的用户进程,它的父进程就是执行它的哪个Shell,对于linux,shell就是bash

    • 注册表dump

      windows注册表信息也缓存在内存之中,存放注册表信息的文件称为hive(蜂巢),由很多个hive组成了注册表信息,安装的软件很多都会修改注册表,病毒也很可能修改注册表,通过查询内存也能知道大量计算机的信息,能得到用户账户名和哈希值

        SAM 账户信息
        SOFTWARE 安装的软件信息
      

      volatility -f second.raw --profile=Win7Sp1x64 hivelist #查看内存中的蜂巢文件(账户信息SAM,已经安装的软件信息SOFTWARE、不止包括后安装的第三方软件信息,还有自带的系统应用的软件信息(画图、计算器…))、当然也有绿色软件不在注册表中留下信息,所以就无法在注册表中查到对应信息

      [图片06]

      volatility -f second.raw --profile=Win7SP1x64 hivedump -o (内存地址)

      [图片07]

      因为查看的是内存文件,所以应该使用hvie的内存地址来进行dump,计算机寻址是使用虚地址,要输入内存的虚地址(virtual)

      虚地址和物理地址

      注册表的信息都是通过内存信息查看的,实际检测的是内存文件而不是注册表文件,要查看所有信息就要指定内存地址,蜂巢把自己加载到内存地址里,某个地址起存什么什么信息,哪个空间放什么信息,所以如果dump一个蜂巢中的所有信息,就要指定一个地址即存放对应hive文件内存的起始地址

      虚拟地址的长度可能不一样,如果是64位操作系统,那么可寻址的总长就是2^64,如果是32位那么长度就是2^32

      停止滚屏:ctrl+C 暂停:ctrl+S 解锁:ctrl+Q

    • 用户dump

      既然是可以把注册表hive文件内容进行dump,那是否可以直接把注册表中的键值具体路径具体进行提取

      随着系统的使用,信息越来越多,注册表表内容很多,一时dump不完

      注册表可以理解是数据库存储结构,只要知道它的键值,指定账户在注册表中的存储路径,就能知道账户信息

      注册表编辑器:regedit

      默认情况下SAM节点操作系统管理员也无法查看,可以赋予权限进行查看

      用本系统查看的时候(win7),可以发现,默认system有权限直接查看SAM信息,但是管理员默认无法读取SAM信息,可以运行get system得到system权限,如果没有system权限还要先进行本地提权然后在进行查看

      不过值得注意的是,如果在SAM目录处赋予权限,只是对SAM这个路径有权限,对于其中的子键还是没有权限,所以在赋予权限的时候要选择对其目录下的其他键值也有高级权限,要点击高击设置一项,配置高级权限的时候选择继承

      然后在有效权限中输入当前用户名对权限进行查看。(可删可写)

      如此一来也就是说可以通过注册表查找到用户的相关信息,但是有内存文件的话就有注册表的缓存内容,可以通过关键字查找,即关键路径查找键值内容。

      volatility -f second.raw --profile=Win7SP1x64 printkey -K "Sam\Domains\Account\Users\Names"

      [图片01]

      在原机器上查有多出来的账号但是这里没有查到是因为对应的服务没有使用,所以账号没有加载到内存中

      也就是说只要知道了路径,就可以查注册表中任意的键值。

      如果想知道在进行dump时登录的是哪个账户

      volatility -f second.raw --prfile=Win7SP1x64 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

      [图片08]

      显示的信息可能有些多,需要根据路径中的关键字判断是系统用户还是真实用户

      其中last update并不是用户最后登录的时间,而是最后一次对用户进行更改的时间

      如果想知道最后登录的是哪个用户

      volatility -f second.raw --profile=Win7SP1x64 userassist

      可以显示其运行过哪些程序、正在运行什么、运行了多少次、最后一次运行时间

      [图片09]

    • 密码HASHdump

      用户账号加密之后密文的哈希值也放在注册表里放在内存中,得到密码HASH值就可以使用

      volatility -f second.raw --profile=Win7SP1x64 hashdump -y system -s SAM# -y指的是SYSTEM注册表键值对应的的内存虚地址,-s指的是SAM注册表键值对应的内存虚地址

    • 命令行历史

      使用cmd打开命令行窗口的历史

      volatility -f second.raw --profile=Win7SP1x64 cmdscan

      可以看到对应的进程id

      [图片10]

    • 网络连接

      在操作系统被植入木马后通常会连接C2服务器,通过查看网络连接可以发现异常连接行为

      volatility -f second.raw --profile=Win7SP1x64 netscan

      [图片11]

      (包括监听中、关闭、已建立的)

    • IEhistory

      可以看到下载了什么程序、访问了哪个url、由哪个用户发起的请求(可以用来定位人),只要是启动了IE的或者间接打开了IE的都会被记录(如果有恶意连接某个黑客网站下载某个恶意的exe文件就可以调查)

      volatility -f second.raw --profile=Win7SP1x64 iehistory

      [图片12]

    • Firefoxhistory

      http://downloads.volatilityfoundation.org/contest/2014/DaveLasalle_ForensicSuite.zip

      volatility -f second.raw --profile=Win7SP1x64 firefoxhistory#查看firefox历史记录

    • USN日志记录插件

      ExT是日志记录系统,但是NTFS也有USN日志记录,可以记录分区中内容的变化,可以追踪硬盘内容的变化(但是不记录具体内容,指文件中写的内容,只会记录文件状态(大小,写入删除))

      https://github.com/tomspencer/volatility/tree/master/usnparser

      volatility -f second.raw --profile=Win7SP1x64 usnparser

      临时文件日志文件

      可以看到所有文件状态改变的动作

      生成的信息量很大,可以进行导出做成excel进行筛选,导出使用的参数为

      volatility -f second.raw --profile=Win7SP1x64 usnparser --output=csv(文件格式) --output-file=usn.csv(文件名)

    • Timeline(时间线)

      usn只从硬盘读写方面勾画活动情况

      timeliner从多个位置收集大量信息活动信息,尽最大能力把这台主机上发生过什么事情、做过什么操作进行勾画

      volatility -f 7.raw --profile=Win7SP1x64 timeliner

      所有的活动

      [图片13]

      什么时间、产生什么进程、使用什么文件、进程ID是多少

  • 内存取证发现恶意软件

    https://github.com/volatilityfoundation/volatility/wiki/Memory-Samples

    https://code.google.com/archive/p/volatility/wikis/SampleMemoryImages.wiki

    资源失效

    可以自行感染病毒然后运行dumpit进行取证

    • 先查看imaginfo、设置profile
    • 查看进程 pstree
    • 查看网络连接connsacn不支持win7
    • 查看netscan
    • 查看具体进程信息 getsids -p(进程) svchost.exe默认不具备system权限 如果是查看多个进程就用逗号(,)分隔
    • 查看dlllist -p(进程) exe可能会调用一些内部的库或者是外部的库 有一些dll文件可能不是操作系4系统默认自带的,而是外部投放进来的

      分两种,要么dll特别多,要么dll特别少,一种是为了减小体积而调用系统自带的dll实现自身功能,一种是如果全部调系统自身的dll那么兼容性就会变差,不同系统之间的dll文件很多是不一样的,所以直接把所需要的dll加载到恶意程序里,但是程序的体积会特别大

    但是只是给一些入侵的线索、蛛丝马迹,并不能直观的判断依据

    • 使用malfind -p xxx -D xxx

      该模块将可疑的进程进行记录

    然后可以放到含有杀毒软件的机器上

活取证和死取证

  • 从内存还原文字

    procdump程序

    https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx

    strings程序windows版 https://technet.microsoft.com/en-us/sysinternals/bb897439.aspx

    procdump -ma notepad.exe notepad.dmp

    将某一个进程的所有相关文件保存下来,m内存,a->all

    strings只能查看英文字符查看连续三个以上的ascii字符,适用于很多种文件(word、excel、powerpoint),或者是将邮件进程dump下来然后进行读取就能查看内容,也就是说适用于各种文字处理工具

    可能存在某些文字记录程序中包含了用户的账户密码,就可以dump内存查看

    strings xxx.dmp > xxx.txt

    (使用查找工具查找文件中包含的文字)

  • 从内存还原图片

    远程桌面、画图工具、

    • 画图截屏

      进行图片操作的时候dump内存内容中应该是含有图片的数据的,那嫩不能使用方法还原图片 (可以一定程度上进行还原、并不能原模原样还原)

      截图之后进行保存然后使用画图工具进行编辑、进程中就有画图进程

      procdump -ma mspaint.exe mspaint.dmp

      将内存保存为dmp文件

    • 远程桌面连接

      使用远程桌面尝试连接一台机器

      远程连接的所有操作都是在被操作的机器上产生的,其所做的只是把操作的图像传回自己的机器,那么有图像信息或许就可以使用工具将图像进行还原

      产生一个新的进程mstsc.exe

    volatility

    在kali中使用

  • 从内存还原明文密码

    该进程存放windows明文密码 procdump -ma lsass.exe lsass.dmp

    存放密码相关的进程叫做lsass.exe进程,每台windows电脑上都有,system权限

    mimikatz sekularlsa模块 minidump lsass,dmp sekular::logonPasswords

死取证

硬盘镜像

  • 使用kali光盘启动计算机创建硬盘镜像文件

    Open Evidence #红色标识已经删除得文件

    使用kali光盘启动计算机,用工具给机器硬盘做一个镜像,镜像文件需要有一个足够大的空间来储存,u盘或者外挂硬盘

    • Dc3dd
    • Dcfldd

    在目标系统上从光驱或者u盘启动kali取证模式,没有更改原系统内存,然后使用guymager工具对硬盘进行完整镜像制作,转到足够大的空间 。

    计算机取证技术参考数据集合:

    • http://www.cfreds.nist.gov/Controlv1_0/control.dd

    上链接是电子取证镜像文件

取证工具

  • Autopsy

    webserver+浏览器客户端架构

    根据提示建立新的case(案情)

    然后选择文件镜像,将已经生成的镜像放进去

    • 导入内容与模式模式

      • Disk(整个硬盘)
      • Partition(硬盘分区)

      • move

        将整个镜像文件加载到autopsy中成为evidence locker(证据locker,被写入的文件无法再被更改),如果过程中突然断电可能对文件造成损坏

      • copy

        复制一份然后加载到autopsy中

      • symlink

        链接模式,如果源文件移动可能发生错误

    • 数据完整性

      [图片14]

      • ignore

        不比对文件md5值

      • calculate

        重新计算文件的md5值

      • Add the following MD5 hash value for this image

        输入一个MD5值然后进行对文件重新进行计算然后进行比对,从而检查文件完整性

      • file system details

        自动检测镜像文件的分区以及文件系统

    • ADD成功

      [图片15] [图片16]

      可以选择下方提示的多种功能

    • 分析

      [图片17]

      点击文件分析可以查看到镜像中的文件信息(什么时候写入过、什么时候创建与修改、文件大小)

      点击对应文件能打开查看内容

      其中被删除的文件被红色标记。

      [图片18]

      还能查看文件ASCII报告信息 能以十六进制方式打开文件

    • 更多功能

      自行了解

    • 使用完成关闭之后文件信息就保存在autopsy数据库中

  • Extundelete

    • 适用于ext3、ext4文件系统的反删除工具
    • Extundelete [device -file] –restore-file [restore location]

    关于ext系统

    多用于linux下的一种日志型文件系统,如果在其中删除了文件,可以还原对应文件

    使用方法是 Extundelete 设备名(例如/dev/sda) –restore-file 恢复文件路径

    • 在Linux中设备的名称如下

      C.4. Device Names in Linux 第一个软驱/dev/fd0 第二个软驱/dev/fd1 第一块硬盘/dev/sda 第二块硬盘/dev/sdb(类推) 第一个SCSI CD-ROM/dev/scd0,可以用/dev/sr0

      其中,sda1、sda2是sad这块硬盘上的两个分区

      [图片19]

  • iPhone Backup Analyzer

    能分析iTunes生成的iPhone手机备份文件、并非image文件

  • Foremost(美国政府开发)

    从内存dump中恢复文档图片(并不是图像,而是原来就存在磁盘中某个位置中的某个图片加载进内存),支持raw、dd(硬盘镜像格式)、iso(光盘镜像格式)、vmem(虚拟内存格式)、doc等格式

    kali2019 需要自己重新安装一下这个程序

    • 使用方法
      foremost -t jpeg,gif,png,doc -i 7.raw
    
      [图片20]
    
      处理完成之后会在当前目录下生成一个output文件夹
    
      在该文件夹内存放着提取到的所有图片文件,以及一个对所有文件详细信息进行描述的txt文档
    

网络取证(恶意流量分析)

使用流量分析可以还原历史发生的具体情况,如果在主机上进行取证,只能取到主机当前的运行状态,并不能知道历史的状态

基本架构及方法概念

  • TCP/IP四层模型

    每一层最主要关注的点

    • 数据链路层
      MAC地址
    
    • 网络层

      源IP目的IP

    • 传输层

      端口

    • 应用层

      协议

  • HTTP协议

    大多数攻击都是HTTP协议

    • 包结构

      请求包内容包括:请求头、请求行、请求体三部分

      返回包也是同样的结构

      请求和返回的头与体之间都有一个空行,以空行区分请求头和请求体

    • 重要字段

      HOST字段:表示域名,但是HOST可以被修改 X-Forwarded-For(XFF): 访问者真实IP

      XFF头代表客户端,也就是HTTP请求段真实IP,只有在通过了HTTP代理或者负载均衡服务器时才会添加该项,其一般格式为:X-Forwarded-For:client1, proxy1, proxy2

      其中的值通过”逗号+空格”的方式来把多个IP地址区分开,最左边(client1)是最原始客户端的IP地址,代理服务器每成功收到一个请求就把请求来源IP地址添加到右边,但是XFF头是可以伪造的,通常情况下最右边的IP可信度比较高

      如果使用透明代理服务器,XFF头中就是代理服务器的IP

      值得注意的是,一定要清楚用户那些机器是负载均衡服务器,自己拦截的是哪层负载均衡服务器的包,否则容易误封影响业务。

      User-Agent: 用户客户机的信息浏览器的信息,但是能被随意修改

      主要作用是来判断使用的工具 nmap的user-agent是nmap.org awvs antiword python脚本不自定义UA的话就会有py标志 baiduspider百度爬虫

      如果看到返回包中有gzip标识,返回体就全都是乱码,这时候只要追踪HTTP流就可以查看到明文内容(自动gzip解压缩操作)

      状态码: 通过状态码无法绝对判断是否攻击成功(无讲解)

      如果文件内容都加密,文件名奇异,很有可能是webshell

    [图片21]

除了HTTP协议之外的协议攻击

  • SMB协议
* 简介

    SMB协议是基于NetBIOS的文件共享协议

* 在流量中明文传输
* 告警板会提示执行了什么命令,直接搜索关键字
  • 侧网架构攻击

    • 从负载均衡服务器进入内部,攻击地址是负载均衡服务器
    • 从内部链接外部,通过代理服务器向外连接
    • 注意web服务器对数据库的sql注入,判断是不是正常业务(如果长时间没有交互,但是突然有一天该web服务器向数据库发起sql注入查询,可能是失陷)

漏洞利用或攻击手法流量分析

分析流量中的攻击手法,增强对恶意流量的识别能力(从普通到一般)

  • antsword(蚁剑流量分析)(默认编码器)

    用过蚁剑但是没有分析过蚁剑流量 [图22]

    • 使用post传输
    • UA头:antSword/(版本)(但是可以修改)
    • 包体passwd=xxxxx
    • 内容url编码

    解码后 [图23]

    • @ini_set()函数,不展示报错信息
    • @set_time_limit(0)
    • @asenc()
    • 返回包中有路径信息
  • Cknife(C刀)

    不同版本之间有不同的特征,不同语言之间的脚本也有不同的特征

    • Cknife=1
    • acion=A\B\C\D(action不同实现的功能不同) [图24]
  • EW(内网穿透)earth worm

    • EW 是一套便携式的网络穿透工具,具有 SOCKS v5 服务架设和端口转发两大核心功能。该工具能够以 “正向”、“反向”、“多级级联” 等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内, 强烈推荐使用。

  • Fastjson漏洞利用 [图25] fastjson是一个java库
    • @type,后续的内容会根据手法不同而改变
  • Godzilla

    • 概述

    哥斯拉是一个基于流量、HTTP全加密的webshell管理工具相对于蚁剑,冰蝎;哥斯拉具有以下优点。

    全部类型的shell均过市面所有静态查杀

    流量加密过市面全部流量waf

    Godzilla自带的插件是冰蝎、蚁剑不能比拟的

    运行环境是JAVA

    • 特征

    包体中都有pass=字样

  • phpstudy后门 [图26]
    • 没有明显特征
    • 但是在Accept-charset中有base64编码特征

      属性规定服务器用哪种字符集处理表单数据。 Accept-charset的值常为 UTF-8 - Unicode 字符编码 ISO-8859-1 - 拉丁字母表的字符编码 gb2312 - 简体中文字符集

    • 返回包中以明文展示
    • 也就是说,保重没有明显的攻击脚本,但是在某个头中出现了不该出现或者不熟悉的数据格式,很可能就是攻击行为
  • Shiro漏洞

    [图27]

    • 向rememberMe中传值,该值比正常值长
    • 使用Shrio在线解密

      无回显攻击

    • 有回显攻击

  • Structs2-045

    [图28]

    • content-type字段值很长,并且其中有很多js代码
    • 返回包中有回显
  • thinkphp5.0.23

    payload可能在url中也可能在包体中

    • _method=
    • 返回包被使用gzip方式压缩,追踪http流可以自动解压缩
  • tomcat

    • PUT上传漏洞,上传shell文件
    • 返回状态码201上传成功,如果是其他就没有上传成功
  • weblogic

  • 目录扫描

    • 短时间内发出大量的请求,每次请求都是不一样的
    • 返回状态码很多都是404
    • 如果是只扫描某几个特定的文件,可能是资产判断存活机制,如果目录存在业务正常运行,如果不存在就是出现异常,这样触发的web目录扫描告警可能是误报

      主要判断的方法就是看url的变化情况(看有多少目录)

  • 参数加密流量

    • 请求的包体和返回的包体都经过加密
    • 查看目录是不是正常的页面
    • 查看源ip和目的ip

##