文|腾讯蓝军 jumbo
前言
上篇内网渗透(附录1)主要讲的是Windows这块,最近知识星球“腾讯安平密友圈”提到了一个问题“为什么内网渗透偏向于Windows”,笔者也在下面进行了相关回复,除了传统的信息收集、弱口令以外,Linux内网渗透也有很多可玩性。
关注知识星球,获取独享技术干货
在服务器方面,Linux由于开源、稳定、灵活、社区支持等因素,市场占有率远比Windows大,并且广大业务逐步上云使用docker容器等原因,所以Linux渗透攻击也是蓝军极为常见和必备的技能。
本文将以蓝军攻击视角,介绍常用的Linux内网渗透的手法,包括提权、隧道、反弹shell、登录态、云安全和工具化,主要让大家了解内网渗透的手法和危害,以攻促防,希望能给安全建设带来帮助。
提权
Linux不像Windows有那么多的提权EXP,不会动不动就出现各种烂土豆系列,因此Linux提权常常成为一个难点。本章将介绍一些Linux上的提权手法。
2.1 利用内核漏洞进行提权
脏牛漏洞(CVE-2016-5195)是一个影响2007年-2016年长达9年发行的Linux系统的提权漏洞,恶意用户可以利用条件竞争获取ROOT权限。
这里以写文件的手段来演示下该漏洞利用方法。
本次漏洞环境如下:
根目录下存在test.txt:
普通用户只能查看而不能修改:
利用EXP成功写入文件到只读文件中:
附上该漏洞的POC集合地址:
https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs
笔者不太喜欢用此类EXP,包括Window上的溢出类漏洞,因为此类漏洞有可能会导致系统崩掉,对于客户环境、敏感系统还是慎用。
针对此类漏洞有些同学会有如下疑问:
Q:为什么我执行以后会卡死?
A:尝试使用反弹的方式,即交互式/半交互式的方法进行。
2.2 利用文件权限配置不当进行提权
当某个进程启动权限为ROOT,对应文件编辑权限为普通用户时,我们可以利用该问题点进行提权。
pspy(附录2)工具提供了普通用户权限即可监听进程信息,该工具原理很简单,循环遍历/proc下的值来获取进程参数信息:
如果我们设置hidepid,该工具就会失效,如:
mount -o remount,rw,hidepid=2 /proc
该工具就什么输出都不会有,或者只有问号:
这里我们使用pspy作为辅助演示(当没设置hidepid时)。
前期准备中,首先我们创建一个while循环,并使用ROOT用户循环执行/tmp/1.sh。然后当我们获取USER普通用户权限时,利用pspy可以监控到ROOT用户在持续执行/tmp/1.sh:
尝试查看/tmp/1.sh文件内容和权限,发现我们当前用户具备读写权限:
我们尝试替换文件内容,查看是否会以ROOT权限启动其中命令:
发现成功提权,以ROOT