Proxying HTTP/HTTPS with redsocks and iptables on Android

Proxying HTTP/HTTPS with redsocks and iptables on Android

1
2
3
# burp address
PROXY_HOST="222.210.59.64"
PROXY_PORT="543"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
cat > redsocks.conf <<EOF
base {
log_debug = off;
log_info = off;
log = stderr;
daemon = on;
redirector = iptables;
}

redsocks {
local_ip = 127.0.0.1;
local_port = 8123;
ip = ${PROXY_HOST};
port = ${PROXY_PORT};
type = http-relay;
}
redsocks {
local_ip = 0.0.0.0;
local_port = 8124;
ip = ${PROXY_HOST};
port = ${PROXY_PORT};
type = http-connect;
}
EOF

./redsocks -c redsocks.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
iptables -t nat -N REDSOCKS
iptables -t nat -A OUTPUT -j REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
# skip proxy host
iptables -t nat -A REDSOCKS -d ${PROXY_HOST} -j RETURN

# proxy all http and https
# iptables -t nat -A REDSOCKS -p tcp --dport 80 -j REDIRECT --to-ports 8123
# iptables -t nat -A REDSOCKS -p tcp --dport 443 -j REDIRECT --to-ports 8124

# proxy specify host
iptables -t nat -A REDSOCKS -d 42.201.0.0/16 -p tcp --dport 443 -j REDIRECT --to-ports 8124