打造自己的弱口令扫描工具

[[357384]]

本文转载自微信公众号「 Bypass」,作者 Bypass。转载本文请联系 Bypass公众号。

在内网检测中,弱口令扫描是必不可少的环节,选择一个好用的弱口令扫描工具,尤为重要。

我曾写过一款弱口令检测工具,经常有童鞋在后台询问关于iscan源代码的事情,但其实通过Python打造自己的弱口令扫描工具是一件非常简单的事情,无非就是将多个Python扫描脚本集成在一起。

今天,分享一些常见的端口服务扫描脚本,可根据自己的需求来改写脚本,打造一款属于自己的弱口令检测工具,然后在实战中应用,不是挺有意思的吗。

1、RDP 扫描模块

RDP协议相对复杂,想要使用Python实现RDP暴力破解,一直没找到比较简单实现的方式。后来,我在impacket 示例文件下找到了rdp_check.py,这个脚本可用于测试目标主机上的帐户是否有效。那么,通过它来改写Pyhton扫描脚本,就变得很简单。

demo代码有点长,这里就不贴了,演示截图如下:

具体参考代码:

  1. https://github.com/SecureAuthCorp/impacket/blob/master/examples/rdp_check.py 

2、SMB 扫描模块

用于检测共享文件夹和smb弱口令。

  1. from impacket import smb 
  2. def smb_login(ip,port,user,pwd): 
  3.     try: 
  4.         client = smb.SMB('*SMBSERVER',ip) 
  5.         client.login(user,pwd) 
  6.         flag ='[+] IPC$ weak password: '+user,pwd 
  7.     except
  8.         print '[-] checking for '+user,pwd+' fail' 

3、FTP 扫描模块

用于检测FTP匿名访问和弱口令。

  1. import ftplib 
  2. def ftp_anonymous(ip,port): 
  3.     try: 
  4.         ftp = ftplib.FTP() 
  5.         ftp.connect(ip,port,2) 
  6.         ftp.login() 
  7.         ftp.quit() 
  8.         print '[+] FTP login for anonymous' 
  9.     except
  10.         print '[-] checking for FTP anonymous fail' 
  11. def ftp_login(ip,port,user,pwd): 
  12.     try: 
  13.         ftp = ftplib.FTP() 
  14.         ftp.connect(ip,port,2) 
  15.         ftp.login(user,pwd) 
  16.         ftp.quit() 
  17.         print '[+] FTP weak password: '+user,pwd 
  18.     except
  19.         print '[-] checking for '+user,pwd+' fail' 

4、SSH 扫描模块

用于检测SSH弱口令。

  1. import paramiko 
  2. def ssh_login(ip,port,user,pwd): 
  3.     try: 
  4.         ssh = paramiko.SSHClient() 
  5.         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
  6.         ssh.connect(ip,port,user,pwd,timeout=5) 
  7.         print '[+] SSH weak password: '+user,pwd 
  8.         ssh.close() 
  9.     except
  10.         print '[-] checking for '+user,pwd+' fail' 

5、Telnet 扫描模块

模拟Telnet 登录验证过程,用于telnet弱口令的检测。

  1. import telnetlib 
  2. def telnet(ip,port,user,pwd): 
  3.   try: 
  4.     tn = telnetlib.Telnet(ip,timeout=5) 
  5.     tn.set_debuglevel(0) 
  6.     tn.read_until("login: "
  7.     tn.write(user + '\r\n'
  8.     tn.read_until("assword: "
  9.     tn.write(pwd + '\r\n'
  10.     result = tn.read_some() 
  11.     result = result+tn.read_some() 
  12.     if result.find('Login Fail')>0 or result.find('incorrect')>0: 
  13.        print "[-] Checking for "+user,pwd+" fail" 
  14.     else
  15.       print "[+] Success login for "+user,pwd 
  16.     tn.close() 

6、MySQL 扫描模块

用于检测MySQL弱口令。

  1. import MySQLdb 
  2. def Mysql_login(ip,port,user,pwd): 
  3.     try: 
  4.         db = MySQLdb.connect(host=ip, user=user, passwd=pwd,port=port) 
  5.         print '[+] Mysql weak password: '+user,pwd 
  6.         db.close() 
  7.     except
  8.         print '[-] checking for '+user,pwd+' fail' 

7、MSsql 扫描模块

用于检测MSSQL弱口令。

  1. import pymssql 
  2. def mssql_login(ip,port,user,pwd): 
  3.     try: 
  4.         db = pymssql.connect(host=ip,user=user,password=pwd,port=port) 
  5.         print '[+] MSsql weak password: '+user,pwd 
  6.         db.close() 
  7.     except
  8.         #pass 
  9.         print '[-] checking for '+user,pwd+' fail' 

8、MongoDB 模块

用于检测MongoDB 匿名登录和弱口令。

  1. from pymongo import MongoClient 
  2. def mongodb(ip,port=27017):     
  3.     try: 
  4.         client = MongoClient(ip,port) 
  5.         db=client.local 
  6.         flag = db.collection_names() 
  7.         if flag:     
  8.             print "[+] Mongodb login for anonymous" 
  9.     except Exception, e: 
  10.         pass 
  11.  
  12. def mongodb_login(ip,port,user,pwd): 
  13.     try: 
  14.         client = MongoClient(ip,port) 
  15.         db_auth = client.admin 
  16.         flag = db_auth.authenticate(user, pwd) 
  17.         if flag == True
  18.             print '[+] Mongodb weak password: '+user,pwd 
  19.     except
  20.         print '[-] checking for '+user,pwd+' fail' 

9、phpmyadmin 扫描模块

模拟http请求,检测phpmyadmin弱口令。

  1. import requests 
  2. def phpMyAdmin_login(ip,port,user,pwd): 
  3.     try: 
  4.         url = "http://"+ip+":"+str(port)+"/phpmyadmin/index.php" 
  5.         data={'pma_username':user,'pma_password':pwd} 
  6.         response = requests.post(url,data=data,timeout=5) 
  7.         result=response.content 
  8.  
  9.         if result.find('name="login_form"')==-1: 
  10.             print '[+] find phpMyAdmin weak password in:'+url 
  11.             print '[+] find phpMyAdmin weak password:'+user,pwd 
  12.         else
  13.             print '[-] Checking for '+user,pwd+" fail" 
  14.             time.sleep(2) 
  15.     except
  16.             print '[-] Something Error'+user,pwd+" fail" 

10、Tomcat 扫描模块

模拟http请求,检测tomcat控制台弱口令。

  1. import requests 
  2. def tomcat_login(ip,port,user,pwd): 
  3.     try:         
  4.         url = "http://"+ip+":"+str(port)+"/manager/html" 
  5.         user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"   
  6.         Authorization = "Basic %s" % (base64.b64encode(user+':'+pwd)) 
  7.         header = { 'User-Agent' : user_agent , 'Authorization':Authorization}  
  8.         request = urllib2.Request(url,headers=header) 
  9.         response = urllib2.urlopen(request,timeout=5) 
  10.         result=response.read() 
  11.         if response.code ==200: 
  12.             print '[Success] '  + url+' '+user+':'+pwd              
  13.     except
  14.         print '[Login failed]' + url+' '+user+':'+pwd 

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/134949.html<

(0)
管理的头像管理
上一篇2025-03-01 09:40
下一篇 2025-03-01 09:41

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注