
Real-time two-factor phishing tool that automates credential harvesting by intercepting credentials from a phishing site and submitting them to the target login page via browser automation.
This tool has been released along with a FireEye blog post. The blog post can be found at the following link: https://www.fireeye.com/blog/threat-research/2018/02/reelphish-real-time-two-factor-phishing-tool.html
The latest release of Python 2.7.x is required.
Install Selenium, a required dependency to run the browser drivers.
Download browser drivers for all web browsers you plan to use. Binaries should be placed in this root directory with the following naming scheme.
Internet Explorer: www.seleniumhq.org/download/
Firefox: www.github.com/mozilla/geckodriver/releases/
Chrome: https://chromedriver.storage.googleapis.com/index.html?path=2.35/
ReelPhish consists of two components: the phishing site handling code and this script. The phishing site can be designed as desired. Sample PHP code is provided in /examplesitecode. The sample code will take a username and password from a HTTP POST request and transmit it to the phishing script.
The phishing script listens on a local port and awaits a packet of credentials. Once credentials are received, the phishing script will open a new web browser instance and navigate to the desired URL (the actual site where you will be entering a user's credentials). Credentials will be submitted by the web browser.
The recommended way of handling communication between the phishing site and this script is by using a reverse SSH tunnel. This is why the example PHP phishing site code submits credentials to localhost:2135.
ReelPhish supports multiple authentication pages. For example, in some cases a two factor authentication code may be requested on a second page. To implement this feature, be sure that --numpages is set to the number of authentication pages. Also be sure that the session ID is properly tracked on your phishing site. The session ID is used to track users as they proceed through each step of authentication.
In some cases, you may need to scrape specific content (such as a challenge code) off of a particular authentication page. Example commented out code is provided in ReelPhish.py to perform a scraping operation.