Skip to content

CoolFool/Pongo

Repository files navigation

Pongo

Get message from future using icmp ping

Contents

Introduction

  • A Proof-of-concept program which forges timestamp in icmp ping packets and makes it appear from far into the future (approx 17000 days in future) but the ping times remain normal.
  • Currently only tested on Linux but should work on macOS

Screenshots

Ping times Pongo Reply Log
Ping Times Server reply log

Usage

  • Before using pongo run sudo sysctl net.ipv4.icmp_echo_ignore_all=1 to ignore system ping replies
  • Pongo can be used in the following ways:

Docker

  1. Docker Run

    1. To automatically install & run pongo, simply run:
      docker run -d \
      --name=pongo \
      --net=host \
      --restart unless-stopped \
      coolfool/pongo
      
    2. Logs can be found using
      docker container logs pongo
      
  2. Docker Compose

    1. Download docker-compose.yml
    2. Execute the following command in the same directory
      docker-compose up -d
      

(back to top)

Standalone Binaries

  1. Download the binary for your platform from Releases section
  2. Extract the archive
  3. Run sudo setcap cap_net_raw=ep ./pongo to give cap_net_raw abilities to the program
  4. Run the binary according to your os
    • For linux
      sudo ./pongo 
      

(back to top)

Build and Run Locally

  1. Clone the project
  git clone https://github.com/CoolFool/pongo
  1. Go to the project directory
  cd pongo
  1. Build pongo
  go build -o pongo ./cmd/pongo
  1. Run sudo setcap cap_net_raw=ep ./pongo to give cap_net_raw abilities to the program

  2. Execute pongo according to your platform

  • For linux
    sudo ./pongo 

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Acknowledgement

  • @m_ou_se - For her research into tampering with ICMP Ping Timestamp
  • darkcoding - For his resources on using sockets with golang

(back to top)

Authors

(back to top)

License

MIT

(back to top)