渗透测试lampiao

Posted on 2018-09-19 21:34  201521420002  阅读(581)  评论(0编辑  收藏  举报

这个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已经可以看到了