pwn 0.4.553 → 0.4.554
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/Gemfile +1 -1
- data/README.md +2 -2
- data/lib/pwn/plugins/baresip.rb +12 -65
- data/lib/pwn/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5845a117a0a0e7c58a9bee3b8def4d40d5459079dba07ced63445bd79165d5fb
|
4
|
+
data.tar.gz: b52393e4b3361dc2bce767583ccfcd17be00cf0bb8283f8b5349141015b82650
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50e687553229086fb9f38753cc29a40a496deafed3d6491aa115fa42ba6b4b1380407f2cc325ae5bf5cd7765d7209cc8d9f5e9cf572c0cbe94a171dc9a3257c5
|
7
|
+
data.tar.gz: d81f50b569dfeb6c2dd438f0cc2eba17ba99378216360260130f470c1f9d2301888a47d8d9e3b9ea8c8b94d7f09ef710d7ef521edc25f441d770f5a1ceb978aa
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.1.2@pwn
|
|
37
37
|
$ rvm list gemsets
|
38
38
|
$ gem install --verbose pwn
|
39
39
|
$ pwn
|
40
|
-
pwn[v0.4.
|
40
|
+
pwn[v0.4.554]:001 >>> PWN.help
|
41
41
|
```
|
42
42
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
@@ -52,7 +52,7 @@ $ rvm use ruby-3.1.2@pwn
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
53
53
|
$ gem install --verbose pwn
|
54
54
|
$ pwn
|
55
|
-
pwn[v0.4.
|
55
|
+
pwn[v0.4.554]:001 >>> PWN.help
|
56
56
|
```
|
57
57
|
|
58
58
|
|
data/lib/pwn/plugins/baresip.rb
CHANGED
@@ -143,10 +143,6 @@ module PWN
|
|
143
143
|
'-v'
|
144
144
|
)
|
145
145
|
|
146
|
-
baresip_obj[:session_thread] = init_session_thread(
|
147
|
-
baresip_obj: baresip_obj
|
148
|
-
)
|
149
|
-
|
150
146
|
ok = 'registered successfully'
|
151
147
|
gone = 'account: No SIP accounts found'
|
152
148
|
forb = '403 Forbidden'
|
@@ -154,7 +150,13 @@ module PWN
|
|
154
150
|
# TODO: Make this faster.
|
155
151
|
print 'Starting baresip...'
|
156
152
|
loop do
|
157
|
-
|
153
|
+
next unless File.exist?(screenlog_path)
|
154
|
+
|
155
|
+
dump_session_data = File.readlines(screenlog_path)
|
156
|
+
dump_session_data.delete_if do |line|
|
157
|
+
line.include?('ua: using best effort AF: af=AF_INET')
|
158
|
+
end
|
159
|
+
break if dump_session_data.select { |s| s.include?(ok) }.length.positive?
|
158
160
|
|
159
161
|
next unless dump_session_data.select { |s| s.include?(gone) }.length.positive?
|
160
162
|
next unless dump_session_data.select { |s| s.include?(forb) }.length.positive?
|
@@ -170,53 +172,6 @@ module PWN
|
|
170
172
|
raise e
|
171
173
|
end
|
172
174
|
|
173
|
-
# Supported Method Parameters::
|
174
|
-
# session_thread = init_session_thread(
|
175
|
-
# serial_conn: 'required - SerialPort.new object'
|
176
|
-
# )
|
177
|
-
|
178
|
-
private_class_method def self.init_session_thread(opts = {})
|
179
|
-
baresip_obj = opts[:baresip_obj]
|
180
|
-
|
181
|
-
session_root = baresip_obj[:session_root]
|
182
|
-
screenlog_path = baresip_obj[:screenlog_path]
|
183
|
-
|
184
|
-
# Spin up a baresip_obj session_thread
|
185
|
-
Thread.new do
|
186
|
-
loop do
|
187
|
-
next unless File.exist?(screenlog_path)
|
188
|
-
|
189
|
-
# Continuously consume contents of screenlog_path
|
190
|
-
@session_data = File.readlines(screenlog_path)
|
191
|
-
@session_data.delete_if do |line|
|
192
|
-
line.include?('ua: using best effort AF: af=AF_INET')
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
196
|
-
rescue StandardError => e
|
197
|
-
session_thread&.terminate
|
198
|
-
|
199
|
-
raise e
|
200
|
-
end
|
201
|
-
|
202
|
-
# Supported Method Parameters::
|
203
|
-
# session_data = PWN::Plugins::BareSIP.dump_session_data
|
204
|
-
|
205
|
-
public_class_method def self.dump_session_data
|
206
|
-
@session_data
|
207
|
-
rescue StandardError => e
|
208
|
-
raise e
|
209
|
-
end
|
210
|
-
|
211
|
-
# Supported Method Parameters::
|
212
|
-
# session_data = PWN::Plugins::BareSIP.flush_session_data
|
213
|
-
|
214
|
-
public_class_method def self.flush_session_data
|
215
|
-
@session_data.clear
|
216
|
-
rescue StandardError => e
|
217
|
-
raise e
|
218
|
-
end
|
219
|
-
|
220
175
|
# Supported Method Parameters::
|
221
176
|
# cmd_resp = PWN::Plugins::BareSIP.baresip_exec(
|
222
177
|
# baresip_obj: 'Required - baresip obj returned from #start method',
|
@@ -244,13 +199,8 @@ module PWN
|
|
244
199
|
|
245
200
|
public_class_method def self.stop(opts = {})
|
246
201
|
baresip_obj = opts[:baresip_obj]
|
247
|
-
session_thread = baresip_obj[:session_thread]
|
248
202
|
screen_session = baresip_obj[:screen_session]
|
249
203
|
|
250
|
-
flush_session_data
|
251
|
-
|
252
|
-
session_thread.terminate
|
253
|
-
|
254
204
|
puts "STOPPING #{baresip_obj[:screen_session]}"
|
255
205
|
cmd_resp = baresip_exec(
|
256
206
|
baresip_obj: baresip_obj,
|
@@ -509,24 +459,23 @@ module PWN
|
|
509
459
|
print "#{seconds_to_record}s to record - remaining: #{format('%-9.9s', countdown)}"
|
510
460
|
print "\r"
|
511
461
|
|
512
|
-
|
513
|
-
|
514
|
-
|
462
|
+
dump_session_data = File.readlines(screenlog_path)
|
463
|
+
dump_session_data.delete_if do |line|
|
464
|
+
line.include?('ua: using best effort AF: af=AF_INET')
|
465
|
+
end
|
466
|
+
|
515
467
|
if dump_session_data.select { |s| s.include?(terminated) }.length.positive?
|
516
468
|
reason = 'call terminated by other party'
|
517
|
-
flush_session_data
|
518
469
|
break
|
519
470
|
end
|
520
471
|
|
521
472
|
if dump_session_data.select { |s| s.include?(unavail) }.length.positive?
|
522
473
|
reason = 'SIP 503 (service unavailable)'
|
523
|
-
flush_session_data
|
524
474
|
break
|
525
475
|
end
|
526
476
|
|
527
477
|
if dump_session_data.select { |s| s.include?(not_found) }.length.positive?
|
528
478
|
reason = 'SIP 404 (not found)'
|
529
|
-
flush_session_data
|
530
479
|
break
|
531
480
|
end
|
532
481
|
|
@@ -720,8 +669,6 @@ module PWN
|
|
720
669
|
screen_session: 'Optional name of screen session (Defaults baresip)'
|
721
670
|
)
|
722
671
|
|
723
|
-
session_data_arr = #{self}.dump_session_data
|
724
|
-
|
725
672
|
cmd_resp = #{self}.baresip_exec(
|
726
673
|
baresip_obj: 'Required - baresip obj returned from #start method',
|
727
674
|
cmd: 'Required - command to send to baresip HTTP daemon'
|
data/lib/pwn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pwn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.554
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 0day Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.3.
|
117
|
+
version: 2.3.24
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 2.3.
|
124
|
+
version: 2.3.24
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: bundler-audit
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|