Skip to content

Every time BeEF is started, same rules are added to db #1968

@pinkbat1

Description

@pinkbat1

Summary

Every time BeEF is started, same rules are added to db

Environment

What version/revision of BeEF are you using?
0.5.0.0-alpha-pre

On what version of Ruby?
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux-gnu]

On what browser?
Any

On what operating system?
Kali Linux kali 5.5.0-kali1-amd64 #1 SMP Debian 5.5.13-2kali1 (2020-04-03) x86_64 GNU/Linux

Configuration

Q: Have you made any changes to your BeEF configuration?
No.

Q: Have you enabled or disabled any BeEF extensions?
No.

Expected vs. Actual Behaviour

Expected Behaviour:
When adding new rules, they should only be added once.

Actual Behaviour:
Every time BeEF is started, the same rules are added to db. This causes an exception having to do with unique constraint in the table 'rules'. How I fixed this, I deleted all the rules from the 'rules' table and restarted BeEF. However, the automated rules only run on the first hooked browser. Subsequent hooked browsers cause this exception:

67: from /root/beef/2020-10-07/beef-master/core/main/network_stack/handlers/dynamicreconstruction.rb:48:in `block (2 levels) in <class:DynamicReconstruction>'
66: from /root/beef/2020-10-07/beef-master/core/main/network_stack/handlers/dynamicreconstruction.rb:55:in `check_packets'
65: from /root/beef/2020-10-07/beef-master/core/main/network_stack/handlers/dynamicreconstruction.rb:55:in `each'
64: from /root/beef/2020-10-07/beef-master/core/main/network_stack/handlers/dynamicreconstruction.rb:80:in `block in check_packets'
63: from /root/beef/2020-10-07/beef-master/core/main/network_stack/handlers/dynamicreconstruction.rb:107:in `execute'
62: from /root/beef/2020-10-07/beef-master/core/main/network_stack/handlers/dynamicreconstruction.rb:107:in `new'
61: from /root/beef/2020-10-07/beef-master/core/main/handlers/browserdetails.rb:19:in `initialize'
60: from /root/beef/2020-10-07/beef-master/core/main/handlers/browserdetails.rb:513:in `setup'
59: from /root/beef/2020-10-07/beef-master/core/main/autorun_engine/engine.rb:33:in `run'
58: from /root/beef/2020-10-07/beef-master/core/main/autorun_engine/engine.rb:43:in `trigger'
57: from /root/beef/2020-10-07/beef-master/core/main/autorun_engine/engine.rb:43:in `each'
56: from /root/beef/2020-10-07/beef-master/core/main/autorun_engine/engine.rb:97:in `block in trigger'
55: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/suppressor.rb:48:in `save!'
54: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `save!'
53: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
52: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:212:in `transaction'
51: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'
50: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
49: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
48: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
47: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
46: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
45: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
44: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
43: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
42: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
41: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `block in save!'
40: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:53:in `save!'
39: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:503:in `save!'
38: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/timestamp.rb:128:in `create_or_update'
37: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/callbacks.rb:327:in `create_or_update'
36: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/callbacks.rb:825:in `_run_save_callbacks'
35: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
34: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/callbacks.rb:327:in `block in create_or_update'
33: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:905:in `create_or_update'
32: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/timestamp.rb:110:in `_create_record'
31: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/callbacks.rb:331:in `_create_record'
30: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/callbacks.rb:825:in `_run_create_callbacks'
29: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
28: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/callbacks.rb:331:in `block in _create_record'
27: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/attribute_methods/dirty.rb:211:in `_create_record'
26: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/locking/optimistic.rb:70:in `_create_record'
25: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/counter_cache.rb:166:in `_create_record'
24: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:932:in `_create_record'
23: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:375:in `_insert_record'
22: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert'
21: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:166:in `insert'
20: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:135:in `exec_insert'
19: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/sqlite3/database_statements.rb:39:in `exec_query'
18: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log'
17: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
16: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log'
15: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
14: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
13: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
12: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
11: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
10: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log'
 9: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/sqlite3/database_statements.rb:40:in `block in exec_query'
 8: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
 7: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
 6: from /var/lib/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
 5: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/sqlite3/database_statements.rb:49:in `block (2 levels) in exec_query'
 4: from /var/lib/gems/2.7.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/sqlite3/database_statements.rb:49:in `to_a'
 3: from /var/lib/gems/2.7.0/gems/sqlite3-1.4.2/lib/sqlite3/statement.rb:107:in `each'
 2: from /var/lib/gems/2.7.0/gems/sqlite3-1.4.2/lib/sqlite3/statement.rb:107:in `loop'
 1: from /var/lib/gems/2.7.0/gems/sqlite3-1.4.2/lib/sqlite3/statement.rb:108:in `block in each'

/var/lib/gems/2.7.0/gems/sqlite3-1.4.2/lib/sqlite3/statement.rb:108:in `step': SQLite3::ConstraintException: UNIQUE constraint failed: executions.id (ActiveRecord::RecordNotUnique)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions