黑盒测试某安全设备监控报警的绕过
2019-08-23 14:24:13 Author: mp.weixin.qq.com(查看原文) 阅读量:100 收藏

最近在黑盒测某大型安全设备的绕过,具体是哪款就不说了,简单说下绕过过程吧。

首先介绍下某款安全设备的三大主要功能。

  1. 日志类,登陆日志,ssh爆破日志等

  2. history

  3. 反弹shell

  4. Webshell/后门报警(没啥好说的,绕特征值)

1.日志类,登陆/ssh爆破:/var/log/securt 

猜想:

首先大部分日志类要想清除必须要root权限,因为测试的安全设备会记录登陆记录,就猜测日志可能可能在wtmp,lastlog,utmp, securt等日志文件中,这里推荐一个老哥写的linux日志清除工具https://github.com/re4lity/logtamper,可以清除last,lastlog, utmp这三处的日志。

验证:

通过不断尝试发现,发现安全设备是通过/var/log/securt这个文件来实现报警的。只要写成执行文件,后台运行。就可以绕过了日志了。Shell脚本如下

命令:写成sh,后台执行

While:

do

sed  –i  ‘/ip /d’ /var/log/securt

done

结论:

因为安全设备因为可用性或者运行负荷不能完美实时地抓取日志,只要你改的比他读的快,安全设备便追不上你,各类日志都是同理,iptales,ssh,甚至一些中间件也是同理。

2. history日志:

猜想1

在测试的时候发现两个现象,菜刀执行命令不会被记录history,shell脚本执行也不会记录history

根据这两个猜想可以得出几个结论。

1.安全设备是通过读取history文件来记录命令的。

2.安全设备hookbashsh

验证1

实时删除日志文件,或者执行命令不记录histroy

unset  HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG;

export  HISTFILE=/dev/null;

export  HISTSIZE=0;

export  HISTFILESIZE=0;

结果失败了,安全设备依旧记录日志文件。验证第二个猜想,去其他同版本的机子把shbash文件上传到被监控服务器。经过测试发现依旧失败。

结论1

安全设备不以history文件为监控项,或者不仅仅以history文件为监控项。

安全设备可能并没有hook  bash/sh文件。

猜想2

既然history文件不是唯一监控项,又可能没有hook bash/sh文件,并且菜刀的命令并不记录,那安全设备可能通过什么方法监控呢?经过其他老哥们的提醒可能是tty

验证2:

ssh  root@localhost –T /bin/bash ,发现真的成功了,执行命令不记录。

结论2

no tty模式下执行命令是不记录的。

3.反弹shell报警:

猜想1

根据外连/history

验证1

反弹代理,并未报警, 绕过history,再反弹shell。依旧报警

结论1:

并非根据流量监测报警, history关系不大。

猜想2

根据bash,sh相关的进程树报警

验证2

用之前上传的/bin/bash 反弹shell。依然记录。

python,perl等方式反弹shell,发现部分不记录。

结论2

非调用/bin/bash的不记录

猜想3

不调用/bin/bash,是否只监控程序名字,不然负荷太大

验证3

把之前上传的bash重命名,执行命令,发现竟然不监控

结论3

根据进程名字带bash sh的进行监控报警。

结论反推:

既然根据进程名字

验证猜想:

反推是否更改bash名字是否可绕过history记录

结论:

bash改名不行,新上传的bash可以绕过history记录。

串联:菜刀上传清除日志sh文件,后台执行。菜刀上传bash文件并改名,ssh上去通过改名后的bash


文章来源: https://mp.weixin.qq.com/s/KWnFxiRrYWRCLiRu5cDRnw
如有侵权请联系:admin#unsafe.sh