【技术分享】另类WebShell监测机制–基于auditd


原文地址:
https://www.secpulse.com/archives/62113.html

由于最近几天在研究日志动态预警的东西。发现一些东西。分享给大家

auditd  是一个linux 自动的一个审计工具

大多数都安装了这个工具。如果没有安装的如下:

yum -y install audit auditd-libs

临时生效的规则如下:

  1. auditctl   -a always,exit -F uid=1000 -F arch=b64 -S execve -k rule01_exec_command

复制代码

uid 代表的用户的uid  我这边是www的uid为1000  arch=b64 代表运行64位的系统上面。  

一直生效的方法如下:

写入到文件中

  1. [[email protected] ~]# cat /etc/audit/rules.d/audit.rules
  2. # This file contains the auditctl rules that are loaded
  3. # whenever the audit daemon is started via the initscripts.
  4. # The rules are simply the parameters that would be passed
  5. # to auditctl.
  6. -D
  7. -a always,exit -F uid=1000 -F arch=b64 -S execve -k rule01_exec_command

复制代码

然后启动

  1. systemctl start auditd

复制代码

我写了一个php的测试页面

TIM截图20190601173513.png (28.14 KB, 下载次数: 37)

下载附件

2019-6-1 17:35 上传

  1. <?php
  2. $aa=$_GET[‘cmd’];
  3. #$aa=system($aa);
  4. #echo $aa;
  5. exec($aa,$array); //执行命令
  6. print_r($array);
  7. ?>

复制代码

记得这里是system 函数或者exec 的函数开放的情况下 才能捕捉到的

TIM截图20190601173624.png (66.97 KB, 下载次数: 41)

下载附件

2019-6-1 17:36 上传

执行命令。之后看看。日志

  1. [[email protected] ~]# tail -f  /var/log/audit/audit.log
  2. type=SYSCALL msg=audit(1559379714.530:125442): arch=c000003e syscall=59 success=yes exit=0 a0=7f6a60fc6f89 a1=7ffef90ce6c0 a2=2edad80 a3=7f6a65969a10 items=2 ppid=62554 pid=63829 auid=0 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=7845 comm=”sh” exe=”/usr/bin/bash” key=”rule01_exec_command”
  3. type=EXECVE msg=audit(1559379714.530:125442): argc=3 a0=”sh” a1=”-c” a2=”ls”
  4. type=CWD msg=audit(1559379714.530:125442):  cwd=”/www/wwwroot/192.168.20.137″
  5. type=PATH msg=audit(1559379714.530:125442): item=0 name=”/bin/sh” inode=134747654 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL
  6. type=PATH msg=audit(1559379714.530:125442): item=1 name=”/lib64/ld-linux-x86-64.so.2″ inode=201326730 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL
  7. type=SYSCALL msg=audit(1559379714.532:125443): arch=c000003e syscall=59 success=yes exit=0 a0=195f870 a1=195fb50 a2=195ea50 a3=7ffc99a1afa0 items=2 ppid=62554 pid=63829 auid=0 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=7845 comm=”ls” exe=”/usr/bin/ls” key=”rule01_exec_command”
  8. type=EXECVE msg=audit(1559379714.532:125443): argc=1 a0=”ls”
  9. type=CWD msg=audit(1559379714.532:125443):  cwd=”/www/wwwroot/192.168.20.137″
  10. type=PATH msg=audit(1559379714.532:125443): item=0 name=”/usr/bin/ls” inode=134372747 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL
  11. type=PATH msg=audit(1559379714.532:125443): item=1 name=”/lib64/ld-linux-x86-64.so.2″ inode=201326730 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL

复制代码

得到如下:找到

a0=”sh” a1=”-c” a2=”ls”

那么继续下一个 cat /etc/passwd

TIM截图20190601174226.png (70.22 KB, 下载次数: 38)

下载附件

2019-6-1 17:42 上传

  1. type=SYSCALL msg=audit(1559379832.323:125446): arch=c000003e syscall=59 success=yes exit=0 a0=7f6a60fc6f89 a1=7ffef90ce6c0 a2=2edb0e0 a3=7f6a65969a10 items=2 ppid=62923 pid=63943 auid=0 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=7845 comm=”sh” exe=”/usr/bin/bash” key=”rule01_exec_command”
  2. type=EXECVE msg=audit(1559379832.323:125446): argc=3 a0=”sh” a1=”-c” a2=636174202F6574632F706173737764
  3. type=CWD msg=audit(1559379832.323:125446):  cwd=”/www/wwwroot/192.168.20.137″
  4. type=PATH msg=audit(1559379832.323:125446): item=0 name=”/bin/sh” inode=134747654 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL
  5. type=PATH msg=audit(1559379832.323:125446): item=1 name=”/lib64/ld-linux-x86-64.so.2″ inode=201326730 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL
  6. type=SYSCALL msg=audit(1559379832.325:125447): arch=c000003e syscall=59 success=yes exit=0 a0=1a99970 a1=1a99c50 a2=1a98a50 a3=7fffe693b160 items=2 ppid=62923 pid=63943 auid=0 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=7845 comm=”cat” exe=”/usr/bin/cat” key=”rule01_exec_command”
  7. type=EXECVE msg=audit(1559379832.325:125447): argc=2 a0=”cat” a1=”/etc/passwd”
  8. type=CWD msg=audit(1559379832.325:125447):  cwd=”/www/wwwroot/192.168.20.137″
  9. type=PATH msg=audit(1559379832.325:125447): item=0 name=”/usr/bin/cat” inode=134365683 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL
  10. type=PATH msg=audit(1559379832.325:125447): item=1 name=”/lib64/ld-linux-x86-64.so.2″ inode=201326730 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMA

复制代码 得到

:a0=”sh” a1=”-c” a2=636174202F6574632F706173737764

此刻的a2 是一个十六进制的字符串

然后十六进制转为str

网站如下:
http://www.bejson.com/convert/ox2str/

TIM截图20190601174015.png (36.48 KB, 下载次数: 37)

下载附件

2019-6-1 17:40 上传


转自   https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=32617&extra=page%3D12%26filter%3Dtypeid%26typeid%3D10