Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
beefproject
GitHub Repository: beefproject/beef
Path: blob/master/extensions/webrtc/api.rb
1154 views
1
#
2
# Copyright (c) 2006-2025 Wade Alcorn - [email protected]
3
# Browser Exploitation Framework (BeEF) - https://beefproject.com
4
# See the file 'doc/COPYING' for copying permission
5
#
6
module BeEF
7
module Extension
8
module WebRTC
9
10
module RegisterHttpHandler
11
12
BeEF::API::Registrar.instance.register(BeEF::Extension::WebRTC::RegisterHttpHandler, BeEF::API::Server, 'mount_handler')
13
14
# We register the http handler for the WebRTC signalling extension.
15
# This http handler will handle WebRTC signals from browser to browser
16
17
# We also define an rtc message handler, so that the beefwebrtc object can send messages back into BeEF
18
def self.mount_handler(beef_server)
19
beef_server.mount('/rtcsignal', BeEF::Extension::WebRTC::SignalHandler)
20
beef_server.mount('/rtcmessage', BeEF::Extension::WebRTC::MessengeHandler)
21
beef_server.mount('/api/webrtc', BeEF::Extension::WebRTC::WebRTCRest.new)
22
end
23
24
end
25
26
module RegisterPreHookCallback
27
28
BeEF::API::Registrar.instance.register(BeEF::Extension::WebRTC::RegisterPreHookCallback, BeEF::API::Server::Hook, 'pre_hook_send')
29
30
# We register this pre hook action to ensure that signals going to a browser are included back in the hook.js polling
31
# This is also used so that BeEF can send RTCManagement messages to the hooked browser too
32
def self.pre_hook_send(hooked_browser, body, params, request, response)
33
dhook = BeEF::Extension::WebRTC::API::Hook.new
34
dhook.requester_run(hooked_browser, body)
35
end
36
37
end
38
39
end
40
end
41
end
42
43