Exploit: This is a piece of code which, when executed, will trigger the vulnerability at the target.
Payload: This is a piece of code that runs at the target after a successful exploitation is done. It defines the type of access and actions we need to gain on the target system.
Auxiliary: These are modules that provide additional functionalities such as scanning, fuzzing, sniffing, and much more.
Encoder: These are used to obfuscate modules to avoid detection by a protection mechanism such as an antivirus or a firewall.
Meterpreter: This is a payload that uses in-memory stagers based on DLL injections. It provides a variety of functions to perform at the target, which makes it a popular choice.