Whisk together the Guinness, milk, vegetable oil, and vanilla in a large bowl until combined. Whisk in the eggs, one at a time, until completely incorporated. Whisk in the sour cream.
In another large bowl, whisk together the flour, sugar, cocoa powder, baking soda, and salt.
Gradually fold the dry ingredients into the wet ingredients.
Divide the batter equally among the cupcake liners.
Bake for 20-25 minutes until a toothpick inserted into the center comes out clean. Set the pans on a wire rack, and let the cupcakes cool completely before removing from the pans.
Place the cream cheese and salt in a bowl of a stand mixer with a paddle attachment. Beat on medium speed until light and fluffy, approximately 2 minutes.
With the mixer on medium speed, gradually beat in the heavy cream until smooth, about 1 minute. Scrape down the sides of the bowl with a spatula.
Gradually beat in the powdered sugar until completely incorporated, and the frosting is smooth.
Top each cupcake with frosting and dust with cocoa powder.