Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions vpn-charles.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ def log(message, options)
end
end

def retrieveServiceKey(options)
def retrieveServiceKey(options, versionIdentifier)
juniperState = `scutil<< EOF
show State:/Network/Service/net.juniper.pulse.nc.main/IPv4
show State:/Network/Service/#{versionIdentifier}/IPv4
quit
EOF`

log(juniperState, options)
serviceKey = juniperState.gsub(/.*net\.juniper\.DSUnderlyingServiceName : (.*?)\s.*/m, "\\1").chomp
serviceKey = juniperState.gsub(/.*net\.pulsesecure\.DSUnderlyingServiceName : (.*?)\s.*/m, "\\1").chomp
log(serviceKey, options)
return serviceKey
end
Expand All @@ -33,6 +33,9 @@ def retrieveServiceKey(options)
opts.on( '-d', '--off', 'Deactivate charles on your VPN' ) do
options[:on] = false
end
opts.on( '-o', '--old', 'Use for older versions of pulse' ) do
options[:old] = true
end
opts.on( '-h', '--help', 'Display this screen' ) do
puts opts
exit
Expand All @@ -53,8 +56,12 @@ def retrieveServiceKey(options)
exit
end

versionIdentifier = "net.pulsesecure.pulse.nc.main"
if options[:old]
versionIdentifier = "net.juniper.ncproxyd.main"
end

serviceKey = retrieveServiceKey(options)
serviceKey = retrieveServiceKey(options, versionIdentifier)

if options[:on]
puts "Please make sure your VPN is connected and Charles is running, then"
Expand All @@ -65,7 +72,7 @@ def retrieveServiceKey(options)
results = `scutil<< EOF
d.init
get Setup:/Network/Service/#{serviceKey}/Proxies
set State:/Network/Service/net.juniper.pulse.nc.main/Proxies
set State:/Network/Service/#{versionIdentifier}/Proxies
quit
EOF`
puts "Charles should be recording now. Don't forget to run:"
Expand All @@ -77,10 +84,10 @@ def retrieveServiceKey(options)
# disable proxying
results = `scutil<< EOF
d.init
get State:/Network/Service/net.juniper.pulse.nc.main/Proxies
get State:/Network/Service/#{versionIdentifier}/Proxies
d.add HTTPSEnable 0
d.add HTTPEnable 0
set State:/Network/Service/net.juniper.pulse.nc.main/Proxies
set State:/Network/Service/#{versionIdentifier}/Proxies
quit
EOF`
end
Expand Down