内网渗透测试:MySql的利用与提权思路总结

访客4年前黑客文章457

image

MySQL 是世界上更流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是更好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。全球很多著名公司和站点都使用Mysql作为其数据库支撑,并且很多架构都以Mysql作为数据库管理系统,例如LAMP、和WAMP等,在针对网站渗透中,很多都是跟Mysql数据库有关,各种Mysql注入,利用Mysql来getshell、Mysql提权,等等。本文,笔者我对Mysql在渗透测试中的常见的基础利用进行了详细的总结,包括利用MySQL获取webshell、MySQL提权以及几个MySQL的0day漏洞等。

MySQL相关信息收集

不管是你渗透什么玩意儿,信息收集都是首要的一步。在行动之前,我们需要搞清楚,目标主机上是否存在MySQL、MySQL运行在默认的端口还是指定的端口、MySQL的版本信息、MySQL用户信息等等。

Mysql默认端口是3306端口,但也有自定义端口,针对默认端口扫描主要利用扫描软件进行探测。我们可以用nmap等端口扫描工具对MySQL的端口进行扫描。

如果已经获得了目标MySQL的密码,我们可以使用该用户名和密码扫描获取指定IP地址的端口信息以及mysql数据库相关信息:

Nmap还内置了多个mysql相关脚本,有审计,暴力破解,hash、空密码扫描、枚举、基本信息、查询、变量等等:

能不能用不知道,反正我是没用过。

Metasploit也有几个可用于收集MySQL信息的模块:

另外,我们还可以使用sqlmap通过注入点扫描获取目标数据库的信息。sqlmap在测试注入点时,会枚举出目标主机的数据库类型、版本等信息。

通过MySql获取服务器权限

获取MySql连接密码

假设目标服务器开启3389端口,并且允许我们进行远程访问的话,我们可以采取爆破MySQL用户密码的 *** ,获取MySQL的权限。

在渗透测试中,获取MySql连接密码的思路大致有以下几种:

MySQL 口令爆破

当我们通过信息收集已经知道目标主机上运行有MySql服务时,我们可以对其连接密码进行爆破,但这种 *** 一般是不会成功的,爆破成功的几率近乎为零。除非管理员用的是弱口令,我们才有尝试一下爆破的必要。但为了提高爆破成功的概率,社工也是不可缺少的。我们可以通过收集一个人的各种信息,例如姓名、社交平台账号/昵称、手机号、生日、伴侣姓名/生日、职业等信息,通过这些写信息生成针对性的字典,利用该字典进行爆破。

如若你真想进行 MySQL 口令爆破,可以用以下几种 *** :

(一)通过metasploit相关模块进行爆破

Metasploit的auxiliary/scanner/mysql/mysql_login模块可用来登录mysql,亦可用来爆破mysql口令:

image-20210123210756275

(二)使用nmap扫描并破解密码

(1)对某一个IP或者IP地址段进行mysql root默认密码暴力扫描并破解:

也可以自定义账号密码字典。

(2)检查mysql root空口令

MySQL 哈希值爆破

MySQL的用户名密码哈希值保存在mysql库的user表中:

直接将获取到的哈希值放到cmd5.com在线哈希破解网站上在线破解即可。

从网站泄露的源代码中寻找数据库密码

网站的配置文件中大多含有数据库的连接配置,如数据库用户名、密码等配置信息。当我们获得到了目标网站的备份文件时,首先查看一下网站的配置文件可能会有以外的收获。

image-20210123002047526

通过MySql向服务器写WebShell

需要具有以下几个条件:

  • 存在sql注入漏洞

  • 当前数据库用户具有写入权限

  • 知道目标网站Web物理路径

  • secure_file_priv 选项支持数据导出

有时候,即使当前数据库用户有了file权限,也不能成功将数据导出至自己想要的目录。因为高版本的MYSQL添加了一个新的特性 secure_file_priv,该选项对mysql导出文件做了限制,输出目录路径应该secure_file_priv一致,否侧文件操作不成功:

该参数用于限制select...into outfile...、load_file()导出到或读取哪个指定的目录。

  • secure_file_priv 的值为 NULL 时,表示限制mysql不允许导入或导出。

  • secure_file_priv 的值为为 /tmp 时,表示限制mysql只能在/tmp目录中执行导入导出,其他目录不能执行。

  • secure_file_priv 没有值即值为空时,表示允许mysql在任何目录导入或导出。

因为 secure_file_priv 参数是只读参数,所以不能使用set global命令直接修改,我们应在mysql的配置文件(my.cnf或my.ini)中进行设置:

开my.cnf 或 my.ini,加入以下语句后重启mysql即可:

查看secure_file_priv修改后的值:

image-20210123130901253

此时便可以在任何目录中导出或导入数据了,这也是我们利用MySql向服务器写WebShell的基础。

利用 Union select 写入WebShell

这是最常见的一种写入方式,union select 配合 select into outfile,将WebShell写入服务器,适用于sql注入点事联合注入的情况下。

mysql可以解析十六进制,我们也可以对一句话进行十六进制编码,最终效果都是一样的:

image-20210123140556311

如下图,成功写入webshell:

image-20210123134724768

利用分隔符写入WebShell

当sql注入点为为盲注或基于报错的注入时,Union select 写入的方式显然是利用不了的,我们可以通过分隔符写入WebShell。

同样的技巧,一共有四种形式:

image-20210123140644313

如下图,成功写入webshell:

image-20210123140716602

利用log日志写入WebShell

Mysql查询日志用来保存所有跟查询相关的日志,我们可以通过指定mysql日志的存放路径来往目标主机上写入webshell,但是也要对生成的日志有可读可写的权限。这种日志类型默认是关闭状态的,因为MySQL的用户有很多,如果将每个用户的查询操作都记录下来的话,对服务器的资源开销也是一件令人烦恼的事情。查询日志常见的几个配置选项:

  • general_log 指定日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF 代表关闭。

  • general_log_file 指的是日志的保存路径

当 general_log=ON 时,所执行的sql语句都会出现在/www/server/data/Ubuntu.log这个文件里。那么,如果把 general_log_file 的路径修改为 /var/www/html/shell.php,那么所执行的sql语句就会保存在shell.php中,如果我们执行查询一个一句话,就可以getshell。

利用方式如下:

image-20210123134215958

如下图,成功在Web目录写入webshell:

image-20210123134509455

**注意:**以上几种 *** 虽然成功在目标服务器的web目录下写入了webshell,但是所需要的条件极其严格,其中最为主要的就是当前数据库用户具有写入权限和 secure_file_priv 选项支持数据导入导出。但是,在 Linux 系统中权限分配十分严格,MySQL 用户一般情况下是无法直接往web根目录写入文件的,即便成功,写入的文件的权限也是MySQL的(上图中可见),Apache也是无法访问的,所以,以上 *** 通常是在Windows系统中适用。这个点需要记一下。

通过MySQL进行权限提升

所谓通过MySQL进行权限提升就是通过MySQL执行系统命令。假如说我们发现了某个网站存在SQL注入,亦或者是我们发现了某个主机的数据库的账号密码,我们直接远程连接上了该数据库。现在我们想利用该数据库来执行系统命令,该如何去做呢?下面我们就来演示几种通过MySQL执行系统命令进行权限提升的 *** 。这里需要注意的是,执行系统命令的权限取决于数据库启动用户的权限。

MySQL UDF提权执行系统命令

UDF是MySQL的一个拓展接口,UDF(Userdefined function)可翻译为用户自定义函数,这个是用来拓展Mysql的技术手段。

使用过MySQL的人都知道,MySQL有很多内置函数提供给使用者,包括字符串函数、数值函数、日期和时间函数等,给开发人员和使用者带来了很多方便。MySQL的内置函数虽然丰富,但毕竟不能满足所有人的需要,当MySQL的内置函数不能满足需要的时候,就需要对MySQL进行一些扩展,幸运的是,MySQL给使用者提供了添加新函数的机制,这种使用者自行添加的MySQL函数就称为UDF(User Define Function)。

当我们有了数据库读取和写入权限以后,我们就可以尝试使用UDF提权的 *** ,从数据库root权限提升到系统的管理员权限。

提权原理:

UDF的使用需要调用其动态链接库文件(.dll或.so),使用UDF提权原理大概就是通过引入恶意的,引入自定义函数(如sys_eval()函数),执行系统命令。

利用条件:

  • 掌握MySQL数据库的账户,从拥有对mysql的insert和delete权限,以创建和抛弃函数。

  • 当前用户拥有可以将udf.dll写入相应目录的权限。

  • 如果MySQL版本小于5.1且为Windows系统,则udf.dll文件存放在 C:\windows 或者 C:\windows\system32 目录下。

  • 如果MySQL版本大于5.1,udf.dll文件必须放置在MySQL安装目录的lib/plugin文件夹下,该plugin目录默认不存在需要创建。

假设我的UDF文件名为 udf.dll,存放在MySQL安装目录的 lib/plugin 目录下(MySQL>5.1):

image-20210123161120125

在 udf.dll 文件中,我定义了一个名为 sys_eval() 的 MySQL 函数,该函数可以执行系统任意命令。但是如果我现在就打开 MySQL 命令行,使用 select sys_eval('whoami');的话,系统会返回 sys_eval() 函数未定义。因为我们仅仅是把 udf.dll 放到了 lib/plugin 目录下,并没有引入。类似于面向对象编程时引入包一样,如果没有引入包,那么这个包里的类你是用不了的。所以,我们应该把 udf.dll 中的自定义函数引入进来。引入的 *** 如下:

  • sys_eval:我们要引入的函数名。

  • udf.dll:我们要从中引入函数的链接库文件。

成功引入该函数后,可以查看一下 mysql 函数里面新增了 sys_eval:

此时我们便可以像执行其他MySQL内置函数一样去使用该函数了。

UDF手动提权步骤

当我们通过各种 *** 获取了目标MySQL数据库的权限并满足UDF提权的条件后,我们可以按照以下步骤进行提权。

(一)查看 secure_file_priv 的值

上文说了,secure_file_priv 是用来限制 into dumpfile、into outfile、load_file() 函数能在哪个目录下导出或者读取文件的,所以该值为空是我们利用UDF提权的首要条件:

(二)查看系统架构及plugin插件目录

UDF的dll动态链接库文件需要放在该目录下:

可知目标主机plugin插件目录为/www/server/mysql/lib/plugin/。

如若该目录不存在,可以通过webshell等方式找到 MySQL 的安装目录然后手工创建 lib/plugin 文件夹

(三)将我们构造的恶意动态链接库文件写入plugin插件目录

我们应该去哪里找动态链接库文件去呢?Sqlmap 和 Metasploit 工具里面都自带了对应系统的动态链接库文件。

下面是二者的UDF动态链接库文件的存放位置:

  • Sqlmap:位于sqlmap/data/udf/mysql目录下,包含64位和32位Linux和Windows系统下利用的动态链接库文件:

image-20210123152105047

  • Metasploit:位于/usr/share/metasploit-framework/data/exploits/mysql目录下,包含64位和32位Linux和Windows系统下利用的动态链接库文件:
    image-20210123152200001

另外需要注意,sqlmap 中 自带这些动态链接库为了防止被杀软误杀都经过编码处理,不能直接使用。使用之前需要先用 sqlmap 自带的解码工具 cloak.py (extra/cloak目录下)解码,解码的方式如下:

找到目标主机对应系统版本和位数的UDF文件后,我们需要将UDF文件写入plugin插件目录,大多数情况下我们是将.dll转化成十六进制然后再写入。这里以Linux、64位MySQL为例。

首先在攻击者本地,将lib_mysqludf_sys_64.so或lib_mysqludf_sys_32.so中的内容进行十六进制编码:

image-20210123161751053

生成了 hex 文件以后我们可以将udf_32.hex文件的内容复制出来(注意前面加上0x),然后执行如下命令写入目标机的lib/plugin插件目录下:

但是由于数据过长,我们需要将其分段写入。即先创建一个表,然后将十六进制数据分段写入表中,最后将含有数据的那个字段导出到udf.so,操作如下:

还有一个巧妙的 *** 便是利用load_file()函数,该函数支持远程加载,我们可以将UDF文件放在vps上,执行如下命令让目标机远程加载该文件并下载到指定目录里:

(四)引入UDF函数并调用函数执行系统命令

引入的 *** 如下:

  • sys_eval:我们要引入的函数名。

  • udf.dll:我们要从中引入函数的链接库文件。

成功引入该函数后,我们便可以像执行其他MySQL内置函数一样去使用该函数了:

如下图所示,命令执行成功:

image-20210123162215388

(5)清理痕迹

删除自定义函数:

**注意:**还是那个问题,linux系统的权限管理太严了,如果是Windows系统的话一般就是管理员权限了:

image-20210123203414070

UDF提权在Metasploit下的利用

如果你觉得上面手动的 *** 麻烦的话,也可以利用metasploit中的exploit/multi/mysql/mysql_udf_payload模块实现自动化UDF函数注入,只适用于Windows系统:

image-20210123194043287

使用如下:

image-20210123203111501

MSF会将一个随机命名的UDF文件写入lib/plugin目录下(如果该目录不存在的话,则无法执行成功),该UDF文件中包含sys_exec()和sys_eval()这两个函数,但是默认只创建sys_exec()函数,该函数执行并不会有回显。我们可以手动引入 sys_eval() 函数,来执行有回显的命令。

image-20210123203338637

MySQL启动项提权

手动利用

所谓MySQL的启动项提权,就是将自定义的脚本写入到开机自启目录下,如果管理员重启了服务器,那么就会自动调用该脚本,并执行其中的用户添加及提权命令。这种提权也常见于 Windows 环境下,写入的脚本支持 vbs 和 exe 类型,可以利用 vbs 执行一些 CMD 命令,也可以使用 exe 上线 metasploit 或 cobalt strike。

VBS脚本的话最常见的就是创建一个管理员用户:

写入的方式与上文中讲的那几种 *** 一样,即先在本地将vbs脚本用mysql的hex()函数进行十六进制编码,然后利用into outfile...或into dumpfile写入:

image-20210123175238561

此时,如果管理员重启了服务器,那么就会自动调用该脚本,并执行其中的命令,如下图所示,常见管理员新用户“whoami”成功:

image-20210123174221093

同样,我们也可以将exe写入到开机自启目录下,写入的方式与上文中讲的那几种 *** 一样,即先在本地将exe程序用mysql的hex()函数进行十六进制编码,然后利用into outfile...或into dumpfile写入到目标机的自启目录下。如下我们写入一个msf马“shell.exe”。

首先在攻击者本地将shell.exe进行十六进制转换:

image-20210123180241578

将得到的hex文件shell.hex里的内容复制出来,利用上文中写UDF文件的 *** 分段写入目标机自启目录下即可(老长了~~~)。

带目标服务器重启后,我们便可以得到目标主机的meterpreter:

image-20210123180726069

Metasploit下的利用

如果你觉得上面手动的 *** 麻烦的话,metasploit中也集成了相应的模块:exploit/windows/mysql/mysql_start_up

image-20210123194013796

使用如下:

执行后,msf将在目标主机的启动项中写入一个exe的msf木马:

image-20210123200839033

待目标主机重启后,便会得到目标主机的meterpreter:

image-20210123201259506

MySQL 0day 漏洞

CVE-2016-6662(可将mysql权限提升为系统root权限)

2016年,一个独立的研究组织发现多处严重的Mysql漏洞,此次通报的是其中比较严重的一个漏洞CVE-2016-6662,它允许攻击者远程注入恶意配置到被攻击服务器的Mysql配置文件my.cnf中,导致可加载任意扩展库。当扩展库中存在恶意指令时就可以Getshell。

该漏洞影响的版本如下:

  • mysql <=5.7.15

  • mysql <=5.6.33

  • mysql <=5.5.52

漏洞原理:

在Linux系统中,一些默认的Mysql安装包自带mysql_safe脚本作为包装器,当我们使用、等命令启动MySQL时,mysqld_safe封装脚本是以root权限启动的,而主要的mysqld进程却是用权限较低的mysql用户启动的。并且mysql_safe脚本将在mysql服务启动前预加载一个扩展库,这个扩展库可以在MySQL的配置文件my.cnf中通过名为malloc_lib的配置项进行设置,该配置项写在[mysqld]下。

如果我们在my.cnf中通过malloc_lib配置项指定一个存在恶意代码的扩展库路径,那么在mysql重启的时候,这些代码将被以root权限执行,实现权限提升。

漏洞利用条件:

  • 攻击者已经获得了目标主机MySQL的权限

  • 目标主机的MySQL版本在漏洞影响范围内

  • 攻击者当前获得权限的MySQL用户为root权限(否则无法修改general_log_file全局变量)

下面,我们来复现该漏洞。

实验环境:

  • 目标机IP:192.168.1.10

  • 攻击机IP:192.168.1.7

首先,我们下载一个C脚本,用来编译成我们恶意的扩展库,可获得目标机的shell:

  • http://legalhackers.com/exploits/mysql_hookandroot_lib.c

如下修改该攻击脚本:

image-20210125113658054

执行如下命令编译生成恶意的扩展库文件mysql_hookandroot_lib.so:

image-20210125113802216

然后通过上文所讲的各种方式将生成的mysql_hookandroot_lib.so上传到目标机的/tmp目录下即可。

接下来,我们要确定要修改的MySQL配置文件为哪个。MySQL的配置文件除了默认的 /etc/my.cnf,还有别的配置文件路径,并且是顺序读取的:

File NamePurpose
/etc/my.cnfGlobal options
/etc/mysql/my.cnfGlobal options
SYSCONFDIR/my.cnfGlobal options
$MYSQL_HOME/my.cnfServer-specific options (server only)
defaults-extra-fileThe file specified with, if any
~/.my.cnfUser-specific options
~/.mylogin.cnfUser-specific login path options (clients only)

可见MySQL不仅会读取/etc/my.cnf,还会读取$MYSQL_HOME/my.cnf即msyql自身目录下的mf.cnf。那我们到底修改哪一个my.cnf呢?答案是都可以,但更好是mysql目录下的,因为msyql目录毕竟是人家mysql自己的目录,以mysql用户运行的mysql当然是有权限写的,而别的文件可就不好说了。但也无法避免管理员的错误配置情况,所以,只要mysql用户有mysql配置文件的所属权限,攻击便可以追加恶意的配置项到该文件。

其次,我们还要确定用什么 *** 写my.cnf文件。一说到写文件,我们便可以想到into outfile和into dumpfile。但是在这里,我们不能用这种方式,因为outfile和dumpfile写出来的文件的权限为-rw-rw-rw,而MySQL有一个安全规则,即如果配置文件的权限可被其他用户写,则将会忽略这个配置文件。所以outfile和dumpfile写出来的配置文件不符合该安全规则。

我们可以用上文中讲的log写文件的 *** 。并且log写文件对于已存在的文件将会自动追加,正好可以避免写入的以下banner内容对MySQL配置文件的影响,也就是说,如果要用log写配置文件的话,该配置文件必须是mysql已经创建好的。

攻击者在目标主机的MySQL里执行以下操作即可写入MySQL配置文件:

image-20210125114046330

查看目标机MySQL配置文件,发现已经成功写入了恶意的配置项:

image-20210125114244958

然后等待目标mysql,攻击者机器上边获得了目标主机的shell:

image-20210125114420869

上述的操作要修改general_log全局变量,也就是说攻击者当前获得权限的MySQL用户必须是root权限。如果攻击者当前获得权限的MySQL用户不是root权限,则我们无法修改general_log全局变量,那么此时我们还可以利用此漏洞吗?当然可以,只需要一个具有 select、insert、create、file 权限的用户即可。

我们可以利用MySQL触发器的 *** 来成功写入修改配置文件:

当表刷新的时候就会执行触发器,比如通过insert来让表刷新:

触发器的代码会以mysql root权限执行,从而让攻击者修改general_log设置,即使此时攻击者没有数据库的管理员权限。

给出一个利用脚本:http://legalhackers.com/exploits/0ldSQL_MySQL_RCE_exploit.py

CVE-2016-6663(可将www-data权限提升为mysql权限)

2016年11月01日,国外安全研究员Dawid Golunski在 MySQl、MariaDB 和 PerconaDB 数据库中发现条件竞争漏洞。该漏洞允许本地用户使用低权限(CREATE/INSERT/SELECT权限)的账号提升权限到数据库系统用户权限(通常是mysql用户权限)来执行任意代码,黑客成功利用此漏洞后,可以完全访问数据库。

该漏洞影响的版本如下:

MySQL:

  • <=5.5.51

  • <=5.6.32

  • <=5.7.14

漏洞利用条件:

  • 攻击者已经获取到目标服务器的webshell权限

  • 可以通过反弹shell的 *** 获得目标主机的交互环境

  • 已经拿到了一个低权限(CREATE/INSERT/SELECT权限)的 MySQL 账户的用户名和密码

  • 目标主机的MySQL版本在漏洞影响范围内

下面我们来复现该漏洞。

实验环境:

  • 目标机IP:192.168.1.10

  • 攻击机IP:192.168.1.7

假设我们已经通过蚁剑获得了目标主机的webshell权限。

首先,我们先下载一个C脚本 mysql-privesc-race.c,通过蚁剑将编译将其上传到目标主机。然后执行如下命令反弹个shell获取目标主机的交互环境:

image-20210125142800069

然后执行如下命令将上传的攻击脚本编译生成我们的exp程序:

image-20210125142914734

最后,在shell环境中执行的exp程序:

  • whoami:已经拿到了一个低权限(CREATE/INSERT/SELECT权限)的 MySQL 用户名

  • 123456:低权限 MySQL 用户的密码

  • localhost:数据库地址

  • whoami_db:属于whoami用户的数据库

执行成功后会获得一个mysql权限,要想提升到系统root权限还需要配合CVE-2016-6664漏洞,大概如下:

但我在本地测试失败了,总是报错说“cp: cannot create regular file '/tmp/mysql_privesc_exploit/mysql_suid_shell.MYD': Permission denied”,有知道原因的大佬还请写在评论里告诉我。

CVE-2016-6664(可将mysql权限提升为root权限)

该漏洞可以使mysql用户权限提升为系统root权限。

该漏洞影响的版本如下:

MySQL :

  • <=5.5.51

  • <=5.6.32

  • <=5.7.14

漏洞利用条件:

  • 攻击者已经获取到目标服务器的webshell权限。

  • 可以通过反弹shell的 *** 获得目标主机的交互环境。

  • 已经通过CVE-2016-6663等方式获取到系统mysql用户权限。

  • 目标主机的MySQL版本在漏洞影响范围内。

  • 目标主机配置必须是是基于文件的日志(默认配置),也就是不能是syslog方式。执行没有任何结果既满足“基于文件的日志”要求。

该漏洞利用很简单,首先下载漏洞利用脚本 mysql-chowned.sh,将该脚本上传到目标主机并以系统mysql用户权限运行即可获取系统root权限:

**注意:**必须以mysql权限执行mysql-chowned.sh才能成功提为root,所以,该漏洞常常需要配合CVE-2016-6663。可以先利用CVE-2016-6663漏洞获取mysql权限的shell然后再执行mysql-chowned.sh。

CVE-2016-6662、CVE-2016-6663、CVE-2016-6664这几个漏洞常常是配合起来利用的。

Ending......


文中定有不足之处,还请各位大佬多多指教,小生还需多多向各位前大佬们学习。

我的博客:https://whoamianony.top/?

参考:

https://www.cnblogs.com/xiaozi/p/12767050.html

https://www.sqlsec.com/2020/11/mysql.html#toc-heading-31

https://www.uedbox.com/post/58919/

https://blog.csdn.net/qq_36119192/article/details/84863268

https://www.cnblogs.com/3ichae1/p/12909952.html

https://blog.csdn.net/fly_hps/article/details/80944170

https://www.freebuf.com/vuls/243513.html

https://mp.weixin.qq.com/s?__biz=MzIyNjE4NDcyMA==&mid=2247484839&idx=1&sn=16720fb8e035c8bbe612d738839262c5&chk *** =e8751ed8df0297ce54ef5acabd5a42f66f81f66b56b168ba80a3af5d55877d546aee33dd8510&scene=0#rd

https://www.k0rz3n.com/2018/10/21/Mysql 在渗透测试中的利用

https://www.anquanke.com/post/id/84557

https://www.anquanke.com/post/id/84554

https://www.freebuf.com/vuls/243513.html

https://www.anquanke.com/post/id/84553

https://xz.aliyun.com/t/1122#toc-2

相关文章

如何使用Sub404快速检测子域名接管漏洞

如何使用Sub404快速检测子域名接管漏洞

Sub404是什么?Sub404是一款基于Python开发的工具,可以帮助广大研究人员快速检测出潜在的子域名接管漏洞,该工具的运行速度非常快,并且支持异步扫描和业务处理方式。在网络侦察的过程中,我们可...

成语纸醉金迷的意思(怎样形容纸醉金迷的生活)

  “醉”,醉人;要“入迷”。初衷是被光芒万丈的金纸迷住。用来形容奢侈、颓废、享受的生活。   来源   宋顾涛《清异录居室》:“(一一萌斧)有一间小房,窗明几净,金摆件。纸张亮白,金色醒目。演讲...

训练猎狗有哪些方法(优秀的猎犬是怎么训练的

训练猎狗有哪些方法(优秀的猎犬是怎么训练的

如何训练猎犬呢?我国猎人训练猎犬的经验十分丰富,总结起来,有基本训练原则、幼犬的初级训练和狩猎训练。 现分述如下: 1.猎犬训练的基本原则:在没有详细介绍幼犬的初级训练和狩猎训练之前,先淡谈训...

偷偷的获取微信密友位置,不能让同伙发现 (偷偷查询定位的具体方法)

想要查看cpu的性能等参数,该怎么查看呢?下面我们就来看看详细的教程。 1、一手按住Ctrl和Shift,另一手点一下Esc。即可调出“义务治理器”,也可以右击义务栏,选择义务治理器。 2、选择“...

明日方舟飞翔的怪盗如何打 飞翔的怪盗打法心得分享

明日方舟飞翔的怪盗怎么打?在刻俄柏的灰蕈迷境中有一个比较难打的敌人叫做“飞翔的怪盗”,那么这个家伙应该怎么应对呢?下面就是优游网小编为大家带来的明日方舟飞翔的怪盗打法攻略了,一起来看看吧! 明日方...

Google聘请12家游说公司 应对FTC调查

 中国北京时间7月2日信息,据海外新闻媒体,在美国联邦贸易委员会刚开始对其业务流程进行调研后,Google聘用了12家劝谏企业。   Google在一份电子邮箱中表明,该企业聘用的12家劝谏企...