Lantern

Peer into your requests.
Introduction
Lantern is an open-source debugging proxy (similar to Fiddler/Charles Proxy) that is written in Go and can be
hosted on a server. It uses the Chrome DevTools Inspector as a frontend UI, providing developers with a familiar
interface for inspecting their network traffic.
Features
- Open Source (MIT License)
- Familiar Devtools UI
- SSL/HTTPS Interception
- Hostable MITM Proxy (run on a server)
- Request/Responses persist between sessions.
- Dockerized
- Generates a
.mobileconfig file for use with macOS and iOS
Setup
Lantern is designed to run via Docker, and as such we've created a docker-compose.yml file to get you started.
docker-compose up
Usage
After you've started up Lantern, there are 3 important URL's you'll want to be familiar with:
- http://localhost:8080 is the URL for the Lantern WebUI. From here you can view any request/response that are sent through the proxy
- http://localhost:8081 is the HTTP Proxy URL. On your test device, you'll want to configure a HTTP proxy. In a standard deployment, this will usually be assigned to a easy-to-remember URL that you can enter into your various devices:
http://proxy.corp.example.com:8081
- http://localhost:5050 is the URL for the (optional) Database Admin UI. From here you can view the content of the Lantern DB, where network traffic is stored.
- database name: lantern
- username: lantern
- password: lantern-password
Here's a quick test you can run to ensure that everything is working correctly:
curl -k -x localhost:8081 https://www.google.com
Please note, the -k flag forces curl to ignore SSL certificates. If you're interested in intercepting SSL traffic (and removing the -k flag), you'll want to check the SSL_INTERCEPTION.md file in the docs directory.
TODO:
- Documentation
- [-] README.md documentation.
- Proxy Code
- SSL interception
- better error handling.
- STRETCH live request interception/hijacking & modification.
- Frontend/Websocket Code
-
Add links to the mobileprofile & CA certificate in the Web UI
-
backfill requests when new Websocket connection opened
-
command responses should be separated from event responses.
-
reorganize code, cleanup of event generation
-
Use embedded version of Devtools UI.
-
Add support for HAR archive.
-
variables for connection strings.
-
better error handling.
-
Ability to delete/remove recordings (without wiping the DB)
UI.panels.network._networkLogView._dataGrid.setRowContextMenuCallback(console.log)
-
[-] Hide tabs that we do not support
-
Devtools Theme
-
STRETCH live request interception/hijacking & modification.
License
MIT
Contributing
Please consider contributing by opening a pull request.
References
Web Frontend
API/Websockets
Database
Proxy
Install Certificates