summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshihaoyue <[email protected]>2024-10-24 20:02:11 +0800
committershihaoyue <[email protected]>2024-10-24 20:02:11 +0800
commit075303fd7132a56c469bbc33be1a3eb7f3fe0f0c (patch)
tree1eb03d9dd66fc4786db658c1b98f0ab65afd8d99
parent63a6c34457ecdac2219a1b728253f7fa4b041b50 (diff)
fix
-rw-r--r--server/apps/agentcomm.py24
-rw-r--r--server/apps/policy_list.py6
-rw-r--r--server/apps/task.py1
-rw-r--r--server/migrations/versions/7a8661f81196_.py38
-rw-r--r--server/model.py62
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):
"""