What is PenguinPing?
Security testing is an important information security task, for verification of sites and services before being put into production. This site is about a DDoS testing tool which can help perform structured network and infrastructure testing.
When connecting to the Internet we immediately receive traffic from unknown sources. We should consider testing our infrastructure using active pentest methods, to verify robustness. This talk will be about doing port scans for discovery of infrastructures and detailed advice how to perform active DDoS simulation to find bottlenecks in the network. The attack tools will be already known tools like Nmap and Hping3 with IPv6 patches. The focus is on the process and experiences doing this over many years.
Networks are insecure, and often not as robust as we wish. There is a high risk that networks are vulnerable to one or more DDoS attack vectors, if not tested and verified. When setting up networks we often ignore the built-in features available, and we often have to select which features to enable on specific devices. The vendors tell us they can do everything in every box, but the truth is that attackers can often use more resources than we have available.
PenguinPing is on Codeberg
PenguinPing is a simple Lua script currently running on top of MoonGen/libmoon. Multiple variants exist, and these can be found on Codeberg:
- MoonGen and libmoon are the libraries on top of DPDK which are required to run PenguinPing. These are out of date! Luckily they were updated in 2025 by : MoonGen 2025 updated TUM School of Computation, Information and Technology Technical University of Munich
- My contributions are a script to use these to implement a hping3 style testing program for DDoS PenguinPing - in development
- Presentations from TROOPERS22 and Hacktivity 2022 are to be found on Codeberg as well
DDoS Testing Your Infrastructure, including IPv6 SYN floods - Presentation from BornHack 2026 is in Codeberg as well
MoonGen BlueField-2 Packet Generation
PenguinPing Software stack
Original paper: P. Emmerich et al., MoonGen: A Scriptable High-Speed Packet Generator, ACM IMC 2015. https://dl.acm.org/doi/10.1145/2815675.2815692 Updated fork with MoonGem path emulator (delay, rate limiting, packet loss): TU Munich Network Architectures and Services group, CoNEXT 2025. https://github.com/tumi8/moongen libmoon (core DPDK/LuaJIT framework underlying MoonGen): https://github.com/libmoon/libmoon This is confirmed working on Debian 13 in 2026!
Easy to install and run
Get started by cloning MoonGen source from GitHub,
compile and run using the script build.sh.
Don't forget to read and follow instructions for huge tables etc.
Lua Scripting
Look at the examples from MoonGen and then clone PenguinPing
Git-based source control
Leverage Git version control system by cloning the scripts and start modifying Lua code. Knowing it can send full wirespeed 10Gbps with 14.8 Mpps (millions of packets per second)
In development and testing we are currently reaching about 100Mpps with 100G network cards - using Nvidia/Mellanox DPU2 with ConnectX-6 Dx on a standard PC with Intel Core i9-10900K, 10 physical cores.