UKRAINE has said its troops have wrested more territory from pro-Russian rebels, advancing towards the site where Malaysian flight MH17 was brought down and which international investigators said they could not reach because of the fighting.

Ukrainian officials said troops had recaptured two rebel-held towns near the crash site and were trying to take the village of Snezhnoye, near where Kiev and Washington say rebels fired the surface-to-air missile that shot down the airliner, killing all 298 people on board.

One pro-government militia said 23 of its men had been killed in fighting in the past 24 hours.

Analysis of black box flight recorders from the airliner showed it was destroyed by shrapnel from a missile blast that caused a "massive explosive decompression", a Ukrainian official said.

In a report on three months of fighting between government forces and separatist rebels who have set up pro-Russian "republics" in the east, the United Nations said more than 1,100 people had been killed.

Navi Pillay, UN High Commissioner For Human Rights, said increasingly intense fighting in the Donetsk and Luhansk regions was extremely alarming and the shooting down of the Malaysian airliner on July 17 may amount to a war crime.

Western leaders say rebels almost certainly shot the airliner down by mistake with a Russian-supplied surface-to-air missile, while Russia blames Kiev.

The separatists are still in control of the area where the plane was shot down, but fighting in the surrounding countryside has been heavy as government forces try to drive them out.

Investigators from the Netherlands and Australia were forced to return to Donetsk for "security reasons".

Officials in the rebel-held city said artillery fire had damaged residential blocks, houses, power lines and a gas pipeline.

The city, with a pre-war population of nearly one million, has largely become a ghost town since rebels dug in for a stand in the face of advancing Ukrainian troops.