We all hate it. But if you knit socks, at some point, you need to learn how to do it.
There are some things that will make your life easier. The first, foremost rule:
Do not throw away your old sock yarn, save some for darning purposes!
Then, the next-most-important rule:
Do not wait for a hole to appear before darning!
Inspect your hand-knit socks every time you wash them and darn them once they start to look worn. Once the hole appears, it's much harder to darn neatly. The smaller the hole, the easier the repair. If you suddenly get a hole during the day, whip out your sewing kit (what?? You don't carry one at all times??) and make a quickie repair job with sewing thread to prevent the hole from getting bigger! My socks go at the toes:
[darning egg. This is a wooden egg from Michael's, covered with Fimo by my kids. Fimo is totally optional.]
Then, identify a square area that you will fill in with duplicate stitch. In this case, I'm looking at 5 sts by about 4-5 rows all 'round the hole, making sure that the first and last rows and each side column are over still-existing stitches. Starting at one of the lower corners, duplicate-stitch over top of the existing work. The first row is the easy warm-up since you should be following existing sock!
[here, I've completed the bottom row and getting my needle into position for row 2]
The second row will be trickier because there will be a few stitches where there isn't any pattern to follow. This means: loose loops of yarn.
[here I am working on the 2nd row, over the hole. I have to continue the pattern "in my head" without the sock structure to guide me...]
[continue to the end of row 2, catching both the remaining sock yarn as well as the darning threads from row 1.]
If there is still sock yarn present, catch both it and the darning thread from the previous row - you'll make a double-thick "knitted" structure this way.
[on row 3 - orange - there will be no "sock" yarn to catch]
On row 3, I'll be moving right to left again and there will be no sock yarn to catch, only the darning threads from row 2 (see orange visualization above).
The next rows build on each other, and I will be catching the darning thread of the previous row. Don't pull duplicate stitch too tight, because it makes it hard to pick out (and if you are like me, it'll take a few tries to get right!). Also it looks best if it matches the yarn tension.