HOWTO: OpenWRT and Fiddler for HTTP and HTTPS Transparent Proxy traffic capture – Part 2

Goal:

  • Setup a Hyper-V test lab for capturing traffic from an Android client.
  • Use OpenWRT as the routing gateway for the private VM network and Transparent Proxy HTTP and HTTPS traffic to Fiddler.
  • Config Fidder for traffic capture.

See Also:


Configuring OpenWRT for Transpart Proxy

  • Create Port Forward / Pre-routing rules for TCP port 80 and 443 to forward traffic to Fiddler.
    • Assuming Fiddler is running at 192.168.1.2, port 8888 for HTTP proxy and 8443 for HTTPS proxy.
    • Exclude the Fiddler machine from the port forward.


  • Create Source NAT / Post-routing rule


     

  • OR write the rules in the Firewall Custom Rules page.


     

Configuring Fiddler for Transpart Proxy

  • Enable “Allow remote computers to connect” in Fiddler Options and open corresponding ports in the Windows Firewall.


  • Use the command “!listen 8443 your_dummy_CN” to make Fiddler to listen to port 8443 for HTTPS proxy.
    • The dummy CN value is important. Without the CN value Fiddler will not handle the HTTPS handshake.


  • Use the command “prefs set fiddler.network.https.SetCNFromSNI true” to make Fiddler to generate the cert with CN to match the incoming request.

HOWTO: OpenWRT and Fiddler for HTTP and HTTPS Transparent Proxy traffic capture – Part 1

Goal:

  • Setup a Hyper-V test lab for capturing traffic from an Android client.
  • Use OpenWRT as the routing gateway for the private VM network and Transparent Proxy HTTP and HTTPS traffic to Fiddler.
  • Config Fidder for traffic capture.

See Also:

Notes on the OpenWRT installation

The OpenWRT installation basically follows the guide at https://miracoin.wordpress.com/2014/05/28/openwrt-in-hyper-v/. Here a few more tips for building the Hyper-V image:

  • Configure the Hyper-V virtual switch for the connection to the physical network and a private virtual machine network to the VM.

  • Create a new Hyper-V machine with the following settings:
    • 1 virtual processor and 64MB memory (You don’t need too much power for OpenWRT)
    • 2 Legacy Network Adapters (This is important. There’s no driver for the standard Network Adapter)
    • Bind the adapters to the physical and private virtual network.

  • Create the OpenWRT disk image

KB: Save and clear Fiddler sessions periodically by ExecAction.exe and Task Scheduler

  1. Edit CustomRules.js and look for function OnExecAction()

  2. Add a new custom action to the switch(sAction){} case statement

    e.g. the following “dailydump” action will save the captured sessions to C:\temp\

    case “dailydump”:

    FiddlerObject.UI.actSelectAll();

    if(FiddlerObject.UI.lvSessions.SelectedItems.Count > 0){

    FiddlerObject.UI.actSaveSessionsToZip(String.Format(“c:\\temp\\{0:yyyy-MM-dd_HHmmss}.saz”,DateTime.UtcNow));

    FiddlerObject.UI.actRemoveAllSessions();

    }

    break;

  3. Add a new task in Task Scheduler to run ExecAction.exe your_custom_action_name