Skip to content

Commit 2600e1a

Browse files
authored
Merge pull request #347 from spiderxm/development
remove cyclic dependency
2 parents b02907c + cbe9da6 commit 2600e1a

File tree

13 files changed

+69
-65
lines changed

13 files changed

+69
-65
lines changed

config.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import socket
66

77
from core.time_helper import hours
8-
from core.compatible import generate_token
8+
from core.token import generate_token
99

1010
# Protocol number to protocol string table
1111
protocol_table = {
@@ -18,7 +18,7 @@
1818

1919
def api_configuration():
2020
"""
21-
API Config (could be modify by user)
21+
API Config (could be modified by user)
2222
2323
Returns:
2424
a JSON with API configuration
@@ -64,7 +64,7 @@ def network_configuration():
6464
"store_network_captured_files": False,
6565
"real_machine_ip_address": real_machine_ip_address,
6666
"ignore_real_machine_ip_address": True, # or if you want to simulate from local network, save as False
67-
"ignore_virtual_machine_ip_addresses": True, # or if you want simulate from local network, save as False
67+
"ignore_virtual_machine_ip_addresses": True, # or if you want to simulate from local network, save as False
6868
"real_machine_identifier_name": "stockholm_server_1", # can be anything e.g. real_machine_ip_address, name, etc
6969
"ignore_real_machine_ip_addresses": list(
7070
{

core/alert.py

+13-13
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# -*- coding: utf-8 -*-
33

44
import sys
5-
from core import color
5+
from core.color import color_cmd
66
from core.log import get_logger
77
from core.time_helper import now
88
from core.compatible import is_verbose_mode
@@ -36,11 +36,11 @@ def info(content):
3636
"""
3737
sys.stdout.buffer.write(
3838
bytes(
39-
color.color_cmd("yellow")
39+
color_cmd("yellow")
4040
+ "[+] [{0}] ".format(now())
41-
+ color.color_cmd("green")
41+
+ color_cmd("green")
4242
+ content
43-
+ color.color_cmd("reset")
43+
+ color_cmd("reset")
4444
+ "\n",
4545
"utf8"
4646
)
@@ -79,11 +79,11 @@ def warn(content):
7979
logger.warning(content)
8080
sys.stdout.buffer.write(
8181
bytes(
82-
color.color_cmd("blue")
82+
color_cmd("blue")
8383
+ "[!] [{0}] ".format(now())
84-
+ color.color_cmd("yellow")
84+
+ color_cmd("yellow")
8585
+ content
86-
+ color.color_cmd("reset")
86+
+ color_cmd("reset")
8787
+ "\n",
8888
"utf8")
8989
)
@@ -107,11 +107,11 @@ def verbose_info(content):
107107
logger.info(content)
108108
sys.stdout.buffer.write(
109109
bytes(
110-
color.color_cmd("cyan")
110+
color_cmd("cyan")
111111
+ "[v] [{0}] ".format(now())
112-
+ color.color_cmd("grey")
112+
+ color_cmd("grey")
113113
+ content
114-
+ color.color_cmd("reset")
114+
+ color_cmd("reset")
115115
+ "\n",
116116
"utf8"
117117
)
@@ -132,10 +132,10 @@ def error(content):
132132
"""
133133
logger.error(content)
134134
sys.stdout.buffer.write(
135-
(color.color_cmd("red")
135+
(color_cmd("red")
136136
+ "[X] [{0}] ".format(now())
137-
+ color.color_cmd("yellow")
138-
+ content + color.color_cmd("reset")
137+
+ color_cmd("yellow")
138+
+ content + color_cmd("reset")
139139
+ "\n"
140140
).encode("utf8")
141141
)

core/color.py

+11-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,20 @@
55
import sys
66

77

8+
def os_name():
9+
"""
10+
OS name
11+
12+
Returns:
13+
OS name in string
14+
"""
15+
return sys.platform
16+
17+
818
def reset_cmd_color():
919
"""
1020
reset the color of windows/terminal before exit
1121
"""
12-
# TODO : Fix the cyclic dependency later
13-
from core.compatible import os_name
1422
if "linux" in os_name() or os_name() == "darwin":
1523
sys.stdout.write("\033[0m")
1624
else:
@@ -29,8 +37,7 @@ def color_cmd(color):
2937
Returns:
3038
color values or empty string
3139
"""
32-
from core.compatible import os_name
33-
if "--disable-colors" in sys.argv:
40+
if "--disable-colors" in os_name():
3441
return ""
3542
if "linux" in os_name() or os_name() == "darwin":
3643
if color == "reset":

core/compatible.py

+2-37
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,10 @@
1313
import inspect
1414
import json
1515
import elasticsearch
16-
from core.color import reset_cmd_color
1716
from core.exit_helper import exit_failure
1817
from shutil import which
19-
20-
21-
def logo():
22-
"""
23-
OWASP HoneyPot Logo
24-
"""
25-
# TODO : Fix the cyclic dependency later
26-
from core.alert import write_to_api_console
27-
write_to_api_console(open('.owasp_honeypot').read())
28-
reset_cmd_color()
18+
from config import api_configuration
19+
from core.messages import load_messages
2920

3021

3122
def version():
@@ -38,16 +29,6 @@ def version():
3829
return int(sys.version_info[0])
3930

4031

41-
def os_name():
42-
"""
43-
OS name
44-
45-
Returns:
46-
OS name in string
47-
"""
48-
return sys.platform
49-
50-
5132
def get_timeout_error():
5233
"""
5334
Get the timeout error thrown by pyshark apply_on_packets function
@@ -68,9 +49,6 @@ def check_for_requirements(start_api_server):
6849
Returns:
6950
True if exist otherwise False
7051
"""
71-
# TODO : Fix the cyclic dependency later
72-
from config import api_configuration
73-
from core.messages import load_messages
7452
messages = load_messages().message_contents
7553
# check external required modules
7654
api_config = api_configuration()
@@ -194,19 +172,6 @@ def get_module_dir_path(module):
194172
)
195173

196174

197-
def generate_token(length=32):
198-
"""
199-
generate token using hex chars
200-
201-
Args:
202-
length: length of token - default 32
203-
204-
Returns:
205-
token string
206-
"""
207-
return "".join(random.choice("0123456789abcdef") for _ in range(length))
208-
209-
210175
def byte_to_str(data):
211176
"""
212177
convert data to str

core/exit_helper.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import sys
55
import ctypes
6-
76
from core.color import reset_cmd_color
87

98

@@ -22,8 +21,9 @@ def exit_failure(msg):
2221
Args:
2322
msg: the error message
2423
"""
25-
# TODO : Fix the cyclic dependency later
2624
from core.alert import error
25+
26+
# TODO : Fix the cyclic dependency later
2727
error(msg)
2828
reset_cmd_color()
2929
sys.exit(1)

core/load.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
from core.color import reset_cmd_color
1818
from core.compatible import (check_for_requirements, copy_dir_tree,
1919
get_module_dir_path, is_verbose_mode,
20-
logo, make_tmp_thread_dir, mkdir)
20+
make_tmp_thread_dir, mkdir)
21+
from core.logo import logo
2122
from core.exit_helper import exit_failure, exit_success, terminate_thread
2223
from core.get_modules import (load_all_modules,
2324
virtual_machine_name_to_container_name,

core/logo.py

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
from core.color import reset_cmd_color
5+
from core.alert import write_to_api_console
6+
7+
8+
def logo():
9+
"""
10+
OWASP HoneyPot Logo
11+
"""
12+
write_to_api_console(open('.owasp_honeypot').read())
13+
reset_cmd_color()

core/token.py

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
import random
5+
6+
7+
def generate_token(length=32):
8+
"""
9+
generate token using hex chars
10+
11+
Args:
12+
length: length of token - default 32
13+
14+
Returns:
15+
token string
16+
"""
17+
return "".join(random.choice("0123456789abcdef") for _ in range(length))

modules/ftp/strong_password/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# -*- coding: utf-8 -*-
33

44
import time
5-
from core.compatible import generate_token
5+
from core.token import generate_token
66
import os
77
import json
88
from database.connector import insert_to_credential_events_collection

modules/http/basic_auth_strong_password/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# -*- coding: utf-8 -*-
33

44
import time
5-
from core.compatible import generate_token
5+
from core.token import generate_token
66
import os
77
import binascii
88
import json

modules/smtp/strong_password/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import time
55
import os
66
import json
7-
from core.compatible import generate_token
7+
from core.token import generate_token
88
from database.connector import insert_to_credential_events_collection
99
from database.datatypes import CredentialEvent
1010

modules/ssh/strong_password/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import time
55
import os
66
import json
7-
from core.compatible import generate_token
7+
from core.token import generate_token
88
from database.connector import insert_to_credential_events_collection
99
from database.datatypes import CredentialEvent
1010

tests/test_core_compatible.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import unittest
22
from unittest.mock import patch
33
import sys
4-
from core.compatible import (byte_to_str, is_verbose_mode, generate_token)
4+
from core.compatible import (byte_to_str, is_verbose_mode)
5+
from core.token import generate_token
56

67

78
class TestCoreAlert(unittest.TestCase):

0 commit comments

Comments
 (0)