环境搭建
- 攻击机:Kali-Linux2020.4(VmwareWorkstation)
- 靶机:DC-4(VirtualBox)
- DC-4靶机下载链接:https://www.five86.com/dc-4.html
- Kali与DC-4配置桥接模式,并桥接到同一张网卡
- Kali的IP地址如下:
信息收集
- 先使用Nmap探测Kali与DC-4所在网段存活主机,找到DC-4:
- 进行全面扫描,并扫描全端口,发现只开放了80和22端口 :
- 个人习惯,使用Nmap的vuln脚本探测一下,看是否有已知漏洞,没什么有价值的发现。
- 访问80端口,发现Web页面。
Burp爆破密码
- 看到登录页,挂上Burp代理,随便输入账号密码,抓包。
- 发送到Intruder模块进行爆破。因为在Web页面看到Admin Information Systems Login标题,所以直接使用用户名admin,只设置密码一个爆破点。
- 字典直接选择Burp内置的password字典。
- 设置好后,爆破出密码为happy。
远程命令执行getshell
-
登录进系统,发现是一个远程执行命令的界面,可以执行3个固定命令。
-
直接用Burp抓一个包,尝试修改可执行的命令。
-
发送到Repeater模块,尝试读取/etc/passwd文件,发现两个用户jim和sam。
-
尝试直接反弹shell。
Kali:
Burp执行命令:
成功接收到shell:
用python获取一个交互式shell,方便使用。python -c 'import pty; pty.spawn("/bin/bash")'
权限提升
-
使用sudo -l 查看有无有特殊权限的文件,发现无法查看。
-
查看是否有SUID提权,没有找到。
find / -user root -perm -4000 -print 2>/dev/null
已知可以SUID提权的文件:nmap vim find bash more less nano cp
-
由于之前读取/etc/passwd文件时,发现有两个用户jim和sam,所以去/home下去看看有无线索。发现有三个用户,分别查看一下,发现只有jim目录中有文件。发现这个test.sh具有特殊权限,有可能要利用这个文件进行提权。
-
查看backups目录下,有一个密码备份的文件。想到了开放的22端口,所以把文件内容复制下来当字典来爆破ssh。
-
hydra爆破ssh端口,成功得到密码。
hydra -l jim -P ./dc4-password -s 22 ssh://192.168.2.30
-
利用爆破到的账号密码登录ssh,成功登录。
-
老办法看看使用jim这个账户能否找到提权的点,发现并没有,看来前面提到的test.sh并没有用。
-
登陆上来,便可以看到收到了一封邮件。去查看一下。
-
可以在邮件中找到用户charles的密码
-
切换到用户charles。
-
老办法看看使用charles这个账户能否找到提权的点,发现了teehee具有特殊的权限,可以用来提权。
-
查看teehee的–help,发现可以将标准输入写入到文件中。
-
这里考虑使用teehee在/etc/passwd中写入一个具有root权限的账户。
在/etc/passwd中每行用户信息都以 “:” 作为分隔符,划分为 7 个字段,每个字段所表示的含义如下:用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell root:x:0:0:root:/root:/bin/bash
对于密码,如果为x,则有密码,密码保存在/etc/shadow中,如果为空,则可无密码登录。
对于UID有如下规定,所以应该让我们要写入的账户的UID为0。
-
通过teehee向/etc/passwd中写入一条用户信息。
echo 'root1::0:0:root:/root:/bin/bash'|sudo teehee -a /etc/passwd
-
添加成功之后,切换到用户root1,成功获取到root权限。
-
进入/root目录,获取到flag。