重要声明:本培训中提到的技术仅适用于合法ctf比赛和获得合法授权的渗透测试,请勿用于其他非法用途。如有违规,与本文作者无关。今天我们将学习一些理论知识,大家可以利用这段时间好好练习实战操作。
假设大家已经成功进入了一台服务器或获得了部分权限,否则就无法进行后渗透攻击。
后渗透攻击应该做什么呢?
权限提升,简称“提权”,是通过各种方法和漏洞,提高在服务器中的权限,以便控制所有资源。比如在windows中获得System权限,在linux中获得root权限。
常见的提权方法包括系统漏洞提权、数据库提权、权限继承类提权、第三方软件/服务提权等。
那么,我们如何提权呢?
Linux系统提权:
Linux系统漏洞的exp通常按照内核版本命名,如2.6.18-194或2.6.18.c等。形如2.6.18-194的exp可以直接执行,而形如2.6.18.c的exp需要在目标机器上编译后运行以提权。也有少部分exp是按照发行版版本命名的。
提权exp的基本使用方法是执行这个可执行文件。通常情况下,Linux的本地提权需要使用nc反弹出来,因为提升权限后得到的是交互式shell,需要反弹才能执行下一步命令。
如何选择合适的exp来提权呢?使用uname -a命令或cat /proc/version来判断系统的内核情况,然后使用相对应的exp进行提权。在提权过程中,需要为exp赋予权限,使用chmod命令。但在许多Linux服务器上,管理员会设置目录权限,无法修改。然而,通常/tmp目录不会被设置权限,这与Windows下的tmp和回收站类似。
Windows系统提权:
Windows的提权exp通常格式为MS08067.exe。Windows系统漏洞的命名格式为MS16-001,其中MS是microsoft的缩写,16表示年份(如2016年),001表示当年度发布的第1个漏洞。
Windows提权exp的使用方法是执行exp,通常使用cmd.exe来执行。在日常渗透测试中,我们常常先获得webshell,然后进行提权,因此提权脚本也常常在webshell中运行。
如何选择合适的exp来提权呢?使用systeminfo命令或查看补丁目录,查看补丁记录,判断哪些补丁未打,然后使用相对应的exp进行提权(过程看似简单,实则繁琐)。
一般的提权过程是:先找到可写目录,上传cmd.exe、提权exp等文件,然后使用exp进行提权,接着可以进行添加账号等操作。
数据库提权:
数据库提权是利用执行数据库语句、数据库函数等方式提升服务器用户的权限。mysql的提权通常使用自定义函数提权或mof提权,而mssql的提权通常调用xp_cmdshell函数。
数据库提权的前提是能够登录数据库。因此,通常在获得webshell后,需要在网站目录中查找数据库连接文件,常见于xxx.conf或conf.xxx文件中。数据库提权的方法多种多样,这里不一一列举,有兴趣的可以自行研究。
在获得高权限账号之后:
在Windows中,可以下载sam文件,使用SamInside破解管理员密码,也可以从FTP等软件中导出FTP账号密码等敏感信息,还可以从系统缓存中找到一些系统密码等。之后可以留个后门,或者安装键盘记录器等,方法多种多样,就看你的思维是否足够开阔。