• 渗透测试lampiao


    这个VM是从vulnhub上下载的,难度是easy

    没有用户名,没有密码,目的是拿到root权限,拿到flag

    先获取目标IP

    • netdiscover

    用nmap扫描目标IP

    发现开了ssh,和http的端口

    下一步去看一下目标有没有网站

    果然有,但是网站就告诉我们   it's easy(火狐的浏览器显示的有点变形了,chrome可以看出来) ,看了一些源代码,也没有有用的信息

    用nikto尝试扫描这个网站有没有其他目录

    • nikto -h 192.168.140.131

    非常有意思的结果出现了,提示没有web服务器,这个vm里有网站,却提示没有web服务器

    经过老师指点,才知道 nmap默认只会扫描1000一下的端口号

    所以再次用nmap扫描目标ip,这次用-p-参数扫描所有端口

    • nmap -p- 192.160.140.131

    原来这个目标机器开了一个1898的端口,刚刚nmap没有扫描到

    这次用这个端口进去看看

    发现了一个新的网站,需要用户名密码才能登

    再次用nikto寻找网站的目录

    网站有很多目录,之后又两个方法找到突破口

    第一个方法:

      我自己的方法,随便在网站目录下找找,会发现很多txt文档。

      

        打开文档就可以发现这个网站使用drupal框架搭建的。drupal就是突破口。

        

    第二个方法:

       我从其他论坛上看到的方法

           扫描目录的时候发现敏感文件/CHANGELOG.txt是敏感文件,一个记录更新的日志,访问发现是Drupal为框架的网站,最近一次更新为7.54

    总之发现目标使用Drupal框架搭建的网站。

    用msf搜索针对这个框架有什么可以利用的漏洞

    • search drupal

    有一个2018年的漏洞,excellent!

    用这个漏洞渗透

    • use exploit/unix/webapp/drupal_drupalgeddon2

    设置好ip 端口,就可以run了

    渗透成功!

    开始我想用上次的方法download 目标vm的密码文件,再进行破解,但是失败了,应该是权限不够。

    不过我们可以看出整个网站的整个目录了,看看能不能发现一些有趣的东西,网站目录下的文件可以下载

    首先我发现了一首歌LuizGonzaga-LampiaoFalou.mp3,我把它download下来,不怎么好听。。。

    还有一个音频文件audio.m4a,也download下来,是一段语音,贴心的告诉我们 :user tiago  ,这应该就是用户名了

    (另外我还看了一下当前的路径,避免乱翻之后,找不回这个网站目录了)

    其实没有这个语音也可以找出用户名

    只需要用 cd .. 指令随便翻翻,就可以看到home文件夹里面有tiago的文件夹。

    另外,其他博客上也有一个方法

    用python 启动终端,获取用户名,前提是目标vm有python 的编译环境

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

    但是我觉得这个方法不好用,因为我用这个方法会遇到键盘编码不统一的问题 退格和del键都没法用,输入命令太麻烦,怎么调试我的终端键盘编码也没用。但是这个方法确实可以一眼看出用户名。

    有了用户名,还需要密码

    在从网站目录里面找找有什么有用的

    在/var/www/html/sites/default目录下哟一个settings.php,这可能是配置文件,下载下来

    里面有一个密码,应该是登陆数据库的密码。不过登陆系统的可能也是这个

    尝试用这个密码ssh登陆系统

    成功了

    可以用这个账户登陆mysql,看网站的数据库

    但是这个用户并没有root权限

    下一步是提权

    用uname -a 发现这vm的内核版本是2.6

    搜索一下相关漏洞

    • searchsploit

    有很多,这里用的是dirty crow 40847(新版本的Linux早已修复了这个漏洞)

    用cp命令把40847.c复制到主目录

    用scp命令把代码文件上传到目标vm

    • scp 40847.cpp tiago@192.168.140.131

    这里可能会出错,提示permission denied 所以最好用ssh登陆,然后用mkdir命令建立一个文件夹,这样tiago就有对这个文件夹的读写权限了。再上传,把目录名写对,应该就不会出错了。

    上传成功后,用g++命令编译 

    • g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 1111 40847.cpp -lutil
    1. -Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告

    2. -pedantic 允许发出ANSI/ISO C标准所列出的所有警告

    3. -O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
    4. -std=c++11就是用按C++2011标准来编译的
    5. -pthread 在Linux中要用到多线程时,需要链接pthread库
    6. -o dcow gcc生成的目标文件,名字为1111

    成功获取root权限

    flag已经可以看到了

     

     

  • 相关阅读:
    第三次实验总结
    实验总结
    自我介绍
    BGP学习笔记
    source insight用于C语言编程的工具脚本
    LevelDB源码剖析
    LevelDB源码之五Current文件Manifest文件版本信息
    LevelDB源码之六缓存机制
    LevelDB源码之四LOG文件
    jQuery向动态生成的内容添加事件响应
  • 原文地址:https://www.cnblogs.com/P201521420002/p/9677773.html
Copyright © 2020-2023  润新知