Engraver supply type companys sell stuff made/marketed just for that purpose.
It's usually a 2 part deal. Wipe the coloring agent on, wait a bit and use the second part with a patch to wipe the excess carefully from the high spots.

NGraver sells this one which is marketed as an antique finish for the engraving cuts. But it works the same way.
Click on 'Dot Punches, Stamps & Finishes',,scroll down the page.
http://www.ngraver.com/

Others sell or have sold similar kits over the years. Most use acetone as the second agent used to clear the excess color from the surface IIRC.
The nice thing about these is that they stand up well to handling and most all oil and cleaning products normaly used on firearms.

Using things like Sharpie pens gets the same effect and is much quicker, but can dissappear during a cleaning session.
It's excellent for a quick job for photo purposes and you can alter it quick enough or remove as wanted.

I'd often read of the use of India ink, tried it too many years back because of that and had similar poor results.

Some engravers simply use a good quality model (airplane) paint. Most use a low gloss to avoid the obvious.
(I believe the kit above dries to a low gloss also.)
The thinner sold along with the model paint used for the wipe-off and let it dry thoughly.

FWIW...I've used Krylon or other spray paint finish on small dead flat surfaces before like medallions.
They can be difficult to remove the coloring from the high spots w/o damaging the coloring within the image or lettering.

I spray the lot of them first & allow to dry completely.
Then to take the paint off the high areas, I take a scrap piece of finish sanded millwork trim pine. Dead flat and 'absolutely clean'. No dirt or crud imbedded in the surface.

Brush or wipe some acetone onto the wood suface so it is damp but not wet.
Take one of the medallions and swipe it face down accross the wood. Once usually does it. No chance of the acetone soaked wood reaching into the engraved cuts to get at the coloring, but it cleanly removes the paint from the flats.

Move over a little on the wood and slide the next one accross to avoid dragging it through any paint debris hung up in the wood from the previous one.

As with any finish, prep the surface well to remove old oil and finish in the cuts.