diff --git a/modules/events_stream/events_view_http.go b/modules/events_stream/events_view_http.go index af32a727..e7e4a9da 100644 --- a/modules/events_stream/events_view_http.go +++ b/modules/events_stream/events_view_http.go @@ -6,11 +6,11 @@ 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" diff --git a/modules/net_sniff/net_sniff_http.go b/modules/net_sniff/net_sniff_http.go index 82e9d038..2f3aee67 100644 --- a/modules/net_sniff/net_sniff_http.go +++ b/modules/net_sniff/net_sniff_http.go @@ -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 {