在完成通关后,我们获得了一个root账号权限,通过修改sshd文件,新增root用户密码,配置sshd服务允许管理员root账户登录,并将root账户加入可允许登录账号得列表中(此前只有tom可以登录)。
一、DC2安全配置情况
查看用户信息,系统禁止使用root(已经被我修改可以登录)、可以用的账户有tom和jerry,其中:
tom对应的shell是rbash;而jerry对应的shell/bash.

查看sshd_config文件,发现只允许tom登录。

也就是说ssh登录只能通过tom用户登录,shell是rbash。
修改完配置后,我们以ssh登录root账户。
输入netstat -tunpl 和 ps aux监视网络和进程变化。


接下来,开始通关之旅 。
二、扫描探测(端口)
使用nmap扫描探测服务版本和系统版本:
nmap -sV -O -p 1-65535 192.168.136.175

靶机开启了http和ssh服务。
尝试访问80端口,发现会跳转到http://dc-2,这表明网站要求采用域名方式访问,但dc-2这个域名本地无法解析为ip地址,因此需要在hosts文件中添加DNS解析条目:
dc-2 192.168.136.175
配置好后,根据页面提醒,这是一个 WordPress site。同时发现了flag1,它提示我们需要用cewl工具来生成字典。

接下来,我们看看使用nmap扫描会留下什么痕迹
cat /var/log/apache2/access.log

可以nmap扫描会在user-agent字段中留下nmap scripting engine的痕迹;
扫描ssh端口时会留下打招呼的痕迹:
cat /var/log/auth.log

三、目录扫描
对于网站,需要扫描一下目录,可以用到gobuster、dirsearch、feroxbuster、dirb工具等工具。
使用dirsearch -u http://dc-2
得到管理员登录的界面wp-login.php

毫无疑问,本次目录扫描也会留下大量痕迹
四、应用漏洞探测
因为网站为wordpress站点,可以使用wp-scan工具谈的站点的插件和主题是否存在漏洞。
(1)使用cewl工具使用字典。
cewl通过爬取dc-2网页,提取关键词作为字典。
cewl http://dc-2 -w dc2.txt
(2)使用wp-scan扫描网站并尝试破解密码
wpscan --url http://dc-2 -e vp,vt,u -P /usr/share/wordlists/dc2.txt -t 20

得到了三个用户,有两个能够爆破出密码
此番操作均会被记录在web访问日志之中。
五、SSH登录提权
使用jerry/adipiscing 和 tom/parturient登录网站,发现flag2

根据提示,我们需要其他入口,也就是使用ssh登录。
经测试,的确只有tom可以远程登录。
登录后发现存在flag3,但是无法读取,查看发现仅允许运行4条命令,不过里面有vi

4.1vi提权
这一步可以帮助我们绕过rbash,输入如下命令,通过vi提权获得了/bin/sh的权限
vi
set shell=/bin/sh
shell
此时,进程中多了一个vi的进程

查看进程树,可以看到这个bin/sh来源于vi
pstree -p | grep -A2 -B2 vi

也可输入ps -auxef

提取后还需要绕过path问题,重新设置PATH

根据flag3的提示,我们应该使用jerry用户登录,因为tom是个poor man。

切换到jerry后,查看jerry权限:


根据提示拿到最后的flag还需要git,而jeryy恰好可以无需密码运行git

因此我们可以git提权。
切换为jerry也会被记录再进程树之中。

4.2 GIT提权
输入sudo git help status,然后有光标提示输入命令,输入!/bin/sh,执行,直接拿到root权限

这样可以打开root用户目录,拿到flag4

而进程树也相信记录了整个过程。

五、复盘过程
用户tom登录后,等到rbash的shell,通过vi提权后得到/bin/sh,重新设置path后,切换jerry,又通过git提权到了root。
拿到root权限后,我们修改/etct/ssh/sshd_config配置,配置root可ssh登录,并passwd root 给root账户设置了密码。
2013

被折叠的 条评论
为什么被折叠?



