All Projects → aliasrobotics → aztarna

aliasrobotics / aztarna

Licence: GPL-3.0 license
aztarna, a footprinting tool for robots.

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to aztarna

linorobot2
Autonomous mobile robots (2WD, 4WD, Mecanum Drive)
Stars: ✭ 97 (+14.12%)
Mutual labels:  ros, robots, ros2
ROS
ROS机器人操作系统 学习(写于2020年夏)
Stars: ✭ 102 (+20%)
Mutual labels:  ros, ros2
trac ik
ROS 2 port of `trac_ik`, an alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL.
Stars: ✭ 14 (-83.53%)
Mutual labels:  ros, ros2
astuff sensor msgs
A set of messages specific to each sensor supported by AutonomouStuff.
Stars: ✭ 37 (-56.47%)
Mutual labels:  ros, ros2
scout ros
This repository ROS package is suit for scout 2 and scout mini
Stars: ✭ 30 (-64.71%)
Mutual labels:  ros, ros2
ros-gst-bridge
a bidirectional ros to gstreamer bridge and utilities for dynamic pipelines
Stars: ✭ 46 (-45.88%)
Mutual labels:  ros, ros2
isaac ros visual odometry
Visual odometry package based on hardware-accelerated NVIDIA Elbrus library with world class quality and performance.
Stars: ✭ 101 (+18.82%)
Mutual labels:  ros, ros2
isaac ros apriltag
CUDA-accelerated Apriltag detection
Stars: ✭ 42 (-50.59%)
Mutual labels:  ros, ros2
KRS
The Kria Robotics Stack (KRS) is a ROS 2 superset for industry, an integrated set of robot libraries and utilities to accelerate the development, maintenance and commercialization of industrial-grade robotic solutions while using adaptive computing.
Stars: ✭ 26 (-69.41%)
Mutual labels:  ros, ros2
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+2107.06%)
Mutual labels:  ros, ros2
NuttX
Official micro-ROS RTOS
Stars: ✭ 63 (-25.88%)
Mutual labels:  ros, ros2
rclex
Rclex: ROS 2 Client Library for Elixir
Stars: ✭ 77 (-9.41%)
Mutual labels:  ros, ros2
summit xl sim
Packages for the simulation of the Summit XL, Summit XL HL and Summit-X (including X-WAM) robots
Stars: ✭ 32 (-62.35%)
Mutual labels:  ros, robots
awesome-webots
Awesome Webots
Stars: ✭ 46 (-45.88%)
Mutual labels:  ros, ros2
drl grasping
Deep Reinforcement Learning for Robotic Grasping from Octrees
Stars: ✭ 160 (+88.24%)
Mutual labels:  ros, ros2
aws-robomaker-robotics-curriculum
Introductory robotics curriculum
Stars: ✭ 78 (-8.24%)
Mutual labels:  ros, ros2
robot hacking manual
Robot Hacking Manual (RHM). From robotics to cybersecurity. Papers, notes and writeups from a journey into robot cybersecurity.
Stars: ✭ 169 (+98.82%)
Mutual labels:  robots
blender-robotics-utils
Set of utilities for exporting/controlling your robot in Blender
Stars: ✭ 26 (-69.41%)
Mutual labels:  robots
aruco
Aruco marker detector and pose estimation for AR and Robotics with ROS support
Stars: ✭ 93 (+9.41%)
Mutual labels:  ros
segment global planner
A ROS global planner plugin for segments tracking
Stars: ✭ 31 (-63.53%)
Mutual labels:  ros

This repository has been archived and is not maintained any further. Refer to alurity for future progress on robot footprinting and fingerprinting.

aztarna

This repository contains Alias Robotics' 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.

PyPI version Documentation Status Article

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 ROS2 (Funded under the ROSIN project)

  • A list of ROS2 nodes present in each communication domains.
  • A list of discovered topics on each communication domain.
  • A list of discovered services on each communication domain.
  • For each node, the relationship of published and subscribed topics.
  • For each node, the services provided by that node.

For Industrial routers

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

For ROS Industrial packages (Funded under the ROSIN project)

  • Detection of ROS Industrial Hosts.
  • Manufacturers:
    • ABB
    • Fanuc
    • Kuka

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.6 and the setuptools package is required for installation. Python 3.7 is recommended.

ROS2 Module

For usage of the ROS2 footprinting module a ROS2 installation is required. Source the setup.bash script prior to launch.

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] [-d DOMAIN] [--daemon] [--hidden]
               [--shodan] [--api-key API_KEY] [--passive PASSIVE]

Aztarna

optional arguments:
  -h, --help            show this help message and exit
  -t TYPE, --type TYPE  <ROS/ros/SROS/sros/ROS2/ros2/IROUTERS/irouters> Scan
                        ROS, SROS, ROS2 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
  -d DOMAIN, --domain DOMAIN
                        ROS 2 DOMAIN ID (ROS_DOMAIN_ID environmental
                        variable). Only applies to ROS 2.
  --daemon              Use rclpy daemon (coming from ros2cli).
  --hidden              Show hidden ROS 2 nodes. By default filtering
                        _ros2cli*
  --shodan              Use shodan for the scan types that support it.
  --api-key API_KEY     Shodan API Key
  --passive PASSIVE     Passive search for ROS2

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 <host_path>:/root -it aztarna_docker -t ROS -p 11311 -i <input_file>

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 with ROS 2 (example exploring all ranges, 0-231)

aztarna -t ROS2

Run the code with ROS 2 with ROS_DOMAIN_ID=15

aztarna -t ROS2 -d 15

Run the code with ROS 2 using rclpy ros2cli daemon and with ROS_DOMAIN_ID=0 while showing hidden nodes

aztarna -t ros2 -d 0 --daemon --hidden

Run de code with ROS 2 using passive mode to search the hosts. if you set 'any' as argument, is going to search on all interfaces in your system:

aztarna -t ros2 --passive any

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 <yourshodanapikey>

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

aztarna -t IROUTERS --shodan --api-key <yourshodanapikey> -o routers.csv

Cite our work

If you're using our work for your research, please cite us as:

@ARTICLE{2018arXiv181209490V,
  author = {{Vilches}, V{\'\i}ctor Mayoral and {Mendia}, Gorka Olalde and
  {Baskaran}, Xabier Perez and {Cordero}, Alejandro Hern{\'a}ndez
  and {Juan}, Lander Usategui San and {Gil-Uriarte}, Endika and
  {de Urabain}, Odei Olalde Saez and {Kirschgens}, Laura Alzola},
  title = "{Aztarna, a footprinting tool for robots}",
  journal = {arXiv e-prints},
  keywords = {Computer Science - Cryptography and Security, Computer Science - Robotics},
  year = 2018,
  month = Dec,
  eid = {arXiv:1812.09490},
  pages = {arXiv:1812.09490},
  archivePrefix = {arXiv},
  eprint = {1812.09490},
  primaryClass = {cs.CR},
  adsurl = {https://ui.adsabs.harvard.edu/\#abs/2018arXiv181209490V},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

rosin_logo

Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components. More information: rosin-project.eu

eu_flag

This repository was partly funded by ROSIN RedROS2-I FTP which received funding from the European Union’s Horizon 2020 research and innovation programme under the project ROSIN with the grant agreement No 732287.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].