Capture Traffic from Non-Proxy-Aware Apps Using ProxyMan
I would like to use ProxyMan to capture traffic from non-proxy-aware apps. ProxyMan has a very user-friendly UI and works perfectly with proxy-aware apps, where I can set up an HTTP proxy on a mobile device and view traffic on a ProxyMan instance running on a macOS PC.
Current Setup:
iOS App: Does not honor HTTP proxy settings. macOS: Running ProxyMan to capture traffic.
Steps Taken:
- Connect iPhone to MacBook via USB.
- Set up internet sharing on macOS to route all iOS traffic through macOS.
- Use pfctl to redirect traffic to ProxyMan running locally on port 9000:
rdr proto tcp from any to any port 80 -> 127.0.0.1 port 9000
rdr proto tcp from any to any port 443 -> 127.0.0.1 port 9000
- Install ProxyMan certificate as per instructions.
Observations: HTTP Traffic: Successfully captured and displayed in ProxyMan. HTTPS Traffic: Browser shows "can't establish a secure connection to the website."
Comparison with Burp Proxy: Using Burp Proxy in invisible mode, HTTPS traffic is successfully captured and displayed. It appears that Burp Proxy handles HTTPS traffic differently, even though the approach seems similar.
Request: I understand that ProxyMan is primarily designed for HTTP proxying. However, I would like to understand what Burp Proxy does differently to handle HTTPS traffic successfully. It's also unclear why HTTP works successfuly, while HTTPS does not
Links:
- https://portswigger.net/burp/documentation/desktop/tools/proxy/invisible
- https://github.com/ProxymanApp/Proxyman/issues/1701
Thanks for the tip about using the pfctl to redirect traffic. I will look at it.
iOS App: Does not honor HTTP proxy settings.
May I ask if you have installed & trusted the Proxyman certificate on your iPhone? You can follow the instructions in the Certificate menu -> Install for iOS -> Physical Device.
Or online at https://docs.proxyman.io/debug-devices/ios-device
You can skip the 2nd step (Set HTTP Proxy Part)
HTTPS Traffic: Browser shows "can't establish a secure connection to the website."
I believe that you forgot to install & trust the certificate, so Proxyman can't open the SSL Connection.
Yes, I have installed and trusted the ProxyMan certificate. The certificate appears to be configured correctly. When I follow the standard setup by changing the HTTP proxy settings, everything works as expected—I can browse HTTPS websites and see the requests in ProxyMan.
However, I am unable to see traffic from non-proxy-aware applications with this setup.
This may explain why Burp with Invisible mode works with SSL:
Proxyman hasn't supported this mode, so we get SSL Error as expected. I will try to fix it 👍
@NghiaTranUIT that would be fantastic, thank you!
Proxyman's UI is incredibly clear and user-friendly—far superior to anything else I've used. If I can get it to work with non-proxy-aware apps, I'll happily delete all my other tools :)
+1
I am able to capture browser traffic in Proxyman, but not traffic from other apps on my physical device.
Would be very cool to have this feature
I also need this, proxies are finicky as some apps just ignore them.