The culprit is Akiko Yohehara. Minako Mochizuki had found out that Sugiyama and another teacher (Shimoda, but she didn't tell his name to Yonehara) were involved in a fraud, and added that she was planning to confront the unnamed teacher. The poor girl was found hanged in the school gym few days later, and while everyone thought Minako had commited suicide under the effect of stress over the upcoming exams, Yonehara deduced that she had been killed by Sugiyama and his accomplice.
Knowing the identity of only one of Minako's two murderers, Yonehara organized the trip to gather the teachers that she knew Minako was a fan of. She first killed Sugiyama and left his body hidden outside the lodge to freeze and trick people in regards to the time of his death. Later, she attacked Sonoko to have an alibi, then immediately afterwards pretended to be a victim as well (using Sugiyama's body to such effects, that's the "Yonehara" Sonoko actually saw before being attacked), and used her lipstick to spell out Minako's name in all of these cases. Shimoda's panicked reaction upon realizing the last detail revealed his involvement to her, so she tricked him into meeting up with her and killed him as well.
The murder weapon was Yonehara's wig: she had cut her hair too short for her liking a while ago and hid it via a very long wig, and then decided to use it to strangle her victims, excluding Sonoko as seen in the picture, without leaving clues. Ran says that there were small bloody scratches on the dead Shimoda's neck, and that there are be some droplets of his blood in the wig.
Once she's uncovered, Yonehara takes off the wig. She admits her responsibility for the crimes and says she couldn't forgive teachers who betray students and injure/kill them, but then she adds she's no one to talk because she harmed Sonoko to make her trick work.
Ran, whose emotional state had slowly taken a nosedive as Conan relayed the deductions to her, gets ready to leave the room, barely reacting to Mouri telling her that he'll write a great article on "her" deductions. She sees Conan standing outside the hall, ready to "tell" her that Shinichi is gone; before he can do so, she falls to her knees and hugs him tearfully. Two hours later the snowstorm stops, and the police arrives.