Aztarna - A Footprinting Tool For Robots




This repository contains Alias Robotics' aztarna, a footprinting tool for robots.
Alias Robotics supports original robot manufacturers assessing their safety too improving their character of software. By no way nosotros encourage or promote the unauthorized tampering amongst running robotic systems. This tin displace serious human harm too cloth damages.

For ROS
  • A listing of the ROS nodes acquaint inward the organisation (Publishers too Subscribers)
  • For each node, the published too subscribed topis including the theme type
  • For each node, the ROS services each of the nodes offer
  • A listing of all ROS parameters acquaint inward the Parameter Server
  • A listing of the active communications running inward the system. H5N1 unmarried communication includes the involved publiser/subscriber nodes too the topics

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

For Industrial routers
  • Detecting eWON, Moxa, Sierra Wireless too Westermo industrial routers.
  • Default credential checking for institute routers.

Installing

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 too the setuptools bundle is required for installation.

Install amongst docker
docker construct -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]  Aztarna  optional arguments:   -h, --help            demonstrate this assistance message too instruct out   -t TYPE, --type TYPE   Scan ROS, SROS                         hosts or Industrial routers   -a ADDRESS, --address ADDRESS                         Single address or network arrive at 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 purpose 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 back upwards 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 amongst Docker (example input file):
docker run -v :/root -it aztarna_docker -t ROS -p 11311 -i 

Run the code (example unmarried 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 unmarried ip address, port range):
aztarna -t ROS -p 11311-11500 -a 115.129.241.241

Run the code (example unmarried ip address, port list):
aztarna -t ROS -p 11311,11312,11313 -a 115.129.241.241

Run the code (example pipage conduct from zmap):
zmap -p 11311 0.0.0.0/0 -q | aztarna -t SROS -p 11311

Run the code (example search for industrial routers inward shodan)
aztarna -t IROUTERS --shodan --api-key 

Run the code (example search for industrial routers inward shodan, pipage to file)
aztarna -t IROUTERS --shodan --api-key  -o routers.csv