Skip to content

Repository files navigation

notify

FeaturesInstallationProvidersUsageRunning NotifyNotesJoin Discord

Notify is a Go-based assistance package that enables you to stream the output of several tools (or read from a file) and publish it to a variety of supported platforms.

notify-httpx

Features

  • Supports for Slack / Discord / Telegram
  • Supports for Pushover / Email
  • Supports for Microsoft Teams / Google Chat
  • Supports for File / Pipe input
  • Supports Line by Line / Bulk Post
  • Supports using Single / Multiple providers
  • Supports Custom Web-hooks
  • Supports Custom data formatting

Usage

notify -h

This will display help for the tool. Here are all the switches it supports.

FlagDescriptionExample
-bulkenable bulk processingnotify -bulk
-char-limitmax character limit per message (default 4000)notify -cl 2000
-confignotify configuration filenotify -config config.yaml
-datainput file to send for notifynotify -i test.txt
-delaydelay in seconds between each notificationnotify -d 2
-idid to send the notification to (optional)notify -id recon,scans
-msg-formatadd custom formatting to messagenotify -mf Hey {{data}}
-no-colordisable colors in outputnotify -nc
-provider-configprovider config pathnotify -pc provider.yaml
-providerprovider to send the notification to (optional)notify -p slack,telegram
-proxyHTTP/SOCKSv5 proxy to use with notifynotify -proxy http://127.0.0.1:8080
-rate-limitmaximum number of HTTP requests to send per secondnotify -rl 1
-silentenable silent modenotify -silent
-verboseenable verbose modenotify -verbose
-versiondisplay versionnotify -version
-updateupdates to latest versionnotify -update
-disable-update-checkdisables automatic update checknotify -duc

Notify Installation

go install -v github.com/projectdiscovery/notify/cmd/notify@latest

Provider Config

The default provider config file can be created at $HOME/.config/notify/provider-config.yaml and can have the following contents:

slack:
- id: "slack"slack_channel: "recon"slack_username: "test"slack_format: "{{data}}"slack_icon_emoji: ":ghost:"slack_webhook_url: "https://hooks.slack.com/services/XXXXXX"
- id: "vulns"slack_channel: "vulns"slack_username: "test"slack_format: "{{data}}"slack_icon_emoji: ":ghost:"slack_webhook_url: "https://hooks.slack.com/services/XXXXXX"discord:
- id: "crawl"discord_channel: "crawl"discord_username: "test"discord_format: "{{data}}"discord_webhook_url: "https://discord.com/api/webhooks/XXXXXXXX"
- id: "subs"discord_channel: "subs"discord_username: "test"discord_format: "{{data}}"discord_webhook_url: "https://discord.com/api/webhooks/XXXXXXXX"telegram:
- id: "tel"telegram_api_key: "XXXXXXXXXXXX"telegram_chat_id: "XXXXXXXX"# Optional topic id XXXXXXXX:Ytelegram_format: "{{data}}"telegram_parsemode: "Markdown"# None/Markdown/MarkdownV2/HTML (https://core.telegram.org/bots/api#formatting-options)pushover:
- id: "push"pushover_user_key: "XXXX"pushover_api_token: "YYYY"pushover_format: "{{data}}"pushover_devices:
- "iphone"smtp:
- id: emailsmtp_server: mail.example.comsmtp_username: test@example.comsmtp_password: passwordfrom_address: from@email.comsmtp_cc:
- to@email.comsmtp_format: "{{data}}"subject: "Email subject"smtp_html: falsesmtp_disable_starttls: falsegooglechat:
- id: "gc"key: "XXXXXXXX"token: "XXXXXX"space: "XXXXXX"google_chat_format: "{{data}}"teams:
- id: "recon"teams_webhook_url: "https://<domain>.webhook.office.com/webhookb2/xx@xx/IncomingWebhook/xx"teams_format: "{{data}}"gotify:
- id: 'gotify'gotify_host: 'XXXXXX'gotify_port: '80'gotify_token: 'XXXXXX'gotify_format: '{{data}}'gotify_disabletls: falsegotify_title: "recon"custom:
- id: webhookcustom_webhook_url: http://host/api/webhookcustom_method: GETcustom_format: '{{data}}'custom_headers:
Content-Type: application/jsonX-Api-Key: XXXXXcustom:
- id: webhookJsoncustom_webhook_url: http://host/api/webhookcustom_method: GETcustom_format: '{"text":{{dataJsonString}} }'custom_headers:
Content-Type: application/jsonX-Api-Key: XXXXXcustom:
- id: webhookcustom_webhook_url: http://host/api/webhookcustom_method: GETcustom_sprig: '{"text":"{{ .url }}"}'custom_headers:
Content-Type: application/jsonX-Api-Key: XXXXX

Running Notify

Notify supports piping output of any tool or output file and send it to configured provider/s (e.g, discord, slack channel) as notification.

Send notification using piped(stdin) output

subfinder -d hackerone.com | notify -bulk

notify-subfinder

Send notification using output file

subfinder -d hackerone.com -o h1.txt; notify -data h1.txt

Send notification using output file in bulk mode

subfinder -d hackerone.com -o h1.txt; notify -data h1.txt -bulk

Send notification using output file to specific provider's

subfinder -d hackerone.com -o h1.txt; notify -data h1.txt -bulk -provider discord,slack

Send notification using output file to specific ID's

subfinder -d hackerone.com -o h1.txt; notify -data h1.txt -bulk -id recon,vulns,scan

Example Uses

Following command will enumerate subdomains using SubFinder and probe alive URLs using httpx, runs Nuclei templates and send the nuclei results as a notifications to configured provider/s.

subfinder -d intigriti.com | httpx | nuclei -tags exposure -o output.txt; notify -bulk -data output.txt

Provider Config

The tool tries to use the default provider config ($HOME/.config/notify/provider-config.yaml), it can also be specified via CLI by using provider-config flag.

To run the tool with custom provider config, just use the following command.

notify -provider-config providers.yaml

Notify Config

Notify flags can be configured at default config ($HOME/.config/notify/config.yaml) or custom config can be also provided using config flag.

Notes

  • As default notify sends notification line by line
  • Use -bulk to send notification as entire message/s (messages might be chunked)

References

Notify is made with 🖤 by the projectdiscovery team.

About

Notify is a Go-based assistance package that enables you to stream the output of several tools (or read from a file) and publish it to a variety of supported platforms.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1.6k stars

Watchers

19 watching

Forks

Releases

Packages

Contributors

Languages