后渗透篇:利用Volatility进行入侵痕迹分析

本文利用Volatility进行内存取证,分析入侵攻击痕迹,包括网络连接、进程、服务、驱动模块、DLL、handles、检测进程注入、检测Meterpreter、cmd历史命令、IE浏览器历史记录、启动项、用户、shimcache、userassist、部分rootkit隐藏文件、cmdliner等。

环境准备:
Kali2中自带Volatility(版本2.4),可下载最新版本2.6,下载即可使用。
下载地址:https://github.com/volatilityfoundation/volatility
windows系统可使用DumpIt等制作镜像。

本为以window系统镜像为例,简单模拟了一次入侵行为,然后利用Volatility进行分析:

0x01查看网络连接
netscan 查看网络连接情况

python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 netscan
  
  

    0x02查看进程

    pslist、psxview可查看进程,其中psxview可查看一些隐藏进程

    python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 pslist
    python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 psxview
      
      
    • 1

    0x03查找进程注入
    malfind 查找隐藏或注入的代码/ DLL

    python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 malfind
      
      

      可看到进程pid为620的svchost.exe存在异常:

      0x04提取文件

      memdump 提取进程在内存中的信息保存到文件中 –D 指定保存的目录
      procdump 提取进程的可执行文件
      提取出文件后,可以到www.virustotal.com进行检验

      python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 procdump -p 620 -D dump
      python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 memdump -p 620 -D dump   #时间较长,文件较大
        
        
      • 1


      成功检测出提取的文件有Meterpreter攻击痕迹:

      0x05yarascan 检测Meterpreter
      上面通过memdump 提取pid为620的进程,可检测出Meterpreter攻击痕迹,还可以通过YARA进行检测。yarascan 可利用YARA规则进行检测 -Y 指定自定义的规则,-y 指定包含YARA规则。通过文章(http://cyberforensicator.com/2018/03/11/finding-metasploits-meterpreter-traces-with-memory-forensics/) 的规则学习,可进行检测Meterpreter攻击痕迹。

      python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 yarascan -y fm.yara
        
        

        fm.yara文件如下

        rule Find_Meterpreter
        {
            meta:
                desrciption = "it's the Meterpreter!"
            strings:
                $a = { 6D 65 74 73 72 76 2E 64 6C 6C 00 00 52 65 66 6C 65 63 74 69 76 65 4C 6F 61 64 65 72 }
                $b = "stdapi_" ascii nocase
        
        condition:
            $a and $b
        

        }

        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10


        成功检测到Meterpreter攻击痕迹:

        0x06查看&提取DLL

        dlllist 查看dll文件
        ldrmodules 可查看一些隐藏的dll
        dlldump 提取dll文件
        提取出dll文件后,可以到www.virustotal.com进行检验

        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 dlllist -p 1656
        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 dlldump -p 1656 -D dump
        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 ldrmodules
         
         
        • 1
        • 2



        成功检测出提取出来的可疑dll文件:

        0x07查看文件句柄
        handles 查看进程打开的handles

        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 handles -p 620 -t file
         
         

          0x08查看cmd历史命令

          cmdscan 查看内存中保留的 cmd 命令使用情况,还可以看到powershell命令

          python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 cmdscan
           
           

            0x09查看IE浏览器历史记录

            1)iehistory插件
            iehistory 可查看IE浏览中的历史记录,但是有时会出bug,查看不到信息

            python vol.py -f /root/lltest/PC-20170527XAOD-20180410-073551.raw --profile=Win7SP1x86 iehistory
             
             

              2)yarascan搜索记录
              可以先找到iexplore进程,然后通过yarascan来定义YARA规则进行搜索IE浏览器历史记录

              python vol.py -f /root/lltest/PC-20170527XAOD-20180410-073551.raw --profile=Win7SP1x86 pslist | grep iexplore
              python vol.py -f /root/lltest/PC-20170527XAOD-20180410-073551.raw --profile=Win7SP1x86 yarascan -Y "/(URL|REDR|LEAK)/" -p 1904,220,3276,3676
               
               
              • 1

              查看iexplore进程pid:

              成功检测到ie历史记录:

              3)memdump & strings提取记录
              还可以通过memdump提取iexplore进程中的信息到文件中,然后通过strings来搜索IE浏览器历史记录

              python vol.py -f /root/lltest/PC-20170527XAOD-20180410-073551.raw --profile=Win7SP1x86 memdump -p 1904,220,3276,3676 -D dump
              strings dump/1904.dmp | grep -i http:// | sort | uniq -u
               
               
              • 1

              根据pid提取iexplore进程文件:

              strings成功提取到ie历史记录:

              0x10查看注册表
              printkey可查看指定注册表项信息
              1)查看启动项

              python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 printkey -K "Microsoft\Windows\CurrentVersion\Run"
               
               

                2)查看用户

                python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 printkey -K "SAM\Domains\Account\Users\Names"
                 
                 

                  3)shimcache信息查看

                  ShimCache来识别应用程序兼容性问题。跟踪文件路径,大小,最后修改时间和最后“执行”时间。

                  python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 shimcache
                   
                   

                    4)userassist信息查看
                    userassist键值包含系统或桌面执行文件的信息,如名称、路径、执行次数、最后一次执行时间等。

                    python vol.py -f /root/lltest/PC-20170527XAOD-20180407-042003.raw --profile=Win7SP1x86 userassist
                     
                     

                      0x11查看服务svcscan
                      svcscan查看服务

                      python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 svcscan
                       
                       

                        0x12查看内核驱动模块
                        modules 查看内核驱动
                        modscan、driverscan 可查看一些隐藏的内核驱动

                        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 modules
                        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 modscan
                        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 driverscan
                         
                         
                        • 1
                        • 2

                        0x13查看文件
                        filescan 可查看 一些rootkit隐藏文件

                        python vol.py -f /root/lltest/PC-20170527XAOD-20180409-232828.raw --profile=Win7SP1x86 filescan  #可查看 一些rootkit隐藏文件
                         
                         

                          0x14查看时间线cmdliner
                          timeliner 查看各组件时间线。 输出会很多,建议输出到指定文件中

                          python vol.py -f /root/lltest/PC-20170527XAOD-20180407-042003.raw --profile=Win7SP1x86 timeliner --output=text --output-file=out1.txt
                           
                           

                            当然,volatility还有许多命令和插件,本文只是抛砖引玉,简单写了一些常用方式。

                            参考
                            https://github.com/volatilityfoundation/volatility/wiki/Command-Reference
                            http://cyberforensicator.com/2018/03/11/finding-metasploits-meterpreter-traces-with-memory-forensics/
                            https://eforensicsmag.com/finding-advanced-malware-using-volatility/
                            https://volatility-labs.blogspot.com/2012/09/howto-scan-for-internet-cachehistory.html

                                                            </div>
                            
                            • 0
                              点赞
                            • 6
                              收藏
                              觉得还不错? 一键收藏
                            • 3
                              评论
                            评论 3
                            添加红包

                            请填写红包祝福语或标题

                            红包个数最小为10个

                            红包金额最低5元

                            当前余额3.43前往充值 >
                            需支付:10.00
                            成就一亿技术人!
                            领取后你会自动成为博主和红包主的粉丝 规则
                            hope_wisdom
                            发出的红包
                            实付
                            使用余额支付
                            点击重新获取
                            扫码支付
                            钱包余额 0

                            抵扣说明:

                            1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                            2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                            余额充值