The Basics of Hacking and Penetration Testing