Tengo BurpSuite configurado como un proxy. He generado e instalado un certificado para Burp en el llavero de mi Mac. En una caja Kali también configuré Iceweasel para que se ejecute mediante proxy a través de mi Proxy Burp que se ejecuta en mi Mac. Puedo navegar desde Kali a sitios http y https y burp intercepta las solicitudes. Los reenvío y confirmo las excepciones de seguridad y el navegador finalmente muestra páginas web.
Desde la línea de comandos de Kali exporté las siguientes dos variables
export http_proxy=http://172.xx.yy.z:8081
export https_proxy=http://172.xx.yy.z:8081
Escribí un script en python:
(env) ojblass@kali:~/effective_python$ cat ojblass_urllib_http.py
import urllib
url = urllib.urlopen("http://www.hotmail.com")
data = url.read()
print data
Esto correctamente golpea el proxy BurpSuite; sin embargo, cuando intento ejecutar el tráfico https a través de la solicitud no se intercepta:
(env) ojblass@kali:~/effective_python$ cat ojblass_urllib_https.py
import urllib
url = urllib.urlopen("https://mail.live.com/default.aspx")
data = url.read()
print data
En su lugar, se imprime el siguiente error:
<html><head><title>Burp Suite Professional</title>
<style type="text/css">
body { background: #dedede; font-family: Arial, sans-serif; color: #404042; -webkit-font-smoothing: antialiased; }
#container { padding: 0 15px; margin: 10px auto; background-color: #ffffff; }
a { word-wrap: break-word; }
a:link, a:visited { color: #e06228; text-decoration: none; }
a:hover, a:active { color: #404042; text-decoration: underline; }
h1 { font-size: 1.6em; line-height: 1.2em; font-weight: normal; color: #404042; }
h2 { font-size: 1.3em; line-height: 1.2em; padding: 0; margin: 0.8em 0 0.3em 0; font-weight: normal; color: #404042;}
.title, .navbar { color: #ffffff; background: #e06228; padding: 10px 15px; margin: 0 -15px 10px -15px; overflow: hidden; }
.title h1 { color: #ffffff; padding: 0; margin: 0; font-size: 1.8em; }
div.navbar {position: absolute; top: 18px; right: 25px;}div.navbar ul {list-style-type: none; margin: 0; padding: 0;}
div.navbar li {display: inline; margi-left: 20px;}
div.navbar a {color: white; padding: 10px}
div.navbar a:hover, div.navbar a:active {text-decoration: none; background: #404042;}
</style>
</head>
<body>
<div id="container">
<div class="title"><h1>Burp Suite Professional</h1></div>
<h1>Error</h1><p>Invalid client request received: First line of request did not contain an absolute URL - try enabling invisible proxy support.</p>
<div class="request">GET https://mail.live.com/default.aspx HTTP/1.0<br>
User-Agent: Python-urllib/1.17<br>
Accept: */*<br>
<br>
</div><p> </p>
</div>
</body>
</html>
El contenido principal del error indica que se recibió una solicitud de cliente no válida. La primera línea de solicitud no contenía una URL absoluta. He buscado en Google este error pero todo lo que parece venir no parece relevante. Soy nuevo en esto y agradecería cualquier información que pueda tener.