最近在做日志分析,但是由于本身渗透能力比较弱,苦于日志的寻找和分类。最近刚好看到一篇window的总结Threat Hunting Techniques - AV, Proxy, DNS and HTTP Logs 。根据自己的理解整理成了中文,方便日后查看

  • 原作者发布的日期是 2016年8月12日 有点老 估计还得继续补充
  • 原作者是根据DavisIntrusion Hunting for the Masses A Practical Guide的分享整理所得
    分享视频(Youtube需要翻墙)

  • 本人的英语也不是特别的好,只能翻译个大概,有误请多多指教

Threat Hunting Techniques - AV, Proxy, DNS and HTTP Logs

基于反病毒软件(AV),代理(Proxy),DNS和HTTP日志的威胁检测技术。

  • AV - 识别密码导出程序(password dumpers)种植程序病毒(droppers)和后门( backdoors ) (删除和和未删除的)
    • 原文中和检测类型一致。估计就是直接导出反病毒软件的检测日志查看 |
  • AV - 通过用户的APP Data 目录下执行二进制文件
    • 示例:C:\Users*\AppData\Local\Temp*.exe
  • AV - 进程不是通过其父进程或者服务启动
    • 示例:Svchost.exe不是通过Services.exe启动的
  • AV - 计划任务执行恶意行为

    • 通过计划任务执行恢复CMD执行实体,给主机添加密匙,执行可执行文件等。
    • 示例:Redis漏洞计划任务执行命令反弹shel|
  • AV - 通过web或者应用程序服务器执行可执行文件的警报

    • 你的环境的入口和持续性攻击(APT)建立和维持C2服务器 。
    • 示例:webshell执行nc连接
  • AV - 通过奇怪的目录启动的程序
    • 示例:%windows\fonts, %windows\help, %windows\wbem, 任何在系统目录下运行或者是不常见的运行目录
    • 例如 网站根目录 wwwroot
  • Proxy - 通过频率固定的HTTP请求日志寻找可能是C2服务器的记录
    • C2的恶意软件常常会以一定的时间间隔去回连攻击者的C2服务器便于攻击者下达指令。这种请求的模式可以通过统计相同IP访问相同资源的频率和次数可以很明显看得到。
    • 示例:常见的BotNet
  • Proxy/DNS/HTTP - 通过内部的客户端外连域名记录例如DNS查询,HTTP代理等的记录去检测潜在的C2活动。同时你还需要一份动态域名提供商的列表
    • 利用动态域名提供商的列表去识别DNS和HTTP Proxy记录中,那些由动态域名解析的IP以及标识出那些只有极少数IP去访问的网站
  • Proxy/DNS/HTTP - 通过HTTP头的信息(User-Agent)去检测威胁行为
    • 这里作者说的英文太难懂了。我的理解就是 HTTP头中,有恶意的User-Agent的,或者值的数据太短或者太长的,又或者和常见的请求对比 缺少了头部其他的信息的。
  • Proxy/DNS/HTTP 检测常见的基于HTTP的攻击模式
    • 通过服务器的日志去标识那些攻击IP重复请求的的资源
    • 通过漏洞扫描工具扫出存在漏洞的url
    • 通过http_request的大小或者HTTP的头部信息是否过长或者过短
  • Proxy/DNS/HTTP - 检测POST包是否有referrer字段和短时间内执行了大量重复的请求的操作也可以标注为威胁行为(感觉和上面差不多)
    • 这里给了一些检测的指标。比如次数大于10,30分钟内,Referrer为空等等
  • Web shell Detection - 检测攻击者上传到服务器上的webshell的行为。 Windows security event logs (4688/592 events), HIPS等提供的审计日志
    • 检测那些由网页服务器创建的文件,判断他们是不是通过脚本中的CMD命令执行的。例如 exec(), shell_exec(),等
    • 检测网站根目录下的文件是否有添加或者是修改,例如:inotify FileSystemWatcher等 *
    • 检测静态资源(原文是图片)访问的参数 (例如, /.bad.png?cmd=ls) * 4.
    • 检测windows安全事件日志 (4688/592)
    • 检测命令行终端生成的文件
    • 检测额外的工具上传或者下载的扩展名为 .zip, .exe, .rar, .7z之类的
  • Endpoint - 恶意的二进制文件执行
    • 检测 Windows 安全时间日志 (Event code 4688 or 592)
      • 当一个webshell或者恶意的软件被上传到服务器时,他运行的环境通常是执行用户拥有web服务器的进程,而执行的进程属于web服务器的字进程
  • 使用显式凭据(explicit credentials)进行横向移动
    • 检测windows安全日志(4648/552),查看使用显式凭据的日志记录,通常使用runas命令或者哈希传递攻击会产生大量的日志。
    • 检测windows安全日志(4728/4732/4756 ),用户提升用户组的时候会产生这些日志。当一个攻击者进入到一个环境里面,尽早提权获得立足点是首先会考虑的。
  • Endpoint - 通过用户验证来检测横向移动。不是所有的日记都已经打开,你需要根据实际情况来修改自己的审计策略。
    • 这里作者说,只要是短时间的同一个用户频繁出现的事件都可以识别为威胁事件,都是window的安全事件日志ID。
    • Successful Logon (ID 4624)
    • Failed Logon (ID 4625)
    • Kerberos Authentication (ID 4768)
    • Kerberos Service Ticket (ID 4776)
    • Assignment of Administrator Rights (ID 4672)
    • Unknown username or password (ID 529)
    • Account logon time restriction violation (ID 530)
    • Account currently disabled (ID 531)
    • User account has expired (ID 532)
    • User not allowed to logon to the computer (ID 533)
    • User has not been granted the requested logon type (ID 534)
    • The account's password has expired (ID 535)
    • The NetLogon component is not active (ID 536)
    • The logon attempt failed for other reasons (ID 537)
    • Account lockout (ID 539)
  • Endpoint - 通过检测恶意软件的执行来寻找恶意的横向移动

    • 这里起始没看太懂。也是列举一些恶意软件会运行的位置,感觉和上面的内容重复了。
    • 检测windows安全事件日志 (4688/592)
    • 检测恶意软件启动的位置 例如 %windows%\fonts, %windows%\help
    • 当一个攻击者从一台机器转移到另外一台机器时,他最想知道
      • 这是什么机器
      • 机器的访问权限和等级
      • 机器上开了什么服务
      • 机器附近还有哪些资源
      • 攻击者为了实现上面所说的,通常会执行常见的合法的windows程序去获取上面的信息。
      • 常见的exe有:commands are net.exe, ipconfig.exe, whoami.exe, nbstats.exe。
    • 检查那些运行时间少于10分钟的进程

      • 查看是否有夫进程和合法性
      • 查看谁执行了这个进程
      • 查看这个用户过去是否运行了这个进程
    • Lateral Movement - 潜在的提权尝试

      • 检测windows安全事件日志 (4728/4756) 域管理日志
      • 在域控和工作站中检测windows安全事件日志 (4732)
      • 通过提升低等级的用户到高等级的用户以获取更多的访问资源和域
    • Lateral Movement - 访问远程共享资源

      • 检测windows安全事件日志 (5145)
      • 查看日志中那些使用了ADMIN$ 去共享,拷贝和执行工具或者文件的事件
    • RDP External Connections - 检测异常的RDP连接请求
      • 检测windows安全事件日志 (4624 (Type 10) / 4778)
      • 这里作者没说特别详细,只是说了如果用户的验证过弱,网络上的运行RDP服务器的机器很容易遭受非法访问。基线是非常有效的手段去识别异常的RDP连接 。举了个例子:异常时间登陆或者是使用了从没有使用过的用户凭证。

说多几句

  • 感觉他的表格整理的蛮乱的而且基本都是window。但是还是大致说明了几个排查的方向以及大量说明了安全事件的日志ID的相关信息。 根据这些信息可以大概整理一下,就可以写window的agent了。
  • 另外不知道有没有大表哥有比较的好日志总结类的文章不,求一个linux版本

点击收藏 | 2 关注 | 2
  • 动动手指,沙发就是你的了!
登录 后跟帖