I am planning on creating a network security testing tool with python that carries out a variety of attacks and tests other vulnerability issues on a host (Such as: Ping of death, slow loris, teardrop and so on) so security teams can quickly PoC different vendor appliances.
Since this is my first real "own" project...I do not know how to go on structuring it.
So far I thought about it this way:
├ role
| ├ attacker.py
| └ victim.py
├ tests
| ├ slow_loris.py
| └ teadrop.py
├ CLI.py
└ main.py
Where in role we have two scripts that would define the services to be run (If it's a victim, then it runs a web server on port 80 and so on), in tests we have the different tests to be run and in CLI we find all the possible interactions with the CLI the user can have, menus, "do you want to quit" and so on.
Finally in main we import everything and run the program.
Should I keep this structure or is there something I might be not be addressing/forgetting?