红蓝对抗之常见网络安全事件研判了解网络安全设备Webshell入侵检测

Posted OceanSec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红蓝对抗之常见网络安全事件研判了解网络安全设备Webshell入侵检测相关的知识,希望对你有一定的参考价值。

研判(入侵检测)

研判我理解为人工层面对入侵检测事件进行再分析,即借助已有的设备告警根据经验判断是否为真实攻击

研判工作要充分利用已有安全设备(需要提前了解客户的网络拓扑以及部署设备情况),分析其近期的设备告警,将全部流量日志(日志条件:源地址,目的地址,端口,事件名称,时间,规则ID,发生 次数等)根据研判标准进行筛选(像挖矿、蠕虫、病毒、拒绝服务这类不太可能为攻击方发起的攻击的事件,直接过滤掉,减少告警数量),一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多IP的进行攻击

对于告警结合威胁情报库如:微步奇安信威胁情报中心等对于流量日志的原 IP 地址进行分析,判断其是否为恶意攻击,推荐使用微步的插件,如果确认为攻击行为或者不能确认是否为攻击行为,进行下一步操作,在之前准备好的表格中查找 IP 是否为客户内网部署的设备,如果不是,继续进行下一步,在事件上报平台查看是否有其他人提交过,如果没有,则上报

然后根据流量日志,对请求数据包和返回数据包分析判断其是否为误报,需要留意 X-Forwarded-For(简称XFF)和x-real-ip 可以了解些 webshell 工具的流量特征,尤其是免杀 webshell,有可能不会被设备识别

最后上报事件时,尽可能提供完整的截图,包括源 ip、目的ip,请求包请求体,响应包响应体等重要信息,以方便后续人员研判溯源

注:不要任意忽略内网告警,适当情况下可以往前推排查时间

设备

根据网络情况可以分为三种:经典网络、私有云、公有云

经典网络

注:图片来源于深信服官网

即客户拥有物理的基础设施(自建机房、自购设备、网络)

  • NGAF/NGFW:下一代 Web 应用防火墙(Next Generation Application Firewall,通防火墙和下一代防火墙的区别),聚合了以下功能

    • IDS
      • HIDS:基于主机的入侵检测系统
      • HIDS:基于网络的入侵检测系统
      • HIDS+NIDS:基于混合数据源的入侵检测系统
    • IPS:入侵防御系统
    • AV:反病毒系统
  • EDR:主机安全管理\\终端检测和响应

    EDR 实时监测终端上发生的各类行为,采集终端运行状态,在后端通过大数据安全分析、机器学习、沙箱分析、行为分析、机器学习等技术,提供深度持续监控、威胁检测、高级威胁分析、调查取证、事件响应处置、追踪溯源等功能,可第一时间检测并发现恶意活动,包括已知和未知威胁,并快速智能地做出响应,全面赋予终端主动、积极的安全防御能力

    简单来说就是给内网环境中所有主机安装管理软件终端,可以在管理平台集中管理和数据分析过滤,基本所有安全厂商都有自己的 EDR 产品

  • 运维审计和管理平台(堡垒机)

  • DAS:数据库安全审计平台

  • LAS:日志审计安全平台

  • AC:上网行为管理系统

  • 伪装欺骗系统(蜜罐、蜜网)

  • SIP:安全态势感知平台

    这个算是让整套系统性能得到提升的灵魂了,定位为客户的安全大脑,是一个集检测、可视、响应处置于一体的大数据安全分析平台。产品以大数据分析为核心,支持主流的安全设备、网络设备、操作系统等多源数据接入,利用大数据、关联分析、告警降噪等技术,实现海量数据的统一挖掘分析

云网络

云网络包括私有云和公有云

  • 云主机安全
  • 云防火墙
  • 云堡垒机
  • 云蜜罐
  • 云 DDOS 防护
  • 等等

异常HTTP请求

列举下在分析 HTTP 请求中可能出现的异常点,好做判断

正常的 HTTP 请求

正常的 HTTP 相应包

接下来分析那些 HTTP 数据包有可能会存在风险

  1. 请求URI过长
  2. 请求数据过长(冰蝎3.0就使用超长请求数据包绕过检测)
  3. 异常请求数据,判断是否存在 CRLF 攻击、以及 HTTP 请求走私
  4. 请求方法不合法,比如 HTTP 请求大小写混用,服务器不支持的请求方法,类似tomcat put 文件上传漏洞这种,以及未知的不存在的请求方法
  5. 响应头过长
  6. HTTP 协议版本字段不合规
  7. URI 字段不合规
  8. 多余的请求头部
  9. 请求 chunk 块 size 不合规(HTTP请求chunk块size不以数字开头或\\r\\n不完整,认为其不合规)
  10. 请求 chunk 块 body 不合规(HTTP请求chunk块body结尾\\r\\n不完整,认为其不合规)
  11. 请求 last chunk 块不合规
  12. 请求 URI 不可见字符
  13. 请求 URI 解码后不可见字符

Webshell分析

攻击者在入侵企业网站时,通常要通过各种方式获取 webshell 从而获得企业网站的控制权,然后方便进行之后的入侵行为

常见攻击方式有:直接文件上传获取 webshell、SQL 注入、文件包含、FTP、Redis 未授权,甚至使用跨站点脚本 (XSS) 作为攻击的一部分,甚至一些比较老旧的方法利用后台数据库备份及恢复获取 webshell、数据库压缩等

webshell 通用功能包括但不限于 shell 命令执行、代码执行、数据库枚举和文件管理

以 webshell 分析为例,其他漏洞如: SQL、文件包含等都大同小异

Webshell 的分类

按协议分析

  • 基于 TCP 的 Shell
  • 基于 UDP 的 Shell
  • 基于 ICMP 的 Shell(使用于内网主机主机只允许 ICMP 出入网即只能 ping 通的情况)
  • 基于 ICMP 的 Shell(具有较强的隐蔽性)

按使用工具分析

  • Liunx bash 命令反弹 Shell
  • NC 反弹 Shell
  • Telnet 反弹 Shell
  • SSH、iptables、sockets等工具端口转发
  • AWK 反弹 Shell 链接
  • 各种编程语言的反弹 shell

Webshell 的检测

webshell 的检测可以分为两个方面一个是主机层面(既根据 webshell 的文件特征和行为特征行为特征进行分析),第二个层面是流量层面(根据webshell 的传输流量分析)

主机层面

文件特征分析

一个 webshell 要执行必然会包含某些危险函数,以 php shell 为例,可能存在以下危险函数

  1. 存在系统调用的命令执行函数,如eval、system、cmd_shell、assert等
  2. 存在系统调用的文件操作函数,如fopen、fwrite、readdir等
  3. 字符串拼接执行操作
  4. 存在数据库操作函数,调用系统自身的存储过程来连接数据库操作
  5. 通过自定义加解密函数、利用xor、字符串反转、压缩、截断重组等方法来绕过检测

可以通过关键词匹配脚本文件找出 webshell,D盾之类的webshell查杀工具也是利用这种原理,对源码进行查杀

行为特征分析

  • webshell 在执行函数时这些对于系统调用、系统配置、数据库、文件的操作动作都是可以作为判断依据

主机可以从以下方法进行分析

  • 主机进程分析
  • 主机端口调用分析
  • 日志应用程序的事件日志
  • 系统调用日志(syscall)
  • 主机文件监控(系统文件、网站文件、配置文件)

对搜索到的内容,可以手动查看是否是木马、查看网页生成时间或者上传至一些检测的网站进行检测(http://www.virscan.org/、https://x.threatbook.cn、https://www.virustotal.com/gui/home/upload)

防御方面:Linux 中可以使用 chkrootkit/rkhunter 来定时监测系统,以保证系统的安全

  • chkrootkit 主要功能:

    检测是否被植入后门、木马、rootkit

    检测系统命令是否正常(避免在入侵检测分析时使用已被替换的命令)

    检测登录日志

    使用chkrootkit –n;如果发现有异常,会报出“INFECTED”字样

  • rkhunter 主要功能:

    系统命令(Binary)检测,包括Md5 校验

    Rootkit检测

    本机敏感目录、系统配置、服务及套间异常检测

    三方应用版本检测

流量层面

流量层面和主机层面相辅相成

基于流量的检测,是无法通过检测构成webshell危险函数的关键词来做检测的,但webshell带有常见写的系统调用、系统配置、数据库、文件的操作动作等,它的行为方式决定了它的数据流量中多带参数具有一些明显的特征,通过匹配行为的流量特征做检测,这也是基于webshell入侵后行为特征进行检测,当然也可以从系统层面webshell入侵行为进行检测

可以参考之前发的对于菜刀、冰蝎、哥斯拉的分析,我是链接,其流量中即使加密后或多或少也具有一些特征,通过大量数据分析比对发现其流量特征(或者网上的已知特征)后进行阻断拦击

流量分析的好处在于,在 web 访问日志中,是无法抓取 POST 方式的包,也就没法分析 webshell 入侵后的行为,而流量很好的做到了这一点

还有就是对于常见的内网工具 CS 流量可以通过在流量层面其 IP 端口,心跳包等特征进行检测

以及 N day 流量分析和 明文敏感信息传输分析

其他入侵检测方法

  1. 动态检测(沙箱)
  2. 统计学

入侵检测可以通过大数据和机器学习来强化设备

附录

常见端口漏洞

转载于:https://www.cnblogs.com/xiaozi/p/13296754.html

1、远程管理端口

22 端口(SSH)

安全攻击:弱口令、暴力猜解、用户名枚举
利用方式:
1、通过用户名枚举可以判断某个用户名是否存在于目标主机中,
2、利用弱口令/暴力破解,获取目标主机权限。

23 端口(Telnet)

安全漏洞:弱口令、明文传输
利用方式:
1、通过弱口令或暴力破解,获取目标主机权限。
2、嗅探抓取telnet明文账户密码。

3389 端口(RDP)

安全漏洞:暴力破解
利用方式:通过弱口令或暴力破解,获取目标主机权限。

5632 端口(Pcanywhere)

安全漏洞:弱口令、暴力破解
利用方式:通过弱口令或暴力破解,获取目标主机权限

5900 端口(VNC)

安全漏洞:弱口令、暴力破解
利用方式:通过弱口令或暴力破解,获取目标主机权限。

2、Web中间件/服务端口

1090/1099 端口(RMI)

安全漏洞:JAVA RMI 反序列化远程命令执行漏洞
利用方式:使用nmap检测端口信息。
端口信息:1099/1090    Java-rmi    Java RMI Registry
检测工具:attackRMI.jar

7001 端口(Weblogic)

安全漏洞:弱口令、SSRF、反序列化漏洞
利用方式:
1、控制台弱口令上传war木马 
2、SSRF内网探测 
3、反序列化远程代码执行等

8000 端口(jdwp)

安全漏洞:JDWP 远程命令执行漏洞
端口信息:
      8000             jdwp           java Debug Wire Protocol
检测工具:https://github.com/IOActive/jdwp-shellifier

8080 端口(Tomcat)

安全漏洞:弱口令、示例目录
利用方式:通过弱口令登录控制台,上传war包。

8080 端口(Jboss)

安全漏洞:未授权访问、反序列化。
利用方式:
1、未授权访问控制台,远程部署木马
2、反序列化导致远程命令执行等。
检测工具:https://github.com/joaomatosf/jexboss

8080 端口(Resin)

安全漏洞:目录遍历、远程文件读取
利用方式:通过目录遍历/远程文件读取获取敏感信息,为进一步攻击提供必要的信息。

任意文件读取POC:
payload1 = "/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=/etc/passwd"
payload2 = "/resin-doc/examples/jndi-appconfig/test?inputFile=../../../../../../../../../../etc/passwd"
payload3 = "/ ..\\\\\\\\web-inf"

8080 端口(Jetty)

安全漏洞:远程共享缓冲区泄漏
利用方式:攻击者可以通过精心构造headers值来触发异常并偏移到共享缓冲区,其中包含了之前其他用户提交的请求,服务器会根据攻击者的payload返回特定位置的数据。
检测工具:https://github.com/GDSSecurity/Jetleak-Testing-Script

8080 端口(GlassFish)

安全漏洞:弱口令、任意文件读取
利用方式:
1、弱口令admin/admin,直接部署shell 
2、任意文件读取获取服务器敏感配置信息

8080 端口(Jenkins)

安全漏洞:未授权访问 、远程代码执行
利用方式:访问如下url,可以执行脚本命令,反弹shell,写入webshell等。
http://<target>:8080/manage
http://<target>:8080/script

8161 端口(ActiveMQ)

安全漏洞:弱口令、任意文件写入、反序列化
利用方式:默认密码admin/admin登陆控制台、写入webshell、上传ssh key等方式。

9043 端口(webSphere)

安全漏洞:控制台弱口令、远程代码执行
后台地址:https://:9043/ibm/console/logon.jsp

50000 端口 (SAP)

安全漏洞:远程代码执行
利用方式:攻击者通过构造url请求,实现远程代码执行。
POC:http://<target>:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=cmd.exe /c ipconfig /all

50070 端口(hadoop)

安全漏洞:未授权访问
利用方式:攻击者可以通过命令行操作多个目录下的数据,如进行删除操作。
curl -i -X DELETE “http://ip:50070/webhdfs/v1/tmp?op=DELETE&recursive=true“
curl -i -X PUT “http://ip:50070/webhdfs/v1/NODATA4U_SECUREYOURSHIT?op=MKDIRS“

3、数据库端口

389 端口(ldap)

安全漏洞:未授权访问 、弱口令
利用方式:通过LdapBrowser工具直接连入。

1433 端口(Mssql)

安全漏洞:弱口令、暴力破解
利用方式:差异备份getshell、SA账户提权等

1521 端口(Oracle)

安全漏洞:弱口令、暴力破解
利用方式:通过弱口令/暴力破解进行入侵。

3306 端口(MySQL)

安全漏洞:弱口令、暴力破解
利用方式:利用日志写入webshell、udf提权、mof提权等。

5432 端口( PostgreSQL)

安全漏洞:弱口令、高权限命令执行
利用方式:攻击者通过弱口令获取账号信息,连入postgres中,可执行系统命令。
PoC参考:
    DROP TABLE IF EXISTS cmd_exec;
    CREATE TABLE cmd_exec(cmd_output text);
    COPY cmd_exec FROM PROGRAM 'id';
    SELECT * FROM cmd_exec;

5984 端口(CouchDB)

安全漏洞:垂直权限绕过、任意命令执行
利用方式:通过构造数据创建管理员用户,使用管理员用户登录,构造恶意请求触发任意命令执行。
后台访问:http://<target>:5984/_utils

6379 端口(Redis)

安全漏洞:未授权访问
利用方式:绝对路径写webshell 、利用计划任务执行命令反弹shell、
公私钥认证获取root权限、主从复制RCE等。

9200 端口(elasticsearch)

安全漏洞:未授权访问、命令执行
检测方式:
1、直接访问如下url,获取相关敏感信息。
  http://<target>:9200/_nodes  
查看节点数据
  http://<target>:9200/_river  查看数据库敏感信息
2、通过构造特定的数据包,执行任意命令。

11211 端口(MemCache)

安全漏洞:未授权访问
检测方式:无需用户名密码,可以直接连接memcache 服务的11211端口。
nc -vv <target> 11211

27017 端口(Mongodb)

安全漏洞:未授权访问、弱口令
利用方式:未授权访问/弱口令,远程连入数据库,导致敏感信息泄露。

4、常见协议端口

21 端口(FTP)

安全漏洞:1、配置不当    2、明文传输    3、第三方软件提权
利用方式:
1、匿名登录或弱口令
2、嗅探ftp用户名和密码
3、Serv-U权限较大的账号可导致系统命令执行。
FTP提权命令:
  # 增加系统用户
   Quote site exec net user 4567 4567 /add
  # 提升到管理员权限
   Quote site exec net localgroup administrators 4567 /add

25 端口(SMTP)

攻击方式:1、匿名发送邮件 2、弱口令 3、SMTP用户枚举
利用方式:
1、SMTP服务器配置不当,攻击者可以使用任意用户发送邮件。
2、SMTP弱口令扫描,获取用户账号密码,发送邮件钓鱼。
3、通过SMTP用户枚举获取用户名:
   nmap -p 25 -- smtp-enum-users.nse <target>

53 端口(DNS)

安全攻击:1、DNS域传送漏洞、DNS欺骗、DNS缓存投毒
检测方式:
1、DNS域传送漏洞,Windows下检测使用nslookup命令,Linux下检测使用dig命令,通过执行命令可以清楚的看到域名解析情况。
2、DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。
3、DNS缓存投毒是攻击者欺骗DNS服务器相信伪造的DNS响应的真实性。

161 端口(SNMP)

安全漏洞:默认团体名/弱口令访问
利用方式:通过nmap自带的审计脚本进行检测,可能导致敏感信息泄露。。
1、弱口令检测:nmap –sU –p161 –script=snmp-brute <target>
2、获取系统信息:nmap –sU –p161 –script=snmp-sysdescr <target>
3、获取用户信息:nmap -sU -p161 --script=snmp-win32-user <target>
4、获取网络端口状态:nmap -sU -p161 --script=snmp-netstat <target>

443 端口(SSL)

安全漏洞:OpenSSL 心脏出血
利用方式:攻击者可以远程读取存在漏洞版本的openssl服务器内存中长大64K的数据。
扫描脚本:nmap -sV --script=ssl-heartbleed <target>

445 端口(SMB)

安全漏洞:信息泄露、远程代码执行
利用方式:可利用共享获取敏感信息、缓冲区溢出导致远程代码执行,如ms17010。

873 端口(Rsync)

安全漏洞:匿名访问、弱口令
利用方式:攻击者可以执行下载/上传等操作,也可以尝试上传webshell。
1、下载:#rsync -avz a.b.c.d::path/file path/filiname  
2、上传:#rsync -avz path/filename a.b.c.d::path/file

2181 端口(Zookeeper)

安全漏洞:未授权访问
检测方式:攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。
 echo envi | nc ip port

2375 端口(Docker)

安全漏洞:未授权方式
检测方式:通过docker daemon api 执行docker命令。
#列出容器信息,效果与docker ps -a 一致。
 
curl http://<target>:2375/containers/json
 
docker -H tcp://<target>:2375 start <Container Id>

参考文章:

  • https://www.freebuf.com/articles/web/183520.html
  • https://blog.csdn.net/m0_64197404/article/details/121538483
  • https://shimo.im/docs/vVqRVQ2PMKHy1Xqy/read

以上是关于红蓝对抗之常见网络安全事件研判了解网络安全设备Webshell入侵检测的主要内容,如果未能解决你的问题,请参考以下文章

渗透测试和攻防演练的区别

看世界杯学网络安全—防御技术和红蓝对抗 大总结

看世界杯学网络安全—防御技术和红蓝对抗 大总结

看世界杯学网络安全—防御技术和红蓝对抗 大总结

看世界杯学网络安全—防御技术和红蓝对抗 大总结

(2020上半年第70天(红蓝对抗-蓝队主机流量蜜罐等监控检测))小迪网络安全笔记