diff --git a/README.md b/README.md index 0d13c20..93966fd 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ - + Coverage Status @@ -24,10 +24,9 @@

-## An RTSP stream access tool with a Go library +## RTSP stream access tool Cameradar scans RTSP endpoints on authorized targets, and uses dictionary attacks to bruteforce their credentials and routes. -Use the CLI for end-to-end scanning or import the library in Go code. ### What Cameradar does @@ -56,6 +55,10 @@ Use the CLI for end-to-end scanning or import the library in Go code. - [Examples](#examples) - [License](#license) +--- + +

+ ## Quick start with Docker Install [Docker](https://docs.docker.com/engine/installation/) and run: diff --git a/images/example.gif b/images/example.gif new file mode 100644 index 0000000..7c14f71 Binary files /dev/null and b/images/example.gif differ diff --git a/internal/scan/skip/skip_test.go b/internal/scan/skip/skip_test.go index 36b8994..6d8cf44 100644 --- a/internal/scan/skip/skip_test.go +++ b/internal/scan/skip/skip_test.go @@ -13,7 +13,6 @@ import ( func TestNew_ExpandsTargetsAndPorts(t *testing.T) { targets := []string{ "192.0.2.0/30", - "localhost", "192.0.2.15", "192.0.2.10-11", } @@ -25,7 +24,6 @@ func TestNew_ExpandsTargetsAndPorts(t *testing.T) { require.NoError(t, err) addrs := []netip.Addr{ - netip.MustParseAddr("127.0.0.1"), netip.MustParseAddr("192.0.2.0"), netip.MustParseAddr("192.0.2.1"), netip.MustParseAddr("192.0.2.2"), @@ -92,7 +90,12 @@ func TestNew_ResolvesHostnames(t *testing.T) { streams, err := scanner.Scan(t.Context()) require.NoError(t, err) require.NotEmpty(t, streams) - assert.Equal(t, netip.MustParseAddr("127.0.0.1"), streams[0].Address) + addr := streams[0].Address + assert.True(t, + addr == netip.MustParseAddr("127.0.0.1") || addr == netip.MustParseAddr("::1"), + "expected localhost to resolve to 127.0.0.1 or ::1, got %s", + addr.String(), + ) } func TestNew_ReturnsErrorOnHostnameLookupFailure(t *testing.T) {