Penhook is a census-designated place (CDP) in Franklin County, Virginia, United States. The population was 726 at the 2000 census. It is part of the Roanoke Metropolitan Statistical Area.
Penhook is located at 37°0′16″N 79°37′43″W / 37.00444°N 79.62861°W / 37.00444; -79.62861 (37.004501, -79.628747).
According to the United States Census Bureau, the CDP has a total area of 12.6 square miles (32.7 km²), of which, 11.2 square miles (28.9 km²) of it is land and 1.5 square miles (3.8 km²) of it (11.71%) is water.