The only way to achieve passive stealthiness is to have a ship that generates no heat, which is difficult under ideal circumstances and impossible with organic lifeforms aboard. So you need to have your "crew" be an AI, or the uploaded personalities of humans, that can be stored without energy usage.
Then you take an asteroid and build a ship into it. When the time comes to "launch" that ship, you use some kind of linear accelerator to fire it at Earth on the trajectory you desire. The ship starts off completely powered down so no heat output, but it has a timer in it set before the launch - when that timer triggers it opens a relay, and that brings your ship (and AI/personalities) online to fire whatever weapons they need. Off course, the defenders will light up your ship and crew pretty fast...
As such, this is likely going to be a one-way trip, so it's far simpler for your asteroid-ship to be controlled by a single, dumb computer program that wakes up, fires a bunch of torpedoes at a bunch of preselected targets, then overloads its reactor and self-destructs to prevent the enemy from figuring out precisely what just happened. You don't actually need a starship, just a stealthy weapons-delivery platform.
The alternative, much more reliable but much more difficult, approach is to compromise the sensor systems of your opponent (all of them, across all their ships too) so that any data read about your ship is ignored. A virus to achieve this would be incredibly difficult to detect (proving a negative) unless your enemy knows your ship is really there by some other means. This allows you to build a perfectly ordinary ship with perfectly ordinary parameters, but still remain wholly undetected - about the only stealth you'd need is black paint to prevent anyone using their can't-be-fooled organic eyes from picking your ship out.