Witnesses said the aircraft had come down in a ball of flames near the city of Kavala before exploding on impact in corn fields around midnight local time. Earlier the pilot had reported engine trouble and had requested an emergency landing.
Drone images from the scene showed smouldering debris from the Antonov An-12 aircraft strewn across fields.
Ukrainian-based airline Meridian, which operated the aircraft, confirmed that all eight crew members had died in the crash. Ukraine's foreign ministry said they were all Ukrainian citizens.
Greek authorities have recovered the body of one crew member so far, a civil protection service spokesman said. Six bodies have been located during an initial drone inspection of the area, a local mayor said.
Serbian Defence Minister Nebojsa Stefanovic said the plane had been carrying 11.5 tonnes of products, including mortar and training shells, made by its defence industry. The buyer of the cargo was the defence ministry of Bangladesh, he added.
Confirming that account, Denys Bogdanovych, Meridian's general director, said the crash had no relation to the war currently raging in Ukraine.