An eyewitness has told the BBC of the terrifying moment gunmen burst into Kabul's Intercontinental Hotel restaurant on Saturday.
The man, who is not being named for security reasons, said he was spared after saying he was an Afghan. "Where are the foreigners?" they shouted.
At least six civilians were killed in the 12-hour siege, officials said.
The interior minister said the recent decision to transfer security to a private company had been a mistake.
Some 160 people were rescued after Afghan troops fought throughout the night to regain control of the building.
Afghan news agency Tolo says the death toll could be higher than the official figure, quoting a reporter who said they had seen dozens of bodies inside the hotel.
Three attackers were also killed in the siege, officials said.
Afghan airline Kam Air told local journalist Bilal Sarwary it had 42 members of staff in the hotel, some of whom were foreign nationals. Eighteen are still missing with five feared dead.
The Taliban, which targeted the hotel in 2011, says it was behind the latest attack. A spokesman said in a statement quoted by AFP that the group had "killed tens of foreign invaders and their puppets".
Gunmen 'ate before shooting'
The gunmen burst into the six-floor hotel at around 21:00 local time (16:30 GMT) on Saturday evening, as guests were enjoying dinner.
The eyewitness told the BBC he was having dinner with his son when the gunmen began firing into the air with small arms.
They killed a woman – believed to be a foreigner – and turned the gun on the eyewitness himself.
He shouted "I'm Afghan". One of the gunmen shouted that they didn't kill Afghans and demanded to know "Where are the foreigners?" The men then ran out of the room to look for them.
Haseeb, another eyewitness told Tolo News that two of the gunmen had asked him to serve them food first.
"They were wearing very stylish clothes," he said. "They came to me and asked for food. I served them the food and they thanked me and took their seats. Then they took out their weapons and started shooting the people."
"There were dozens of dead bodies lying around me."
Several guests were pictured using bed sheets to try to climb down from a top-floor balcony.
Dramatic images on Afghan TV showed thick black smoke and flames rising from the imposing hilltop hotel.
Afghan special forces were lowered by helicopters on to the roof of the hotel during the night, an interior ministry spokesman said.
They were working with Western special forces to bring the siege to an end.
Forty-one foreigners were among those rescued and seven people were wounded, according to figures from the interior ministry.
The ministry has promised an investigation into how the attackers breached security, which was handed to a private company two weeks ago.
Hotel manager Ahmad Haris Nayab said the gunmen had entered the hotel through a kitchen.
The Intercontinental is a state-owned hotel – not linked to the global hotel chain of the same name – which often hosts weddings, conferences and political gatherings.
Security has been tightened in Kabul since last May, when a huge truck bomb killed at least 150 people.
However, there have been several attacks in recent months. They include a bomb at a Shia cultural centre last month that killed more than 40 people.
Are you in the area? If it is safe to do so, you can share your experiences by emailing [email protected].
Please include a contact number if you are willing to speak to a BBC journalist. You can also contact us in the following ways:
- WhatsApp: +44 7555 173285
- Send pictures/video to [email protected]
- Upload your pictures / video here
- Tweet: @BBC_HaveYourSay
- Text an SMS or MMS to 61124 (UK) or +44 7624 800 100 (international)