复古黑客技术剖析:从1999年的攻击手法看现代安全启示

本文通过分析一起针对GitLab服务器的实际攻击案例,详细剖析了使用老旧工具(如psyBNC、Pydrona)的攻击链,包括脚本逻辑、权限提升手法和隐藏进程技术,揭示了网络安全中"经典攻击手法永不过时"的现象。

黑客攻击如同时光倒流:1999年的技术重现

作者声明:本博文提及的技术和工具可能已过时,不适用于当前环境。但本文仍可作为学习资源,并可能为现代工具和技术的更新或整合提供参考。

事件起源:异常终端引发的调查

上周,一位友人面带忧色地来到我的工位。他俯身展示笔记本电脑屏幕——一个虚拟终端正开启着:

1
[异常进程输出截图]

询问系统用途后,得知这仅是一个个人项目的GitLab服务器。我立即终止了仍在运行的进程,并移除了相关目录下二进制文件的执行权限。出于技术兴趣,我与到访办公室的Derek共同协助友人备份服务器数据,并请求获取被植入的软件副本用于研究(当然,是为了科学)。这位匿名友人在数据保全后同意我们进行分析并公开发现。

攻击工具包获取与分析

我们追踪到攻击者工具包的下载源头,为确保二进制文件原始性,通过匿名代理将其下载至干净的Kali实例。

第一阶段:x.tgz与启动脚本

作为程序员,我重点关注工具逻辑。从行为顺序判断,首先分析x.tgz中的start脚本——这是一个Bash shell脚本:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 错误检查:验证参数数量
if [ $# -ne 1 ]; then
    echo "Tasteaza: ./start canal"  # 罗马尼亚语"输入:./start通道"
    exit 1
fi

# 解析本地链路地址并计数
ifconfig | grep "link" | cut -d" " -f12 | while read line; do
    count=$((count+1))
done

# 打印横幅(经谷歌搜索发现与2013年某博文描述完全一致)
echo "[复古攻击横幅]"

# 为每个链路地址启动./inst
for interface in $(ifconfig | grep "link" | cut -d" " -f12); do
    ./inst $interface $1 &
done

脚本首先检查参数有效性(输出罗马尼亚语提示),随后解析网络接口并启动多个./inst进程。横幅内容与2013年一篇"十年未变"的博文完全吻合——暗示攻击手法的持久性。

第二阶段:僵尸网络配置(inst文件)

./inst文件用于配置僵尸程序。文件首部包含大量"命名标识",末52行逻辑解析参数并配置僵尸节点。参数"ronnie"被用作频道名称。在start脚本末尾还有关键操作:

  • 完成安装
  • 设置自动更新
  • 执行恶意软件

攻击者添加了iptables规则、创建名为bin的用户并赋予root权限,最后通过rinst.e文件向硬编码的Gmail地址发送接口计数和主机名信息。

第三阶段:隐匿通信与老旧组件

攻击者从"ryo"文件下载并运行脚本组,用于设置psyBNC(一种2009年停止开发的IRC连接伪装工具)。启动过程中运行的proc可执行文件使用GCC 2.9编译,操作系统为RedHat 7.1——堪称古董级环境。

第四阶段:进程隐藏工具(Pydrona)

攻击链最终阶段使用Pydrona工具(编译于gcc 4.3.4)。其中一个组件关联攻击者已删除的Xhide工具(用于进程隐藏),另一个自称Drona Turbata 3.0(Python版本)——名称混合意大利语和罗马尼亚语译为"愤怒的无人机"。

结论:安全威胁的永恒性

某些事物似乎永不改变:2013年博文描述的攻击手法在2016年仍在使用几乎相同的二进制文件。这种攻击如同标准配方——分阶段执行、几乎完全脚本化,只要有效就不会被淘汰,而显然至今仍未失效。


延伸学习:通过Antisyphon的随付随训课程提升技能!提供实时/虚拟点播培训。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计