It strongly depends on just how unethical whatever he/she is asking you to do, If it's something like taking an extra 5 minutes on your lunch break then that can be ignored, but if it's something major like embezzling funds or faking profit reports then it's a different thing entirely.
There's no two ways about it, you have to say no and not do whatever it is that he wants you to do. I'd also recommend that you report whatever he wants you to do The HR because if he gets found out and it's also revealed that you knew what he was doing then most likely you'll face the same punishment that he will.
You have to understand that when it comes to your job, your source of livelihood, you have to take things very serious because the way the world is now, there are thousands of people who are waiting in line to replace you if you get fired and you have to do everything you can to keep your job.
If your colleague is pushing you to do something unethical then they're equally pushing you to lose your job so you have to be wise about what you do. Actually going along with what he/she says you should do could be catastrophic for your career because if you're fired and you try to get a new job, what you did in your old one may still come up.
If you can't report them to your HR then you need to report the person to your boss or your supervisor, that way it will be on record that another person was aware of whatever it was that you're being asked to do.
I hope this helps.
If it's something minor just make a stand and say you are not interested in those things.
If it's grave and it could affect the company you should probably report it to HR or to a direct superior and get it sorted out.
You just slightly deny it.Don't say it directly but change the conversation topic.