I think what you need to do is to undergo surgery to change your gender and your ethnicity.
Kidding aside, focus on practical real-world skills that you would get through work experience and volunteer activities (anything - political, religious, charity, arts, etc.).
Your GPA is what it is. Short of a time machine, you just need to get the best grades you can while in school and do well on the GMAT. Doing a masters simply to balance out your undergrad GPA for the sole purpose of b-school is a BAD idea. Do the masters if you want the education and it will further whatever career, but don't waste time doing anything above a bachelors unless you have a very clear idea what it is you want from it.
The one thing you have to your advantage (as opposed to say some older Indian dude with 5+ years experience) is that your post-college life hasn't been written yet. That's huge. You have this golden opportunity to really focus on developing those skills that will really allow you to succeed.
One of the biggest weaknesses I've observed with many technical types is their lack of "practical skills" -- those things you DON'T learn in an academic context - such, as judgment, leadership, how to deal with ambiguity, *really* working with people and understanding team/group dynamics, and building relationships. Focus on finding jobs that will give you the opportunity to work more with people than with numbers. Try and stay busy outside of work getting involved in group-related activities that really interest you. It's probably the complete opposite of what you've been conditioned to do (blame your parents).
B-school, like the real world, isn't about being the smartest person. It's about the most well-rounded and marketable person.
Follow me on Facebook