复古流日站

内网漫游时,正好发现了一个奇怪的页面。同时又突发奇想心血来潮闲的蛋疼balabala的想试试远古的工具包实际效果,于是就开始了我们的测试啦,因为这个站非常没有技术含量and早就废弃不用了,所以我就拿出来氵一篇文章了,不然博客都长草了

目标是这个

TIM截图20190808143225.jpg

第一步信息收集,怎么做呢?肯定是先御剑走起啊。

御剑扫的同时,先看看页面整么做的。

看了一下,发现是一个asp页面下面加上好几个html页面,然后用ajax请求。看到这瞬间知道没什么希望了

TIM截图20190808143225.jpg

但是天无绝人之路,御剑发现目录下有个BOOK.MDB,直接走起下载。读取查看,

TIM截图20190808143225.jpg

看样子确实是动态的

TIM截图20190808143225.jpg

我们看看有没有什么密码

TIM截图20190808143225.jpg
TIM截图20190808143225.jpg

现在用户名密码有了,问题来了,找不到登陆的地点。

各种尝试过后,失败.jpg

换去扫端口,nmap走起。

发现除了开启88端口外,80端口还有一个站点。

同时还有开放1723,1433,1025,1026,3389等一些服务,

其中1723和1025,1026这几个应该是没啥办法的了,这分别是某服务也windows rpc服务。

我们转到80站点看看

TIM截图20190808143225.jpg

感觉有戏!先看看站点。

TIM截图20190808145944.jpg

TIM截图20190808143225.jpg

试了下登陆,没有回显。再看看题目那里sql注入
TIM截图20190808143225.jpg
TIM截图20190808143225.jpg
看样子似乎可以注入,但是并不是个注入点的样子。

继续掏出御剑,走起
TIM截图20190808150457.jpg
神奇的发现,目录是可读的。

TIM截图20190808143225.jpg

尝试下载。失败

TIM截图20190808143225.jpg

这时候我们发现了个Upfile

TIM截图20190808143225.jpg
up.jpg
上传个文件试试

emmm果不其然失败了

TIM截图20190808143225.jpg

但是我们看这个路径upfile.asp?jpgname=

立刻掏出我们的Fiddle,构造一个上传请求,asp马,上传.jpg

TIM截图20190808143225.jpg
成功拿下。

发现服务器是windows 2003的,站点是IIS6.0

但是我们发现我们的服务很死。

windows甚至没有执行权限,cmd命令都无法执行,我们上传个cmd,执行试试。也不行。

然后想起了站点时IIS6.0,从工具包里找个pr.exe。

pr原理大概就是已NETWORK SERVICE权限运行的用户可以试着提权到SYSTEM权限。

抱着试一试的心态上传了这个exploit,执行

psb.jpg

emmmm卧槽?真的成了???

然后就连上去了doge。。

Tags: none

曲式分析?编曲指南?

开头

现在是音乐系的学生了!

设备也到了,

开个新贴,整理些这部分的心得。

mixo-Lydian

适合中世纪,异族风情

走向是I-VII-IV

Lydian

未知,但又明亮。适合让人探索的感觉

重点强调I IV和III V这几个音。和弦一般用I II都行,还可以插入个VII

Tags: 音乐

HOOK 技术

详解各种奇淫绝技。

部分手写部分搬运。

重在自己的理解,或者找个时间,武器化这部分程序。

最终目标: 实现一个带有各种HOOK的汇总工具包

遇到的坑

pragma comment 只对微软编译器有效,GCC没用,得用-l来连接

IAT HOOK

内存版本

这个需要进入到宿主文件的内存空间,所以一般用DLL注入到宿主文件

原理就是普通的计算IMAGE_IMPORT_DESCRIPTOR在内存空间的地址。

然后修改IMAGE_IMPORT_DESCRIPTOR.FirstThunk.u1.Function的地址为我们的函数地址

其中几个重点:

GetModuleHandle(NULL);
// 获取主模块(EXE)的地址

PVOID WINAPI ImageDirectoryEntryToData( 
__in   PVOID Base, 
__in   BOOLEAN MappedAsImage, 
__in   USHORT DirectoryEntry, 
__out  PULONG Size );

获取内存中IAT导入表的虚拟地址。

//Base为要获得导入段所在模块的基地址。它一般是GetModuleHandle的返回值。

//MappedAsImage,它为true时,系统将该模块以映像文件的形式映射,否则以数据文件的形式映射。

//DirectoryEntry,要获得的段的索引。此函数不仅仅能够获得导入段的地址,根据此索引的不同,该函数返回对应段的地址。此处我们使用 IMAGE_DIRECTORY_ENTRY_IMPORT表示我们要获得导入段的地址。

//Size返回表项的大小

目录文件

  • iat/memory/target.c 实例,直接封装在代码中的HOOK,没使用装载器
  • iat/memory/dll.c dll封装版本(纯搬运)

代码参考:

文件区块修改版本

直接操作PE文件,修改IAT导入表导入DLL的地址。

这样的好处是在程序最初的加载就已经执行我们的代码,

并且不需要使用注入等容易被检测的敏感动作。

缺点是不能针对单独函数hook,

或者说与其是hook。完全是无中生有添加了一个DLL引用。

未完待续。。。

Tags: none