Which framework provides a structured methodology for penetration testing including pre-engagement, intelligence gathering, and reporting phases?