靶机来源: 知攻善防实验室公众号 https://mp.weixin.qq.com/s/xf2FgkrjZg-yWlB9-pRXvw

我是在另一台主机上通过ssh连接到靶机进行解题的,我的ip为192.168.1.103,以下为个人解题记录,写的比较粗糙,有不对的地方希望各位大佬指正。

背景

前景需要:看监控的时候发现webshell告警,领导让你上机检查你可以救救安服仔吗!!

挑战内容:

(1)提交攻击者IP

(2)提交攻击者修改的管理员密码(明文)

(3)提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)

(4)提交Webshell连接密码

(5)提交数据包的flag1

(6)提交攻击者使用的后续上传的木马文件名称

(7)提交攻击者隐藏的flag2

(8)提交攻击者隐藏的flag3

解题

首先查看当前主机最近的用户登录情况,如何攻击者成功登录,那么可以查到成功登录的记录。

[root@web-server ~]# grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
/var/log/secure:Mar 20 10:30:25 root 127.0.0.1
/var/log/secure:Mar 20 14:30:21 root 192.168.20.1
/var/log/secure:Mar 20 15:04:22 root 192.168.20.1
/var/log/secure:Mar 20 15:36:28 root 192.168.20.1
/var/log/secure:Mar 23 00:43:50 root 192.168.1.103
/var/log/secure:Mar 23 00:50:26 root 192.168.1.103
/var/log/secure-20240320:Mar 4 09:48:23 root 192.168.20.1
/var/log/secure-20240320:Mar 7 11:37:01 root 192.168.20.1
/var/log/secure-20240320:Mar 7 14:07:42 root 192.168.20.1
/var/log/secure-20240320:Mar 7 14:39:51 root 192.168.20.1
/var/log/secure-20240320:Mar 7 15:25:23 root 192.168.20.1
/var/log/secure-20240320:Mar 7 15:36:49 root 192.168.20.1
/var/log/secure-20240320:Mar 20 07:59:13 root 192.168.20.1

除了我的ip地址192.168.1.103登录外,ip地址192.168.20.1也登录了,那么这个可能就是攻击者的ip,提交判题程序得知正确。

接着查看一下机器上有没有什么可疑的程序。发现该机器上运行着nginxmysql,那么第二题中说的管理员密码,应该是运行在该机器上的某个系统的管理员密码。

[root@web-server ~]# netstat -anltup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 1140/nginx: master
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1505/master
tcp 0 0 0.0.0.0:12485 0.0.0.0:* LISTEN 2140/python3
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1140/nginx: master
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1058/pure-ftpd (SER
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1024/sshd
tcp 0 0 192.168.1.106:22 192.168.1.103:56462 ESTABLISHED 2523/sshd: root@pts
tcp 0 0 192.168.1.106:22 192.168.1.103:55898 ESTABLISHED 2473/sshd: root@pts
tcp6 0 0 ::1:25 :::* LISTEN 1505/master
tcp6 0 0 :::3306 :::* LISTEN 2132/mysqld
tcp6 0 0 :::21 :::* LISTEN 1058/pure-ftpd (SER
tcp6 0 0 :::22 :::* LISTEN 1024/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 836/dhclient

然后,发现默认的文件夹下给了一个流量数据包,下载这个数据包使用wireshark进行分析。

[root@web-server ~]# ls
anaconda-ks.cfg wp 数据包1.pcapng

首先,过滤一下http报文,可以看到这些报文都是攻击者192.168.20.1在访问Linux主机。



先浏览一下过滤出来的报文,发现攻击者访问了/flag1路径,追踪http流。



发现了一个第一个flag:flag1{Network@_2020_Hack},提交判题程序得知正确。



除此之外,访问的URI就是index.php?user-app-registerversion2.php

接着看一下过滤出来的第一个http报文,同样追踪http流



在返回包中看到了路径,还有内核版本还有当前用户名



那么,攻击者应该是通过这个请求执行了某些命令,看看请求包中的内容是什么。



可以看到请求体中,有一个ini_set()函数,这是蚁剑的特征函数,可以得知,攻击者使用的是蚁剑管理Webshell。那么,前面的Network2020就是这个Webshell的连接密码,提交判题程序得知正确。

这是通过http过滤出来的第一个数据包,那么攻击者第一次Webshell的连接URL就是index.php?user-app-register,提交判题程序得知正确。

接着,来看看攻击者通过这个Webshell做了什么操作。

先将请求体中的内容进行URL解码



从解码后的内容中可以看出这是PHP代码,再将这个PHP代码进行格式化



得到PHP代码如下:

Network2020=@ini_set("display_errors", "0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir) {
$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
@array_push($oparr,$ocwd,sys_get_temp_dir());
foreach($oparr as $item) {
if(!@is_writable($item)) {
continue;
}
;
$tmdir=$item."/.fd491f470fb7";
@mkdir($tmdir);
if(!@file_exists($tmdir)) {
continue;
}
$tmdir=realpath($tmdir);
@chdir($tmdir);
@ini_set("open_basedir", "..");
$cntarr=@preg_split("/\\\\|\//",$tmdir);
for ($i=0;$i<sizeof($cntarr);$i++) {
@chdir("..");
}
;
@ini_set("open_basedir","/");
@rmdir($tmdir);
break;
}
;
}
;
;
function asenc($out) {
return $out;
}
;
function asoutput() {
$output=ob_get_contents();
ob_end_clean();
echo "4a0c"."dc70";
echo @asenc($output);
echo "db6"."da5";
}
ob_start();
try {
$D=dirname($_SERVER["SCRIPT_FILENAME"]);
if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);
$R="{$D} ";
if(substr($D,0,1)!="/") {
foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";
} else {
$R.="/";
}
$R.=" ";
$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
$s=($u)?$u["name"]:@get_current_user();
$R.=php_uname();
$R.=" {$s}";
echo $R;
;
}
catch(Exception $e) {
echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

结合上面的代码和返回包的内容可以看出,攻击者获取了当前脚本所在目录、PHP版本信息、当前用户信息。

现在,我们得知该系统的目录在/www/wwwroot/127.0.0.1/下,查看该目录

[root@web-server 127.0.0.1]# ls -liah
total 12K
52362827 drwxr-xr-x 10 www www 137 Mar 20 14:54 .
18205792 drwxr-xr-x 4 root root 38 Mar 7 12:01 ..
34114635 drwxr-xr-x 2 www www 111 Sep 14 2023 api
33866315 drwxr-xr-x 2 root root 111 Mar 20 14:57 .api
52363663 drwxr-xr-x 15 www www 186 Sep 14 2023 app
19094350 drwxr-xr-x 4 www www 33 Mar 7 12:07 data
34416536 drwxr-xr-x 4 www www 34 Sep 14 2023 files
52432799 -rwxr-xr-x 1 www www 176 Jun 25 2023 index.php
52432800 drwxr-xr-x 3 www www 4.0K Sep 14 2023 lib
52433597 drwxr-xr-x 2 www www 41 Sep 14 2023 tasks
52362828 -rw-r--r-- 1 root root 42 Mar 7 12:01 .user.ini
1871062 drwxr-xr-x 2 www www 6 Sep 13 2023 vendor

如果攻击者修改了管理员的密码,那么修改后的密码应该存在数据库中,但是我不知道数据库的账号密码,所以找找配置文件,看看能不能找到数据库的账号密码。在该目录下的lib目录下,找到了配置文件config.inc.php,发现数据库的账号密码为:kaoshi: 5Sx8mK5ieyLPb84m

[root@web-server lib]# cat config.inc.php
<?php /** 常规常量设置 */
...此处省略... /**接口加密设置**/
define('APIKEY','356d9abc2532ceb0945b615a922c3370');
define('APIIV','#phpems90iv*');
/**composer开关**/
define('COMPOSER',0);
/** 数据库设置 */
define('SQLDEBUG',0);
define('DB','kaoshi');//MYSQL数据库名
define('DH','127.0.0.1');//MYSQL主机名,不用改
define('DU','kaoshi');//MYSQL数据库用户名
define('DP','5Sx8mK5ieyLPb84m');//MYSQL数据库用户密码
define('DTH','x2_');//系统表前缀,不用改 /** 微信相关设置 */
...此处省略... /** 支付宝相关设置 */
...此处省略...
?>

登录数据库,直接查看用户数据表。

[root@web-server lib]# mysql -u kaoshi -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.44-log Source distribution Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| kaoshi |
+--------------------+
2 rows in set (0.00 sec) mysql> use kaoshi;
Database changed
mysql> show tables;
+---------------------+
| Tables_in_kaoshi |
+---------------------+
| x2_answer |
| x2_app |
| x2_area |
| x2_ask |
| x2_attach |
...此处省略... | x2_session |
| x2_subject |
| x2_user |
| x2_user_group |
| x2_wxlogin |
+---------------------+
61 rows in set (0.00 sec) mysql> select * from x2_user;
+--------+------------+-------------+-----------------+----------------+----------------------------------+----------+----------------+-------------+-------------+----------------+-------------+--------------+------------+------------------------------------------------------------------------------------------------------------------------------+--------------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+-----------+-------------+---------------------------------------------------------+------------+------------+
| userid | useropenid | userunionid | username | useremail | userpassword | usercoin | userregip | userregtime | userlogtime | userverifytime | usergroupid | usermoduleid | useranswer | manager_apps | usertruename | normal_favor | teacher_subjects | userprofile | usergender | userphone | useraddress | userphoto | userstatus | normal_sfz |
+--------+------------+-------------+-----------------+----------------+----------------------------------+----------+----------------+-------------+-------------+----------------+-------------+--------------+------------+------------------------------------------------------------------------------------------------------------------------------+--------------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+-----------+-------------+---------------------------------------------------------+------------+------------+
| 1 | | NULL | peadmin | 958074@163.com | f6f6eb5ace977d7e114377cc7098b7e3 | 279 | 127.0.0.1 | 1471795200 | 0 | NULL | 1 | 0 | NULL | a:7:{i:0;s:4:"user";i:1;s:7:"content";i:2;s:4:"exam";i:3;s:8:"document";i:4;s:6:"course";i:5;s:4:"bank";i:6;s:8:"autoform";} | 111111111111111111 | | | | 男 | | 信息部 | files/attach/images/content/20230802/16909740072788.jpg | 3 | |
| 2 | | NULL | 教师管理员 | 958074@126.com | 96e79218965eb72c92a549dd5a330112 | 98 | 127.0.0.1 | 1471795200 | 0 | NULL | 9 | 0 | NULL | | 213123 | | a:14:{i:0;s:2:"13";i:1;s:2:"12";i:2;s:1:"5";i:3;s:1:"4";i:4;s:1:"3";i:5;s:1:"1";i:6;s:1:"2";i:7;s:2:"17";i:8;s:2:"15";i:9;s:2:"16";i:10;s:2:"18";i:11;s:2:"19";i:12;s:2:"20";i:13;s:2:"21";} | 77777 | | | | | 3 | |
| 3 | | | zgsf | zgsf@Admin.com | af0c68603004a1b5af4d87a71a813057 | 0 | 192.168.20.131 | 1709795218 | 0 | 0 | 8 | 0 | | | | | | | | | | | 0 | |
| 4 | | | zgsfAdmin | zgsf@zgsf.com | ed2b3e3ce2425550d8bfdea8b80cc89a | 0 | 192.168.20.131 | 1709796233 | 0 | 0 | 8 | 0 | | | | | | | | | | | 0 | |
+--------+------------+-------------+-----------------+----------------+----------------------------------+----------+----------------+-------------+-------------+----------------+-------------+--------------+------------+------------------------------------------------------------------------------------------------------------------------------+--------------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+------------+-----------+-------------+---------------------------------------------------------+------------+------------+
4 rows in set (0.12 sec) mysql>

通过查看x2_user_group表得知,groupid为1的是管理员。

mysql> select * from x2_user_group;
+---------+--------------+---------------+---------------+------------+--------------------+--------------+
| groupid | groupname | groupmoduleid | groupdescribe | groupright | groupmoduledefault | groupdefault |
+---------+--------------+---------------+---------------+------------+--------------------+--------------+
| 1 | 管理员 | 1 | 管理员 | | 1 | 0 |
| 8 | 普通用户 | 9 | 普通用户 | | 0 | 1 |
| 9 | 教师 | 12 | 教师 | | 0 | 0 |
+---------+--------------+---------------+---------------+------------+--------------------+--------------+
3 rows in set (0.00 sec)

那么peadmin应该就是被修改密码的管理员,拿到密码的md5值f6f6eb5ace977d7e114377cc7098b7e3。找个网站解一下看看,得到明文密码为Network@2020,提交判题程序得知正确。



到此,前五个问题的答案的都有了,回去接着分析流量,找找攻击者后续上传的木马文件名称。

通过wireshark的过滤器,将http包和POST请求过滤出来,因为攻击者的操作在请求包中都可以看到。



分析一下请求index.php?user-app-register地址的第二个流量包,得到PHP代码如下:

Network2020=@ini_set("display_errors", "0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir) {
$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
@array_push($oparr,$ocwd,sys_get_temp_dir());
foreach($oparr as $item) {
if(!@is_writable($item)) {
continue;
}
;
$tmdir=$item."/.24b0d";
@mkdir($tmdir);
if(!@file_exists($tmdir)) {
continue;
}
$tmdir=realpath($tmdir);
@chdir($tmdir);
@ini_set("open_basedir", "..");
$cntarr=@preg_split("/\\\\|\//",$tmdir);
for ($i=0;$i<sizeof($cntarr);$i++) {
@chdir("..");
}
;
@ini_set("open_basedir","/");
@rmdir($tmdir);
break;
}
;
}
;
;
function asenc($out) {
return $out;
}
;
function asoutput() {
$output=ob_get_contents();
ob_end_clean();
echo "02e"."9bd";
echo @asenc($output);
echo "6f2"."72a8";
}
ob_start();
try {
$D=base64_decode(substr($_POST["x0b6b31b98f31d"],2));
$F=@opendir($D);
if($F==NULL) {
echo("ERROR:// Path Not Found Or No Permission!");
} else {
$M=NULL;
$L=NULL;
while($N=@readdir($F)) {
$P=$D.$N;
$T=@date("Y-m-d H:i:s",@filemtime($P));
@$E=substr(base_convert(@fileperms($P),10,8),-4);
$R=" ".$T." ".@filesize($P)." ".$E."
";
if(@is_dir($P))$M.=$N."/".$R; else $L.=$N.$R;
}
echo $M.$L;
@closedir($F);
}
;
}
catch(Exception $e) {
echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();
x0b6b31b98f31d=TtL3d3dy93d3dyb290LzEyNy4wLjAuMS8=

其中,最后一行的x0b6b31b98f31d=TtL3d3dy93d3dyb290LzEyNy4wLjAuMS8=是需要执行的参数,因为蚁剑会将参数进行base64编码,然后在最前面随机添加两个字母,所以想知道这个参数是什么应该对L3d3dy93d3dyb290LzEyNy4wLjAuMS8=进行base64解码,得到参数为/www/wwwroot/127.0.0.1/,再结合x0b6b31b98f31d变量名的位置,得知攻击者做了查看当前目录下文件的操作,从返回包的内容也可以猜出来。

大致分析了一下这些流量包后,发现攻击者在/www/wwwroot/127.0.0.1/目录下创建了flag1 文件并写入flag,然后写入一个新的木马shell.php,再改名为version2.php,那么后续访问version2.php的流量包应该就是后续上传的木马文件了,将文件名称提交给判题程序得知正确。



通过追踪http流发现,version2.php内容如下:



搜索红框中的代码,发现好像是冰蝎的马。后续追踪version2.php的http流发现都是加密的了,攻击者可能是换了一个Webshell管理工具。



到这里,攻击者已经getshell。剩下两个flag应该都在Linux机器中了。

回到Linux机器中,看看攻击者在机器上进行了什么操作。

[root@web-server ~]# history
...此处省略...
69 cd 127.0.0.1/
70 ls
71 ls -a
72 vim .api
73 ls
74 ls -a
75 mkdir .api
76 ls
77 ls -a
78 cd .api/
79 l
80 ls
81 cd ..
82 ls
83 cd ap
84 cd api/
85 ls
86 cp * ../.api/
87 ls
88 cd ..
89 ls
90 cd .api/
91 ls
92 vim mpnotify.php
93 yum install vim
94 ls
95 vim alinotify.php
96 cat /etc/shadow
97 who
98 w
99 history
100 useradd flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
101 env
102 $flag3 = [root@web-server .api]# useradd flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
103 useradd: invalid user name 'flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}'
104 $flag3 = flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
105 vim /etc/profile
106 source /etc/p
107 source /etc/profile
108 env

通过history命令,发现攻击者在环境变量中写入了第三个flag:flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ},并且攻击者在/www/wwwroot/127.0.0.1/中创建了文件夹.api隐藏文件,然后复制了api下的文件,并修改了其中的alinotify.php文件。查看一下这个文件,看看攻击者干了什么。

[root@web-server .api]# cat alinotify.php
<?php
namespace PHPEMS;
/*
* Created on 2013-12-26
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/ define('PEPATH',dirname(dirname(__FILE__)));
class app
{
public $G; public function __construct()
{ $this->ev = \PHPEMS\ginkgo::make('ev');
$this->order = \PHPEMS\ginkgo::make('orders','bank');
} public function run()
{
$alipay = \PHPEMS\ginkgo::make('alipay');
$orderid = $this->ev->get('out_trade_no');
$order = $this->order->getOrderById($orderid);
$verify_result = $alipay->alinotify();
if($verify_result)
{
if($this->ev->get('trade_status') == 'TRADE_FINISHED' ||$this->ev->get('trade_status') == 'TRADE_SUCCESS')
{
if($order['orderstatus'] != 2)
{
$this->order->payforOrder($orderid,'alipay');
}
exit('sucess');
}
elseif($_POST['trade_status'] == 'WAIT_BUYER_PAY')
{
exit('fail');
}
else
{
exit('fail');
}
}
else
{
exit('fail');
}
}
} include PEPATH.'/lib/init.cls.php';
$app = new app(new ginkgo);
$app->run();
$flag2 = "flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}"; ?>

在文件的最后一行发现了flag2:flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}

至此就拿到了所有答案,不过我感觉好像管理员密码和最后两个flag都是作者的非预期解法,等一手官方题解吧。

推测攻击者的入侵方式

下面的内容都是我乱猜的:

根据目前的信息,知道攻击者先是通过蚁剑连接,写入冰蝎的马再通过冰蝎连接(?),然后在Linux机器上写入一个隐藏文件夹和环境变量,那么,攻击者是怎么打进来的?

通过搜索"index.php?user-app-register"发现该URI是PHPEMS模拟考试系统



再结合管理员密码被修改进行搜索,发现该系统可以通过反序列化+sql注入修改管理员密码。刚好在数据库中找密码时,看到了应该是反序列化时写入的内容(反序列化不太懂),因此推测攻击者应该是通过该方式修改了管理员密码,然后写入Webshell再使用蚁剑连接。

应急响应靶机训练-Linux2的更多相关文章

  1. 一些关于Linux入侵应急响应的碎碎念

    近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...

  2. Linux安全事件应急响应排查方法总结

    Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...

  3. Windows应急响应常识

    Windows 应急响应 常见事件ID 1102 清理审计日志 4624 账号登陆成功 4625 账号登陆失败 4672 授予特殊权限 4720 创建用户 4726 删除用户 4728 将成员添加到启 ...

  4. Window应急响应(五):ARP病毒

    0x00 前言 ARP病毒并不是某一种病毒的名称,而是对利用arp协议的漏洞进行传播的一类病毒的总称,目前在局域网中较为常见.发作的时候会向全网发送伪造的ARP数据包,严重干扰全网的正常运行,其危害甚 ...

  5. Window应急响应(一):FTP暴力破解

    0x00 前言 ​ FTP是一个文件传输协议,用户通过FTP可从客户机程序向远程主机上传或下载文件,常用于网站代码维护.日常源码备份等.如果攻击者通过FTP匿名访问或者弱口令获取FTP权限,可直接上传 ...

  6. Window应急响应(二):蠕虫病毒

    0x00 前言 ​ 蠕虫病毒是一种十分古老的计算机病毒,它是一种自包含的程序(或是一套程序),通常通过网络途径传播,每入侵到一台新的计算机,它就在这台计算机上复制自己,并自动执行它自身的程序. 常见的 ...

  7. Window应急响应(三):勒索病毒

    0x00 前言 ​ 勒索病毒,是一种新型电脑病毒,主要以邮件.程序木马.网页挂马的形式进行传播.该病毒性质恶劣.危害极大,一旦感染将给用户带来无法估量的损失.这种病毒利用各种加密算法对文件进行加密,被 ...

  8. Window应急响应(四):挖矿病毒

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...

  9. windows应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

  10. Linux应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

随机推荐

  1. 好书推荐之《码出高效》、《阿里巴巴JAVA开发手册》

    好评如潮 <阿里巴巴Java开发手册> 简介 <阿里巴巴Java开发手册>的愿景是码出高效,码出质量.它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软 ...

  2. JS LeetCode 566. 重塑矩阵题解分析,数组降维的几种方式

    壹 ❀ 引 今天是过完年到公司的第二天,年前因为封版,到今天我们小组是第一个发版的组,然后就各种踩坑,到现在还在公司等运维解决jenkins问题,闲着也是闲着,做一道算法题,简单记录下解题思路,本题来 ...

  3. STM32的时钟控制RCC和外设定时器

    STM32的RCC(Reset and Clock Control)时钟控制 stm32f103c8的时钟是72MHz, stm32f401ccu6的时钟是80M, 开发板板载两个晶振, 一个高速一个 ...

  4. The Network Adapter could not establish the connection errorCode 17002, state 08006

    问题说明 今天在centos7虚拟机中运行java程序,程序启动需要连接主机的oracle,报错: The Network Adapter could not establish the connec ...

  5. Direct2D CreateBitmap的使用

    当需要设置位图的混合模式时,应该使用ID2D1DeviceContext而不是ID2D1RenderTarget. 代码如下: #define WIN32_LEAN_AND_MEAN #include ...

  6. kafka学习笔记02-kafka消息存储

    kafka消息存储 broker.topic.partition kafka 的数据分布是一个 3 级结构,依次为 broker.topic.partition. 也可以理解为数据库的分库分表,然后还 ...

  7. Frida 原理

    frida注入的主要思路: 1.找到目标进程,使用ptrace跟踪目标进程 2.获取mmap,dlpoen,dlsym等函数库的偏移 3.获取mmap,在目标进程申请一段内存空间,将在目标进程中找到存 ...

  8. 矩池云教程|体验 OpenAI 最近推出的 3D 生成模型 Shap-E!

    Shap-E 是由 OpenAI 最近推出的3D生成模型,使用者可以通过简单的文字或图像进行三维模型的生成,OpenAI 认为相比于点云的生成模型Point-E,Shap-E的收敛更快.本文将展示如何 ...

  9. 【Azure 云服务】云服务(经典) 迁移至云服务(外延支持) 的相关疑问

    问题描述 根据微软官方文档说明,云服务(经典)已弃用.所以关于它有以下的一些疑问: 一:迁移时候的停机时间问题? 二:云服务(经典) 与 云服务(外延支持) 的区别是什么? 三:注意事项有那些呢?如 ...

  10. Nebula Graph 源码解读系列 | Vol.02 详解 Validator

    整体架构 Nebula Graph Query Engine 主要分为四个模块,分别是 Parser.Validator.Optimizer 和 Executor. Parser 完成对语句的词法语法 ...