As most survival kits come with fish hooks, I am wondering how do I catch fish without any bait?
Many fish will strike at any moving object of roughly the right shape. Generally shiny is better when improvising fake bait. However you can almost always catch a bug or worm of some kind to put on the hook. Anything small and gooey will usually do.
If you do catch a fish, use their guts for bait.
Dig a bit and search for worms. Look under some old rocks or break open a rotting log and grab a couple insects. If you have a bit of granola or a raisin, or something similar, try that. If you can't find any of those, just go ahead and try with a bare hook, especially around feeding time; I've caught a couple fish that way.
Fish usualy look for a combination of food and refuge . You must look for fish natural food in that habitat and region. Some fish feed of small seeds and fruits and you can look for trees near the water for them. Some fish feed from worms and insects and you can search them in the ground or trees. Some other fish feed of smaller fish and you can actualy use them as bait. Hope it helped.
You can use any piece of lint, string, or leaves, to make a makeshift lure. I had a lot of luck with a small piece of nylon socks, tied to look like a butterfly, to catch frogs. You don't need a hook for it. just wave it in front of the frog. It will jump and bite the nylon, and it won't let go. You can pull up quickly to get the frog up in the air. Catch, kill, peel, gut, clean and cook (extremely well to kill potential parasites). The legs are delicious.
Using a fish lure, it's another option after you should to try the worms or bugs. Lures are enough because, fishes attract with their shine and shape. Artificial lure designed and built especially for fishing and even for different water. And it's made from a plastic material so you can use it many times.