xbase-util 0.7.4__tar.gz → 0.7.5__tar.gz

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.
Files changed (37) hide show
  1. {xbase_util-0.7.4 → xbase_util-0.7.5}/PKG-INFO +1 -1
  2. {xbase_util-0.7.4 → xbase_util-0.7.5}/setup.py +1 -1
  3. xbase_util-0.7.5/test/test.py +34 -0
  4. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/packet_util.py +10 -18
  5. xbase_util-0.7.5/xbase_util/pcap_util.py +833 -0
  6. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/xbase_constant.py +8 -0
  7. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util.egg-info/PKG-INFO +1 -1
  8. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util.egg-info/SOURCES.txt +1 -1
  9. xbase_util-0.7.4/xbase_util/pcap_util.py +0 -246
  10. xbase_util-0.7.4/xbase_util/segment.py +0 -170
  11. {xbase_util-0.7.4 → xbase_util-0.7.5}/README.md +0 -0
  12. {xbase_util-0.7.4 → xbase_util-0.7.5}/setup.cfg +0 -0
  13. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/__init__.py +0 -0
  14. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/add_column_util.py +0 -0
  15. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/dangerous_util.py +0 -0
  16. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/__init__.py +0 -0
  17. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/bean/ConfigBean.py +0 -0
  18. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/bean/CurrentConfigBean.py +0 -0
  19. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/bean/FlowBean.py +0 -0
  20. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/bean/TaskTemplateBean.py +0 -0
  21. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/bean/__init__.py +0 -0
  22. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/dao/ConfigDao.py +0 -0
  23. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/dao/CurrentConfigDao.py +0 -0
  24. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/dao/FlowDao.py +0 -0
  25. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/dao/TaskTemplateDao.py +0 -0
  26. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/dao/__init__.py +0 -0
  27. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/db/initsqlite3.py +0 -0
  28. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/es_db_util.py +0 -0
  29. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/esreq.py +0 -0
  30. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/geo_util.py +0 -0
  31. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/handle_features_util.py +0 -0
  32. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util/xbase_util.py +0 -0
  33. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util.egg-info/dependency_links.txt +0 -0
  34. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util.egg-info/not-zip-safe +0 -0
  35. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util.egg-info/top_level.txt +0 -0
  36. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util_assets/GeoLite2-City.mmdb +0 -0
  37. {xbase_util-0.7.4 → xbase_util-0.7.5}/xbase_util_assets/arkimeparse.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xbase_util
3
- Version: 0.7.4
3
+ Version: 0.7.5
4
4
  Summary: 网络安全基础工具
5
5
  Home-page: https://gitee.com/jimonik/xbase_util.git
6
6
  Author: xyt
@@ -3,7 +3,7 @@ from distutils.core import setup
3
3
  from setuptools import find_packages
4
4
 
5
5
  setup(name="xbase_util",
6
- version="0.7.4",
6
+ version="0.7.5",
7
7
  description="网络安全基础工具",
8
8
  long_description="包含提取,预测,训练的基础工具",
9
9
  author="xyt",
@@ -0,0 +1,34 @@
1
+ import copy
2
+ import gzip
3
+ import pickle
4
+ import re
5
+ import traceback
6
+
7
+ from xbase_util.packet_util import filter_visible_chars
8
+ from xbase_util.pcap_util import reassemble_tcp, reassemble_session
9
+
10
+ if __name__ == '__main__':
11
+ # req = EsReq("http://127.0.0.1:9200")
12
+ # exp=build_es_expression(size="1",
13
+ # start_time=None,
14
+ # end_time=None,
15
+ # arkime_expression='id == 250106-lKoC7T_SwbNAe4xDQQx7KTOd')
16
+ # session=req.search(body=exp,index="arkime_sessions3-*").json()['hits']['hits'][0]
17
+ # packetPos=session['_source']['packetPos']
18
+ # stream,packet_objs=process_session_id_disk_simple(id=session['_id'], node=session['_source']['node'],
19
+ # packet_pos=packetPos, esdb=EsDb(req, multiprocessing.Manager()),
20
+ # pcap_path_prefix="origin")
21
+ #
22
+ # with open('stream.pkl', 'wb') as f:
23
+ # pickle.dump(stream, f)
24
+ # with open('packet_objs.pkl', 'wb') as f:
25
+ # pickle.dump(packet_objs, f)
26
+
27
+ with open('stream.pkl', 'rb') as f:
28
+ stream = pickle.load(f)
29
+ with open('packet_objs.pkl', 'rb') as f:
30
+ packet_objs = pickle.load(f)
31
+ skey = f"10.28.7.16:54398"
32
+ reassemble_tcp_res = reassemble_tcp(packet_objs, skey)
33
+ reassemble_session_result = reassemble_session(reassemble_tcp_res, skey)
34
+ print(reassemble_session_result)
@@ -1,11 +1,8 @@
1
1
  import copy
2
2
  import re
3
3
 
4
- from scapy.layers.inet import TCP
5
- from scapy.packet import Raw
6
-
7
4
  from xbase_util.xbase_constant import plain_content_type_columns, packetKeyname, src_dst_header, statisticHeader, \
8
- features_key, plain_body_columns
5
+ features_key, plain_body_columns, http_version_pattern, http_req_method_pattern, http_req_path_pattern, res_status_code_pattern
9
6
  from xbase_util.xbase_util import firstOrZero
10
7
 
11
8
 
@@ -59,16 +56,11 @@ def get_all_columns(
59
56
  return result_columns
60
57
 
61
58
 
62
- req_pattern = re.compile(r"(GET|POST|HEAD|PUT|DELETE|OPTIONS|PATCH) \/[^\s]* HTTP\/\d\.\d[\s\S]*?\r\n\r\n",
63
- re.DOTALL)
64
- res_pattern = re.compile(r"HTTP/\d\.\d \d{3}.*", re.DOTALL)
65
- req_body_pattern = re.compile(
66
- r"(GET|POST|HEAD|PUT|DELETE|OPTIONS|PATCH) \/[^\s]* HTTP\/\d\.\d[\s\S]*?(?=HTTP/\d\.\d)", re.DOTALL)
67
-
68
- http_version = re.compile(r"HTTP\/(\d\.\d)")
69
- http_req_method = re.compile(r"(GET|POST|HEAD|PUT|DELETE|OPTIONS|PATCH) \/[^\s]* HTTP\/\d\.\d")
70
- http_req_path = re.compile(r"(?:GET|POST|HEAD|PUT|DELETE|OPTIONS|PATCH)\s+(\/[^\s]*)\s+HTTP\/\d\.\d")
71
- res_status_code_pattern = re.compile(r"HTTP\/\d\.\d\s+(\d{3})\s+.*")
59
+ # req_pattern = re.compile(r"(GET|POST|HEAD|PUT|DELETE|OPTIONS|PATCH) \/[^\s]* HTTP\/\d\.\d[\s\S]*?\r\n\r\n",
60
+ # re.DOTALL)
61
+ # res_pattern = re.compile(r"HTTP/\d\.\d \d{3}.*", re.DOTALL)
62
+ # req_body_pattern = re.compile(
63
+ # r"(GET|POST|HEAD|PUT|DELETE|OPTIONS|PATCH) \/[^\s]* HTTP\/\d\.\d[\s\S]*?(?=HTTP/\d\.\d)", re.DOTALL)
72
64
 
73
65
  def get_header_value(header_set, value):
74
66
  result = [item for item in header_set if value in item]
@@ -92,10 +84,10 @@ def get_detail_by_package(publicField, req_header, req_body, res_header, res_bod
92
84
  res_field["initRTT"] = firstOrZero(res_field.get("initRTT", 0))
93
85
  res_field["length"] = firstOrZero(res_field.get("length", 0))
94
86
 
95
- http_version_res = http_version.findall(req_header)
87
+ http_version_res = http_version_pattern.findall(req_header)
96
88
  res_field['http.clientVersion'] = http_version_res[0] if len(http_version_res) > 0 else ""
97
- http_method = http_req_method.findall(req_header)
98
- http_path = http_req_path.findall(req_header)
89
+ http_method = http_req_method_pattern.findall(req_header)
90
+ http_path = http_req_path_pattern.findall(req_header)
99
91
  res_field['http.clientVersion'] = http_version_res[0] if len(http_version_res) > 0 else ""
100
92
  res_field['http.method'] = http_method[0] if len(http_method) > 0 else ""
101
93
  res_field['http.path'] = http_path[0] if len(http_path) > 0 else ""
@@ -112,7 +104,7 @@ def get_detail_by_package(publicField, req_header, req_body, res_header, res_bod
112
104
  if content_type_is_plain(res_header):
113
105
  res_field['plain_body_dst'] = res_body
114
106
 
115
- http_server_version_res = http_version.findall(res_header)
107
+ http_server_version_res = http_version_pattern.findall(res_header)
116
108
  res_field['http.serverVersion'] = http_server_version_res[0] if len(http_server_version_res) > 0 else ""
117
109
 
118
110
  status_code = res_status_code_pattern.findall(res_header)