The difference between a threat and attack is a threat is merely the presence of opportunity for an attack, whereas an attack is the use of a threat to carry out a specific action. Exploits relate to vulnerabilities because exploits are something an attacker can carry out once a vulnerability is found. Exploits can only be used if a vulnerability exists. Vulnerabilities are weaknesses in a program, and exploits use those weaknesses to carry out an attack. There are ethically acceptable reasons to study and use the attack methods described in this module. In order to better understand and defend against malicious attacks, white-hat hackers can utilize the described attack methods to penetration test systems and outline fixes for these systems to ensure black-hat hackers cannot exploit identified vulnerabilities.