sskaje / mitm
sskaje 的 MiTM 代理
dev-master
2017-04-27 04:23 UTC
Requires
- php: >=7.0.0
- react/react: 0.4.2
This package is not auto-updated.
Last update: 2024-09-20 21:22:16 UTC
README
PHP Man-in-The-Middle TCP Proxy based on ReactPHP.
此代理不适用于 SSL 到普通 或 SSL 到 SSL 的高职。
作者:sskaje (http://sskaje.me/)
安装
克隆代码
$ git clone git@github.com:sskaje/mitm.git
或
$ git clone https://github.com/sskaje/mitm.git
Composer 安装依赖
$ cd mitm
$ php composer.phar install
试用
examples/proxy.php 是一个简单的 PHP-MiTM 实现,将日志发送到 stderr。
examples/verbose.php 做同样的事情,并将流量数据转储到 stderr。
用法
php examples/proxy.php LISTEN_PORT CONNECT_HOST CONNECT_PORT [RESOLVER]
示例
- 将 TCP DNS 请求从 127.0.0.1:53 转发到 114.114.114.114:53
这需要 ROOT 权限,你必须知道为什么。
如果不这样做,请尝试将 5353 作为 bin/proxy.php 的第一个参数。
php examples/proxy.php 53 114.114.114.114 53
# direct tcp dns query to 114.114.114.114
$ dig +tcp @114.114.114.114
# query 127.0.0.1:53
$ dig +tcp @127.0.0.1
# query port to 5353 if you bind proxy to 127.0.0.1:5353
$ dig +tcp -p 5353 @127.0.0.1
- 转发 HTTP 请求
php examples/proxy.php 15920 118.184.180.46 80
curl 127.0.0.1:15920 -H 'Host: ip.cn'
当前 IP:39.166.202.153 来自:江西省九江市 移动
- 劫持并修改 HTTP 流量
将来自 sskaje.me 的 http 请求更改为 ip.rst.im
php examples/hijack.php 15920 104.31.70.199 80
curl 127.0.0.1:15920 -H 'Host: sskaje.me'
你将看到
[1] [HIJACK] sskaje.me FOUND in HTTP Header
[1] [HIJACK] replaced to ip.rst.im
更多
在路由器上劫持流量
如果你有一个 Linux 路由器,或者带有 net.ipv4.ip_forward=1 的 Linux 箱子
iptables -t nat -A PREROUTING -p tcp --dst {CONNECT_HOST} --dport {CONNECT_PORT} -j REDIRECT --to-port {LISTEN_PORT}
## EOF