一、简介
增强指纹主要用来做更全面的资产发现,后续可以更准确的进行一些简单的poc探测
0x01、指纹识别
shiro
struts2
weblogic
spring
solr
等
这里利用github上大佬的一个简单的脚本即可完成指纹增强
后台回复 灯塔 即可获取网盘提取链接自行下载即可。
usage:
python3 ARL-Finger-ADD.py https://ip:5003/ username password
效果如下--->注:可自行在finger.json文件中添加额外的然后运行。
0x02、ARL poc 框架
docker exec -it arl_web /bin/bash
cd /opt/ARL-NPoC/xing/
#可自行将NPoC进行打包拷贝到本地
本地使用效果如下
usage: xing [-h] [--version] [--quit]
[--log {debug,info,success,warning,error}]
{list,scan,sniffer,exploit,brute,listener,shell} ...
positional arguments:
{list,scan,sniffer,exploit,brute,listener,shell}
子命令
list 显示插件
scan 扫描
sniffer 协议识别
exploit 漏洞利用
brute 弱口令爆破
listener 监听
shell 反弹Shell
optional arguments:
-h, --help show this help message and exit
--version, -V show program's version number and exit
--quit, -q 安静模式 (default: False)
--log {debug,info,success,warning,error}, -L {debug,info,success,warning,error}
日志等级 (default: info
对单一目标进行探测
xing scan -t http://218.*.*.*:8089/
0x03、如何编写
__init()__:初始化函数。
def __init__(self):
super(Plugin, self).__init__()
# 插件类型poc
self.plugin_type = PluginType.POC
# 插件name
self.vul_name = "泛微 Ecology getdata.jsp SQL注入漏洞"
# 探测组件name
self.app_name = 'Ecology'
# 探测协议?
self.scheme = [SchemeType.HTTP, SchemeType.HTTPS]
verify():验证函数。
def verify(self, target): #参数target
### `http_req()`:请求函数。
```python
def http_req(url, method = 'get', **kwargs): #传入url,请求方法get,post....
POST请求:
http_req(url, 'post', data=data)
http_req()的处理方法:
1. content(): # 获取响应包
conn = http_req(url, "get")
if b"GitLab" not in conn.content:
return False
2. json(): # json处理响应包
conn = http_req(url, "get")
data = conn.json()
3. status_code:#获取响应值
conn = http_req(url, "get", auth=(user, passwd))
if conn.status_code == 200:
return True
4. text: #获取响应体。和content类似吧
conn = http_req(url, "get")
pattern = r'<metas+name="csrf-token"s+content="([^"]+)+"s+/>'
matches = re.findall(pattern=pattern, string=conn.text)
5. headers.get() # 获取响应头
conn = http_req(url, "get")
if self._check_str not in conn.headers.get("WWW-Authenticate", ""):
return False
6.self.logger.debug() #信息回显
self.logger.debug("not Ecology {}".format(target))
def init_logger():
log_colors = {
'DEBUG': 'white',
'INFO': 'green',
'SUCCESS': 'red',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'bold_red',
}
0x04、如何快速编写
为了应对 快速把大量json文件和poc转化成符合arl格式的poc
采用大佬的python脚本
import json
finger_file = 'aspx.json'
str = """
from xing.core.BasePlugin import BasePlugin
from xing.utils import http_req, get_logger
from xing.core import PluginType, SchemeType
import requests
import hashlib
class Plugin(BasePlugin):
def __init__(self):
super(Plugin, self).__init__()
self.plugin_type = PluginType.POC
self.vul_name = "发现{{name}}"
self.app_name = '{{name}}'
self.scheme = [SchemeType.HTTP, SchemeType.HTTPS]
def verify(self, target):
"""
html = """
url = target + "{{uri}}"
if b'{{html}}' in http_req(url).content:
self.logger.success("found {{name}} {}".format(url))
return url
"""
md5 = """
url = target + "{{uri}}"
con = http_req(url).content
hl = hashlib.md5()
hl.update(con)
md5 = hl.hexdigest()
if md5 == '{{poc_md5}}':
self.logger.success("found {{name}} {}".format(url))
return url
"""
def write_file(filename, str2):
fo = open(filename, "a")
fo.write(str2)
fo.close()
def check(name, rule, file_name):
if 'md5' in rule:
tmp_md5 = ''
tmp_md5 = md5.replace("{{poc_md5}}", rule['md5'])
tmp_md5 = tmp_md5.replace("{{uri}}", rule['uri'])
tmp_md5 = tmp_md5.replace("{{name}}", name)
write_file(file_name, tmp_md5)
elif 'html' in rule:
tmp_html = html.replace("{{html}}", rule['html'])
tmp_html = tmp_html.replace("{{uri}}", rule['uri'])
write_file(file_name, tmp_html)
else:
None
def parser(finger_file):
with open(finger_file) as f:
fin_data = json.load(f)
# print(fin_data)
for fin_dict in fin_data:
name = fin_dict
file_name = name.replace(" ", "_") + '_Identify.py'
tmp_str = str.replace("{{name}}", name)
write_file(file_name, tmp_str)
for i in range(len(fin_data[fin_dict])):
rule = fin_data[fin_dict][i]
check(name, rule, file_name)
parser(finger_file)
运行即可将指定的json指纹文件生成arl格式的指纹文件
0x05、指纹测试
把ARL-NPoC拷贝到本地之后,按照流程进行操作。确保本地测试不报红再同步到arl上的(arl_web和arl_work两个容器)
最后点击更新即可。
部分参考链接
https://h11ba1.com/2021/07/01/arl_poc%E7%BC%96%E5%86%99/
https://tophanttechnology.github.io/ARL-doc/scene_example/
接下来更新的有基础也会有漏洞挖掘或是代码审计或是工具使用,如有问题欢迎后台私信。喜欢的可以关注收藏、转发与身边的朋友分享,感谢。
原文始发于微信公众号(漏洞之星):灯塔(ARL)--指纹识别和POC编写
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论