The age old question... Anyway there are a number of online sites that host hacking challenges and such. A quick google search for "Hacking Challenge websites" will give you some decent results. HackThisSite.org is a popular one. Many of the sites are going to focus on Web App testing. If you want to test against anything else you will need to invest in a box that could run a lab. Doesn't need to be a high end quad core 16GB RAM beast but a couple gigs of RAM and a decent CPU will work.
This is a profession that really requires a bit of investment on the part of the hacker if one expects to go far in the job. Many of us do it because we love it and the money is an excellent perk.