wubba lubba dub dub.
post @ 2021-08-06

SMB(Server Message Block)协议,可用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居就是靠它实现的。SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet File System),并且加入了许多新的特色。SMB协议一般端口使用为139,445,CIFS协议有三个版本:SMB、SMB2、SMB3。

NTLM

在type2返回Challenge的过程中,同时返回了操作系统类型,主机名,netbios名等等。这也就意味着如果我们在能跟服务器进行NTLM交流中,给服务器发送一个type1的请求,服务器返回type2的响应,这一步,我们就可以得到很多信息。SMBv1和SMBv2的数据包结构是不同的

SMBv1

使用非攻NTLMINFO探测SMB接口,抓包通过wireshark分析,包含操作系统类型的数据包由SMB Header和Response组成:

我们的目的是获取smb数据包的NTLM数据,然后对NTLM数据包解析,NTLM数据包上一层是GSS-API,首先找到GSS-API在整个数据包的偏移量,SMB的数据包结构长度如下:

SMB Header:  32 byte
Word Count:  1 byte
AndXCommand: 1 byte
Reserved:    1 byte
AndXOffset:  2 byte
Action: 	   2 byte
Security Blob Length: 2 byte (表示Security Blob的长度,这里的hex是 0f 10,小端转换为010f,再转换成10进制就是271,对应Security Blob的长度)
Byte Count: 2 byte (表示Security Blob加上NativeOS和Native Lan的长度)
Security Blob: 可变长度,取决于Security Blob Length

上面的数据包结构的关键数据是Security Blob LengthByte Content,前者表示GSS-API的整个数据包长度,后者表示GSS-API和Native OS加上Native LM的数据长度:

GSS-API的长度是271 Byte

Native OS的长度是42 Byte
Read More
post @ 2021-08-02

安装

参考链接里有详细的安装步骤,测试客户端是Windows,安装了如下软件:

  • sysmon.exe(配置文件)
    • .\sysmon64.exe -accepteula -i c:\windows\config.xml
  • winlogbeat.exe
    • .\install-service-winlogbeat.ps1
    • .\winlogbeat.exe setup -e
  • ElasticAgent.exe
    • .\elastic-agent.exe install --insecure -f --fleet-server-es=<ES> --fleet-server-service-token=<token>

规则监测和绕过

规则有5种查询,一般使用EQL(Event Query Language)查询类型:

SIEM有内置很多规则,默认是关闭状态,这些规则都是ATT&CK框架攻击行为转化而来的,例如windows下的whoami查询规则(正经人谁查whoami啊):

process where event.type in ("start", "process_started") and process.name : "whoami.exe"

我们拿这条规则做分析,这条规则匹配了当进程开始的时候,进程名为whoami.exe的时候触发,所以我们把whoami.exe复制一下,就可以绕过去了:

copy C:\Windows\System32\whoami.exe C:\Windows\temp\x.exe
C:\Windows\temp\x.exe

是不是把siem想的简单了,这跟通过复制net.exe绕过添加用户一模一样,仔细观察下elk里面的字段,可以发现process.pe.original_file_name仍然保留了whoami.exe,这是PE文件里面固定的,所以我们手动把预警规则修改一下:

process where event.type in ("start", "process_started") and process.pe.original_file_name: "whoami.exe"
Read More
post @ 2021-07-29

SilverFish_TLPWHITE

起点

根据FireEye发布的IOC,有一个域名是databasegalore.com,这个域名下的IP在2304端口起了PowerMTA服务,web目录扫描之后发现example.php。PTI团队根据这两个网页的设备指纹和PowerMTA服务,扫描了全网的IPv4地址,发现一个IP地址: 81.4.122.203,然后PTI团队对IP下的C段进行渗透测试,发现81.4.122.101存在一个C2服务器。

C2分析

收集信息如下:

  • ID
  • UUID
  • Instance
  • IP
  • Country
  • Domain\User@Computer
  • OS
  • Build
  • Architecture
  • Antivirus
  • Is Admin
  • Integrity Level
  • UAC Setting
  • ConsentPromptBehaviorAdmin • PromptOnSecureDesktop
  • First visit

每个受害者页面都可以发送攻击指令,有如下:

看了下是命令执行和UAC绕过比较多,C2服务器的防护措施有如下:

  • 使用AppArmor隔离环境
  • 关闭访问日志(web日志、SSH登录日志、命令行日志)
  • 使用IPTABLES只允许白名单IP访问
Read More

0x01. 基本知识

  1. 在pom.xml里面有这样的配置

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
   <exclusions>
  1. 没有开启安全设置
management:
  security:
    enabled: false
  health:
    elasticsearch:
      enabled: false
  metrics:
    export:
      prometheus:
        enabled: true
      jmx:
        enabled: true
  endpoints:
    web:
      exposure:
        include: '*'
      base-path: /auto

服务端可以通过修改配置文件来改变Actuator的根路径:management.endpoints.web.base-path=/monitor

搜索github的源代码,可以看到类似的设置:

0x02 漏洞利用

在配置不当的时候,可能暴露以下路由:

/actuator
/auditevents
/autoconfig
/beans
/caches
/conditions
/configprops
/docs
/dump
/env
/flyway
/health
/heapdump
/httptrace
/info
/intergrationgraph
/jolokia
/logfile
/loggers
/liquibase
/metrics
/mappings
/prometheus
/refresh
/scheduledtasks
/sessions
/shutdown
/trace
/threaddump
/actuator/auditevents
/actuator/beans
/actuator/health
/actuator/conditions
/actuator/configprops
/actuator/env
/actuator/info
/actuator/loggers
/actuator/heapdump
/actuator/threaddump
/actuator/metrics
/actuator/scheduledtasks
/actuator/httptrace
/actuator/mappings
/actuator/jolokia
/actuator/hystrix.stream
Read More
post @ 2021-04-06

背景需求

不管一个什么形式的后门:定时任务、dll劫持、开机启动…,当我设置的后门运行的时候,我想掌握后门的启动时间、触发IP等上环境,所以这篇文章是在shellcode分离免杀的基础上做了尝试性扩展

考虑这样的场景:

  • 后门被静态分析
  • 后门被动态分析
  • shellcode被提取之后触发

在shellcode分离免杀的基础上扩展还是比较容易的,当客户端请求远程shellcode托管服务器的时候,增加一个机器人,然后发起一个上线通知:If This Then That,这样太简单了,我们再多加点料,比如:

  1. 不带合理参数请求shellcode的URL时候,发起警告
  2. 当木马运行在恶意环境的时候,发起警告
    • 当木马上线IP不在服务端列表
    • 当木马上线主机的设备指纹不在服务端列表
  3. shellcode托管服务随时可以关闭打开
  4. shellcode托管服务随时可以新增删除木马上线IP或者设备指纹

准备材料

  • 一台VPS:托管shellcode,通知slack机器人
  • 一个AWS账号隐藏C2(CloudFront)
  • Slack:接收通知,使用Slash commands功能控制shellcode托管服务
托管shellcode流程

Read More
⬆︎TOP