Aztarna – A Footprinting Tool For Robots

This repository contains Alias Robotic’s aztarna, a footprinting tool for robots.

Alias Robotics supports original robot manufacturers assessing their security and improving their quality of software.

By no means we encourage or promote the unauthorized tampering with running robotic systems. This can cause serious human harm and material damages.

Also Read:Tcpreplay – Pcap Editing & Replay Tools For UNIX & Windows

For ROS

  • A list of the ROS nodes present in the system (Publishers and Subscribers)
  • For each node, the published and subscribed topis including the topic type
  • For each node, the ROS services each of the nodes offer
  • A list of all ROS parameters present in the Parameter Server
  • A list of the active communications running in the system. A single communication includes the involved publiser/subscriber nodes and the topics

For SROS

  • Determining if the system is a SROS master.
  • Detecting if demo configuration is in use.
  • A list of the nodes found in the system. (Extended mode)
  • A list of allow/deny policies for each node.
    • Publishable topics.
    • Subscriptable topics.
    • Executable services.
    • Readable parameters.

For Industrial routers

  • Detecting eWON, Moxa, Sierra Wireless and Westermo industrial routers.
  • Default credential checking for found routers.

Aztarna Installation

For production

Direcly from PyPi

pip3 install aztarna

or from the repository:

pip3 install .

For development

pip3 install -e .
or
python3 setup.py develop

Python 3.7 and the setuptools package is required for installatio

Install with docker

docker build -t aztarna_docker .

Code usage:

usage: aztarna [-h] -t TYPE [-a ADDRESS] [-p PORTS] [-i INPUT_FILE]
[-o OUT_FILE] [-e] [-r RATE] [–shodan] [–api-key API_KEY]
Aztarn
optional arguments:
-h, –help show this help message and exit
-t TYPE, –type TYPE Scan ROS, SROS
hosts or Industrial routers
-a ADDRESS, –address ADDRESS
Single address or network range to scan.
-p PORTS, –ports PORTS
Ports to scan (format: 13311 or 11111-11155 or
1,2,3,4)
-i INPUT_FILE, –input_file INPUT_FILE
Input file of addresses to use for scanning
-o OUT_FILE, –out_file OUT_FILE
Output file for the results
-e, –extended Extended scan of the hosts
-r RATE, –rate RATE Maximum simultaneous network connections
–shodan Use shodan for the scan types that support it.
–api-key API_KEY Shodan API Key

Run the code (example input file):

aztarna -t ROS -p 11311 -i ros_scan_s20.csv

Run the code with Docker (example input file):

docker run -v :/root -it aztarna_docker -t ROS -p 11311 -i

Run the code (example single ip address):

aztarna -t ROS -p 11311 -a 115.129.241.241

Run the code (example subnet):

aztarna -t ROS -p 11311 -a 115.129.241.0/24

Run the code (example single ip address, port range):

aztarna -t ROS -p 11311-11500 -a 115.129.241.241

Run the code (example single ip address, port list):

aztarna -t ROS -p 11311,11312,11313 -a 115.129.241.241

Run the code (example piping directly from zmap):

zmap -p 11311 0.0.0.0/0 -q | aztarna -t SROS -p 11311

Run the code (example search for industrial routers in shodan)

aztarna -t IROUTERS –shodan –api-key

Run the code (example search for industrial routers in shodan, piping to file)

aztarna -t IROUTERS –shodan –api-key -o routers.csv

R K

Recent Posts

Understanding the Model Context Protocol (MCP) and How It Works

Introduction to the Model Context Protocol (MCP) The Model Context Protocol (MCP) is an open…

14 hours ago

The file Command – Quickly Identify File Contents in Linux

While file extensions in Linux are optional and often misleading, the file command helps decode what a…

23 hours ago

How to Use the touch Command in Linux

The touch command is one of the quickest ways to create new empty files or update timestamps…

23 hours ago

How to Search Files and Folders in Linux Using the find Command

Handling large numbers of files is routine for Linux users, and that’s where the find command shines.…

23 hours ago

How to Move and Rename Files in Linux with the mv Command

Managing files and directories is foundational for Linux workflows, and the mv (“move”) command makes it easy…

24 hours ago

How to Create Directories in Linux with the mkdir Command

Creating directories is one of the earliest skills you'll use on a Linux system. The mkdir (make…

24 hours ago