View HTTP Basic authorization credentials when sniffing

Undid changes in events_view_http.go

Undid more changed to events_view_http.go

Undid more changed to events_view_http.go

Vew HTTP Basic authnoriyation credentials when sniffing

Undid changes in events_view_http.go
This commit is contained in:
Stephan Neuhaus 2019-11-01 10:55:45 +01:00
commit a3b80fba74
2 changed files with 35 additions and 15 deletions

View file

@ -6,11 +6,11 @@ import (
"encoding/hex" "encoding/hex"
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/bettercap/bettercap/modules/net_sniff"
"net/url" "net/url"
"regexp" "regexp"
"strings" "strings"
"github.com/bettercap/bettercap/modules/net_sniff"
"github.com/bettercap/bettercap/session" "github.com/bettercap/bettercap/session"
"github.com/evilsocket/islazy/tui" "github.com/evilsocket/islazy/tui"
@ -137,7 +137,7 @@ func (mod *EventsStream) viewHttpRequest(e session.Event) {
tui.Green(e.Tag), tui.Green(e.Tag),
se.Message) se.Message)
if mod.shouldDumpHttpRequest(req) { if mod.shouldDumpHttpRequest(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 %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)) dump += fmt.Sprintf("%s: %s\n", tui.Blue("Host"), tui.Yellow(req.Host))
for name, values := range req.Headers { for name, values := range req.Headers {

View file

@ -119,19 +119,39 @@ func toSerializableResponse(res *http.Response) HTTPResponse {
func httpParser(ip *layers.IPv4, pkt gopacket.Packet, tcp *layers.TCP) bool { func httpParser(ip *layers.IPv4, pkt gopacket.Packet, tcp *layers.TCP) bool {
data := tcp.Payload data := tcp.Payload
if req, err := http.ReadRequest(bufio.NewReader(bytes.NewReader(data))); err == nil { if req, err := http.ReadRequest(bufio.NewReader(bytes.NewReader(data))); err == nil {
NewSnifferEvent( if user, pass, ok := req.BasicAuth(); ok {
pkt.Metadata().Timestamp, NewSnifferEvent(
"http.request", pkt.Metadata().Timestamp,
ip.SrcIP.String(), "http.request",
req.Host, ip.SrcIP.String(),
toSerializableRequest(req), req.Host,
"%s %s %s %s%s", toSerializableRequest(req),
tui.Wrap(tui.BACKRED+tui.FOREBLACK, "http"), "%s %s %s %s%s - %s %s, %s %s",
vIP(ip.SrcIP), tui.Wrap(tui.BACKRED+tui.FOREBLACK, "http"),
tui.Wrap(tui.BACKLIGHTBLUE+tui.FOREBLACK, req.Method), vIP(ip.SrcIP),
tui.Yellow(req.Host), tui.Wrap(tui.BACKLIGHTBLUE+tui.FOREBLACK, req.Method),
vURL(req.URL.String()), tui.Yellow(req.Host),
).Push() 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 return true
} else if res, err := http.ReadResponse(bufio.NewReader(bytes.NewReader(data)), nil); err == nil { } else if res, err := http.ReadResponse(bufio.NewReader(bytes.NewReader(data)), nil); err == nil {