There is a lot of platform for training and learn hacking techniques, here are my favorites.

Online

Root Me (fr) : challenges and CTF.

Exploit Exercises : challenges and virtual machines.

Zenk-Security : challenges and tutoriels repository.

W3Challs :  challenges.

Newbie Contest (fr) : french challenges.

Local

VulnHub : vulnerable virtual machines.

DVWA : vulnerable web application.

WebGoat : vulnerable web application.