ronin-listener 0.1.0.rc1 → 0.1.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/gemspec.yml +3 -2
- data/lib/ronin/listener/cli/commands/dns.rb +2 -0
- data/lib/ronin/listener/cli/commands/http.rb +22 -12
- data/lib/ronin/listener/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 180d4e9206f0a513b27c4478fdfbfb6726de048dd16a24183cc2560a6b612e8b
|
4
|
+
data.tar.gz: 4778b8b7dfb5572789500ca7f0e1e3bb5fc2f7b3bb9d824447f188e57b1ad0c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7c2d03f88123cee3a3f4e0efa461feb38d20e3bc92395b0a501b916ae194ba2e174e25dcc37563163733504a384cd90d260e65040d0cf5b3d976358ccae5116
|
7
|
+
data.tar.gz: 8f1892ab5de2e61571933b8a1309d590a1296a21179bfcd818902991b2f1e1882b34a1b361e40373f68c7954a0480c5e0bd9507a7e7322dc702c6fa7892425cd
|
data/gemspec.yml
CHANGED
@@ -2,7 +2,8 @@ name: ronin-listener
|
|
2
2
|
summary: A Ruby CLI utility for receiving exfiltrated data.
|
3
3
|
description: |
|
4
4
|
ronin-listener is a small CLI utility for receiving exfiltrated data over DNS
|
5
|
-
or HTTP.
|
5
|
+
or HTTP. Supports logging DNS queries and HTTP requests as TXT, CVS, JSON,
|
6
|
+
or NDJSON.
|
6
7
|
|
7
8
|
license: LGPL-3.0
|
8
9
|
authors: Postmodern
|
@@ -32,7 +33,7 @@ required_ruby_version: ">= 3.0.0"
|
|
32
33
|
dependencies:
|
33
34
|
# Ronin dependencies:
|
34
35
|
ronin-listener-dns: ~> 0.1.0.rc1
|
35
|
-
ronin-listener-http: ~> 0.1.0.
|
36
|
+
ronin-listener-http: ~> 0.1.0.rc2
|
36
37
|
ronin-core: ~> 0.2.0.rc1
|
37
38
|
|
38
39
|
development_dependencies:
|
@@ -112,6 +112,8 @@ module Ronin
|
|
112
112
|
options[:output_format].open(options[:output])
|
113
113
|
end
|
114
114
|
|
115
|
+
log_info "Listening on #{options[:host]}:#{options[:port]} ..."
|
116
|
+
|
115
117
|
Ronin::Listener::DNS.listen(domain,**proxy_kwargs) do |query|
|
116
118
|
log_info "Received DNS query: #{query.type} #{query.label} from #{query.source}"
|
117
119
|
output_file << query if output_file
|
@@ -120,26 +120,20 @@ module Ronin
|
|
120
120
|
options[:output_format].open(options[:output])
|
121
121
|
end
|
122
122
|
|
123
|
-
|
124
|
-
remote_addr = request.remote_address
|
125
|
-
|
126
|
-
log_info "Received HTTP request from #{remote_addr.ip_address}:#{remote_addr.ip_port} ..."
|
127
|
-
|
128
|
-
puts "#{request.method} #{request.path}"
|
123
|
+
log_info "Listening on #{options[:host]}:#{options[:port]} ..."
|
129
124
|
|
130
|
-
|
131
|
-
|
132
|
-
end
|
125
|
+
Ronin::Listener::HTTP.listen(**server_kwargs) do |request|
|
126
|
+
log_info "Received HTTP request from #{request.remote_ip}:#{request.remote_port} ..."
|
133
127
|
|
134
|
-
|
135
|
-
puts
|
128
|
+
print_request(request)
|
136
129
|
|
137
130
|
output_file << request if output_file
|
138
131
|
end
|
139
132
|
end
|
140
133
|
|
141
134
|
#
|
142
|
-
# Maps options to keyword arguments for
|
135
|
+
# Maps options to keyword arguments for
|
136
|
+
# `Ronin::Listener::HTTP.listen`.
|
143
137
|
#
|
144
138
|
# @return [Hash{Symbol => Object}]
|
145
139
|
#
|
@@ -152,6 +146,22 @@ module Ronin
|
|
152
146
|
}
|
153
147
|
end
|
154
148
|
|
149
|
+
#
|
150
|
+
# Prints an HTTP request.
|
151
|
+
#
|
152
|
+
# @param [Ronin::Listener::HTTP::Request] request
|
153
|
+
#
|
154
|
+
def print_request(request)
|
155
|
+
puts "#{request.method} #{request.path}"
|
156
|
+
|
157
|
+
request.headers.each do |name,value|
|
158
|
+
puts "#{name}: #{value}"
|
159
|
+
end
|
160
|
+
|
161
|
+
puts request.body if request.body
|
162
|
+
puts
|
163
|
+
end
|
164
|
+
|
155
165
|
end
|
156
166
|
end
|
157
167
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin-listener
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06
|
11
|
+
date: 2024-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ronin-listener-dns
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.1.0.
|
33
|
+
version: 0.1.0.rc2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.1.0.
|
40
|
+
version: 0.1.0.rc2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ronin-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,7 +68,8 @@ dependencies:
|
|
68
68
|
version: '2.0'
|
69
69
|
description: |
|
70
70
|
ronin-listener is a small CLI utility for receiving exfiltrated data over DNS
|
71
|
-
or HTTP.
|
71
|
+
or HTTP. Supports logging DNS queries and HTTP requests as TXT, CVS, JSON,
|
72
|
+
or NDJSON.
|
72
73
|
email: postmodern.mod3@gmail.com
|
73
74
|
executables:
|
74
75
|
- ronin-listener
|