前言
天天打CTF着实给我整无聊了 上课的时候听到我们老师说自己写了一款软件可以监视我们的行为 并且限制娱乐软件的打开 瞬时就感兴趣了 这我能错过?
基本面
通过Linux to go 搞到了软件
32位 没有加壳(这边建议老师可以加下壳)
两款软件都是VB语言写的唉 说实话现在大部分都是C写的程序
见到这VB写的确实一股清流了
静态分析
monitor
先来看下monitor
其实VB这种程序 相比C来看的话 要容易分析的多
因为VB特征实在是太明显了 点按触发事件 每个事件基本都能清晰的看到(反编译出来)
随便截几张图看看吧
看下软件的基本信息 哈哈好像除了姓名没啥子重要的信息了
简洁的主界面不愧是徐工的审美
从这里就看到是检测使用窗口检测技术 确切说应该是进程检测 相比C语言中的api还是有点不同的
这个位置好像还是挺关键的 先mark上
提到了另一个程序 可以先mark上
这里基本就实锤了是检测了进程的名称 检测到之后直接强制退出该进程
估计是与学生在斗智斗勇吧 确实挺不容易的
key = 666666 这密码也是真的够六的
功能还是挺多直接上思维导图吧
monitorprt
第二款软件应该是与第一款软件配合使用的
这个程序就很有意思了 GetWindowHwndByTitleRegExp 明显是来获取窗口名称的api
所以只要带有这些关键字都不用想了
连用户都上了 也是费尽心思了 哈
我说我动调的时候出现windows直接给我干没了
下面的jpg 估计就是开机背景了 自动把壁纸更换了
至于壁纸从哪里来的 刚才看过monitor程序就应该知道
大概率服务器中下载的
这个壁纸不得不说还是挺有想法的
关闭窗口用到的api 还是挺全的 这要是用C来写的话很难看的这么详细
动态分析
静态分析的话 基本也能看的差不多
不过动调才能看出程序的运行逻辑
直接上od看下 根据我的经验 运行起来检测到windows字段很快就被杀死
小心调一下试试
一点都不意外哈 直接壁纸给我换了 并且要求输入姓名学号
运行之后出现错误
其实不难理解 是因为时间的原因
把电脑时间设置一下就可以了(不是晚上就行)
重启重新调一下
看到学生端字样估计就在这运行的程序
想着在这下个断点来着
下了之后跑起来发现
好像用处不是很大
都说VB程序就像加了变态的壳一样
不体验一下着实不知道有这么恶心
又让他跑了一下堆栈发现了一些学生的名单 估计用来测试的
byte ptr ds:[eax+4C0000]=[004C0000 “2017101635\r\n*遥2017101637\r\n王*川2017101639\r\n刘*2017101641\r\n*安2017101643\r\n王*田2017101645\r\nend”]=32 ‘2’
不过感觉这个程序可能是因为拷过来或者版本有点小问题 好像没有办法直接通过这些姓名学号直接登录
柳暗花明
只能换个思路来看看了
既然它这个程序打开后生成了 upload 和 receive 所以 肯定是与服务器进行了通讯
通过静态分析也可以证实这一点
至于是哪个服务器 我不说你们也知道了
so 正常操作不行 那就直接去后台看看?
流量分析
想到与服务器进行通讯的话 一开始我想用burp抓包来着
但是我们是想搞到ip地址来着 不如直接走波流量分析?
因为是虚拟机的流量直接VMnet8就行了
开始捕获之后
进入虚拟机打开软件就可以看到软件的流量了
分析了一波之后发现好像并没有发现后台的服务器ip
当时想着既然换掉了壁纸 但是这个壁纸会不会是从服务器中获取来着
看起来并不是这样 壁纸应该是嵌在了软件里面了
不过这里用到了TLSv1.2协议
所以服务器是肯定存在的
至于为啥我这么肯定有服务器 其实也是老师说了句
服务器上可以一键切换模式
还有另一种方式可以控制被控电脑吗? 如果有的话估计也就是远程下线之类的了
所以肯定是哪里漏掉了重要的信息
GET IP
再次去程序中找一下
原来在这里 昨晚竟然没有注意到(lll¬ω¬)
有了ip先干点啥呢
当然是ping一下啦
能通!
这不访问一波试试
居然能直接访问到
而且没有设置下载权限!
那这多不好意思呀 勉为其难看下这软件后台把
可以耶 不过这版本应该是挺老的了 能用的几率也不是很大了 就这样吧
End
这软件写起来估计得花不少时间
软件写的确实很有意思
可以说一直在于学生斗智斗勇了
不过像我这么无聊的学生应该不多。。。
多谢徐工的软件
也算是让我这re选手能有了一点体验感
正如徐工(壁纸)所说:
不要仰望别人 自己亦是风景
感谢观看~~~