The skipper's late spot kick handed the visitors all three points on a dull afternoon, moving the Gers a step closer to the Third Division title
McCulloch put Rangers in front after 71 minutes from the spot after Lee Wallace had been felled in the penalty area before Ian Black was sent off for a second bookable offence.
The fans have followed their club across Scotland in their droves but they have consistently been rewarded with drab, lifeless displays and this was one of the worst.
The opening 10 minutes were all Rangers but Elgin suffocated their opponents for the majority of the game and reduced their offensive play to aimless long balls.
Ally McCoist made four changes to the starting line-up from the 2-1 defeat to Annan Athletic with Anestis Argyriou, Kal Naismith, the injured Dean Shiels and suspended Kyle Hutton making way for Sebastien Faure, Robbie Crawford, Fraser Aird and Francisco Sandaza.
McCoist's Elgin counterpart Ross Jack meanwhile maintained the same side that won 1-0 at Peterhead.
Rangers started brightly and Sandaza drew a fantastic reaction save from Joe Malin with a strong header from six yards out after marauding left back Wallace whipped in a cross, the Elgin keeper at full stretch to put the ball wide.
Aird was sent away down the left flank from a smart Faure ball and the young winger crossed for Crawford, who rattled the post with a left-footed effort from 20 yards out.
Andy Little almost added to his bulging sack of goals but he dragged a shot just wide of the post. Sandaza had drifted through the City defence before playing the Northern Irishman in.
Mark Nicolson had Elgin’s first chance of the game, sending a close-range free kick well over Neil Alexander’s goal.
Northern Ireland international Little was causing Elgin a lot of trouble cutting in from the right to support Sandaza and he should have done better with his effort from 15 yards out, firing wide after a neat turn lost his marker.
The Rangers defence were giving away a series of needless fouls around the box but Moore could not punish them when he sent a free kick wide from 25 yards.
Crawford had a shot saved early in the second period after Sandaza’s headed flick-on but the game soon slowed to a pedestrian pace.
Little fired in a cross from the right wing for the lurking Sandaza but the Spaniard misjudged his diving header at the back post and missed the ball. That was the striker’s last action of the game as he was replaced by Barrie McKay.
Wallace found his way into the box and was knocked to the ground by two defenders and McCulloch stepped up to roll the ball past Malin.
Elgin pressed hard for an equaliser and Black picked up a second yellow card for a rash challenge leaving the away side to finish the game with 10 men.