Skip to content

gbonacini/arpchatcpp

Repository files navigation

Description:

Arpchat is a program implementing a chat using malformed gratuitous ARP packets:

alt text

as shown in the following picture, messages are sent using malformed ARP packets:

alt text

Disclaimers:

  • This program is intended to be a concept to exploit arp messages ans should not be used in production environment because could create serious malfunctions in network communications. So I discourage the use of this software outside controlled test environments. I will not be responsible of any damage this software could cause. So don't call me if your network administrator is looking for you with homicidal intentions because you are using arpchatcpp in production environment, I advised you.

  • Before using this program you should be familiar with gratuitous ARP requests (RFC 5227).

Prerequisites:

The program is intended to be used in a Linux environment and it is tested using the following Linux distributions:

  • Ubuntu 22.04.2 LTS (jammy) for ARM
  • Ubuntu 22.04.2 LTS (jammy) for x86-64

using, as compiler, one in this list:

  • g++ (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 (ARM)
  • g++ (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 (x86-64)

To compile the program, this tools/libraries are necessary:

  • a c++ compiler ( with c++20 support);
  • automake/autoconf with libtool;
  • libcap (Capabilities lib), example for Ubuntu/DEbian:
  sudo apt install  libcap-dev
  • liblua , example for Ubuntu/Debian:
  sudo apt install liblua5.4-dev

Installation:

  • Create config scripts:
   make -f makefile.dist
  • launch the configure script:
  ./configure
  • Compile the program:
  make
  • Install the program and the man page:
  sudo make install
  • set capabilities:
  sudo setcap cap_net_raw=eip src/arpchatcpp   

Configuration:

  • A template config file is provided in "data" directory, it uses LUA syntax to define variables storing configuration data;
  • Your configuration should be compliant with RFC 5227 ( gratuitous ARP requests );
  • To avoid gargage printed on the chat conversation panel, set accordigly the filter in configuration file.

Example:

  • The following example shows how to start the application:
 ./arpchatcpp -i enp0s1 -d0 -f ../data/arpchat.lua

where:

  • enp0s1 is the network interface used to communicate
  • ../data/arpchat.lua is the config file path
  • 0 is the selected debugging level

See included man page for further information.

Log file:

  • A log file called "arpchat.log.txt" will be created inside program directory.

Instructions:

See the man page included in the release.

License:

* This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License

About

textual chat exploiting gratuitous ARP requests ( RFC 5227 ) written in c++

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors