本文目录一览:
beef怎么把网站变成https
https及https的本地测试环境搭建。asp.net结合https的代码实现http网站转换成https网站,以及之后遇到的问题等。
一:什么是https
SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同时SSL安全机制是依靠数字证书来实现的。
SSL基于公用密钥和私人密钥,用户使用公用密钥来加密数据,但解密数据必须使用相应的私人密钥。使用SSL安全机制的通信过程如下:用户与IIS
服务器建立连接后,服务器会把数字证书与公用密钥发送给用户,用户端生成会话密钥,并用公共密钥对会话密钥进行加密,然后传递给服务器,服务器端用私人密
钥进行解密,这样,用户端和服务器端就建立了一条安全通道,只有SSL允许的用户才能与IIS服务器进行通信。
提示:SSL网站不同于一般的Web站点,它使用的是“HTTPS”协议,而不是普通的“HTTP”协议。因此它的URL(统一资源定位器)格式为“https://网站域名”。
二:https的本地测试环境搭建
1:win7/windows server 2008R2中 IIS7/IIS7.5 搭配https本地测试环境
2:windows server 2003中IIS6.0 搭配https本地测试环境
三:asp.net 结合 https的代码实现
https是由IIS,浏览器来实现的传输层加密,不需要特意的编码。。。平时怎么在asp.net里面编写代码,就怎么写。
很可能要问,为什么我的站点使用了https之后,用firebug之类的软件查看值提交的时候,还是会显示明文呢?例如,博客园的登陆界面提交。
http://passport.cnblogs.com/login.aspx
为什么这里还是能看到明文的用户名和密码呢?
原因是因为:https(ssl)的加密是发生在应用层与传输层之间,所以,在传输层看到的数据才是经过加密的,而我们捕捉到的http post的,是应用层的,是还没经过加密的数据。
加密的数据只有客户端和服务器端才能得到明文 客户端到服务端的通信是安全的
支付宝也是https的,但是他的同时也增加了安全控件来保护密码, 以前认为这个只是用来防键盘监听的,其实,看下面http post截获的密码:这个安全控件把给request的密码也先加了密,紧接着https再加次密,果然是和钱打交道的,安全级别高多了:)
四:http网站转换成https网站之后遇到的问题
整站https还是个别的页面采用https?网站的连接是使用相对路径?还是绝对路径?
如果是整站都是https,那么会显得网页有些慢,如果是个别页面采用https,那么如何保证从https转换到http的时候的url的准确性呢?
比如我们用http的时候,网站的头部底部都是用的相对路径,假如你的页面是 http://aa/index.aspx 你跳转到 https://aa/login.aspx 这里怎么来跳转?只能把超链接写死
登陆 但是这样的话,你跳转过去之后的页面 ,所有的相对路径都变成了https开头了,这样很影响网站的效率。
虽然使用绝对地址可以解决,但是那样显然不好移植。
下面就是使用第三方的组件,来解决上面的这个问题
步骤
先下载dll文件 http://code.google.com/p/securityswitch/downloads/list 我选择的是 SecuritySwitch v4.2.0.0 - Binary.zip这个版本
1: 我们来看看测试项目
admin 文件夹,需要登录之后,才能访问。admin里面的 login.aspx 可以访问。整个admin文件夹都需要https访问:
contact.aspx 需要https 访问:
default.aspx 和 view.aspx 采用 http 访问:
链接我们都采用相对路径,并没有写死成 http:// 或者是 https://。
下面我们开始用SecuritySwith来实现上面的https和http访问的规则。
2:在项目上,添加引用 SecuritySwitch.dll ,并且添加智能提示。
这样,只能提示就有了。
3:然后我们在web.config里面添加设置 。根据IIS的不同,还分为 IIS6+ IIS7.X(经典模式) 以及 IIS7(集成模式) 的不同的配置,这里我们是按照IIS6+IIS7.X的(经典模式)来配置的。
只看看里面的 SSL配置即可:
?xml version="1.0"?
configuration
!--SSL配置1开始--
configSections
section name="securitySwitch" type="SecuritySwitch.Configuration.Settings, SecuritySwitch" /
/configSections
securitySwitch baseInsecureUri=""
baseSecureUri="" xmlns=""
mode="On"
!--如果你的http和https仅仅只有一个s的区别,那么这里的base的2个url可以不写,那为什么还要搞这2个url呢?因为比如
你的 baseInsecureUri (基本不安全网址) 是
而你的 baseSecureUri (基本安全网址) 是
然后这个时候你访问一个需要https的页面,假如是 login.aspx?return=joey
假如你是通过访问的,那么这个
页面会跳转到
--
paths
add path="~/contact.aspx"/
add path="~/admin/login.aspx"/
add path="~/admin" /
!--这里的admin因为不仅是 admin 文件夹,而且还包含类似的 adminNews.aspx adminQQ.aspx 页面"--
!--但是如果是 ~/admin/ 就是专门指admin文件夹--
/paths
/securitySwitch
!--SSL配置1结束—
appSettings /
system.web
compilation debug="true"
/compilation
!-- 内置票据认证 start--
authentication mode="Forms"
forms name="mycook" loginUrl="admin/login.aspx" protection="All" path="/" /
/authentication
!--SSL配置2 如果是 IIS = 6.x, IIS 7.x + 经典模式--
httpModules
add name="SecuritySwitch" type="SecuritySwitch.SecuritySwitchModule, SecuritySwitch" /
/httpModules
!--SSL配置2结束--
/system.web
!--SSL配置2 如果是IIS7.X + 集成模式--
!--system.webServer
validation validateIntegratedModeConfiguration="false" /
modules
--!-- for IIS 7.x + 集成模式 --!--
add name="SecuritySwitch" type="SecuritySwitch.SecuritySwitchModule, SecuritySwitch" /
/modules
/system.webServer--
!--如果是IIS7.X+集成模式 SSL配置2 结束—
/configuration
4: 由于用到了内置票据认证,所以要在 Global.asax添加以下代码:
protected void Application_AuthenticateRequest(object SENDER, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket tiecket = id.Ticket;
string userData = tiecket.UserData;
string[] roles = userData.Split(',');
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id, roles);
}
}
}
}
5: 后台登陆界面 admin/login.aspx:
%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login.aspx.cs" Inherits="web.admin.login" %
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head runat="server"
title/title
/head
body
form id="form1" runat="server"
用户名:asp:TextBox ID="txtUser" runat="server"/asp:TextBoxbr /
密码:asp:TextBox ID="txtPass" runat="server"/asp:TextBoxbr /
记住用户名:asp:CheckBox ID="chkUsername" runat="server" Checked="true"/
br /
asp:Literal ID="litResult" runat="server"/asp:Literal
br /
asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" /
/form
/body
/html
后台登陆界面 cs admin/login.aspx.cs:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace web.admin
{
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string username = txtUser.Text;
string pass = txtPass.Text;
bool ischeck=chkUsername.Checked;
if (username=="admin" pass=="admin")
{
SaveLogin(username, ischeck);
}
}
private void SaveLogin(string username, bool ischeck)
{
HttpCookie cook;
string strReturnURL;
string roles = "admin";//将用户的usernameid,保存到cookies,身份是 admin 身份
//要引用 using System.Web.Security;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, username, DateTime.Now, DateTime.Now.AddMinutes(30), ischeck, roles);
cook = new HttpCookie("mycook");//对应webconfig里面的 验证里面的 forms name="mycook"
cook.Value = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(cook);
strReturnURL = Request.Params["ReturnUrl"];
if (strReturnURL != null)
{
Response.Redirect(strReturnURL);
}
else
{
Response.Redirect("default.aspx");
}
}
}
}
如何配置beef和metasploit
先删除BT5上面自带的版本稍旧的BeEF
rm -rf /pentest/web/beef-ng
然后通过Git clone最新的BeEF代码
这样beef的代码已经拷贝到 /pentest/web/beef 下
然后就开始安装
cd /pentest/web/beef
gedit INSTALL.txt
查看安装文档,只看第一步和第三步
1. Prerequisites (platform independent)
BeEF requires ruby 1.9 and the "bundler" gem. Bundler can be installed by:
gem install bundler
3. Prerequisites (Linux)
!!! This must be done PRIOR to running the bundle install command !!!
On linux you will need to find the packages specific to your distribution for sqlite. An example for Ubuntu systems is:
3.0. sudo apt-get install libsqlite3-dev sqlite3 sqlite3-doc
3.1. install rvm from rvm.beginrescueend.com, this takes care of the various incompatable and conflicting ruby packages that are required
3.2. rvm install 1.9.2
3.3. rvm use 1.9.2
BT5自带的Ruby,所以我们只需要下面几步
apt-get install libsqlite3-dev sqlite3 sqlite3-doc
gem install bundler
bundle install
然后尝试运行beef
./beef
发现报如下错误
/root/beef/core/loader.rb:18:in `require': no such file to load -- bundler/setup (LoadError)
from /root/beef/core/loader.rb:18:in `top (required)'
from ./beef:42:in `require'
from ./beef:42:in `main'
上网找了一下,发现是环境变量的原因。
用如下方法再次安装bundler
gem install -–user-install bundler
然后成功运行beef
./beef
三、BeEF与metasploit的配合使用
这时候你会发现,启动过程没有出现metasploit加载的信息。于是需要先关闭BeEF,进去metasploit主目录。
cd /opt/framework/msf3/
生成一个beef.rc的文件,内容是
load msgrpc ServerHost=127.0.0.1 Pass=abc123
(这个密码牵扯众多地方,貌似改了影响太大,所以还是用默认的)
注:这里需要msf里面装好msgrpc这个插件,在msf里面运行 gem install --user-install msgpack
IP是你metasploit所在主机的IP,密码是两个软件之间的设定好的。之后到beef的主目录去修改主机的配置,这里重点配置的是metasploit攻击后,回连主机的IP,这个很重要。配置上述信息的文件如下:
/pentest/web/beef/extensions/metasploit/config.yaml
由于实验主机这两个软件都有,所以我的IP设置就是本机IP。很明显,两个软件不在同一台主机上工作也是没问题的。最后还要配置beef主目录下的文件:
/pentest/web/beef/config.yaml
将里面的metasploit一项设置为true
之后启动metasploit并加载beef模块
./msfconsole -r beef.rc
可以看到成功加载上面的beef模块
[*] MSGRPC Service: 127.0.0.1:55552
[*] MSGRPC Username: msf
[*] MSGRPC Password: abc123
[*] Successfully loaded plugin: msgrpc
这时候去运行beef ,就能够看到metasploit的攻击加载过程。
[*] MSGRPC Service: 127.0.0.1:55552
[*] MSGRPC Username: msf
[*] MSGRPC Password: abc123
渗透测试工具的介绍
第一类:网络渗透测试工具
网络渗透测试工具是一种可以测试连接到网络的主机/系统的工具。通用的网络渗透测试工具有ciscoAttacks、Fast-Track、Metasploit、SAPExploitation等,这些工具各有各的特点和优势。因为网络渗透测试是一个相对广泛的概念,所以上述工具也可以包括社会工程学渗透测试模块,网络渗透测试模块和无线渗透测试模块。
第二类:社会工程学渗透测试工具
社会工程学渗透测试是利用社会工程学进行渗透测试,通常利用人们行为中的弱点来达到渗透的目的。典型的社会工程学渗透测试工具有BeefXSS和HoneyPots,这些工具诱使用户访问特定的网站,获得用户的Cookie信息,达到渗透的目的。
第三类:网站渗透测试工具
网站渗透测试是对Web应用程序和相应的设备配置进行渗透测试。在进行网站渗透测试时,安全工程序必须采用非破坏性的方法来发现目标系统中的潜在漏洞。常用的网络渗透测试工具有asp-auditor、darkmysql、fimap、xsser等。
第四类:无线渗透测试工具
无线渗透测试工具是蓝牙网络和无线局域网的渗透测试。在进行无线渗透测试时,一般需要先破解目标网络的密码,或者建立虚假热点来吸引目标用户访问,然后通过其他方式控制目标系统。常见的蓝牙网络渗透测试工具有atshell、btftp、bluediving、bluemaho等;常见的无线局域网渗透测试工具有aircack-ng、airmon-ng、pcapgetiv和weakivgeng等,这些工具实现了不同的功能,可以让安全工程师通过各种方式进行无线渗透测试。
苹果系统怎么安装beef xss
office of MAC 文件大小的1个多G, 后缀名是*.iso。需要你在网上下载。用U盘拷到你的MAC上。双击打开MAC上的"Microsoft Office 2011.iso",按步骤一步步安装就可以了。安装完成后的,MAC最下面一栏里就会出现W/P/X/0几个图标的。说明你已经完装好了,可以使用了。