图2-3-2 存放在Bot程序资源段中的ip黑名单
对于每一个a类ip,scaner模块排除掉部分b段。由于全网扫描容易遭到监控,通过排除部分ip地址可以减少被发现的风险。
图2-3-3 scanner模块排除部分ip地址后扫描全网
scanner模块能够扫描的端口包括1433端口,3306端口,135端口,22端口,445端口,23端口,80端口和3389端口。
图2-3-4 部分scanner模块扫描的端口
scanner模块可通过两种模式进行端口扫描,分别是TCP_SYN扫描和TCP_CONNECT扫描。使用何种扫描模式由参数“-syn”决定,如果启动参数包含“-syn”则选择使用TCP_SYN模式进行端口扫描,否则选择TCP_CONNECT模式进行端口扫描。当选择TCP_SYN模式进行端口扫描时,Bot程序只发送SYN帧,端口开放回应SYN&ACK帧,端口关闭回应RST帧,;当选择TCP_CONNECT模式进行端口扫描时,Bot程序尝试连接目标端口,端口开放则连接成功,否则连接失败。
Scanner模块创建的最大扫描线程数由“-t”参数决定,“-t”的最大值为1800。在scanner模块创建扫描线程的同时会同时创建名为“CrackerWMI”的线程,但是在Bot程序发送的数据包中并未发现目的端口为135(wmi服务使用的端口)的数据包,推测可能是作者预留的尚未完善的功能。
图2-3-5 两种不同的扫描模式
scanner模块会记录开放特定端口的ip地址,并且与ServerAgent模块和Cracker模块进行交互完成“端口扫描 爆破 入侵”一系列工作。
- ServerAgent模块分析
ServerAgent模块由两部分功能组成。一是向C&C发送扫描结果;二是对端口扫描和爆破进行相应的配置工作。
ServerAgent模块在scanner模块扫描过程中连接C&C。当scanner模块扫描到开放的端口之后,ServerAgent模块将把对应的ip地址和端口号发送至C&C。