蓝队必备技能之-systeminternal工具集使用

TL;DR

  • 在应急遇到windows系统的时候经常会使用systeminterna suite套件,这个套件是由Mark Russinovich开发,systeminternals suite工具套件是免费的,大家可以从这里下载的到。最早的这些工具都只是命令行的,后面被微软采购之后在很多工具上增加了图形化界面。
  • systeminternals 套件有非常多好用的工具,这些工具能够帮助我们很深入的去分析系统或者进行应急响应,同样当攻击者上传这些工具到系统上的时候,它同样能够提供给攻击者很多有价值的信息,例如psexec、ShellRunas都是攻击者的利器。
  • 可以说无论是攻击方还是防守方都需要对systeminternals这个工具套件进行了解,本篇文章就依次对常见的工具做简单介绍以及对autoruns、procexp、procmon、tcpview工具使用注意事项进行介绍。

    常见工具介绍

    当我们下载完成打开文件夹的时候会发现很多的工具,现在简单列举一些常用工具。
  • AccessChk 权限检查工具,可以检查文件、文件夹、注册表等权限
  • AccessEnum 文件系统全览以及注册表安全设置
  • AdExplorer 域环境活动目录查看和编辑器
  • AdInsight LDAP实时监控工具,用来域环境的一些应用
  • AdRestore 恢复删除的AD对象
  • Autologon 快速设置自动登录
  • Autoruns 显示所有登录启动项
  • BgInfo 显示计算机相关信息,例如计算机名称、IP地址信息等
  • DBgview 输出和显示debug信息
  • DiskMon 记录和显示所有磁盘活动信息
  • ListDLLs 显示进程所加载的dlls
  • LogonSessions 列举当前活动的登录sessions
  • Procexp 显示进程相关信息
  • Procmon 进程实时监控
  • PsExec 允许你在远程的系统上执行命令
  • PsPing ping功能的补充
  • PsKill 结束本地或者远程操作系统上的进程
  • PsList 显示当前计算机上进程相关信息,包括进程名、进程号、内存信息等
  • PsLoggedOn 显示谁登录在本机或者远程机器上
  • PsLogList 允许本地或者远程对日志进行查询、保存以及删除等
  • PsPasswd 允许本地或者远程修改密码
  • ShellRunas 允许你使用不同的账号运行程序
  • Sysmon 监视和记录系统活动
  • TCPView 显示当前所有tcp和udp信息
  • ZoomIt 非常好用的放大镜
  • 当然官方网站已经对这些工具做了很好的分类,分别为文件和磁盘工具集、网络工具集、进程工具集、安全相关工具集、系统信息工具集、其它工具。如下图所示:

    Autoruns

  • 在系统入侵之后,攻击者为了权限维持极有可能在系统上留后门,那么autoruns可以说是最强大的开机启动项检查工具了(没有之一),其检查项包括计划任务、服务、驱动、注册表、WMI等。
  • 注意右键以管理员方式运行autoruns工具,否则可能会有一些登录启动项查看不到,当你运行的时候那么这个工具就会扫描系统上的一些常见启动项。
  • 除了查看功能,当选中某个条目时候还有删除、打开路径、上传virustotal检测、属性等功能。
  • autoruns默认会隐藏windows条目,就是有windows签名的在会被隐藏,这个时候要留意时候有windows自带工具的权限维持,在查看的时候要注意将options->hide microsoft entries的勾去掉。
  • 关于autoruns检查项细节可参考文章Autoruns

ProcExp

  • 官方介绍
  • ProcExp 即process explorer,进程浏览器。用来查看计算机上运行的进程的状态。(CPU、内存、句柄、加载dll、线程及堆栈等)。
  • 打开程序之后会显示一些默认的列,这些显示的列可根据个人喜好进行定制化,比如进程描述、进程状态等。
  • 此外显示项中不同颜色也代表了不同的含义,例如绿色代表新创建的进程,红色代表进程结束、紫色代表当前用户所运行的进程、粉色代表服务、灰色代表挂起了的进程,而且这个颜色方案也可以自定义。
  • 选中某个进程之后,右键可以结束进程、结束进程树、重启进程、挂起进程、dump进程等,双击条目之后可以看到进程的可执行文件以及参数信息、线程、TCP/IP、权限、环境变量、可打印字符串等信息。
  • 除此之外还有一款类似的工具process hacker

    ProcMon

  • 官方介绍
  • 当怀疑某个进程有问题的时候进行深入排查实时查看这个进程进行了哪些操作,或者实时检测系统某类活动(例如创建、删除文件、修改注册表等)的时候都可以使用procmon,这个工具提供了非常强大的过滤查询语句。这个工具有点类似linux下的strace命令。
  • 此外渗透中也可能用到procmon例如渗透中的procmon
  • 以及在dll劫持测试的时候也可能用的到。

    TcpView

  • 官方介绍
  • TcpView不仅仅可以监测tcp的网络连接还可以监测UDP的,如图所示
  • 如果需要将ip解析成域名可以在options下拉菜单勾选Resolve Address.Address.
  • 当然也有命令版本的tcpview Tcpvcon

    Sysmon

  • 官方介绍
  • Sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供相关进程创建、网络连接和文件创建更改时间等详细信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    使用方法:
    -c 更新或显示配置
    -h 指定hash记录的算法
    -i 安装,可用xml文件来更新配置文件
    -l 记录加载模块,可指定进程
    -m 安装事件清单
    -n 记录网络链接
    -r 检测证书是否撤销
    -u 卸载服务和驱动
  • 将Sysmon注册到Windows系统中

  • Sysmon.exe -accepteula -i -n
  • 注意:32 位系统用 Sysmon.exe,64 位 Windows 推荐使用 Sysmon64.exe。
    注册完成后,在「事件查看器」——「应用程序和服务日志」——「Microsoft」——「Windows」下会多出一项「Sysmon」文件夹,其中记录了 Sysmon 写入到 Event Log 中的所有事件。如果要取消 Sysmon 对系统的监控以及对事件日志的写入操作,可以使用以下命令:
    Sysmon64.exe -u
  • 此外如果想要单看DNS查询日志,也可在事件查看器中单独设置。在「事件查看器」——「应用程序和服务日志」——「Microsoft」——「Windows」——「DNS ClientEvents 」,右键「Operational 」——选择「启用日志」即可。
  • Sysmon tools
  • Sysmon configuration file template with default high-quality event tracing
  • 更多使用技巧可参考 应急响应:三款实用的Sysmon辅助分析工具

    Reference

    Live Analysis with sysinternals