文章目录
- 常见安全设备+安全产品
- 溯源
- 应急响应+入侵排查思路
- 日志文件
- 日志分析工具
- 安全加固
- 外围打点
- 常用排查命令
- 主机后门webshell的排查思路
- Webshell工具的流量特征
- 服务器存在 webshell,如何处理?
- 排查 shell 应该用什么命令来进行排查?
- 如何检测 webshell?
- Linux 的 Selinux
- 安全基线规范检查
- 中间件基线规范(APACHE)
- 中间件常见漏洞
- 常见中间件的配置文件路径
- DDOS CC等攻击应急思路以及如何防范
- 挖矿病毒判断以及处理方式
- 威胁情报库
- 怎么发现有没有被攻击?
- 同源策略是什么
- sql注入(面了几家问了几家)
- SSRF
- cs流量特征(50050)
- Java 内存马
- java反序列化
- 文件上传
- 文件包含漏洞
- 命令执行漏洞
- 代码执行漏洞
- 常见的逻辑漏洞
- 越权漏洞
- redis漏洞原理
常见安全设备+安全产品
了解过哪些安全设备
- 华为防火墙:华为防火墙是华为公司生产的安全产品之一,主要用于网络边界安全和数据中心安
全。它提供了多种安全功能,例如流量管理、入侵检测、VPN接入等。 - 绿盟防火墙:绿盟防火墙是北京绿盟科技有限公司开发的一款网络安全产品,具有防御DDoS、
DNS攻击、漏洞利用等攻击的能力,还支持大规模分布式部署。 - 启明星辰边界安全网关:启明星辰边界安全网关是启明信息技术股份有限公司推出的一款综合性安
全产品,它能够提供网络访问控制、应用层协议识别、反病毒防护、VPN等多种安全功能。 - 360天擎安全产品:360天擎安全产品是由360集团推出的综合性安全产品,包括了防火墙、入侵检
测、威胁情报、网络行为分析等多种安全功能,可支持大规模企业部署。 - 安恒安全产品:安恒信息安全技术有限公司是国内知名的网络安全服务提供商之一,其生产的安全
产品包括了威胁情报、攻击检测、漏洞管理等多种安全功能,广泛应用于金融、电信、政府等行
业
安全产品
6. 网络安全设备类:网络安全设备类产品主要包括防火墙、入侵检测系统、Web应用安全网关、
DDoS防护等。例如华为防火墙、启明星辰边界安全网关、绿盟防火墙、360天擎等。
7. 终端安全类:终端安全产品主要用于保护个人电脑、移动设备和服务器的安全,主要包括反病毒软
件、安全加固、数据加密、身份认证等。例如360安全卫士、金山毒霸、腾讯电脑管家等。
8. 数据安全类:数据安全产品主要用于保护企业敏感数据不被泄露或篡改,主要包括加密、备份恢
复、数据控制等。例如深信服信息加密解决方案、启明星辰数据加密产品、山石网科数据泄漏防护
等。
9. 互联网安全类:互联网安全产品主要用于保护企业在互联网上的各种应用、网站、云服务等安全,
主要包括云安全、移动安全、Web应用安全和容器安全等。例如弘善网络云安全解决方案、卫士通
移动安全系统、腾讯安全云等
安全厂商
深信服、浪潮、奇安信、绿盟、山石网科、启明星辰、安恒、360、新华3
防火墙
按照过滤规则(IP,端口,协议等),对数据报的报头进行过滤,决定对数据报放行或丢弃。防火墙不会拆包查看数据包内容。
防火墙无法阻断内部的攻击,比如内部员工点击了木马文件,主动向攻击者发起连接。事后也无法对攻击信息进行调查取证(无法溯源)。
IDS
入侵检测(detection)系统。它是并联(旁路)部署的,对流到web服务器的流量进行记录。只对流量进行记录,如果是攻击流量,会“眼睁睁”地看着它攻击,不阻断攻击。“只记录,不拦截”。
IPS
入侵防御(protection)系统,对恶意数据包进行检测,对攻击流量进行阻断。又检测又阻断。串联在网络中,一个一个地核实身份(所以速度会慢一些)。“又记录,又拦截”。
waf
web应用防火墙,主要监控的是应用层的http、https流量。
上网行为管理器
对主机用户行为进行检测,可以看用户在干什么,比如可以检测员工是不是上班摸鱼,深信服有这个(我在b站看过up主测评这个)。上网行为管理功能主要是为了防止企业员工或学校学生在上班或者上课期间浏览无关网站,而带来多方面的不良影响。
数据库审计系统
采集所有数据库的访问流量。审计可信人员(运维、员工等)对数据库的非法操作,它能记录谁(user)在什么时候(when)什么时候地方(ip地址、mac地址)对哪些库表做了什么操作(sql语句的增删查改)及相应操作返回的结果。
无法阻断非法攻击,方便事后取证、定责。比如有员工对公司怀恨在心,删库跑路,数据库审计系统记录下该员工的对数据库的非法操作(drop database),事后公司对该员工进行定责(坐牢)。
全流量设备
采集、存储所有网络流量,被攻击后方便还原攻击链,溯源取证等工作。
蜜罐
像IDS、IPS、waf这些安全设备,是基于特征库匹配的,意味着攻击流量(行为)匹配了特征库,就会产生告警。但是像0day漏洞,是新型的攻击手法,特征库不存在这种攻击特征,就无法产生告警。部署一些诱饵主机、网络服务和信息,诱导黑客去攻击,会记录黑客的所有操作攻击行为,就像开了上帝的眼一样。
态势感知
收集海量的数据(日志+流量),使用由深度学习、威胁情报、AI等训练的模型进行分析,最后用大屏显示分析结果。一般用户看到的就是酷炫的分析结果。
统一威胁管理平台(Unified Threat Management, UTM)
UTM 是一种集成了防火墙、IDS/IPS、VPN、反病毒等多种功能的综合性安全解决方案。
脆弱性扫描器(Vulnerability Scanner):
脆弱性扫描器可以发现系统中可能存在的漏洞,并提供修补建议。
安全信息和事件管理系统(Security Information and Event Management, SIEM):
SIEM 可以对安全事件和日志数据进行收集、分析和报告,帮助管理员更好地了解和响应安全事件。
代理服务器(Proxy Server):
代理服务器可以过滤流量、检查内容和访问控制,提供额外的安全保护。
负载均衡器(Load Balancer):
负载均衡器可以平衡网络流量,分担服务器负载,提高网络性能和可用性。
加密设备:
加密设备可以对数据进行加密处理,防止数据被窃取或篡改。
溯源
溯源
1.攻击源获取
这就和安全事件的确定有关系。比如说领导告诉你我的主机有点卡或者web页面被篡改了等等。这时候就要去判断对方的攻击手段。然后去找攻击的痕迹。痕迹的寻找就是三个点,日志,网路痕迹,进程信息。这三点进行结合查看。
2.针对IP或者域名通过公网已有的开放信息进行查询
比如说我在日志里找到了对应的攻击者IP,那么我们就要对ip进行识别他的网络资产,比如站长之家识别一下,查看一下有无域名,对域名进行反查一下,看是否可以搜索到攻击者相关信息。
还有就是如果这些信息无法获取,只知道了对方的ip,那就直接对对方进行反向渗透。进行取证,取证的主要是对方的office文件,各种第三方社交软件,比如说微信有个缓存文件db后缀结尾的,里面有聊天记录,拿去破解一下。
3.信息反查
取证,想尽办法搜索到和他相关的所有信息。
4.反制
反制分为技术手段和非技术手段
技术手段:1.分析对方工具的漏洞2.蜜罐
非技术手段:1.钓鱼和反钓鱼2.从攻击者目的思考反向获取对方信息
反制还分为直接反制和钓鱼反制
直接反制就是对对方主机进行攻击。
钓鱼反制就是引诱对方进入。这里要说一下,让我们做蜜罐时候,一定要做的像内网的真实主机,不能让对方一眼识别。比如说网卡啊,虚拟机可以用别人测试的游戏虚拟机,相关文件,敏感文件,各种服务。OA啊,等等,做的真实一点点。
应急响应+入侵排查思路
应急响应流程
收集信息:收集客户信息和中毒主机信息,包括样本
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等抑制范围:隔离使受害⾯不继续扩⼤
深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
产出报告:整理并输出完整的安全事件报告
windows入侵排查思路
1.收集信息:收集与系统安全相关的信息,包括日志文件,进程列表,网络连接,系统配置等。
2.分析信息:对收集到的信息进行分析,确定异常行为和潜在威胁
BTAB 蓝队分析工具箱,专注于攻击特征分析。可以辅助安全运营人员在客户现场较苛刻环境下(无网、无python环境)的流量包分析、木马分析等场景,目前已集成流量包检测、SQL注入检测、Webshell检测、bash命令执行检测,以及解码序列化等工具。
https://github.com/Martin2877/btab/releases/tag/v0.3.3
3.确认威胁:确认系统存在威胁,并确定其类型和程度。
4.阻止攻击:采取相应的措施,尽快阻止攻击并减少损失。
5.恢复系统::对受到攻击的系统进行恢复,确保其正常运行。
具体来说,可以采取以下几种方法进行入侵排查:
1. 使用防病毒软件:定期使用防病毒软件扫描系统,及时发现并清除潜在的威胁。
2. 定期更新系统:定期更新系统和安全补丁,以确保系统的安全性。
3. 监控网络连接:监控网络连接情况,及时发现异常连接和流量,以及非法访问尝试。
4. 分析日志文件:分析日志文件,了解系统的使用情况和异常行为,及时发现威胁。
5. 使用安全工具:使用安全工具,如入侵检测系统、网络监控系统等,帮助发现和阻止威胁。
6. 加强用户教育:加强用户教育,提高用户安全意识,减少人为因素对系统安全的影响
Linux入侵排查思路
1. 收集基础信息:收集系统的版本、配置文件和日志等信息,了解系统的正常运行状态。
查看Linux系统版本信息的几种方法:
查看Linux内核版本命令(两种方法)
cat /proc/version
uname -a
查看Linux系统版本的命令(3种方法):
lsb_release -a,即可列出所有版本信息:
这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。
cat /etc/redhat-release,这种方法只适合Redhat系的Linux:
cat /etc/issue,此命令也适用于所有的Linux发行版。
lsb_release -a:查看Linux发行版和版本信息。ifconfig或ip addr show:查看网络接口、IP地址和相关配置信息。cat /etc/resolv.conf:显示DNS配置信息。cat /etc/hosts:查看本地主机名解析配置。cat /etc/fstab:显示文件系统挂载配置。
- 分析异常行为:通过比较正常状态与异常状态的差异,分析系统上出现的任何异常行为,例如不寻
常的进程、网络流量或文件更改。 - 确认入侵点:确定攻击者可能入侵的方式,并检查是否存在未修复的漏洞。
- 隔离受感染的系统:及时隔离受感染的系统,以限制损害并避免进一步传播。
- 恢复系统:清除恶意代码并修复受损部分,通过备份恢复数据和配置文件,确保系统安全。
- 收集证据:收集入侵事件的详细信息,包括攻击的时间、入侵的方式、影响范围、损失情况等,以便后续追踪和定位攻击者。
在实际操作中,需要结合专业的工具和技能进行排查,例如使用抓包工具Wireshark分析网络流量、使用进程监控工具ps、top、htop等查看进程运行情况。同时,还需要不断学习更新各种安全相关的技能和知识,以提高排查入侵事件的能力
日志文件
Windows
- 系统事件记录器:Event Viewer 应用程序中提供了 Windows 系统的事件日志管理工具。这些日志文件通常存储在 C:\Windows\System32\winevt\Logs 目录中。
- 应用程序日志:包括应用程序特定的事件、错误和警告等信息,可以使用 Event Viewer 应用程序进行查看。这些日志文件通常存储在应用程序的安装目录下或者 Windows 系统目录中。
- 安全日志:记录有关系统安全性的重要信息,例如登录、注销、权限更改等。这些日志文件通常存储在 C:\Windows\System32\winevt\Security.evtx 文件中。
Linux
- 系统日志:Linux 系统中的所有日志都存储在 /var/log 目录下。主要的日志文件包括:
/var/log/messages:记录系统启动期间的消息以及其他系统级别的消息。
/var/log/syslog:记录核心系统日志,也包括其他应用程序的日志。
/var/log/auth.log:记录用户登录和其他身份验证相关事件的日志文件。 - 各种服务/软件的日志文件:各种服务或软件分别根据自己的命名规范来命名相应的日志文件,其中一些可能位于 /var/log 目录下,而另一些则可能位于 /var/log/service 目录下。
需要注意的是,日志文件在系统运行一段时间后可能会变得非常庞大,因此需要定期进行归档和清理,以释放磁盘空间并提高系统性能。
在 Linux 系统中,可以通过以下方式查看登录日志:
- /var/log/auth.log文件:该文件记录了所有用户的认证信息,包括 SSH 登录、sudo 访问以及 su 切换等操作。
- /var/log/secure文件:该文件用于记录系统身份验证和授权消息,通常在 Red Hat 系统上使用。其中包括 SSH 登录、sudo 访问以及 su 切换等操作。
- /var/log/messages文件:该文件记录了系统的运行消息,包括启动和关闭服务、内核消息以及其
他重要事件。 - w命令:可以查看当前已登录的用户和他们的会话信息。
- last命令:可以查看最近所有登录和注销会话的用户列表以及日期和时间。
- lastlog命令:可以查看所有用户最后一次登录的时间和位置。
需要注意的是,在某些系统中这些文件名可能会有所不同,例如 Ubuntu 系统中的 /var/log/auth.log 文件可能是 /var/log/auth.log.1、/var/log/auth.log.2.gz等形式。因此,在查看登录日志时,最好先了解当前系统的具体情况
日志分析工具
- Event Viewer:Windows 自带的日志管理工具,可以查看和分析 Windows 系统中的各种事件日
志。 - Log Parser:一款免费的命令行工具,可以查询和分析日志文件、IIS 日志、Windows 注册表、
Active Directory 等数据源。 - Microsoft Message Analyzer:一款强大的网络协议分析工具,可以捕获和分析 Windows 操作系
统上的网络流量和事件日志。 - Syslog-ng:一个高性能的日志管理工具,可以帮助用户收集和分析来自不同平台的日志信息。
- Graylog:一款开源的日志管理工具,可以帮助用户收集、存储和分析来自不同来源的日志信息,
并提供直观易用的用户界面。 - Splunk:一款商业化的日志管理工具,可以帮助用户实时监控、搜索、分析和可视化来自不同来源
的日志信息。
Linux 日志分析技巧命令
- grep 命令:用于在文本文件中搜索指定的字符串和模式,例如可以使用 grep error
/var/log/messages 命令来查找系统日志中的错误信息。 - tail 命令:实时监视日志文件,并显示最新添加的日志信息,例如可以使用 tail -f
/var/log/messages 命令来实时监视系统消息。 - sed 和 awk 命令:可以用来编辑和处理文本文件,例如可以使用 awk ‘/error/ {print $0}’
/var/log/messages 命令来筛选出包含 error 字符串的日志信息。 - journalctl 命令:用于查询和查看 systemd 系统日志,例如可以使用 journalctl -u nginx.service
命令来查看 Nginx 服务的日志信息。 - dmesg 命令:用于打印内核环境变量缓冲区的内容包
安全加固
Windows 安全加固
- 更新操作系统和软件:及时安装 Windows 操作系统和软件的安全更新。
- 禁用 SMBv1:由于 SMBv1 协议存在一些严重的漏洞,建议禁用 SMBv1 协议。
SMB(Server Message Block)是一种用于文件共享、打印机共享和通用网络通信的协议。不同版本的 SMB(如
SMB1、SMB2、SMB3)在功能和特性方面有所不同。
- 启用 UAC:启用用户账户控制(UAC),以限制非管理员用户的系统访问权限。
用户账号控制(User Account Control) 为WindowsVista推出的一项安全技术,其原理是通过限制安全应用软件对系统层级的访问,提升Windows操作系统的安全性。
- 配置防火墙:使用 Windows 防火墙过滤不必要的网络流量,并确保只允许合法的流量通过。
- 使用 BitLocker 或类似的加密工具:对重要数据和文件进行加密存储,以避免数据泄漏。
Bitlocker 可以拆分为bit locker,直接翻译的话就是比特锁,意思是每个 bit 都加密。Bitlocker 使用 AES
加密算法加密整个卷来保护数据。简单来说,BitLocker 会将 Windows的安装分区或者其他用于保存文件的分区进行加密,并将密钥保存在硬盘之外的地方,并对早期启动组件完整性检查,合并到一起来增强数据保护。
BitLocker 主要有两种工作模式:TPM 模式和 U盘模式,同时为了实现更高程度的安全,我们还可以同时启用这两种模式。
- 配置组策略:使用本地组策略或 Active Directory 组策略来限制用户和计算机的访问权限。
- 检查安全事件日志:定期检查 Windows 安全事件日志,了解系统中发生的任何异常事件。
- 定期备份数据:定期备份重要数据至外部存储设备,以防止数据丢失和系统损坏。
Linux 安全加固:
- 更新所安装的软件包:定期更新系统中所有软件包以修复已知漏洞。
- 禁用不必要的服务:禁用不必要的网络服务,减少攻击面。
- 配置防火墙:使用防火墙限制入站和出站网络流量,只允许合法的流量通过。
- 加强密码策略:设置强密码策略并启用多因素身份验证。
- 禁用 root 登录:禁止使用 root 用户登录系统,并将 sudo 和 su 访问权限限制到必要的人员或
组。 - 使用 SELinux 或 AppArmor:使用 SELinux 或 AppArmor 来实现更细粒度的应用程序和文件访问
控制。 - 配置 SSH 访问:使用 SSH 协议连接服务器时配置限制 IP 地址和端口号等安全措施。
- 定期备份数据:定期备份重要数据至外部存储设备,以防止数据丢失和系统损坏
外围打点
外围打点是一种对目标系统进行浅层次探测的方法,可以帮助安全人员了解目标系统的基本情况和漏洞
状况。下面是外围打点的基本流程:
- 信息收集:在进行外围打点之前,需要先收集相关的信息,包括目标系统的IP地址、域名、开放端
口和服务等。可以使用一些工具和技术来收集这些信息,如Whois查询、DNS解析、端口扫描、网
络枚举等。 - 网络探测:在收集到目标系统的基本信息后,可以使用网络探测工具进行扫描,以获取更详细的信
息和漏洞情况。常用的网络探测工具包括Nmap、Hping、Netcat等,可以进行端口扫描、协议检
测、操作系统识别等。 - 漏洞扫描:在探测到目标系统的开放端口和服务后,可以使用漏洞扫描工具来检测其中的安全漏洞
和风险。常用的漏洞扫描工具包括Nessus、OpenVAS等,可以通过自动化的方式对目标系统进行
安全评估和检测,并生成相应的报告和建议。 - 漏洞利用:在发现目标系统的安全漏洞后,可以使用一些漏洞利用工具进行攻击和渗透测试。常用
的漏洞利用工具包括Metasploit、Exploit-db等,可以通过自动化或手动的方式对目标系统进行攻
击,并获取相应的权限和访问权。 - 安全评估:最后,需要对外围打点的结果进行分析和总结,评估目标系统的安全性和风险情况,并
提出相应的建议和措施来改善安全状况
常用排查命令
linux
-
top:显示当前系统中最占用 CPU 和内存的进程。
-
ps:显示当前系统所有运行的进程列表。
-
netstat:显示网络连接状态和统计信息,例如打开的端口、TCP/UDP 连接和网络接口等。
-
ifconfig/iwconfig:显示网络接口的状态和配置信息。
-
ping/traceroute:用于测试网络是否连通以及检测网络故障的工具。
-
df/du:显示磁盘使用情况,包括已用空间和可用空间等信息。
-
ls/lsof:用于查看打开的文件、目录和文件描述符。
-
strace/ltrace:跟踪应用程序执行期间的系统调用和库函数调用。
-
tcpdump:捕获网络数据包并将其记录到日志文件中,以便进行后续分析。
-
who :命令查看当前登录用户(tty本地登陆 pts远程登录)
-
history : 表示输出最近使用的5条命令
-
tail:实时监视日志文件,并显示最新添加的日志信息。
windows
query user 查看当前登录账户
logoff ID 注销用户id
net user 查看用户
net user username 查看用户登录情况
lusrmgr.msc 打开本地用户组
regedit 注册表查看账户,确认系统是否存在隐藏账户
netstat -ano 异常端口进程,一般是查看已经成功建立的连接
msconfig 启动项检查,查看系统启动项
Cmd下运行schtasks 查看系统定时任务(win7系统利用at)
Services.msc 查看系统服务
运行窗口中输入“%UserProfile%\Recent”。查看最近打开的文件,
主机后门webshell的排查思路
windows主机后门排查思路
针对主机后门windows,linux,在对方植入webshell后,需要立即响应,排查出后门位置,以及排查对外连接,端口使用情况等等
排查对外连接状态:
借助工具:pchunter 火绒剑 均可,不方便情况下cmd查看对外连接状态,进程状态,端口信息等
思路1:pchunter查看到异常的对外连接
定位该exe文件,上传微步沙箱显示异常
思路2:cmd窗口查看对外链接状态:
netstat -anpt cmd查看进程状态:tasklist
**思路3:pchunter查看进程,**大多数木马文件在没有做屏蔽等措施,在厂商归属,指纹信息会显示异常,或者无任何厂商归属信息,可以借助为参考
火绒剑查看网络情况:系统监控存在连接状态,
启动项后门的排查
启动项后门命令:
REG ADD “HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /V “backdoor” /t REG_SZ /F /D “C:\shell.exe”
这是一个用于在Windows注册表中添加启动项的命令。该命令将在当前用户的注册表路径下的"HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"键中添加一个名为"backdoor"的值,其值数据为"C:\shell.exe"。
pchunter,火绒剑等均可查看启动信息
映像劫持,隐藏账户,均可借助工具查看,
linux的后门排查也可以netstat -anpt查看连接状态研判 ,发现异常连接kill进程
rootkit情况说明
linux被rootkit上线:无法查看到对外连接,在受害机执行命令可以做到隐藏进程,文件等
处置:Gscan上传受害机环境直接运行(包含检测rootkit,可以作为其他的Linux应急)(未检测出rootkit)
目前开源自动化工具均无法检测rootkit
目前内存马和rootkit对于蓝队无法百分百解决检测
不给你工具,怎么进行webshell排杀
要进行Webshell排查和清除,需要在服务器上执行以下步骤:
- 扫描服务器,寻找异常进程、文件和网络连接。可以使用诸如lsof、netstat、ps等命令来查找可疑
的进程和网络连接。 - 检查服务器中是否存在任何未知文件或目录,特别是具有隐藏属性的文件和目录。可以使用find命
令查找所有文件和目录,并检查其中是否存在可疑的文件和目录。 - 检查服务器上是否存在未知用户和组。可以使用cat /etc/passwd和cat /etc/group命令来查看系统
中的用户和组,并检查其中是否存在可疑的用户和组。 - 检查服务器上的系统日志,包括/var/log/messages、/var/log/secure等文件,以查找异常事件。
- 如果发现可疑的Webshell文件,需要立即将其删除,并检查相关的网站和数据库是否被入侵。
- 更新服务器上的操作系统和应用程序,并安装最新的防病毒软件和安全补丁,以提高服务器的安全
性。
Webshell工具的流量特征
菜刀流量分析
payload特征:
PHP: <?php @eval($_POST['caidao']);?>
ASP: <%eval request(“caidao”)%
ASP.NET: <%@ Page
Language=“Jscript”%><%eval(Request.Item[“caidao”],“unsafe”);%>
数据包流量特征:
1,请求包中:ua头为百度,火狐
2,请求体中存在eavl,base64等特征字符
3,请求体中传递的payload为base64编码,固定的
4,存在&z0 z1 z2 z3
蚁剑流量分析
payload特征:
Php中使用assert,eval执行,
asp 使用eval
在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征
数据包流量特征:
使用普通的一句话都存在以下特征:
每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且后面存在base64等字符
响应包的结果返回格式为:
随机数
响应内容
随机数
使用base64加密的payload,数据包存在以下base加密的eval命令执行,数据包的payload内容存在几个分段内容,分别都使用base加密,解密后可以看到相关的路径,命令等
响应包的结果返回格式为:
随机数
编码后的结果
随机数
冰蝎流量分析
paylaod分析:
php在代码中同样会存在eval或assert等字符特征
在aps中会在for循环进行一段异或处理
在jsp中则利用java的反射,所以会存在ClassLoader
getClass().getClassLoader()等字符特征
冰蝎2.0流量特征:
第一阶段请求中返回包状态码为200,返回内容必定是16位的密钥
请求包存在:Accept: text/html, image/gif, image/jpeg, ; q=.2, /; q=.2
建立连接后的cookie存在特征字符
所有请求 Cookie的格式都为: Cookie: PHPSESSID=; path=/;
冰蝎3.0流量特征:
请求包中content-length 为5740或5720(可能会根据Java版本而改变)
每一个请求头中存在
Pragma: no-cache,Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/*;q=0.8,application/signed-exchange;v=b3;q=0.9
哥斯拉流量特征
payload特征:
jsp会出现xc,pass字符和Java反射(ClassLoader,getClass().getClassLoader()),base64加解码等特征
php,asp则为普通的一句话木马
哥斯拉流量分析:
作为参考:
所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
所有响应中Cache-Control: no-store, no-cache, must-revalidate,
同时在所有请求中Cookie中后面都存在;特征
服务器存在 webshell,如何处理?
Webshell是一种Web服务器上的恶意代码,可以使攻击者远程控制服务器,并执行各种命令、上传下载
文件等操作。以下是处理服务器存在Webshell的一些方法:
- 扫描和确认Webshell
可以通过查看Web服务器日志或使用安全扫描工具来确认是否存在Webshell。找出所有可疑文件并进行
彻底检查,以确定是否存在Webshell。 - 删除Webshell
如果确定存在Webshell,需要立即将其删除,并对系统进行全面清理。删除Webshell时,应同时清除与
Webshell相关的文件和目录,并且应用程序代码也需要进行更新和修复。 - 加强安全防护措施
为了避免服务器再次被感染,需要加强安全防护措施,包括加强服务器的监控和日志审计、安装杀毒软
件并定期更新、限制非管理员用户权限等。 - 修改密码
修改服务器管理员的账户密码,并确保强密码策略得到实施,建议使用包含大写字母、小写字母、数字
和特殊字符等不同类型字符组成的复杂密码,并设置密码长度要求。 - 更新和修复应用程序代码
Webshell通常是由于应用程序存在漏洞或安全问题而被植入的。因此,为了防止类似问题再次发生,需
要及时更新并修复应用程序代码中的安全漏洞。
总之,在处理服务器存在Webshell的问题时,需要快速准确地识别和清除Webshell,并加强服务器和应
用程序的安全防护措施。同时,也需要定期进行巡检和审计,及时发现和排除漏洞,以确保系统的完整
性和安全性。
排查 shell 应该用什么命令来进行排查?
要排查 shell 的问题,可以使用以下命令:
- echo :用于打印变量或字符串,可以用来检查变量的值是否正确。
- set :用于显示所有的 shell 变量和函数,包括环境变量。
- env :用于显示当前 shell 环境下的所有环境变量。
- source 或 .:用于读取并执行指定文件中的命令,通常用于重新加载配置文件。
- sh -x script.sh:用于以调试模式执行脚本,并输出每个执行的命令及其参数。
- ps :用于列出当前正在运行的进程,可以使用 ps aux 查看详细信息。
- top :用于实时查看系统资源的使用情况,可以用来定位占用 CPU 或内存过高的进程。
- grep :用于搜索指定的文本内容,可以用来查找特定日志文件中的错误信息等。
这些命令可以帮助您快速诊断 shell 中的问题。
如何检测 webshell?
Webshell是指嵌入到Web服务器上的一种命令执行环境,可以通过Web页面或HTTP协议与其进行交
互,攻击者可以利用Webshell来执行各种恶意操作。检测Webshell可以使用以下几种方法:
- 查看Web服务器访问日志:Webshell通常会产生异常的网络流量,例如向非标准端口发送POST请
求等。查看Web服务器的访问日志,观察是否存在异常的请求。 - 安全扫描工具:使用安全扫描工具对Web服务器进行扫描,以检测是否存在Webshell。常用的安
全扫描工具包括Nessus、OpenVAS等。 - 文件监控:Webshell通常会将恶意代码写入某个文件中,因此可以通过文件监控工具来检测
Webshell。例如,当文件被修改时,文件监控工具会立即发送警报。 - 内存监控:有些高级的Webshell可能不会在磁盘上留下任何痕迹,而是直接将代码注入到内存中。
因此,可以使用内存监控工具来检测是否存在Webshell。 - 安全审计:对Web服务器进行安全审计,检查是否存在安全漏洞,例如文件上传漏洞、命令注入漏
洞等。攻击者通常会利用这些漏洞来上传Webshell。
以上方法并不能完全保证检测到所有的Webshell,
Linux 的 Selinux
SELinux(Security-Enhanced Linux)是一个针对 Linux 内核的安全模块,它可以限制进程和用户的访问权限,并提供更加细粒度的访问控制。SELinux 基于强制访问控制(MAC)模型,将每个进程/对象分配到不同的安全上下文中,并通过策略文件来定义这些上下文之间的关系。
在 Linux 中,SELinux 可以通过以下步骤进行设置:
- 检查 SELinux 状态:使用命令 getenforce 或者 sestatus 来检查当前 SELinux 的状态,例如 enforcing、permissive 或者 disabled 等。
- 修改 SELinux 配置文件 /etc/selinux/config:可以修改 SELINUX 参数的值为 enforcing(强制模
式)、permissive(宽容模式)或者disabled(禁用 SELinux)等。 - 安装和管理 SELinux 策略包:使用 yum 命令安装和管理 SELinux 相关的策略包,例如
policycoreutils 和 selinux-policy 等。 - 设定 SELinux 上下文:使用 chcon、semanage 和 restorecon 等命令来更改文件或目录的安全上
下文。 - 确认 SELinux 日志:在排除 SELinux 相关问题时可以使用命令 ausearch、ausearch、auditctl 等
来确认 SELinux 日志。
需要注意的是,在对 SELinux 进行设置和管理时,需要有一定的 Linux 系统管理经验和 SELinux 相关知
识。因为错误的配置可能会导致系统不稳定或者无法启动,所以在操作前应仔细阅读相关文档并进行备
份。
安全基线规范检查
Linux 基线规范
Linux 基线规范是指为了保证 Linux 系统安全性和可靠性,制定的一系列最佳实践和标准化要求。Linux
基线规范通常包括以下几个方面:
- 安全加固:禁用不必要的服务、配置防火墙、强化密码策略等。
- 用户和权限管理:创建普通用户账号、限制 root 账号访问、使用 sudo 进行授权等。
- 日志管理:启用系统日志、日志文件备份和归档、监控日志信息等。
- 文件系统和目录结构规范:对重要数据进行加密、使用 ext4 文件系统、分区管理等。
- 网络安全:检查网络连接状态、限制入站和出站流量、使用 SELinux 或 AppArmor 等。
- 软件更新与安全漏洞修复:定期更新操作系统和软件补丁、及时处理已知漏洞等。
- 数据备份与恢复:定期备份和恢复系统数据和设置等
需要注意的是,不同的公司或组织可能会有不同的基线规范要求。在实践中,我们可以根据自己的需求
和安全风险评估情况,设计并实施相应的基线规范,并定期进行评估和调整。这样可以帮助我们规范化
Linux 系统的管理和维护,并提高系统的可靠性和安全性。
Windows 安全基线检查
Windows 安全基线检查是指通过对 Windows 操作系统进行安全配置和最佳实践检查,来评估系统的安
全性和完整性。Windows 安全基线包括以下几个方面:
- 用户和权限管理:创建普通用户账号、限制管理员账号访问、使用 UAC 进行授权等。
- 密码策略:设置强密码策略,并启用多因素身份验证。
- 网络安全:配置防火墙、禁用不必要的服务、加密敏感数据传输等。
- 软件更新与安全漏洞修复:定期更新操作系统和软件补丁、及时处理已知漏洞等。
- 日志管理:启用系统日志、监控日志信息、建立日志归档等。
- 文件和目录权限:配置文件系统和目录结构规范、限制文件和目录访问权限等。
- 数据备份与恢复:定期备份和恢复系统数据和设置等
为了进行 Windows 安全基线检查,可以使用 Microsoft Security Compliance Toolkit 工具,该工具包
含安全基线和最佳实践检查工具,并提供安全配置模板和分析报告。此外,还可以使用第三方商业化工
具,例如 SolarWinds、McAfee 等,来帮助进行 Windows 安全基线检查。
中间件基线规范(APACHE)
Apache 是一款常用的 Web 服务器软件,为了保障其安全可靠地运行,可以制定中间件基线规范。以下
是 Apache 中间件基线规范的一些重要措施:
- 版本号管理:定期检查并更新 Apache 版本,及时安装最新版本的补丁与安全更新。
- 配置文件规范:对 Apache 的配置文件进行规范化和审计,限制网站访问权限、禁止目录浏览等。
- 日志管理:启用 Apache 访问日志和错误日志,定期清理日志文件并做好备份、归档等工作。
- 安全加固:如禁用不必要的模块、关闭 TRACE 请求响应、限制 HTTP 方法等。
- SSL/TLS 加强:设置 TLS 选项、开启 HSTS、使用证书身份验证等。
- 防火墙和反向代理策略:通过防火墙等技术来过滤恶意流量,使用反向代理策略限制直接连接到
Web 服务器的 IP 地址。 - 应用安全:对 Web 应用程序进行安全审计,确保程序的漏洞被修复、未受到攻击等。
需要注意的是,以上这些措施只是 Apache 中间件基线规范的一部分,实际操作中还需要根据具体情况
进行评估和调整。同时,要保障 Apache 服务器的安全性和可靠性,还需要定期备份数据、优化性能等
工作
中间件常见漏洞
中间件是指应用程序和操作系统之间的软件组件,常见的中间件漏洞有以下几种:
- Web服务器漏洞:针对Web服务器(如Apache、Nginx)的攻击通常包括利用目录遍历、文件包
含、SQL注入等技术。 - 数据库漏洞:数据库(如MySQL、Oracle、SQL Server)的漏洞通常涉及未授权的访问、SQL注入
等方面。 - 应用服务器漏洞:应用服务器(如Tomcat、JBoss、WebLogic)的漏洞通常会导致远程执行代
码、拒绝服务等问题。 - 消息队列漏洞:消息队列(如RabbitMQ、Kafka)的漏洞通常涉及未授权访问、拒绝服务等问题。
- 缓存服务器漏洞:缓存服务器(如Redis、Memcached)的漏洞通常包括未授权访问、命令注入等
问题。 - 中间件配置问题:中间件的错误配置也可能导致安全问题,比如弱密码、不安全的协议配置等。
需要注意的是,中间件漏洞是日益增多的,因此建议及时更新和修补中间件的安全漏洞。
常见中间件的配置文件路径
不同的中间件软件有不同的配置文件路径。以下是几种常见中间件软件的配置文件路径:
- Apache Web 服务器:httpd.conf 文件通常位于 /etc/httpd/ 或者 /usr/local/apache2/conf/ 目录
下。 - Nginx Web 服务器:nginx.conf 文件通常位于 /etc/nginx/ 或者 /usr/local/nginx/conf/ 目录下。
- MySQL 数据库:my.cnf 文件通常位于 /etc/mysql/ 或者 /usr/local/mysql/etc/ 目录下。
- PostgreSQL 数据库:postgresql.conf 和 pg_hba.conf 文件通常位于 /var/lib/pgsql/data/ 或者
/etc/postgresql//main/ 目录下。 - Oracle 数据库:initSID.ora 和 listener.ora 文件通常位于 $ORACLE_HOME/dbs/ 目录下。
- Tomcat 应用服务器:server.xml、context.xml 和 web.xml 文件通常位于 /conf/ 目录下。
- JBoss 应用服务器:standalone.xml 和 standalone-full.xml 文件通常位于 /standalone/configuration/ 目录下。
需要注意的是,这些路径可能会根据不同的操作系统而有所不同,并且也会随着中间件版本的更新而变
化。因此,在进行中间件配置时,建议查询官方文档或参考相关文献以获取最新的配置文件路径信息。
DDOS CC等攻击应急思路以及如何防范
DDoS(分布式拒绝服务攻击)和 CC(HTTP)攻击是目前比较普遍的网络攻击方式之一。以下是应急响
应思路以及如何防范这些攻击的建议:
- 应急响应思路
在受到DDoS和CC攻击时,应采取以下措施来降低攻击对系统的影响:
快速检测并确认攻击类型和攻击源;
提高带宽和资源利用率,以提供更强的承载能力;
实施流量清洗、流量限制和IP封堵等措施,清除恶意攻击流量;
配合 ISP 进行攻击源 IP 的追踪和协助;
在攻击持续期间,保持实时监控和跟进,随时更新应急响应策略。 - 如何防范
为了预防DDoS和CC攻击,可以采取以下方法:
增加网络带宽,并提高硬件设备的承载能力,以抵御较小规模的攻击;
实现DDoS和CC攻击的检测和防御机制,如基于流量和行为的检测技术和防御技术;
确保服务器和网站软件及时更新,以弥补已知漏洞;
实施流量清洗、流量限制和IP封堵等措施;
配置合理的防火墙规则和入侵检测系统(IDS)等安全设备;
加强网络安全教育,提高用户密码安全性,并定期对敏感数据进行备份和加密。
总之,在防范DDoS和CC攻击方面,需要综合考虑多种因素,包括增加带宽、提高硬件承载能力、实现
攻击检测和防御机制、确保服务器和网站软件及时更新、加强网络安全教育等。同时,应该建立完善的
应急响应机制和紧急处理预案,以做好应急响应准备和快速响应。
挖矿病毒判断以及处理方式
挖矿病毒是指利用受感染的计算机进行加密货币挖矿的恶意软件。以下是判断和处理挖矿病毒的一些方
法:
- 判断挖矿病毒
通过以下迹象可以判断计算机是否被感染了挖矿病毒:
计算机运行速度变慢,CPU占用率高;
电脑风扇声音变大,温度升高;
安全软件报告未知病毒或恶意软件;
系统出现闪退或死机等异常情况。 - 处理方式
如果怀疑计算机已经被感染了挖矿病毒,可以采取以下措施:
及时更新杀毒软件,并开启实时保护模式;
扫描整个系统,清除所有恶意文件和注册表项;
禁止不明程序自启动,及时关闭被感染的进程;
在安装软件时仔细阅读许可协议,禁止安装未知来源的软件;
加强账户权限管理,限制非管理员用户对系统的操作权限;
及时备份重要文件,以便在恶意软件攻击后恢复数据。
总之,在处理挖矿病毒方面,需要及时发现和清除感染,并加强系统的安全防护措施,如升级杀毒软
件、限制非管理员用户权限、备份重要文件等。同时,也需要加强网络安全教育,提高用户对于计算机
安全的意识和防范能力
威胁情报库
- 微步在线(ThreatBook):微步在线是国内领先的网络安全威胁情报服务提供商,其威胁情报库
包括恶意软件、攻击源IP、域名等方面的信息。 - 国家互联网应急中心(CNCERT):CNCERT 是中国政府统一组织和协调全国互联网安全工作的部
门,其威胁情报库包括漏洞、恶意代码、攻击事件等方面的信息。 - 安恒威胁情报中心(ATIS): ATIS 是安恒信息安全研究院旗下的威胁情报中心,其威胁情报库涵
盖了APT攻击、Web攻击、恶意邮件、移动恶意软件等方面的信息。 - 漏洞盒子(KnownSec):漏洞盒子是一家致力于网络安全防御和攻防技术研究的公司,其威胁情
报库包括漏洞、恶意代码等方面的信息。 - 360威胁情报中心(360 TI Center):360 威胁情报中心聚焦于威胁情报、安全事件响应和恶意代
码研究等领域,其威胁情报库包括APT攻击、恶意URL等方面的信息。
需要注意的是,以上威胁情报库只是其中一部分,实际应用中还有很多其他的威胁情报库。在使用威胁
情报库时,需要根据具体需求进行评估和选择,并确保数据来源可靠、及时和准确。
怎么发现有没有被攻击?
发现自己是否被攻击是网络安全管理中非常重要的一环。以下是几种常见的发现被攻击的方法:
- 安全日志监控:对系统和应用程序的安全日志进行监控,可以及时发现异常活动和安全事件。例
如,登录失败、异常访问、恶意软件入侵等。 - 网络流量分析:通过对网络流量进行监控和分析,可以发现可能存在的攻击行为。例如,大量来自
某个 IP 地址或特定端口的流量、恶意脚本和代码注入等。 - 主机基线监测:通过对应用程序、操作系统和数据文件等资源进行基线监测,可以及时发现可能存
在的异常变化和不正常的活动。 - 脆弱性扫描:通过使用脆弱性扫描工具,可以发现系统中可能存在的漏洞,并提供修补建议。
- 威胁情报监测:通过使用威胁情报库和服务,可以了解到当前存在的威胁活动,及时采取防御措
施。 - 安全演练:通过进行安全演练,可以模拟真实的攻击场景,评估自身的安全状态,及时发现和修复
存在的问题。
需要注意的是,以上方法只是其中一部分,实际应用中还有很多其他的发现被攻击的方法。在进行网络
安全管理时,需要综合使用多种方法,并不断更新和完善自身的防御措施,以提高安全水平和减少被攻
击的风险
同源策略是什么
同源策略(Same Origin Policy)是一种Web安全策略,它是浏览器中的一项重要特性,用于限制从一
个源加载的文档或脚本如何与来自另一个源的资源进行交互。同源指的是三个关键元素:协议、主机和
端口号,只有这三者完全相同的两个URL才被认为是同源的。
同源策略可以防止恶意网站访问其他网站的敏感数据,例如Cookie、LocalStorage和请求响应等信息,
从而保护用户的隐私和安全。
例如,假设您正在访问一个银行的网站,该银行使用Cookie来存储您的登录凭据。如果攻击者能够在他
们的网站上注入一些JavaScript代码并通过某种方式将其转移到您正在访问的银行网站上,那么该攻击者
就可以访问您的Cookie,以便窃取您的个人信息。然而,由于同源策略的存在,攻击者无法访问您正在
访问的银行网站的Cookie,因为它们不属于同一个源。
尽管同源策略对Web安全至关重要,但在某些情况下,它可能会成为开发过程中的挑战。为了解决这些
问题,Web开发人员可以使用一些技术和标记,如跨域资源共享(CORS)和JSONP等来解决这些限
制。
sql注入(面了几家问了几家)
sql注入原理:
用户的可控的输入嵌入到sql语句中并被服务端执行,导致应用程序的信息泄露以及攻击者写入webshell
sql注入分类:
请求头的注入、联合查询注入、报错注入、布尔盲注、堆叠注入、时间盲注 、宽字节注入
讲一讲报错注入、时间盲注主要用到的函数
报错:updataxml、extractvalue 时间:sleep
sql注入防御:
使用预编译;
黑名单:对特殊的字符例如括号斜杠进行转义过滤删除;
白名单:对用户的输入进行正则表达式匹配限制;
规范编码以及字符集,否者攻击者可以通过编码绕过检查;
参数化查询:原理是将用户输入的查询参数作为参数传,而不直接将它们拼接到SQL语而言,将SQL语句和参数分离开来,并通过占位符(一般使用问号“?”)将它们关联起来,这样用户的输入只会被当作参数
宽字节注入原理:
由于PHP utf-8编码 数据库GBK编码,PHP发送请求到mysql时经过一次gbk编码,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字,然后数据库处理的时候是根据GBK去处理的,然后单引号就逃逸了出来
sql注入如何写入webshell:
?id=1’ union select 1,“<?php @eval($_POST['shell']);?>”,3 into outfile ‘C:\phpstudy\WWW\sqli\shell.php’#
?id=1’ union select 1,“<?php @eval($_POST['shell']);?>”,3 into dumpfile ‘C:\phpstudy\WWW\sqli\shell.php’#
into outfile ‘C:/wamp64/www/shell.php’ lines terminated by ‘<?php phpinfo()?>’;
into outfile ‘C:/wamp64/www/shell.php’ lines starting by ‘<?php phpinfo()?>’;
讲一讲sqlmap中的risk和level的区别:
risk风险等级 越大则测试的语句越多 强调数量
level探测的深度 越大则测试的范围越广 例如cookie host 等等都会测试 强调范围
sql注入遇到waf,怎么绕过
- 使用编码:攻击者可以对注入负载进行编码,例如使用十六进制或Unicode编码等方式,以绕过WAF对字符集的检查。攻击者还可以使用字符串分割、大小写转换等技术手段,以使WAF无法识别恶意代码。
- 使用注入器:SQL注入攻击工具如Sqlmap、Havij、SQLi-hunter等,可以自动检测和利用各种SQL注入漏洞,并通过绕过WAF来获取敏感数据。
- 盲注:在盲注攻击中,攻击者不直接获取查询结果,而是根据应用程序的响应来判断是否存在漏洞。攻击者可以使用时间延迟或错误信息来判断是否存在漏洞,并以此来推断数据库中的数据。
- 变形注入:变形注入攻击是一种多次执行的注入攻击,使用变体的注入负载,使注入负载不同于以前的攻击负载,从而逃避WAF的检测
xss是什么
XSS(Cross-site scripting)是一种攻击技术,也是Web应用程序中最常见的漏洞之一。它利用了应用程
序没有正确过滤或转义用户输入的数据,导致恶意用户可以向网站上注入恶意脚本代码,使其他用户在
浏览网站时受到攻击。
XSS攻击通常发生在包含表单、搜索框和评论框等用户输入区域的Web页面上。攻击者会向这些输入框
中插入包含恶意脚本代码的数据,以便当其他用户在访问该页面时执行这些恶意代码,从而实现攻击目
的。
例如,如果一个在线购物网站没有对用户在评论框中输入的HTML代码进行过滤,那么攻击者可以通过
在评论框中注入恶意JavaScript代码来窃取其他用户的登录凭证或个人信息。
因此,要防止XSS攻击,开发人员需要对所有用户输入进行严格的验证和处理,并对任何输入的数据进
行必要的过滤和转义,以确保所有输入的数据都不能被解释为恶意脚本。此外,还可以使用安全的编程
实践和安全框架来保护网站免受XSS攻击的危害。
xss攻击如何防御
为了防止XSS攻击,开发人员可以采用以下措施:
- 输入过滤和验证:对于用户输入的数据进行严格的过滤和验证,只允许输入必要的字符和格式,并
拒绝不受支持的HTML、CSS或JavaScript代码。 - 输出编码和转义:在将任何用户输入输出到Web页面上之前,请确保对其进行编码和转义,以确保
它们不会被解释为恶意脚本。例如,在输出HTML时,可以使用HTML实体编码将特殊字符(如<、
、&)转换为等效的字符实体。这样可以避免浏览器将它们解释为HTML标签或JavaScript代码
- 使用安全框架和库:许多Web应用程序框架和安全库提供了内置的XSS防御机制,例如跨站点请求
伪造(CSRF)令牌和自动输出编码。使用这些框架和库可以大大减少XSS攻击的风险。 - 学习安全编程实践:开发人员应该学习并遵循安全编程实践,例如安全的HTTP头设置、HTTPS使
用、安全的Cookie管理等。 - 定期漏洞扫描和修复:定期运行漏洞扫描工具来检测网站中的潜在XSS漏洞,并及时修复这些漏
洞,以避免遭受攻击。 - 加强用户教育:通过向用户提供安全意识培训和提示,可以帮助他们了解如何保护自己不受XSS攻
击的危害,例如不点击垃圾邮件中的链接,不下载未经验证的文件等
SSRF
讲一讲SSRF原理
服务端提供了能够从其他服务器应用获取数据的功能,我们服务端请求的目标都是与该请求服务器处于同一内网的资源服务,但是如果没有对这个请求的目标地址、文件等做充足的过滤和限制,攻击者可通过篡改这个请求的目标地址来进行伪造请求,进行未授权访问。
讲一讲SSRF常用的协议:
file 用于读取文件
dict 用于探测一些端口 以及数据库信息
LDAP 目录扫描
TFTP 它允许客户端从远程主机获取文件或将文件上传至远程主机 上传shell
sftp、gopher
cs流量特征(50050)
被控端会发送心跳包;
在执行下发指令时,会看到木马攻击者访问c2服务器上面的submit.php界面,并且在访问界面会带有一个id参数;
cs4.0版本的ua头时固定的,4.5及以上版本随机的,能避免被蓝队检测到;
url路径;
解密算法checksum8(92L,93L);
Java 内存马
Java内存马,也称为Java远程代码执行漏洞,是一种利用Java反序列化漏洞的攻击方式。攻击者可以通
过构造恶意的序列化对象,将其发送给目标服务器并触发反序列化操作,从而在目标服务器上执行任意
代码。以下是几种排查Java内存马的方法:
- 追踪日志文件:如果系统已经被攻击,应该首先检查系统的日志文件,查找异常的请求或响应内
容,并结合其他的信息确定是否存在Java内存马。 - 检查网络流量:可以使用Wireshark等网络抓包工具来监视服务器的网络流量,并分析报文中的数
据内容,查找是否存在异常的Java序列化数据。 - 检查反序列化漏洞:Java内存马利用了Java反序列化漏洞,因此我们可以使用一些反序列化漏洞扫
描工具(如 ysoserial)来检测系统是否受到这类漏洞的影响,并及时修补漏洞。 - 检查系统进程:Java内存马通常会在目标服务器上启动一个新的进程来执行恶意代码,因此可以通
过检查系统进程列表,查找是否存在不明确的、异常的进程。 - 安装安全软件:为了更好地保障系统的安全性,可以安装一些专业的安全软件,如杀毒软件、入侵
检测系统(IDS)等,并定期进行扫描和审计。
需要注意的是,在排查Java内存马时,应该综合使用多种方法来确定是否存在此类攻击。同时也要及时
修补系统漏洞,加强访问控制,并采取其他措施提高系统的安全性。
java反序列化
反序列化漏洞是指攻击者利用程序中未经充分验证的输入,向应用程序提供一个恶意构造的序列化对
象,执行任意代码或获取敏感信息的漏洞。这种漏洞通常出现在Java和.NET等语言的应用程序中。
反序列化漏洞的本质是:当程序从存储介质读取对象时,如果没有对传入的数据进行充分验证,那么攻
击者就可以通过精心构造的序列化对象,欺骗应用程序执行恶意代码。攻击者可能会在序列化对象中添
加可执行代码或操作指令,以执行危害系统安全性和完整性的操作,例如修改或删除数据、窃取敏感信
息或执行远程代码等。
为了防止反序列化漏洞,开发人员应该采取以下预防措施:
- 避免直接将未经过验证的用户输入数据反序列化为对象。
- 对所有用户输入进行严格的验证和过滤,包括长度、格式和内容等方面。
- 限制反序列化器的使用,只反序列化可信来源的数据。
- 及时更新反序列化库,以确保已修复已知漏洞。
- 在系统上禁用危险的反序列化特性,例如使用Java标准库中的ObjectInputStream类。
总之,反序列化漏洞是一种普遍存在的安全漏洞,需要开发人员特别注意,从设计、编码和测试等各个
方面加强应用程序的安全性和完整性
讲一讲java反序列化的原理:
Java反序列化漏洞是指恶意用户通过发送精心构造的序列化数据并触发其反序列化过程,从而执行未经授权的代码或操作。攻击者可以利用此漏洞来执行远程命令、绕过应用程序的安全检查、窃取敏感信息等攻击。如果Java应用对用户输入(即不可信数据)做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的类或对象,这个类或对象在产生过程中就有可能带来任意代码执行。
讲一讲weblogic
weblogic原理:比如CVE-2021-2109,远程代码执行漏洞,攻击者通过构造恶意的HTTP请求,触发Weblogic Server的漏洞,来实现远程代码执行。
weblogic反序列化原理:Weblogic控制台7001端口默认会开启T3协议服务,T3协议触发的Weblogic Server WLS Core Conponents中 存在反序列化漏洞,攻击者可以构发送来获取目标服务器权限。
讲一讲shiro反序列化原理
Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项remember me。用户在登录时如果勾选了remember me选项,那么在下一次登录时浏览器会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。
讲一讲fastjson反序列化原理:
fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。
讲一讲log4j RCE
Log4j 是Apache 的一个开源项目,是一款基于Java 的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到${
后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞。
文件上传
文件上传的原理
当用户上传文件时,通常需要通过 HTTP 或 HTTPS 协议将文件传输到 Web 服务器。文件上传的原理可
以简单地描述为:
- 客户端向服务器发送一个包含文件数据的 POST 请求。
- 服务器接收请求并解析其中的文件数据。
- 服务器将文件保存在指定的目录下,并返回处理结果给客户端。
具体来说,文件上传流程一般如下: - 用户在 Web 页面上选择要上传的文件,并提交表单。
- 浏览器将表单中的数据进行编码并作为 POST 请求发送给 Web 服务器。
- Web 服务器接收到请求后,会解析请求参数,获取上传的文件数据。
- 服务器对上传的文件进行校验和过滤,例如检查文件格式、大小、类型等,防止上传恶意文件。
- 如果上传的文件符合要求,则将文件存储在指定的位置,如果不符合要求,则拒绝上传并返回错误
信息。 - 服务器返回上传结果给客户端,告知用户文件是否上传成功。
需要注意的是,文件上传涉及到的安全问题较多,例如上传的文件可能会包含病毒、木马等恶意程序,
攻击者可能会利用上传漏洞上传恶意文件,从而导致服务器被控制。因此,在进行文件上传功能开发
时,需要仔细考虑安全问题,并采取相应的防御措施,例如限制上传文件大小、过滤不安全的文件类型
等。
文件上传攻击特征
文件上传攻击是指攻击者通过网站上的文件上传功能,上传恶意文件来执行攻击。以下是一些文件上传
攻击的特征:
- 文件类型绕过:攻击者可能会尝试上传不受支持的文件类型,或者将文件类型伪装成其他类型,以
绕过文件类型检查。 - 文件名欺骗:攻击者可能会使用诱人的文件名称来欺骗用户下载或打开恶意文件。
- 文件内容:上传的文件可能包含恶意代码、木马、病毒等恶意程序,这些程序可被用于攻击和控制
目标系统。 - 大小限制绕过:攻击者可能会尝试绕过文件大小的限制,上传超过规定大小的文件。
- 目录遍历:攻击者可能会通过在文件名中插入…/等字符来遍历目标服务器上的目录,获取敏感信息
或执行攻击。
如果您担心自己的网站可能会受到文件上传攻击,请确保实施足够的安全措施,如限制上传文件类型、
大小和数量、对上传的文件进行检查、将上传的文件保存在安全的位置,并为所有上传的文件生成一个
唯一的文件名。
文件上传加固方法
以下是保护您的网站免受文件上传攻击的一些方法:
- 文件类型和大小限制:在服务器端对上传的文件进行检查,确保上传的文件类型、大小和数量符合
预期。可以使用白名单方式进行限制,只允许上传特定类型的文件。 - 检查文件内容:在服务器端对上传的文件进行检查,确保它们不包含恶意代码或病毒等危险内容。
可以使用杀毒软件或安全扫描工具来帮助检查上传的文件。 - 重命名文件:将上传的文件保存在一个新的随机生成的文件名下,而不是使用用户提供的文件名。
这样可以避免攻击者通过伪造文件名来欺骗用户。 - 存储位置:将上传的文件保存在与网站主目录分离的位置上,以避免攻击者上传Webshell等恶意脚
本,并能够防止攻击者直接访问上传的文件。 - 使用安全上传类库:使用安全的上传类库或框架,如Apache Commons FileUpload、
SecureFileUploader等。 - HTTPS加密:在传输过程中使用HTTPS协议加密,以避免数据在传输过程中被窃听或篡改。
- 日志审计:记录所有的文件上传操作并定期审计日志,以便发现异常上传行为,及时采取措施。
总之,防止文件上传攻击需要综合考虑多种因素,包括文件类型、大小、内容、存储位置、传输方式
等,同时定期进行安全审计,并且对于应用程序代码的编写需要充分考虑安全因素
文件包含漏洞
- 文件包含方式:Web应用程序通常会使用动态脚本语言(如PHP、ASP等)来动态地生成网页内
容。其中,文件包含函数(如include、require等)允许将一个文件的内容嵌入到另一个文件中,
以实现模块化和重用性。 - 用户输入信任:当Web应用程序采用用户输入作为文件路径参数时,如果未对这些参数进行足够的
过滤和验证,就可能导致恶意数据或代码被动态地加载到页面中。 - 恶意代码注入:攻击者可以通过向文件路径参数中注入恶意代码或文件名来触发文件包含漏洞,并
在服务器上执行恶意操作。例如,攻击者可以上传一个包含恶意代码的文件,并将其作为文件路径
参数传递给目标服务器,从而执行恶意操作。
为了防止文件包含漏洞,需要采取一些安全措施,如下所示:
- 过滤和验证用户输入:在接收用户输入作为文件路径参数时,必须对其进行过滤和验证,确保其中
不包含任何恶意数据或代码。 - 使用绝对路径而非相对路径:在使用文件包含函数时,应该使用绝对路径而非相对路径,以避免攻
击者通过注入如“…/”等文件路径跳出当前目录并访问其他文件。 - 限制访问范围:为了防止攻击者利用文件包含漏洞攻击服务器上的敏感文件,可以通过配置文件访
问权限和文件夹安全策略等方式来限制访问范围。 - 升级和更新软件:Web应用程序中经常会存在许多漏洞和安全风险,因此需要及时升级和更新相关
软件和组件,以确保最新的补丁和安全措施已经被采纳
命令执行漏洞
命令执行漏洞的原理:在操作系统中,“&、|、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令(如添加一个名为admin 密码为admin的用户 net user admin admin/add net localgroup administrators admin /add 加入管理员组(赋予管理员权限))
常用函数
- System:system函数可以用来执行一个外部的应用程序并将相应的执行结果输出,函数原型如下:
string system(string command, int&return_var)
其中,command是要执行的命令,return_var存放执行命令的执行后的状态值。 - Exec:exec函数可以用来执行一个外部的应用程序
string exec (string command, array&output, int &return_var)
其中,command是要执行的命令,output是获得执行命令输出的每一行字符串,return_var存放执行命令后的状态值。
3.Passthru:passthru函数可以用来执行一个UNIX系统命令并显示原始的输出,当UNIX系统命令的输出是二进制的数据,并且需要直接返回值给浏览器时,需要使用passthru函数来替代system与exec函数。Passthru函数原型如下:
void passthru (string command, int&return_var)
其中,command是要执行的命令,return_var存放执行命令后的状态值。 - Shell_exec:执行shell命令并返回输出的字符串,函数原型如下:
string shell_exec (string command)
其中,command是要执行的命令。
对于命令执行漏洞,以下是一些可能存在的相关日志:
- 访问日志:Web 服务器或应用服务器上的访问日志中可能包含恶意代码执行的信息,例如请求
URL、HTTP 请求方法、HTTP 状态码等。 - 异常日志:应用程序中的异常日志可以记录可能存在的恶意代码执行异常信息,例如异常类型、异
常堆栈等。 - 安全审计日志:如果使用了安全审计工具,可以记录恶意代码执行的详细信息,例如恶意代码的来
源、执行时间、执行结果等
代码执行漏洞
代码执行漏洞: 应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。 很难通过黑盒查找漏洞,大部分都是根据源代码判断代码执行漏洞。
代码执行相关函数: PHP: eval、assert、preg_replace()、+/e模式(PHP版本<5.5.0)
常见的逻辑漏洞
逻辑漏洞指的是应用程序中的编码错误或设计缺陷,使攻击者可以利用不符合预期的逻辑来绕过安全控
制并实现攻击目标。以下是几种常见的逻辑漏洞:
- 注册送礼:在这种攻击中,攻击者通过欺骗用户注册帐户并提供个人信息的方式来获取某种奖励或
礼物,从而收集大量有价值的用户数据。攻击者利用了开发人员未正确处理奖励机制的事实,并通
过暴力破解、自动化脚本等方式创建大量虚假账户。 - 提交订单时修改价格:在这种漏洞中,攻击者可以通过提交订单时修改商品价格来获得不当利益。
攻击者可能会修改页面上显示的价格、数量或其他参数,以实现价格欺诈。 - 超额退款:攻击者通过修改应用程序中的退款机制或直接与客户服务联系,以获取超出实际退款金
额的退款,从而实现盈利。 - 非法访问:在这种漏洞中,攻击者可以通过绕过身份验证或访问控制机制,以获取未经授权的访问
权限。攻击者可能会使用一些技术手段,如SQL注入、目录遍历、文件包含等来绕过访问控制机
制。 - 不当的会话管理:攻击者可以通过利用应用程序中的会话机制漏洞,以获取受害者的会话令牌或密
码。攻击者可能会使用会话劫持、会话固定攻击等技术手段,从而窃取用户的身份验证信息。
以上是常见的几种逻辑漏洞,这些漏洞需要开发人员在设计和编写代码时注意到,并采取相应的防范措
施,例如使用安全的会话管理、访问控制、输入验证等措施,从而保护应用程序的安全性。
越权漏洞
越权漏洞是指攻击者可以未经授权地访问或修改受限资源的漏洞。一些常见的越权漏洞包括:
- 管理员账户欺骗:攻击者通过伪装成管理员或其他特权用户,以获取访问受限资源的权限。
- 直接对象引用:攻击者可以直接访问应用程序中的受保护对象或文件,而不需要通过身份验证或授
权过程。 - 会话劫持:攻击者可以窃取正在进行的会话ID,以获得访问受限资源的权限。
- 暴力破解:攻击者可以使用暴力破解技术,如穷举法或字典攻击等,来尝试猜测受限资源的密码或
凭证。
要判断是否存在越权漏洞,可以考虑以下方法:
- 分析应用程序的访问控制机制,查看哪些资源受到了访问限制。
- 测试应用程序的身份验证和授权机制,以了解是否存在身份验证缺陷、密码弱点等问题。
- 使用模拟攻击工具或手动测试来模拟攻击者的行为,并尝试访问受限资源,以确定是否存在越权漏
洞。 - 针对常见的越权漏洞类型,如管理员账户欺骗、会话劫持等,采取相应的安全措施和加固策略。
总之,要发现和修复越权漏洞,需要审查应用程序的访问控制机制、身份验证和授权流程,并通过模拟
攻击和手动测试来判断是否存在越权漏洞。定期进行漏洞扫描和安全评估也是必要的,以确保应用程序
始终保持安全状态
redis漏洞原理
Redis是一个流行的开源内存数据存储系统,被广泛用于Web应用程序中的缓存、队列和消息传递等方
面。然而,Redis也存在一些安全漏洞,其中最著名的是Ridic反序列化漏洞。
Ridic反序列化漏洞的根本原因是,Redis使用了Java标准库中的ObjectInputStream类来处理数据的序列
化和反序列化。攻击者可以通过构造恶意请求,并将其发送到目标Redis服务器上,以触发
ObjectInputStream在处理该数据时执行恶意代码的情况。
攻击者可能会利用这个漏洞来绕过Redis的身份验证、篡改或删除存储在Redis数据库中的数据,甚至在
Redis服务器上执行任意代码。例如,攻击者可以使用此漏洞来:
- 提升权限:攻击者可以通过远程执行任意代码进一步攻击目标系统,例如窃取敏感信息、破坏系统
完整性、创建后门等。 - 篡改数据:攻击者可以修改Redis数据库中的数据,例如覆盖现有数据、添加新的键值对等。
- 删除数据:攻击者可以利用此漏洞删除Redis数据库中的数据,包括重要的配置文件、认证令牌
等。
为了缓解Ridic反序列化漏洞的风险,开发人员可以采取以下预防措施: - 不要直接将未经过验证的用户输入数据存储在Redis数据库中。
- 更新Redis版本以确保漏洞已修复。
- 配置Redis服务器的安全设置,例如限制网络访问和使用密码进行身份验证等。
- 启用日志记录并监测Redis服务器上的异常活动。
- 将Redis服务器部署在安全环境中,并定期对其进行安全审计。