When Orange Tsai set out to participate in Facebook's bug bounty program in February, he successfully managed to gain access to one of Facebook's corporate servers. But once in, he realized that malicious hackers had beaten him to it.
Tsai, a consultant with Taiwanese penetration testing outfit Devcore, had started by mapping Facebook's online properties, which extend beyond user-facing services like facebook.com or instagram.com.
One server that caught his attention was files.fb.com, which hosted a secure file transfer application made by enterprise software vendor Accellion and was presumably used by Facebook employees for file sharing and collaboration.
Tsai analyzed the application and found seven vulnerabilities, including two remote code execution ones, which he reported to Accellion.
He used the vulnerabilities to gain access to Facebook's corporate server and started to gather information from its logs in order to prepare a report for the company's security team.
That's when he spotted some unusual errors in the server's log that pointed him to what turned out to be a PHP-based backdoor -- also known as a Web shell -- that had previously been installed on the server by malicious hackers.
The rogue Web shell allowed the hackers to execute shell commands on the server and to upload files, but more importantly, it hijacked the Accellion application's authentication process and recorded the credentials of Facebook employees accessing it.
"At the time I discovered these, there were around 300 logged credentials dated between February 1st to 7th, mostly '@fb.com' and '@facebook.com'," Tsai said in a blog post Thursday. "Upon seeing it I thought it’s a pretty serious security incident."
Since the Accellion application allowed authentication through LDAP and Windows Active Directory, Tsai suspected that the captured Facebook employee credentials might also work for other Facebook corporate servers, such as Outlook Web App or VPN, but he didn't try to use them.
Further analysis of the server logs revealed that the hackers who originally installed the Web Shell downloaded the captured credentials and deleted the file containing them every few days. In addition, there was evidence that they tried to map Facebook's internal network, to log into the LDAP and other servers and even searched for SSL private keys.
"There were two periods that the system was obviously operated by the hacker, one in the beginning of July and one in mid-September," Tsai said.
The July incident happened to take place right around the same time that a remote code execution vulnerability in the Accellion File Transfer Appliance was publicly disclosed.
Tsai reported all of his findings to Facebook, which awarded him a $10,000 bug bounty and launched its own forensics investigation that was completed this month, prompting the researcher's blog post.
Facebook did not immediately respond to a request for comment.