Penetration Testing Methodologies: From Reconnaissance to Reporting