Penhook is a census-designated place in Franklin County, Virginia, United States. The population was 801 at the 2010 census, up from 726 in 2000. It is part of the Roanoke Metropolitan Statistical Area.