They are both correct, but "anybody" is definitely more common, whether in reported or direct questions.
Here �s the difference:
While getting to know a new acquaintance, she asked if I knew anybody famous.
This is a general inquiry, just to learn a general piece of information.
We are trying to coordinate a major fund-raising event, so she aske me if I knew somebody famous that we could get as our guest speaker.
Here she is looking for a specific person. "Anybody" could also be used here, too, but "somebody" fits the urgency of the situation better. She is hoping that I do know somebody famous.
In general, we use "some" in questions if we are expecting a positive response, and "any" if we are expecting a negative response or don �t know what to expect.
If I ask my wife "Do we have some milk?", I am thinking that we do, and looking for confirmation.
If I ask "Do we have any milk?", I don �t have any reason to think that we do, or I think that we probably don �t.
If I ask you "Do you need something?", it is because I am responding to some kind of cue - a look on your face, something you said, etc.
If I ask "Do you need anything?", it is a more general question, and I don �t have any expectation of whether you need something or not.
Bruce