Raycast Terrain And get the collider position for crosshair

I have one gun and move by mouse using MouseLook comes from Unity. And there is Terrain on my scense and one static camera, I have one ray from firePosition and after debug, the hit point is always in (0,0,0), but what I want is the explosion position of my projectile bullet for my crosshair.

finally I find the solution by LineCast and Use 3D object for my cursor. Post here for share.
void CursorUpdate()
{
cursorTarget = cursorPoint.position + cursorPoint.TransformDirection(Vector3.forward * 5000f);
if(Physics.Linecast(cursorPoint.position,cursorTarget,out cursorHit,~markLayer))
{
if(cursorHit.collider.name == “Terrain”)
{
cursor.transform.position = cursorHit.point;
}

		}
	
	else
	{
		cursor.transform.position = cursorPoint.position + cursorPoint.TransformDirection(Vector3.forward * 200f);
	}
	
}