Probably a loose crank, but these things can be deceptive. I had a creak for ages that I was convinced was coming from the bottom bracket/chainset. I even replaced the chainset. It finally went away when I pulled out the seat post and put it back with some grease. It was a very long mtb alloy seat post in a steel road frame, going about half way down the seat tube, and as the framed flexed the two were rubbing against each other and creaking.