首页 > 其他分享 >2788647047_process_packet_1(1)

2788647047_process_packet_1(1)

时间:2024-08-14 14:09:25浏览次数:7  
标签:src process dst packet 2788647047 sec connect IP地址 path

在函数 `_process_packet` 中,这段代码的功能是进行启发式分析,特别是针对端口扫描和感染扫描的检测。这段代码是函数的一部分,用于处理捕获到的单个原始IP层数据包。
代码中的 `try` 块尝试执行以下操作:
1. **检查启发式分析是否启用**:
- `if config.USE_HEURISTICS:`: 如果启用了启发式分析,则继续执行。
2. **获取锁**:
- `if _locks.connect_sec:`: 如果存在 `_locks.connect_sec` 锁,则尝试获取该锁。
- `_locks.connect_sec.acquire()`: 获取 `_connect_sec` 锁。
3. **更新全局变量**:
- `connect_sec = _connect_sec`: 更新全局变量 `_connect_sec` 为当前时间戳。
- `_connect_sec = sec`: 将当前时间戳赋值给全局变量 `_connect_sec`。
4. **释放锁**:
- `if _locks.connect_sec:`: 如果之前成功获取了锁,则释放锁。
- `_locks.connect_sec.release()`: 释放 `_connect_sec` 锁。
5. **执行启发式分析**:
- `if sec > connect_sec:`: 如果当前时间戳大于上次更新时间戳,则进行端口扫描和感染扫描的检测。
- `for key in _connect_src_dst:`: 遍历 `_connect_src_dst` 字典,其中存储了源IP地址和目的IP地址的映射。
- `_src_ip, _dst = key.split('~')`: 将键分割成源IP和目的IP。
- `if not _dst.isdigit() and len(_connect_src_dst[key]) > PORT_SCANNING_THRESHOLD:`: 如果目的IP不是数字,并且该键对应的值列表长度大于端口扫描阈值,则继续检测。
- `if not check_whitelisted(_src_ip):`: 如果源IP地址不在白名单中,则记录事件。
- `_dst_ip = _dst`: 将目的IP地址赋值给 `_dst_ip`。
- `for _ in _connect_src_details[key]:`: 遍历 `_connect_src_details` 字典,其中存储了源IP地址、源端口、目的IP地址和目的端口的映射。
- `log_event((sec, usec, _src_ip, _[2], _dst_ip, _[3], PROTO.TCP, TRAIL.IP, _src_ip, "potential port scanning", "(heuristic)"), packet)`: 记录事件,包括时间戳、源IP、目的IP、协议类型、轨迹类型、轨迹描述和原始数据包。
6. **清除数据**:
- `_connect_src_dst.clear()`: 清除 `_connect_src_dst` 字典。
- `_connect_src_details.clear()`: 清除 `_connect_src_details` 字典。
7. **重复执行类似操作**:
- `for key in _path_src_dst:`: 遍历 `_path_src_dst` 字典,其中存储了源IP地址、源端口、目的IP地址、目的端口和路径的映射。
- `if len(_path_src_dst[key]) > WEB_SCANNING_THRESHOLD:`: 如果该键对应的值列表长度大于网络扫描阈值,则记录事件。
8. **清除数据并重复执行类似操作**:
- `_path_src_dst.clear()`: 清除 `_path_src_dst` 字典。
- `_path_src_dst_details.clear()`: 清除 `_path_src_dst_details` 字典。
函数的总体功能是通过启发式分析检测可能的端口扫描和感染扫描活动。这包括检查源IP地址与目的IP地址的映射,以及源IP地址、源端口、目的IP地址和目的端口的组合。如果检测到可能的扫描活动,函数会记录事件,并将相关信息存储在

标签:src,process,dst,packet,2788647047,sec,connect,IP地址,path
From: https://www.cnblogs.com/JLPeng/p/18358833

相关文章

  • 2788647047_process_packet_2
    在函数`_process_packet`中,这段代码的功能是处理TCP协议的数据包,并执行一系列的分析和日志记录。这段代码是函数的一部分,用于处理捕获到的单个原始IP层数据包。代码中的`try`块尝试执行以下操作:1.**解析TCP头部**:-`src_port,dst_port,_,_,doff_reserved,flags=str......
  • 2788647047_process_packet_3
    key="codeexecution"ifkeynotin_local_cache:_local_cache[key]=next(_[1]for_inSUSPICIOUS_HTTP_REQUEST_REGEXESif"codeexecution"in_[0])ifre.sea......
  • 2788647047_process_packet_4
    elifprotocol==socket.IPPROTO_UDP:#UDP_=ip_data[iph_length:iph_length+4]iflen(_)<4:returnsrc_port,dst_port=struct.unpack("!HH",_)_=_last_udp_last_u......
  • 2788647047_process_packet_5
    \iftype_notin(12,28)andclass_==1:#Typenotin(PTR,AAAA),ClassINifaddr_port(dst_ip,dst_port)intrails:trail=addr_port(dst_ip,dst_port)......
  • 2788647047_6
    elifconfig.USE_HEURISTICS:iford(dns_data[2:3])&0x80:#standardresponseiford(dns_data[3:4])==0x80:#recursionavailable,noerror_=offset+5......
  • 2788647047_process_packet_1
    在函数`_process_packet`中,IPv4和IPv6的处理代码如下:```pythonifip_version==0x04:#IPv4ip_header=struct.unpack("!BBHHHBBH4s4s",ip_data[:20])fragment_offset=ip_header[4]&0x1fffiffragment_offset!=0:returniph_lengt......
  • GUI编程process4
    1、GUI编程(AWT,Swing)图形界面编程元素:窗口,弹窗,面板,文本框,列表框,按钮,图片,监听时间,鼠标,键盘事件,破解工具2、简介Gui的核心技术:Wing和AWT,因为界面不美观,需要jre环境AWT(AbstractWindowToolkit)是‌Java中最早的图形用户界面开发包,而Swing是在AWT的基础上构建的。Swing组件......
  • Android Studio报错: A problem occurred starting process command ,CreateProcess er
    AndroidStudio报错:Aproblemoccurredstartingprocesscommand,CreateProcesserror=2,系统找不到指定的文件一、遇到问题二、解决问题重新下载了22.0.7026061和22.1.7171670只在cmake.dir中修改了路径(ndk.dir中修改了路径[未尝试])clean+SyncProject,OK了!......
  • IO流process3
    1、IO流(JDKAPI1.6.0中文版)I:intput输入O:output输出流:内存与存储设备之间传输数据的通道流的分类:按方向:输入流——将<内存设备>中的内容读入到<内存>中​输出流——将<内存>中的内容读入到<内存内存设备>中按单位:字节流——以字......
  • 聚焦IOC容器刷新环节postProcessBeanFactory(BeanFactory后置处理)专项
    目录一、IOC容器的刷新环节快速回顾二、postProcessBeanFactory源码展示分析(一)模版方法postProcessBeanFactory(二)AnnotationConfigServletWebServerApplicationContext调用父类的postProcessBeanFactory包扫描注解类注册(三)postProcessBeanFactory主要功能三、调用父......