网络安全--wazuh环境配置及漏洞复现

目录

一、wazuh配置

 二、wazuh案例复现


一、wazuh配置

1.1进入官网下载OVA启动软件

Virtual Machine (OVA) - Installation alternatives (wazuh.com)

网络安全--wazuh环境配置及漏洞复现_第1张图片

 1.2点击启动部署,傻瓜式操作

1.3通过账号:wazuh-user,密码:wazuh进入wazuh

网络安全--wazuh环境配置及漏洞复现_第2张图片

1.4将桥接模式更改为仅nat模式网络安全--wazuh环境配置及漏洞复现_第3张图片 1.5更改配置之后输入重新启动命令 service network restart

查看自身ip

ip a

1.6配置已好,本地开启小皮Apache直接访问

网络安全--wazuh环境配置及漏洞复现_第4张图片

1.7有时会因为网络问题出现如下问题,我们采用重启wazuh即可

网络安全--wazuh环境配置及漏洞复现_第5张图片

wazuh重启:

systemctl restart wazuh-manager

网络安全--wazuh环境配置及漏洞复现_第6张图片

 二、wazuh案例复现

2.1wazuh初体验

当我们使用本地的cmd通过ssh一直连接wazuh的时候便会出现十级报错,此次在后台可以明显的看到有爆破的提示扫描,通过分析其具体的数据包以及对应的规则理解到wuzuh在外来访问的时候,会触发到解码器,其作用是用来抓取关键信息,其中核心便是正则表达式进行正则匹配,当数据来了之后,wazuh程序会分析我们的日志,把这些日志信息发到相对应的解码器去,通过解码器去进行解码,解码完后,再发送到相应的规则,然后把解码完的数据通过规则,再次进行匹配,最终展示到仪表盘的Modules里的Security events里

复现例图:

网络安全--wazuh环境配置及漏洞复现_第7张图片

网络安全--wazuh环境配置及漏洞复现_第8张图片
 

网络安全--wazuh环境配置及漏洞复现_第9张图片

2.2我们通过一道文件上传题举例其背后拦截的原理

2.2.1题目: 

网络安全--wazuh环境配置及漏洞复现_第10张图片

2.2.2第一步:来到nginx目录下/var/www/html创建index.php并写入案例

网络安全--wazuh环境配置及漏洞复现_第11张图片

 案例:

'.$msg." Look here~ ".$img_path."
"; }

2.2.3这是咱们的前端页面

网络安全--wazuh环境配置及漏洞复现_第12张图片

 




    
    
    Document


    
嘿伙计,传个火,点支烟,快活人生?!

 2.2.4执行

网络安全--wazuh环境配置及漏洞复现_第13张图片

网络安全--wazuh环境配置及漏洞复现_第14张图片 

 2.4.5分析

网络安全--wazuh环境配置及漏洞复现_第15张图片其中原因也就在这个循环判断和检测身上,而检测到底是检测什么,咱们继续往下看 

2.4.6额外补充(限制原因在此)

2.4.6.1  eval函数中的参数是字符

2.4.6.2  assert函数中的参数为表达式(不能在其中执行字符),非要用:好,上编码选择base64(原理:多加了一个eval函数)

2.4.6.3   异或取反绕过,百分号,变相取等,字符串拼接

而我们可以利用以上所说的为我们自身建造php后门进阶到shell反弹获取权限

抛出例题:

异或:

①因为代码中对字符"A"和字符"`"进行了异或操作。在PHP中,两个变量进行异或时,先会将字符串转换成ASCII值,再将ASCII值转换成二进制再进行异或,异或完,又将结果从二进制转换成了ASCII值,再将ASCII值转换成字符串

网络安全--wazuh环境配置及漏洞复现_第16张图片

 ②抛出真正的异或来分析

网络安全--wazuh环境配置及漏洞复现_第17张图片

$_++意思为下划线自增, $__="?"是跟我们①所说的一样异或运算,得到的结果进行赋值,知道这两个小东西相等那异或出B此进程也就结束,输出如上所示

其余的进阶都与这个小东西同理,换了大于小于号,其实换汤不换药,本质上都是变相取等让命令输出

异或失效:

那么当异或和取反也无法解决的代码升级问题呢:(下划线和$符禁止,自增异或取反失效)

代码如下:

网络安全--wazuh环境配置及漏洞复现_第18张图片

50){ 
       die("Too Long."); 
  } 
   if(preg_match("/[A-Za-z0-9_]+/",$code)){ 
       die("Not Allowed."); 
  } 
   @eval($code); 
}else{ 
   highlight_file(__FILE__); 
} 

本地输出示例: 

网络安全--wazuh环境配置及漏洞复现_第19张图片

 

在看代码之前我们先了解一个东西:PHP7前是不允许($a)();这样的方法来执行动态函数的,但PHP7中增加了对此的支持。所以,我们可以通过(‘phpinfo’)();来执行函数;第一个括号可以是任意PHP表达式

举个栗子:


输出结果:

网络安全--wazuh环境配置及漏洞复现_第20张图片

利用php的特性

网络安全--wazuh环境配置及漏洞复现_第21张图片 

根据这个小案例总结上面咱们提出例题的问题:

如何绕过?只要PHP上传过程中,自然会生成一个临时文件,这个临时文件在/tmp/目录一下,名字大概如(PHP(随机字符)),那么我在访问文件的时候,我就可以使用文件上传(咱们可以上传,但是主机不接收,但是临时文件还是会生成)

 而文件如何执行成为了当下的一个问题:在linux下我们执行文件可以用./但是要赋予文件相应权限,而还有一种方法可以执行,那便是(点  空格   /):

网络安全--wazuh环境配置及漏洞复现_第22张图片

新的问题出现了,如何去匹配文件呢,那不得不说linux下文件名支持用glob通配符代替

那么便就可以是/???/???????,却会出现错误,因为我们是全局匹配,这样/bin/目录下的文件好像也符合要求,那么就该有请我们的ASCII表了,我们可以利用前面额外补充提到的取反这个东西去进行取反匹配,结果呢,总不尽人意会出现一大坨一大坨,那就证明有些东西还是无法排除的掉,而glob有一个有趣的写法,那便是支持【0-9】来表示一个范围,还有所有的文件名都是小写,那么我们离答案也越来越近了,我们只需要找到一个大写字母的“glob”通配符,就能精准的找到我们所要执行的文件(. /???/???????[@-[ ]),看图二可知,这样的匹配确实是可以匹配到东西的(不看其他啥,最后一个字母是大写就已经跟我们确认过眼神了),那这样一来,我们的实现就有办法了,那么理论形成,实践开始,关注图三:

一大坨:

网络安全--wazuh环境配置及漏洞复现_第23张图片 

 图二:

 图三:我们模拟一个临时上传就会发现文件是在/tmp/目录下面的

 接下来我们通过抓包,细致研究:

网络安全--wazuh环境配置及漏洞复现_第24张图片

 首先code接受的参数是临时文件(code匹配的值还是要放回eval),一补两操作,一个接收pose一个接收code ,最终执行在eval,要注意的是匹配的时候空格是+(回忆sql注入)

网络安全--wazuh环境配置及漏洞复现_第25张图片

 pass:小补充(使用unbentu的一定要看)调成false,就不会生成临时文件影响咱们匹配了

 vim /etc/systemd/system/multi-user.target.wants/apache2.service

网络安全--wazuh环境配置及漏洞复现_第26张图片

 最后一个问题:怎么样去执行才好

PHP: eval - Manual

网络安全--wazuh环境配置及漏洞复现_第27张图片

 重点:闭合标签,echo输出(=),注意到这两点加个访问标签即可(自此成功)

网络安全--wazuh环境配置及漏洞复现_第28张图片

 写入端口密码,蚁剑直接连接,随便写文件(wazuh出来了,全盘监控会扫描到,接下来我们继续看向wazuh),接下来重要的是提权问题

你可能感兴趣的:(网络安全,安全)