关键词:
测试文件:https://www.lanzous.com/iaup43c
文件提取
binwalk
首先需要使用binwalk对文件进行提取。安装教程:https://blog.csdn.net/QQ1084283172/article/details/65441110
binwalk -e fire.bin
firmware-mod-kit分析
安装
sudo yum install git build-essential zlib1g-dev liblzma-dev python-magic
git clone https://github.com/mirror/firmware-mod-kit.git
cd firmware-mod-kit/src
./configure
make
说明
extract-firmware.sh 解包固件
build-firmware.sh 重新封包
check_for_upgrade.sh 检查更新
unsquashfs_all.sh 解包提取出来的squashfs文件
将_fire.bin.extracted文件夹中的120200.squashfs文件,转存到firmware-mod-kit文件夹
mv /root/_fire.bin.extracted/120200.squashfs /root/firmware-mod-kit
cd firmware-mod-kit
./unsquashfs_all.sh 120200.squashfs
cd squashfs-root/tmp/
dir
第三条指令,可以使用绝对路径,不过我报错了,所以用的相对路径。
提取出的backdoor就是我们需要的文件。
文件分析
upx脱壳
代码分析
因为题目中是让我们找网址+端口的md5加密结果,因此我们只需要在String window找网址和端口就行。
找到源处
bool initConnection() char *v0; // r0 char s; // [sp+4h] [bp-208h] int v3; // [sp+204h] [bp-8h] memset(&s, 0, 0x200u); if ( mainCommSock ) close(mainCommSock); mainCommSock = 0; if ( currentServer ) ++currentServer; else currentServer = 0; strcpy(&s, (&commServer)[currentServer]); v3 = 36667; if ( strchr(&s, 58) ) v0 = strchr(&s, 58); v3 = atoi(v0 + 1); *strchr(&s, 58) = 0; mainCommSock = socket(2, 1, 0); return connectTimeout(mainCommSock, &s, v3, 30) == 0;
即:echo.byethost51.com:36667
get flag!
flag33a422c45d551ac6e4756f59812a954b
csharp代码片段(代码片段)
javascript代码片段(代码片段)
textvisualbasic代码片段(代码片段)
sqloracle代码片段(代码片段)
swift代码片段(代码片段)
java代码片段【安卓】(代码片段)
shbash的代码片段(代码片段)
markdownphpexcelnotes和代码片段(代码片段)
javaandroid的代码片段(代码片段)
javascriptjs-常用代码片段(代码片段)
常用代码片段(代码片段)
单例模式privatestaticHttpUtilinstance;publicstaticsynchronizedHttpUtilgetInstance()if(instance==null)instance=newHttpUtil();returninstance; 查看详情
常用代码片段(代码片段)
单例模式privatestaticHttpUtilinstance;publicstaticsynchronizedHttpUtilgetInstance()if(instance==null)instance=newHttpUtil();returninstance; 查看详情
text代码片段很有用(代码片段)
vbscript我的代码片段(代码片段)
java代码片段【java】(代码片段)
rr有用的代码片段(代码片段)
常见的代码片段(代码片段)
$(id).select2(placeholder:"--请选择--",allowClear:true,data:list); 查看详情