diff options
| author | shihaoyue <[email protected]> | 2024-10-24 20:02:11 +0800 |
|---|---|---|
| committer | shihaoyue <[email protected]> | 2024-10-24 20:02:11 +0800 |
| commit | 075303fd7132a56c469bbc33be1a3eb7f3fe0f0c (patch) | |
| tree | 1eb03d9dd66fc4786db658c1b98f0ab65afd8d99 | |
| parent | 63a6c34457ecdac2219a1b728253f7fa4b041b50 (diff) | |
fix
| -rw-r--r-- | server/apps/agentcomm.py | 24 | ||||
| -rw-r--r-- | server/apps/policy_list.py | 6 | ||||
| -rw-r--r-- | server/apps/task.py | 1 | ||||
| -rw-r--r-- | server/migrations/versions/7a8661f81196_.py | 38 | ||||
| -rw-r--r-- | server/model.py | 62 |
5 files changed, 120 insertions, 11 deletions
diff --git a/server/apps/agentcomm.py b/server/apps/agentcomm.py index 550c92f..56472fe 100644 --- a/server/apps/agentcomm.py +++ b/server/apps/agentcomm.py @@ -138,14 +138,24 @@ def task_ret(json_data): task_policy.task.status = "stopped" db.session.commit() return {"code": 200, "msg": "ok"} - task_log = TaskLog( - # created_by_agent = json_data["id"], - tlog_level = json_data["level"], - tlog_info = json_data["info"], - tlog_tp = json_data["taskpolicy"] - ) - try: + import re + + # 模拟输入的日志数据 + log_data = json_data["info"] + if "tlog" not in log_data: + log_data = log_data.replace("log", "tlog") + log_entries = re.findall(r'\{.*?\}', log_data) + + # 将每个匹配的字符串作为列表项 + for entry in log_entries: + task_log = TaskLog( + # created_by_agent = json_data["id"], + tlog_level = json_data["level"], + tlog_info = entry, + tlog_tp = json_data["taskpolicy"] + ) db.session.add(task_log) + try: db.session.commit() return {"code": 200, "msg": "ok"} except SQLAlchemyError as e: diff --git a/server/apps/policy_list.py b/server/apps/policy_list.py index 8fbe161..50b8dbb 100644 --- a/server/apps/policy_list.py +++ b/server/apps/policy_list.py @@ -21,9 +21,9 @@ ddos_policy_dic = [ {"id": "7", "payload": "-n 4"}, # dot python3 start_pending.py - {"id": "10", "payload": "-n 8 -wait 50 -round 1"}, - {"id": "10", "payload": "-n 8 -wait 100 -round 5"}, - {"id": "10", "payload": "-n 8 -wait 300 -round 5"}, + {"id": "10", "payload": "-n 2 -wait 50 -round 1"}, + {"id": "10", "payload": "-n 2 -wait 100 -round 5"}, + {"id": "10", "payload": "-n 2 -wait 300 -round 5"}, ] sjqp_policy_dic = [ # sjqp dnssec python proxy.py diff --git a/server/apps/task.py b/server/apps/task.py index 46b8546..82e8d1b 100644 --- a/server/apps/task.py +++ b/server/apps/task.py @@ -231,7 +231,6 @@ def start_policy_change_timer(task): def stop_policy_change_timer(task): scheduler.remove_job(f"{task.task_id}chnage") - scheduler.remove_job(f"{task.task_id}fail") # 任务成功检测 def effective_detection(task_policy): diff --git a/server/migrations/versions/7a8661f81196_.py b/server/migrations/versions/7a8661f81196_.py new file mode 100644 index 0000000..7ecbd83 --- /dev/null +++ b/server/migrations/versions/7a8661f81196_.py @@ -0,0 +1,38 @@ +"""empty message + +Revision ID: 7a8661f81196 +Revises: 995c992fcfd0 +Create Date: 2024-10-24 19:25:12.112132 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import mysql + +# revision identifiers, used by Alembic. +revision = '7a8661f81196' +down_revision = '995c992fcfd0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('PROFILE', schema=None) as batch_op: + batch_op.alter_column('lngwgs', + existing_type=mysql.FLOAT(), + type_=sa.Double(), + existing_nullable=True) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('PROFILE', schema=None) as batch_op: + batch_op.alter_column('lngwgs', + existing_type=sa.Double(), + type_=mysql.FLOAT(), + existing_nullable=True) + + # ### end Alembic commands ### diff --git a/server/model.py b/server/model.py index e5704c4..2a50d66 100644 --- a/server/model.py +++ b/server/model.py @@ -158,6 +158,68 @@ class Target(db.Model): tasks = db.relationship('Task', backref='target') + +class Target2(db.Model): + __tablename__ = 'PROFILE' + id = db.Column(db.Integer, primary_key=True, autoincrement=True) + IP = db.Column(db.String(255), nullable=True) + IPv6 = db.Column(db.String(255), nullable=True) + last_probe_time = db.Column(db.Integer, nullable=True) + previous_probe_time = db.Column(db.Integer, nullable=True) + port = db.Column(db.String(255), nullable=True) + transport_protocol = db.Column(db.String(255), nullable=True) + Do53 = db.Column(db.Integer, nullable=True) + DoH = db.Column(db.Integer, nullable=True) + DoT = db.Column(db.Integer, nullable=True) + ASN = db.Column(db.Integer, nullable=True) + country = db.Column(db.String(255), nullable=True) + province = db.Column(db.String(255), nullable=True) + city = db.Column(db.String(255), nullable=True) + ISP = db.Column(db.String(255), nullable=True) + owner = db.Column(db.String(255), nullable=True) + lngwgs = db.Column(db.Double, nullable=True) + latwgs = db.Column(db.Double, nullable=True) + software_info = db.Column(db.String(255), nullable=True) + web_component = db.Column(db.String(255), nullable=True) + os_type = db.Column(db.String(255), nullable=True) + tls_jarm_fingerprint = db.Column(db.String(255), nullable=True) + certificate_serial = db.Column(db.String(255), nullable=True) + certificate_issuer = db.Column(db.String(255), nullable=True) + certificate_validity = db.Column(db.String(255), nullable=True) + http_max_version = db.Column(db.String(255), nullable=True) + service_path = db.Column(db.String(255), nullable=True) + request_method = db.Column(db.String(255), nullable=True) + http_status_code = db.Column(db.String(255), nullable=True) + http_version = db.Column(db.String(255), nullable=True) + http_headers = db.Column(db.Text, nullable=True) + nsec3_support = db.Column(db.Integer, nullable=True) + encryption_algorithms = db.Column(db.String(255), nullable=True) + downgrade_attack = db.Column(db.Integer, nullable=True) + dns_response_packet = db.Column(db.String(255), nullable=True) + edns = db.Column(db.Integer, nullable=True) + merge_dup = db.Column(db.Integer, nullable=True) + dnssec = db.Column(db.Integer, nullable=True) + random_id = db.Column(db.Integer, nullable=True) + random_port = db.Column(db.Integer, nullable=True) + version = db.Column(db.String(255), nullable=True) + max_ttl = db.Column(db.Integer, nullable=True) + min_ttl = db.Column(db.Integer, nullable=True) + retry_limit = db.Column(db.Integer, nullable=True) + timeout = db.Column(db.Integer, nullable=True) + fetch_limit = db.Column(db.Integer, nullable=True) + certificate_cn = db.Column(db.Text, nullable=True) + certificate_san = db.Column(db.Text, nullable=True) + components = db.Column(db.String(255), nullable=True) + cache = db.Column(db.String(255), nullable=True) + vul = db.Column(db.Text, nullable=True) + max_ns_cnt = db.Column(db.Integer, autoincrement=False, nullable=True) + bailiwick = db.Column(db.Integer, autoincrement=False, nullable=True) + any_response = db.Column(db.Integer, autoincrement=False, nullable=True) + max_cname_cnt = db.Column(db.Integer, autoincrement=False, nullable=True) + rrl = db.Column(db.Integer, autoincrement=False, nullable=True) + proto0x20 = db.Column(db.Integer, autoincrement=False, nullable=True) + + # 对单个模型操作 def model_to_dict(model, fields=None, exchange_fields=None): """ |
