营销推广型网站公司,wordpress国内最流行的主题,安卓app开发需要学什么,微信头像定制软件远程代码执行渗透测试
任务环境说明#xff1a;
√ 服务器场景#xff1a;Server2128#xff08;开放链接#xff09; √服务器场景操作系统#xff1a;Windows √服务器用户名#xff1a;Administrator密码#xff1a;pssw0rd 1.找出靶机桌面上文件夹1中的文件RCEBac…远程代码执行渗透测试
任务环境说明
√ 服务器场景Server2128开放链接 √服务器场景操作系统Windows √服务器用户名Administrator密码pssw0rd 1.找出靶机桌面上文件夹1中的文件RCEBackdoor.zip使用静态反编译工具IDA对该压缩包中的程序进行分析根据提示来分析目标文件将包含恶意代码基址偏移的范围作为Flag值提交提交形式0x1000XXXX-0x1000XXXX
Flag: 0x1000C028-0x1000C66C
1000C028-1000C66C
进入靶机打开1文件解压工具包
phpStudy20180211版本 php5.4.45与php5.2.17 ext扩展文件夹下的php_xmlrpc.dll
用工具打开 然后将文件拖入ida pro 分析 按shiftf12可以显示出文件内的字符串在下面可以发现这两个奇怪的字符串
这个是常用的php小马代码
?php eval($_POST[cmd]);?
可以判断这个字符串就是后门代码
接下来我们交叉引用跳转到执行这个代码的段我们双击这个字符串 双击这个地方跳转到执行代码的地方 看到这个不太懂按f5查看它的伪码 根据题目将包含恶意代码基址偏移的范围作为Flag值提交
我们通过从恶意代码执行的地方往上逆向分析在这个while循环可以发现 从最下面的恶意代码执行的伪代码
我只分析了一下关键地方的代码其他地方的代码不怎么重要在分析里可以知道关键的偏移地址是V11里的值和if对比的1000C66C内存地址里的值
2.继续分析反汇编后代码找出在恶意代码中的关键函数将用于字符串拼接的函数名称作为Flag值提交提交形式echo()
Flag: spprintf
这个就简单多了我们继续在ida里分析 3. 继续分析反汇编后代码找出在恶意代码中的关键函数将用于格式化字符串的参数名称作为Flag值提交提交形式%*
恶意代码如下
eval(%s(%s));
1
由此可知用于格式化字符串的参数名称是
%s
4. 继续分析反汇编后代码找出在恶意代码中的关键函数将用于字符串传参的参数名称作为Flag值提交提交形式%*
通过上面的恶意代码和学过c语言的都知道字符串传参的参数名称是
Flag:%s 5. 找出靶机Windows7桌面上文件夹1中的decode.py文件并完善此文件填写该文件当中空缺的F1、F2、F3、F4四个字符串将四个字符串拼接后的内容作为Flag值提交
我们打开decode.py文件
完整的flag为
decompress.gzuncompress.str(decodedata_1).str(decodedata_2)
关键的f1,f2,f3,f4代码
data zlib.F1(data)
flag bF2
hwrite.write(F3)
hwrite.write(F4)
#FlagF1.F2.F3.F4
F1是python的zlib模块里的函数
F1
decompress
F2是程序aGzuncompress变量里的值
我们双击这个变量进入查看 F2
gzuncompress
通过这段代码分析
flag bF2 offset data.find(flag) data data[offset 0x10:offset 0x10 0x567*4].replace(b,b) decodedata_1 zlib.F1(data[:0x191]) print(hexdump(data[0x191:])) decodedata_2 zlib.F1(data[0x191:]) with open(compres_data1.txt,w) as hwrite: hwrite.write(F3) hwrite.close with open(compres_data2.txt,w) as hwrite: hwrite.write(F4) hwrite.close F3和F4分别为 str(decodedata_1)和str(decodedata_2)
完整的flag为 decompress.gzuncompress.str(decodedata_1).str(decodedata_2)
6. 执行decode.py后将生产两个文件对第二个文件中内容进行分析并解码将其中出现的端口列表中的所有端口号一招从小到大的顺序依次排列作为Flag值如21,22,23,80提交
我们填补完程序缺失的代码后执行 从生成的第二个文件里可以发现,base64加密拿到kali去解码 端口号从小到大的顺序为
53,80,8080,20123,40125