If you want to get into a Top 10 program, you'll need to have some work experience or volunteer experience that reflects your interest and passion for working in public health. Unlike medical, law and business school, to get into a top program, you do not need to have a stellar GPA. I mean, don't get me wrong, having one won't hurt you, though it might not necessarily help you out either. For professional degrees like an MPH, one's work experience is valued a lot more than their near perfect GPA.
With your 3.3-3.4 GPA and average GREs, you should be able to get into some solid programs if you have displayed both a passion and experience in public health or public-health related work in both your academic and work experience, as well as in your personal statement. Also, certain programs require different standards, i.e. most epidemiology programs really place an emphasis on your quantitative skills as displayed in your undergraduate coursework and quantitative score on the GRE.
My advice: If you want to get into Harvard, Johns Hopkins, LSHTM, UNC, etc., you'll want to probably take a gap year or two and gain some valuable work experience. Though, I know of friends and others who have gotten into other top 10 programs, i.e. Columbia, Emory, UCLA, etc., before graduating their senior year and starting as incoming 1st years that upcoming fall. Though, they have had at least intern and research positions during their undergrad, as well as other experiences (volunteer abroad etc.) that were indicative of their interest in public health.
I hope this helps!