博文

Immunity Debugger 打开就闪退的解决方法

    不知为何Immunity Debugger 一打开就闪退,搜到一个 方法 ,只要设置PYTHONPATH环境变量就可,例如PYTHONPATH="C:\Python27\DLLs;C:\Python27\Lib;C:\Python27\Lib\site-packages",重新打开即可正常运行。     仅作记录,没啥含量。

《0day 2》笔记

    windows中最重要的堆表有两种:空闲双向链表(Freelist)和快速单向链表Lookaside。快表从来不会发生堆块合并。     快表只有在精确匹配时才会分配,而空表有“找零钱”现象。     所有的释放块都链入堆表的末尾,分配的时候也先从堆表末尾拿。     调试态堆管理策略和常规堆管理策略有很大差异。      DWORD SHOOT的常用目标:     内存变量、代码逻辑、函数返回地址、攻击异常处理机制、函数指针、PEB中线程同步函数的入口地址(RtlEnterCriticalSection、RtlLeaveCriticalSection)。     异常处理流程:线程SEH异常处理函数,进程seh处理函数,系统默认异常处理程序(程序崩溃对话框)。     异常处理函数的第一轮调用用来尝试处理异常,第二轮的unwind调用往往执行释放资源等操作。     以下情况不会应用GS:     (1)函数不包括缓冲区;     (2)函数被定义为具有变量参数列表;     (3)函数使用无保护的关键字标记;     (4)函数在第一个语句中包含内嵌汇编代码;     (5)缓冲区不是8字节类型且大小不大于4个字节。     突破GS:     利用未被保护的内存     覆盖虚函数     攻击异常处理     同时替换栈中和.data中的cookie     SafeSEH     RtlIsValidHandler函数在以下情况允许异常处理函数执行:     (1)异常处理函数位于加载模块内存范围之外,DEP关闭。     (2)异常处理函数位于加载模块内存范围之内,相应模块未启用SafeSEH(安全SEH表为空),同时相应模块不是纯IL。 ...

Postgresql 命令执行之COPY TO/FROM PROGRAM

图片
    阿里云的一篇 威胁快报 提到了一个新的postgresql执行命令的方法,查了下 postgresql文档 ,原来postgresql 从9.3开始增加了一项新特性,可以利用语句COPY TO/FROM PROGRAM来执行外部命令,如图:     

内网metasploit之获得反向连接shell

图片
    环境:     win7(ip:192.168.9.130,假定为外网vps)     kali(ip:192.168.9.128,攻击机)     victim(ip:192.168.9.128,受害者机器,为了方便,这里就不拿其他机器做受害者了,就用kali,运行了有漏洞的服务,不影响实验)     当metasploit在内网时,为了反弹shell,要借助外网vps,不过网上基本都是给目标丢个msf的反弹马,让它反弹到vps再转到内网,可是前提是你得先有在对方机器上执行命令的权限(即先有漏洞),那么通常情况下内网metasploit如何根据受害者机器上有漏洞的服务获得反弹shell?     首先在vps(192.168.9.130)上用ew进行端口转发,监听9090,转发到8080:          然后在kali上与vps的8080端口建立连接,     接着使用漏洞利用模块,并设置反弹shell参数,反弹到vps监听的9090端口,         直接exploit的话会发现metasploit提示无法绑定到192.168.9.130:9090,这是因为kali网卡的ip并不是192.168.9.130,     那么怎么办呢?解决方法就是通过创建一个虚拟ip,来“欺骗”metasploit,kali有个网卡ip就是 192.168.9.130,命令如下:     ifconfig eth0:1 192.168.9.130  netmask 255.255.255.0      执行下ifconfig看看,发现已经成功创建“虚假”ip,      重新exploit,会发现这次metasploit能成功绑定了,    漏洞利用成功,kali与vps成功建立连接!! 执行下命令看看:

Metasploit添加oracle支持

Metasploit最初使用oracle相关模块时,会报错: [-] Failed to load the OCI library: cannot load such file -- oci8 [-] Try 'gem install ruby-oci8'[*] 解决方法主要是参看官方文档 How to get Oracle Support working with Kali Linux 有个要注意的问题就是,因为官方文档有点老,文章中提到的设置环境这一步: export PATH=/opt/metasploit/ruby/bin:$PATH 在较新的kali中Metasploit的ruby解释器的最新路径是"/opt/metasploit-framework/embedded/bin",所以这一步要改为: export PATH=/opt/metasploit-framework/embedded/bin:$PATH 一切步骤执行好后,重新运行msf的oracle相关模块报错: [-] Failed to load the OCI library: libmql1.so: cannot open shared object file: No such file or directory - /opt/metasploit-framework/embedded/lib/ruby/site_ruby/2.4.0/x86_64-linux/oci8lib_240.so [-] Try 'gem install ruby-oci8' 提示libmql1.so未找到,可是实际上libmql1.so就在/opt/oracle/instantclient_12_2/  (我下载的是12.2.0.1.0的oracle包,所以是这个路径)下,所以应该是之前设置的环境变量未生效,执行“source ~/.bashrc”让其生效,然后重新运行msf,即可正常使用oracle模块。

菜刀连接php一句话木马返回200的原因及解决方法

图片
    一句话木马的内容为“<?php @eval($_POST["abc"])?>”,用菜刀连接直接返回200          可是hackbar中执行命令却没有问题          很奇怪。后来在看雪上看到也有人发类似的 帖子 ,评论有人提到是php7版本过高的问题,搜了下确实是这样,php manual 中提到: Dynamic calls for certain functions have been forbidden (in the form of $func() or array_map('extract', ...), etc). These functions either inspect or modify another scope, and present with them ambiguous and unreliable behavior. The functions are as follows: assert() - with a string as the first argument      即php7中动态调用一些函数是被禁止的,比如在array_map中调用assert,否则会提示      Warning: Cannot call func_num_args() dynamically in %s on line %d     把一句话里的@符号去掉,则同样会报错“Cannot call assert() with string argument dynamically in ...shell.php(1) : eval()'d code on line 1 ”。       从返回内容可以看到php版本为7.1.6。抓包看了下菜刀的发包,的确用到了array_map("assert"..)          所以只要在菜刀的配置文件里把  array_map("a...

linux 提权时无gcc的一个小技巧

    在进行linux提权时,通常都建议在对方机器上进行编译,但是也可能遇到对方机器没有装gcc编译器的情况。如果不嫌麻烦的话,可以选择给对方装个gcc,或者在本地进行静态编译,只是编译出来的可执行程序比较大,比如我试过在ubuntu(x64)上用gcc -static 静态编译 dirtycow  ,然后在centos(x64)上成功提权,当然不保证在其他系统上或用其他提权脚本这样编译也能成功。