mirror of
https://github.com/bettercap/bettercap
synced 2025-08-20 21:43:18 -07:00
Vew HTTP Basic authnoriyation credentials when sniffing
This commit is contained in:
parent
e51e097e43
commit
d21793fc8f
2 changed files with 37 additions and 16 deletions
|
@ -6,11 +6,12 @@ import (
|
|||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/bettercap/bettercap/modules/net_sniff"
|
||||
"net/url"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/bettercap/bettercap/modules/net_sniff"
|
||||
|
||||
"github.com/bettercap/bettercap/session"
|
||||
|
||||
"github.com/evilsocket/islazy/tui"
|
||||
|
@ -130,14 +131,14 @@ func (mod *EventsStream) dumpRaw(body []byte) string {
|
|||
|
||||
func (mod *EventsStream) viewHttpRequest(e session.Event) {
|
||||
se := e.Data.(net_sniff.SnifferEvent)
|
||||
req := se.Data.(net_sniff.HTTPRequest)
|
||||
|
||||
fmt.Fprintf(mod.output, "[%s] [%s] %s\n",
|
||||
e.Time.Format(mod.timeFormat),
|
||||
tui.Green(e.Tag),
|
||||
se.Message)
|
||||
|
||||
if mod.shouldDumpHttpRequest(req) {
|
||||
if se.Data != nil && mod.shouldDumpHttpRequest(se.Data.(net_sniff.HTTPRequest)) {
|
||||
req := se.Data.(net_sniff.HTTPRequest)
|
||||
dump := fmt.Sprintf("%s %s %s\n", tui.Bold(req.Method), req.URL, tui.Dim(req.Proto))
|
||||
dump += fmt.Sprintf("%s: %s\n", tui.Blue("Host"), tui.Yellow(req.Host))
|
||||
for name, values := range req.Headers {
|
||||
|
|
|
@ -119,19 +119,39 @@ func toSerializableResponse(res *http.Response) HTTPResponse {
|
|||
func httpParser(ip *layers.IPv4, pkt gopacket.Packet, tcp *layers.TCP) bool {
|
||||
data := tcp.Payload
|
||||
if req, err := http.ReadRequest(bufio.NewReader(bytes.NewReader(data))); err == nil {
|
||||
NewSnifferEvent(
|
||||
pkt.Metadata().Timestamp,
|
||||
"http.request",
|
||||
ip.SrcIP.String(),
|
||||
req.Host,
|
||||
toSerializableRequest(req),
|
||||
"%s %s %s %s%s",
|
||||
tui.Wrap(tui.BACKRED+tui.FOREBLACK, "http"),
|
||||
vIP(ip.SrcIP),
|
||||
tui.Wrap(tui.BACKLIGHTBLUE+tui.FOREBLACK, req.Method),
|
||||
tui.Yellow(req.Host),
|
||||
vURL(req.URL.String()),
|
||||
).Push()
|
||||
if user, pass, ok := req.BasicAuth(); ok {
|
||||
NewSnifferEvent(
|
||||
pkt.Metadata().Timestamp,
|
||||
"http.request",
|
||||
ip.SrcIP.String(),
|
||||
req.Host,
|
||||
toSerializableRequest(req),
|
||||
"%s %s %s %s%s - %s %s, %s %s",
|
||||
tui.Wrap(tui.BACKRED+tui.FOREBLACK, "http"),
|
||||
vIP(ip.SrcIP),
|
||||
tui.Wrap(tui.BACKLIGHTBLUE+tui.FOREBLACK, req.Method),
|
||||
tui.Yellow(req.Host),
|
||||
vURL(req.URL.String()),
|
||||
tui.Bold("USER"),
|
||||
tui.Red(user),
|
||||
tui.Bold("PASS"),
|
||||
tui.Red(pass),
|
||||
).Push()
|
||||
} else {
|
||||
NewSnifferEvent(
|
||||
pkt.Metadata().Timestamp,
|
||||
"http.request",
|
||||
ip.SrcIP.String(),
|
||||
req.Host,
|
||||
toSerializableRequest(req),
|
||||
"%s %s %s %s%s",
|
||||
tui.Wrap(tui.BACKRED+tui.FOREBLACK, "http"),
|
||||
vIP(ip.SrcIP),
|
||||
tui.Wrap(tui.BACKLIGHTBLUE+tui.FOREBLACK, req.Method),
|
||||
tui.Yellow(req.Host),
|
||||
vURL(req.URL.String()),
|
||||
).Push()
|
||||
}
|
||||
|
||||
return true
|
||||
} else if res, err := http.ReadResponse(bufio.NewReader(bytes.NewReader(data)), nil); err == nil {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue