Path: blob/master/extensions/notifications/channels/ntfy.rb
1154 views
require 'net/http'1require 'uri'23module BeEF4module Extension5module Notifications6module Channels7class Ntfy89# Constructor10def initialize(message)11@config = BeEF::Core::Configuration.instance1213# Endpoint URL14uri = URI.parse(@config.get('beef.extension.notifications.ntfy.endpoint_url'))1516# Create client17http = Net::HTTP.new(uri.host, uri.port)1819# Create Request20req = Net::HTTP::Post.new(uri.path)2122# Add authentication if configured23if @config.get('beef.extension.notifications.ntfy.username') || @config.get('beef.extension.notifications.ntfy.password')24req.basic_auth @config.get('beef.extension.notifications.ntfy.username'), @config.get('beef.extension.notifications.ntfy.password')25end2627# Set headers and body28req.content_type = 'text/plain'29req['Title'] = 'BeEF Notification'30req.body = message3132# Use SSL if the URI scheme is 'https'33http.use_ssl = (uri.scheme == 'https')3435# Send request36http.request(req)37end3839end40end41end42end43end444546