Techniques used in penetration testing