-
-
Save soutar/22a1e1df23147d5ba1f4 to your computer and use it in GitHub Desktop.
| #!/usr/bin/env node | |
| var options = require('minimist')(process.argv.slice(2), { default: { | |
| cport: 8888 | |
| }}); | |
| var disable = options.disable || options.d; | |
| var enable = options.enable || options.e; | |
| var status = options.s || options.status; | |
| var child = require('child_process'); | |
| // -s or --status to list active rules | |
| if (status) { | |
| child.exec('sudo pfctl -s nat -i bridge100', function (error, stdout, stderror) { | |
| console.log(stdout || stderror); | |
| }); | |
| return; | |
| } | |
| if (enable) { | |
| var pfrules = [ | |
| 'rdr pass on bridge100 inet proto tcp from any to any port 80 -> 127.0.0.1 port {charles_port}', | |
| ]; | |
| pfrules.forEach(function (pfrule) { | |
| pfrule = pfrule.replace(/{charles_port}/g, options.cport); | |
| child.exec('echo "' + pfrule + '" | sudo pfctl -ef -'); | |
| }); | |
| console.log('HTTP & HTTPS traffic on Internet Sharing network now redirecting to 127.0.0.1:' + options.cport); | |
| return; | |
| } else if (disable) { | |
| console.log('Cleared all rules on the Internet Sharing network'); | |
| child.exec('sudo pfctl -F nat -i bridge100'); | |
| return; | |
| } | |
| console.log('Usage: -e to enable, -d to disable or -s for status'); |
This is only redirecting HTTP traffic, not HTTPS right? The port 443 is not being acknowledged here.
I tried just simply adding another rule, but that didn't work.
'rdr pass on bridge100 inet proto tcp from any to any port 443 -> 127.0.0.1 port {charles_port}'Any idea how to capture HTTPS traffic?
The script is prepared to catch a single pf rule.
So in order to add both http and https, they need to be together in the same string.
var pfrules = [ 'rdr pass on bridge100 inet proto tcp from any to any port 80 -> 127.0.0.1 port {charles_port} \n rdr pass on bridge100 inet proto tcp from any to any port 443 -> 127.0.0.1 port {charles_port}' ];
I can't seem to get logs from my Roku device when I try to capture HTTPS traffic.
I constantly receive 503 errors with "Invalid first line in request".
What could I be missing?
This is only redirecting HTTP traffic, not HTTPS right? The port 443 is not being acknowledged here.
I tried just simply adding another rule, but that didn't work.
'rdr pass on bridge100 inet proto tcp from any to any port 443 -> 127.0.0.1 port {charles_port}'Any idea how to capture HTTPS traffic?