搜索TscanPlas无意中发现一个超雄版的:https://github.com/bamuwe/TscanPlus_Win_Amd64_v2.2
然而没过一会就删库跑路了:
超雄版SHA1: 79F90CE8F40D5ADE747F7302CD59736D00B41DD1
官方程序SHA1: 7EE7A7EA93FCF2C32983C7E69658AF3F5C04CAE7
心里一惊赶紧看看,火绒和Defender自然是没报毒的,沙箱分析和官方版本也没什么差别,报恶意。主要想看看有没有插入shellcode。
对比官方版发现文件小了很多,查一下壳,果然UPX压缩了:
下个同版本的解压一下:
这下和原版文件大小差不多了,老办法进Kali转储16进制文件:
xxd TscanPlus_Win_v2.2_src.exe >src.hex
xxd TscanPlus_Win_Amd64_v2.2.exe >pat.hex
对比下修改点发现有66处不同,确实有点多
看了下大部分都是将值修改为0的改动,应该是某个数据或指针的初始化值从特定值变为零,还有一些就是常规的跳转指令的修改了:如ff74 -> ff75
,即JZ -> JNZ
,0f84 -> 0f85
,即JE -> JNE
,剩下的一些改动小的地方都差不多是修改跳转中指令和数据清零。重点看了看改动大的:
3221187,3221220c3221187,3221220
< 03126c20: 7445 7800 d305 5769 6465 4368 6172 546f tEx...WideCharTo
< 03126c30: 4d75 6c74 6942 7974 6500 e605 5772 6974 MultiByte...Writ
< 03126c40: 6543 6f6e 736f 6c65 5700 e705 5772 6974 eConsoleW...Writ
< 03126c50: 6546 696c 6500 f805 5f5f 435f 7370 6563 eFile...__C_spec
< 03126c60: 6966 6963 5f68 616e 646c 6572 0000 5200 ific_handler..R.
< 03126c70: 5f5f 6765 746d 6169 6e61 7267 7300 5300 __getmainargs.S.
< 03126c80: 5f5f 696e 6974 656e 7600 5400 5f5f 696f __initenv.T.__io
< 03126c90: 625f 6675 6e63 0000 5b00 5f5f 6c63 6f6e b_func..[.__lcon
< 03126ca0: 765f 696e 6974 0000 6100 5f5f 7365 745f v_init..a.__set_
< 03126cb0: 6170 705f 7479 7065 0000 6300 5f5f 7365 app_type..c.__se
< 03126cc0: 7475 7365 726d 6174 6865 7272 0000 7300 tusermatherr..s.
< 03126cd0: 5f61 636d 646c 6e00 7b00 5f61 6d73 675f _acmdln.{._amsg_
< 03126ce0: 6578 6974 0000 8800 5f62 6567 696e 7468 exit...._beginth
< 03126cf0: 7265 6164 0000 8900 5f62 6567 696e 7468 read...._beginth
< 03126d00: 7265 6164 6578 0000 8d00 5f63 6578 6974 readex...._cexit
< 03126d10: 0000 c600 5f65 6e64 7468 7265 6164 6578 ...._endthreadex
< 03126d20: 0000 c900 5f65 7272 6e6f 0000 fd00 5f66 ...._errno...._f
< 03126d30: 6d6f 6465 0000 4b01 5f69 6e69 7474 6572 mode..K._initter
< 03126d40: 6d00 b701 5f6c 6f63 616c 7469 6d65 3634 m..._localtime64
< 03126d50: 0000 6302 5f6f 6e65 7869 7400 0704 6162 ..c._onexit...ab
< 03126d60: 6f72 7400 1a04 6361 6c6c 6f63 0000 2704 ort...calloc..'.
< 03126d70: 6578 6974 0000 3a04 6670 7269 6e74 6600 exit..:.fprintf.
< 03126d80: 4104 6672 6565 0000 4d04 6677 7269 7465 A.free..M.fwrite
< 03126d90: 0000 7c04 6d61 6c6c 6f63 0000 8204 6d65 ..|.malloc....me
< 03126da0: 6d63 6872 0000 8304 6d65 6d63 6d70 0000 mchr....memcmp..
< 03126db0: 8404 6d65 6d63 7079 0000 8504 6d65 6d6d ..memcpy....memm
< 03126dc0: 6f76 6500 8604 6d65 6d73 6574 0000 9404 ove...memset....
< 03126dd0: 7173 6f72 7400 9804 7265 616c 6c6f 6300 qsort...realloc.
< 03126de0: a204 7369 676e 616c 0000 af04 7374 7263 ..signal....strc
< 03126df0: 6872 0000 b004 7374 7263 6d70 0000 b404 hr....strcmp....
< 03126e00: 7374 7263 7370 6e00 b704 7374 726c 656e strcspn...strlen
< 03126e10: 0000 ba04 7374 726e 636d 7000 be04 7374 ....strncmp...st
< 03126e20: 7272 6368 7200 bf04 7374 7273 706e 0000 rrchr...strspn..
< 03126e30: da04 7666 7072 696e 7466 0000 0040 1a03 ..vfprintf...@..
---
> 03126c20: 7445 7800 0000 5769 6465 4368 6172 546f tEx...WideCharTo
> 03126c30: 4d75 6c74 6942 7974 6500 0000 5772 6974 MultiByte...Writ
> 03126c40: 6543 6f6e 736f 6c65 5700 0000 5772 6974 eConsoleW...Writ
> 03126c50: 6546 696c 6500 0000 5f5f 435f 7370 6563 eFile...__C_spec
> 03126c60: 6966 6963 5f68 616e 646c 6572 0000 0000 ific_handler....
> 03126c70: 5f5f 6765 746d 6169 6e61 7267 7300 0000 __getmainargs...
> 03126c80: 5f5f 696e 6974 656e 7600 0000 5f5f 696f __initenv...__io
> 03126c90: 625f 6675 6e63 0000 0000 5f5f 6c63 6f6e b_func....__lcon
> 03126ca0: 765f 696e 6974 0000 0000 5f5f 7365 745f v_init....__set_
> 03126cb0: 6170 705f 7479 7065 0000 0000 5f5f 7365 app_type....__se
> 03126cc0: 7475 7365 726d 6174 6865 7272 0000 0000 tusermatherr....
> 03126cd0: 5f61 636d 646c 6e00 0000 5f61 6d73 675f _acmdln..._amsg_
> 03126ce0: 6578 6974 0000 0000 5f62 6567 696e 7468 exit...._beginth
> 03126cf0: 7265 6164 0000 0000 5f62 6567 696e 7468 read...._beginth
> 03126d00: 7265 6164 6578 0000 0000 5f63 6578 6974 readex...._cexit
> 03126d10: 0000 0000 5f65 6e64 7468 7265 6164 6578 ...._endthreadex
> 03126d20: 0000 0000 5f65 7272 6e6f 0000 0000 5f66 ...._errno...._f
> 03126d30: 6d6f 6465 0000 0000 5f69 6e69 7474 6572 mode...._initter
> 03126d40: 6d00 0000 5f6c 6f63 616c 7469 6d65 3634 m..._localtime64
> 03126d50: 0000 0000 5f6f 6e65 7869 7400 0000 6162 ...._onexit...ab
> 03126d60: 6f72 7400 0000 6361 6c6c 6f63 0000 0000 ort...calloc....
> 03126d70: 6578 6974 0000 0000 6670 7269 6e74 6600 exit....fprintf.
> 03126d80: 0000 6672 6565 0000 0000 6677 7269 7465 ..free....fwrite
> 03126d90: 0000 0000 6d61 6c6c 6f63 0000 0000 6d65 ....malloc....me
> 03126da0: 6d63 6872 0000 0000 6d65 6d63 6d70 0000 mchr....memcmp..
> 03126db0: 0000 6d65 6d63 7079 0000 0000 6d65 6d6d ..memcpy....memm
> 03126dc0: 6f76 6500 0000 6d65 6d73 6574 0000 0000 ove...memset....
> 03126dd0: 7173 6f72 7400 0000 7265 616c 6c6f 6300 qsort...realloc.
> 03126de0: 0000 7369 676e 616c 0000 0000 7374 7263 ..signal....strc
> 03126df0: 6872 0000 0000 7374 7263 6d70 0000 0000 hr....strcmp....
> 03126e00: 7374 7263 7370 6e00 0000 7374 726c 656e strcspn...strlen
> 03126e10: 0000 0000 7374 726e 636d 7000 0000 7374 ....strncmp...st
> 03126e20: 7272 6368 7200 0000 7374 7273 706e 0000 rrchr...strspn..
> 03126e30: 0000 7666 7072 696e 7466 0000 0040 1a03 ..vfprintf...@..
发现也基本都是些清零操作:
03126c20: d305 → 0000
03126c30: e605 → 0000
03126c40: e705 → 0000
03126c50: f805 → 0000
03126c60: 5200 → 0000
03126c70: 5300 → 0000
03126c80: 5400 → 0000
03126c90: 5b00 → 0000
03126ca0: 6100 → 0000
03126cb0: 6300 → 0000
03126cc0: 7300 → 0000
03126cd0: 7b00 → 0000
03126ce0: 8800 → 0000
03126cf0: 8900 → 0000
03126d00: 8d00 → 0000
03126d10: c600 → 0000
03126d20: c900 → 0000
03126d30: fd00 → 0000
03126d40: 4b01 → 0000
03126d50: b701 → 0000
03126d60: 6302 → 0000
03126d70: 0704 → 0000
03126d80: 1a04 → 0000
03126d90: 2704 → 0000
03126da0: 3a04 → 0000
03126db0: 4104 → 0000
03126dc0: 8604 → 0000
03126dd0: 7c04 → 0000
03126de0: 8204 → 0000
03126df0: 8304 → 0000
...
继续分析后边的改动:
总体来看,改动主要涉及对数据内容和程序逻辑的修改,没有直接改变内存申请、执行内存数据、或释放内存的操作。修改主要集中在数据内容和代码逻辑的调整上,而没有触及底层内存管理的操作。
目前看来貌似没有插入shellcode。不过为了使用放心还是使用正版好。
原文始发于微信公众号(Hack All Sec):TscanPlus超雄版分析