当前很难在网络中探测攻击者横向渗透,其中原因有很难获取必要的日志和区别正常与恶意行为。本篇文章介绍通过部署Sysmon并将日志发送到SIEM来探测横向渗透。

工具:

Sysmon + Splunk light

安装配置:

sysmon -i -n

本地查看sysmon事件日志,打开事件查看器- Microsoft  - Windows - Sysmon - Operational。如下图可以看到sysmon记录到powershell.exe进程创建:

将下列配置写入inputs.conf文件:

[WinEventLog://Microsoft-Windows-Sysmon/Operational]

disabled = false

renderXml = true

在splunk中查询当前主机的sysmon日志:

sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"

安装Splunk插件(Splunk "Add-on for MicrosoftSysmon"

)插件下载地址:https://splunkbase.splunk.com/app/1914/#/overview

下载加压插件并将插件放到:

C:\ProgramFiles\Splunk\etc\apps

重启Splunk Light.

然后在Splunk中可以看到Sysmon事件已经导入:

sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"

Sysmon事件ID

在下面的案例中,我们关注如下了两类事件

Event ID 1: Process creation  进程创建

Event ID 3: Network connection 网络连接

时间ID完整介绍见Sysmon官方文档:https://technet.microsoft.com/en-us/sysinternals/sysmon

检测到攻击者建立了SMB会话:

攻击者使用了类似的命令建立SMB会话:

net use \\192.168.1.88

在splunk中搜索Sysmon事件,识别出可疑的SMB会话(445端口):

sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"192.168.1.90 445 | table _time, EventCode, EventDescription, host, SourceIp,src_port, User, DestinationIp, DestinationPort, Image, ProcessID, Protocol

在被攻击机器上面执行下面的命令,看到攻击者建立的SMB会话:

netstat nao | find"ESTABLISHED"

然后通过分析当前的Windows事件日志,辨别进程的创建/终止,网络连接的建立/销毁来区别正常与异常的SMB会话。

探测攻击者使用PowerShell进行横向渗透

PowerShell初始化 Windows RemoteManagement (WinRM) 的时候会通过5985和5986端口。在这个例子中,攻击者在被攻击机器上面远程执行脚本,或者连接了受害者机器。

在Splunk中,我们可以通过下面的Sysmon事件来辨识出 恶意的行为,我们可以攻击者使用WinRM

远程连接了被攻击机器的5896端口:

sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"5985 OR 5986 | table _time, EventCode, EventDescription, host, SourceIp,src_port, User, DestinationIp, DestinationPort, Image, ProcessID, Protocol

我们可以看到受害者机器上面WinRM Remote PowerShell 进程(wsmprovhost.exe)启动了ping.exe和systeminfo.exe这两个进程,而且我们可以看到执行的命令参数。

sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"wsmprovhost.exe | table _time, EventCode, EventDescription, host, Image,ProcessID, ParentProcessId, CommandLine

上面的案例经常会发生在大家的网络环境中,有时候攻击者会使用原生的系统工具来使隐藏恶意行为,所以熟悉自己网络环境中的正常行为非常重要。

原文: <http://www.incidentresponderblog.com/2016/09/detecting-lateral-movement-using-sysmon.html>

相关文章:

Syslog+NXlog 简单的windows安全监控部署

tracking_hackers_on_your_network_with_sysinternals_sysmon.pdf

使用Sysmon和Splunk探测网络环境中横向渗透的更多相关文章

  1. 在低带宽或不可靠的网络环境中安装 Visual Studio 2017

    在低带宽或不可靠的网络环境中安装 Visual Studio 2017 2017-4-141 分钟阅读时长 作者  https://docs.microsoft.com/zh-cn/visualstu ...

  2. 使用pipework将Docker容器配置到本地网络环境中

    使用pipework将Docker容器配置到本地网络环境中 需求 在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求.要实现这个需求,我们只要将Docker容器和主 ...

  3. 使用pipework将Docker容器桥接到本地网络环境中

    在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求.要实现这个需求,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了.pipew ...

  4. 嵌入式 hi3518平台获取网络环境中的ip、netmask、broadcast等信息

    <span style="font-family:Courier New;"> /********************************** (C) COPY ...

  5. Neutron VxLAN + Linux Bridge 环境中的网络 MTU

    1. 基础知识 1.1 MTU   一个网络接口的 MTU 是它一次所能传输的最大数据块的大小.任何超过MTU的数据块都会在传输前分成小的传输单元.MTU 有两个测量层次:网络层和链路层.比如,网络层 ...

  6. Linux网络管理2---(网络环境查看命令、网络测试命令)

    1.网络环境查看命令 ifconfig命令 查看或临时修改网络状态的命令 可以看到IP.子网掩码……信息 关闭和启动网卡 ifdown 网卡设备名(比如: ifdown eth0):禁用该网卡设备 i ...

  7. 在 Linux 平台及 IPv4 环境中构建 IPv6局域网 测试环境

    在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境 1 IPv6简介 IPv6(Internet Protocol Version 6)作为 IPv4 的升级版本,它是作为一共软件升级安 ...

  8. 网络通讯中 bind函数的作用

    面向连接的网络应用程序分为客户端和服务器端.服务器端的执行流程一般为4步,客户端程序相对简单,一般需要两个步骤. 服务器端执行流程4步如下: (1)调用socket函数,建立一个套接字,该套接字用于接 ...

  9. 理解Docker(6):若干企业生产环境中的容器网络方案

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

随机推荐

  1. 20181204-2 Final发布

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2476 小组介绍 组长:付佳 组员:张俊余 李文涛 孙赛佳 田良 于洋 段 ...

  2. 10慕课网《进击Node.js基础(一)》初识promise

    首先用最简单的方式实现一个动画效果 <!doctype> <html> <head> <title>Promise animation</titl ...

  3. Cooperate with Myself

    (一) 第一周的第一批作业们.  且不说一周之内要看完我们的300多页的教材,也不说需要在维基的大批量的文献中海底捞针,单是这个四则运算的生成程序就让我从假期的迷糊状态中幡然觉悟了:哦!惊险刺激的新的 ...

  4. 4种PHP回调函数风格

    4种PHP回调函数风格 匿名函数 $server->on('Request', function ($req, $resp) use ($a, $b, $c) { echo "hell ...

  5. delphi制作登陆窗体

    delphi登陆窗体的制作,就我知道的,可以有两种方法,一种是在工程文件中实现登陆窗体的动态调用,另一种就是在主窗体的OnCreate事件中动态创建登陆窗体,两种方法都需要将主窗体设置为Auto-cr ...

  6. idea中 读取mybatis的配置文件时候 如果放在文件下面 需要加上路径

  7. BZOJ1050 HAOI2006旅行(最小生成树+LCT)

    暴力枚举路径中权值最小边是哪个,然后求出边权不小于它的边的最小生成树,即可保证该路径上最大值最小.暴力当然可以过,这里使用LCT维护.注意数据中有自环. #include<iostream> ...

  8. BZOJ2749 HAOI2012外星人(数论)

    不妨把求φ抽象成把将每个位置上的一个小球左移一格并分裂的过程,那么即求所有球都被移到1号格子的步数. 显然要达到1必须先到达2.可以发现每次分裂一定会分裂出2号位的球,因为2以外的质数一定是奇数.以及 ...

  9. hdu 5274 Dylans loves tree (树链剖分 + 线段树 异或)

    Dylans loves tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  10. MT【85】正整数系数

    评:这类与正整数有关的题,是很多学生所不习惯以及无从下手的.事实上很多时候要用到整数的这个性质:$m>n,m,n\in Z$则$m\ge n+1$,这道题用二次函数区间上有根的一般做法也可以,大 ...