Système de notification d'alerte Feuille de chaleur
Aperçu général
Avis est un système de notification polyvalent développé par Project Discovery qui permet d'envoyer des notifications en temps réel à diverses plateformes et services. Il est conçu pour simplifier le flux de travail en permettant aux utilisateurs de canaliser la sortie d'outils de sécurité ou de fichiers directement vers plusieurs fournisseurs de notification, tels que Discord, Slack, Telegram, et plus encore.
Ce qui définit Aviser en dehors des autres outils de notification est son intégration transparente avec les workflows de sécurité et sa capacité à gérer différents formats d'entrée. Il peut traiter la sortie des outils de sécurité en temps réel, filtrer et formater les notifications en fonction de critères spécifiques, et les envoyer simultanément à plusieurs destinations. Cela en fait un outil essentiel pour l'automatisation de la sécurité, permettant aux professionnels de la sécurité de rester informés des résultats importants sans surveiller en permanence leurs outils.
L'avis est couramment utilisé dans les pipelines de sécurité pour signaler les vulnérabilités découvertes, les nouveaux sous-domaines, les ports ouverts ou toute autre constatation importante. Sa flexibilité et sa facilité d'intégration en font un élément précieux dans les flux de travail d'automatisation de la sécurité, permettant une prise de conscience en temps réel des questions de sécurité.
Installation
Utilisation de Go
# Install using Go (requires Go 1.20 or later)
go install -v github.com/projectdiscovery/notify/cmd/notify@latest
# Verify installation
notify -version
Utilisation de Docker
# Pull the latest Docker image
docker pull projectdiscovery/notify:latest
# Run Notify using Docker
docker run -it projectdiscovery/notify:latest -h
```_
### Utilisation de Homebrew (macOS)
```bash
# Install using Homebrew
brew install notify
# Verify installation
notify -version
```_
### Utilisation de PDTM (Project Discovery Tools Manager)
```bash
# Install PDTM first if not already installed
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest
# Install Notify using PDTM
pdtm -i notify
# Verify installation
notify -version
Sur Kali Linux
# Install using apt
sudo apt install notify
# Verify installation
notify -version
Utilisation de base
Envoi des notifications
# Send a simple notification
echo "Hello, World!"|notify
# Send a notification with a custom message
echo "Hello, World!"|notify -message "Custom message: \\\\{\\\\{data\\\\}\\\\}"
# Send a notification from a file
cat results.txt|notify
# Send a notification with a specific provider
echo "Hello, World!"|notify -provider discord
Sélection du fournisseur
# Send to a specific provider
echo "Hello, World!"|notify -provider slack
# Send to multiple providers
echo "Hello, World!"|notify -provider slack,discord,telegram
# Send to all configured providers
echo "Hello, World!"|notify -provider all
Options de sortie
# Save notification log to a file
echo "Hello, World!"|notify -log-file notify.log
# Enable verbose output
echo "Hello, World!"|notify -v
# Show debug information
echo "Hello, World!"|notify -debug
Configuration du fournisseur
Configuration de la discorde
# Set Discord webhook URL
notify -set-discord-webhook https://discord.com/api/webhooks/your-webhook-url
# Set Discord username
notify -set-discord-username "Notify Bot"
# Set Discord avatar URL
notify -set-discord-avatar https://example.com/avatar.png
# Test Discord configuration
echo "Test message"|notify -provider discord
Configuration de Slack
# Set Slack webhook URL
notify -set-slack-webhook https://hooks.slack.com/services/your-webhook-url
# Set Slack username
notify -set-slack-username "Notify Bot"
# Set Slack channel
notify -set-slack-channel "#security-alerts"
# Test Slack configuration
echo "Test message"|notify -provider slack
Configuration du télégramme
# Set Telegram API token
notify -set-telegram-token your-api-token
# Set Telegram chat ID
notify -set-telegram-chat-id your-chat-id
# Test Telegram configuration
echo "Test message"|notify -provider telegram
Configuration du courriel
# Set email SMTP server
notify -set-email-server smtp.gmail.com:587
# Set email credentials
notify -set-email-username your-email@gmail.com -set-email-password your-password
# Set email sender
notify -set-email-sender "Notify ``<notify@example.com>``"
# Set email recipient
notify -set-email-recipient recipient@example.com
# Test email configuration
echo "Test message"|notify -provider email
Configuration des équipes
# Set Microsoft Teams webhook URL
notify -set-teams-webhook https://outlook.office.com/webhook/your-webhook-url
# Test Teams configuration
echo "Test message"|notify -provider teams
Configuration personnalisée de Webhook
# Set custom webhook URL
notify -set-custom-webhook https://example.com/webhook
# Set custom webhook method
notify -set-custom-method POST
# Set custom webhook headers
notify -set-custom-headers "Content-Type: application/json,Authorization: Bearer token"
# Test custom webhook configuration
echo "Test message"|notify -provider custom
Utilisation avancée
Formatage des messages
# Use custom message format
echo "Vulnerability found!"|notify -message "Alert: \\\\{\\\\{data\\\\}\\\\}"
# Use JSON data in message
echo '\\\\{"severity":"high","vuln":"XSS"\\\\}'|notify -message "\\\\{\\\\{json.severity\\\\}\\\\} severity \\\\{\\\\{json.vuln\\\\}\\\\} found!"
# Use HTML formatting
echo "<b>Bold text</b>"|notify -message "\\\\{\\\\{data\\\\}\\\\}" -format html
Filtrage des notifications
# Filter notifications by content
echo -e "Error 1\nWarning 2\nError 3"|notify -filter "Error"
# Filter notifications by regex
echo -e "CVE-2021-1234\nCVE-2022-5678"|notify -filter-regex "CVE-202[2-3]-.*"
# Exclude notifications by content
echo -e "Error 1\nWarning 2\nError 3"|notify -exclude "Warning"
# Exclude notifications by regex
echo -e "CVE-2021-1234\nCVE-2022-5678"|notify -exclude-regex "CVE-202[0-1]-.*"
Groupement des notifications
# Group notifications by ID
echo "Finding 1"|notify -id security
echo "Finding 2"|notify -id security
# Group notifications with delay
echo "Finding 1"|notify -id security -delay 60
echo "Finding 2"|notify -id security -delay 60
Notification Throttling
# Set notification delay
echo "Finding 1"|notify -delay 5
# Set maximum notifications per minute
echo "Finding 1"|notify -rate-limit 10
Intégration avec d'autres outils
Pipeline avec Nuclei
# Send Nuclei findings to Discord
nuclei -u https://example.com -t cves/ -silent|notify -provider discord
# Send only critical findings to Slack
nuclei -u https://example.com -t cves/ -silent -severity critical|notify -provider slack
# Send findings with custom message format
nuclei -u https://example.com -t cves/ -json -silent|notify -message "Vulnerability found: \\\\{\\\\{json.info.name\\\\}\\\\} (\\\\{\\\\{json.info.severity\\\\}\\\\})"
Pipeline avec sous-marin
# Send discovered subdomains to Telegram
subfinder -d example.com -silent|notify -provider telegram
# Send subdomains with custom message
subfinder -d example.com -silent|notify -message "New subdomain found: \\\\{\\\\{data\\\\}\\\\}"
Pipeline avec HTTPX
# Send active HTTP services to Discord
httpx -l domains.txt -silent|notify -provider discord
# Send only specific status codes to Slack
httpx -l domains.txt -silent -status-code 200|notify -provider slack
Pipeline avec Naabu
# Send open ports to Telegram
naabu -host example.com -silent|notify -provider telegram
# Send specific open ports to Discord
naabu -host example.com -silent -p 80,443,8080|notify -provider discord
Personnalisation des sorties
Modèles de messages personnalisés
# Use simple text template
echo "Finding"|notify -message "New finding: \\\\{\\\\{data\\\\}\\\\}"
# Use JSON data in template
echo '\\\\{"vuln":"XSS","url":"https://example.com"\\\\}'|notify -message "\\\\{\\\\{json.vuln\\\\}\\\\} found at \\\\{\\\\{json.url\\\\}\\\\}"
# Use conditional formatting
echo '\\\\{"severity":"high"\\\\}'|notify -message "\\\\{\\\\{if eq json.severity \"high\"\\\\}\\\\}CRITICAL ALERT\\\\{\\\\{else\\\\}\\\\}Alert\\\\{\\\\{end\\\\}\\\\}: \\\\{\\\\{json.severity\\\\}\\\\} severity finding"
Options de formatage
# Use plain text format
echo "<b>Bold text</b>"|notify -format text
# Use HTML format
echo "<b>Bold text</b>"|notify -format html
# Use Markdown format
echo "**Bold text**"|notify -format markdown
Options de pièce jointe
# Send file as attachment
cat screenshot.png|notify -provider discord -attach screenshot.png
# Send multiple files as attachments
notify -provider discord -attach "screenshot.png,report.pdf" -message "Security findings"
Divers Caractéristiques
Notifications en vrac
# Send bulk notifications from a file
cat findings.txt|notify
# Process JSON lines
cat findings.jsonl|notify -json-input
Mode interactif
# Start interactive mode
notify -interactive
# Send message in interactive mode
> Hello, World!
Contrôle sanitaire
# Check provider health
notify -health-check
# Check specific provider health
notify -health-check -provider discord
Dépannage
Questions communes
- Questions relatives à la configuration des fournisseurs
# Verify provider configuration
notify -provider-config
# Reset provider configuration
notify -reset-provider discord
```
2. **Limitation des taux**
```bash
# Add delay between notifications
echo "Finding"|notify -delay 5
# Set rate limit
echo "Finding"|notify -rate-limit 10
```
3. **Questions relatives au formatage des messages**
```bash
# Check message template
echo "Finding"|notify -message "\\\\{\\\\{data\\\\}\\\\}" -debug
# Use simple message format first
echo "Finding"|notify -message "Alert: \\\\{\\\\{data\\\\}\\\\}"
```
4. **Questions relatives à l'authentification**
```bash
# Check provider credentials
notify -provider-config
# Update provider credentials
notify -set-discord-webhook https://discord.com/api/webhooks/your-new-webhook-url
```
### Déboguement
```bash
# Enable verbose mode
echo "Finding"|notify -v
# Show debug information
echo "Finding"|notify -debug
# Check provider configuration
notify -provider-config
Configuration
Fichier de configuration
Avis utilise un fichier de configuration situé à $HOME/.config/notify/provider-config.yaml
. Vous pouvez personnaliser différents paramètres dans ce fichier :
# Example configuration file
discord:
webhook: https://discord.com/api/webhooks/your-webhook-url
username: Notify Bot
avatar: https://example.com/avatar.png
slack:
webhook: https://hooks.slack.com/services/your-webhook-url
username: Notify Bot
channel: "#security-alerts"
telegram:
token: your-api-token
chat_id: your-chat-id
email:
server: smtp.gmail.com:587
username: your-email@gmail.com
password: your-password
sender: "Notify ``<notify@example.com>``"
recipient: recipient@example.com
Variables d'environnement
# Set Notify configuration via environment variables
export NOTIFY_DISCORD_WEBHOOK=https://discord.com/api/webhooks/your-webhook-url
export NOTIFY_SLACK_WEBHOOK=https://hooks.slack.com/services/your-webhook-url
export NOTIFY_TELEGRAM_TOKEN=your-api-token
export NOTIFY_TELEGRAM_CHAT_ID=your-chat-id
Référence
Options de ligne de commande
Flag | Description |
---|---|
-provider |
Provider(s) to send notification to |
-message |
Custom message format for notification |
-id |
ID to group notifications |
-delay |
Delay in seconds between notifications |
-rate-limit |
Maximum number of notifications per minute |
-filter |
Filter notifications by content |
-filter-regex |
Filter notifications by regex |
-exclude |
Exclude notifications by content |
-exclude-regex |
Exclude notifications by regex |
-format |
Format for notification (text, html, markdown) |
-attach |
File(s) to attach to notification |
-json-input |
Process input as JSON lines |
-log-file |
File to write notification log to |
-v, -verbose |
Show verbose output |
-debug |
Show debug information |
-version |
Show Notify version |
Options de configuration du fournisseur
Flag | Description |
---|---|
-set-discord-webhook |
Set Discord webhook URL |
-set-discord-username |
Set Discord username |
-set-discord-avatar |
Set Discord avatar URL |
-set-slack-webhook |
Set Slack webhook URL |
-set-slack-username |
Set Slack username |
-set-slack-channel |
Set Slack channel |
-set-telegram-token |
Set Telegram API token |
-set-telegram-chat-id |
Set Telegram chat ID |
-set-email-server |
Set email SMTP server |
-set-email-username |
Set email username |
-set-email-password |
Set email password |
-set-email-sender |
Set email sender |
-set-email-recipient |
Set email recipient |
-set-teams-webhook |
Set Microsoft Teams webhook URL |
-set-custom-webhook |
Set custom webhook URL |
-set-custom-method |
Set custom webhook method |
-set-custom-headers |
Set custom webhook headers |
-provider-config |
Show provider configuration |
-reset-provider |
Reset provider configuration |
Fournisseurs soutenus
Provider | Description |
---|---|
discord |
Discord messaging platform |
slack |
Slack messaging platform |
telegram |
Telegram messaging platform |
email |
Email notification |
teams |
Microsoft Teams messaging platform |
custom |
Custom webhook |
all |
All configured providers |
Ressources
- [Documents officiels] (LINK_3)
- [Répertoire GitHub] (LINK_3)
- Discorde de découverte du projet
*Cette feuille de triche fournit une référence complète pour l'utilisation d'Alerte, des notifications de base à l'intégration avancée avec d'autres outils. Pour les informations les plus récentes, veuillez toujours consulter la documentation officielle. *