CentOS安装shadowsocks服务器端

作者:W.S.T 发布时间:August 25, 2015 分类:Hack

Shadowsocks 主要的功能 Sockse服务代理 可以帮助我们防问被墙的网站(Google/Facebook/Twitter)等

CentOS6 服务器安装方法如下:

yum install build-essential autoconf libtool gcc git -y
git clone git://github.com/madeye/shadowsocks-libev.git
cd shadowsocks-libev
./configure
make
make install

启动服务器端指令格式如下
nohup /usr/local/bin/ss-server -s IP地址 -p 端口号 -m rc4 -k 密码(比如opvps.com) >/dev/null 2>/dev/null &

CentOS5 服务器安装方法如下:

第一步:安装openssl-devel

# yum install openssl-devel

第二步:安装make命令
make是gcc的编译器,VPS买来必定要安装。由于服务器是最小化安装centos系统,所以我们需要自己安装make命令
安装:
# yum -y install gcc automake autoconf libtool make
安装g++:
# yum -y install gcc gcc-c++

第三步:下载源码包,然后编译安装
# wget https://github.com/shadowsocks/shadowsocks-libev/archive/v1.4.5.zip
选中 v1.4.5下载并解压,注意如果系统是centos6以下,最高只能用此版本,否则编译出错。
# cd shadowsocks-libev
# ./configure
# make && make install

第四步:加入防火墙规则(可选,如果安装了防火墙。这一步我没有做)
# iptables -I INPUT -p tcp -m tcp --dport 8123 -j ACCEPT #加入规则,端口号就是
# service iptables save #保存
# iptables -L -n #查看的iptables规则

第五步:启动shadowsocks
nohup ss-server -s ipaddress -p port -k password &
说明:ipaddress是vps空间的ip地址,port是端口号,password是密码
如:nohup ss-server -s 162.x.x.80 -p 8123 -k 1234560 &

重要提示:如果运行不成功,切换到纯root的环境下执行,如:

sudo su
su - root
cd /usr/local/bin
nohup ss-server -s 100.42.xxx.xxx -p 8123 -k 1234560 &

解密JBoss和Weblogic数据源连接字符串和控制台密码

作者:W.S.T 发布时间:July 29, 2013 分类:Hack

0x00 背景

现在越来越多的站喜欢用java语言的框架做web应用了,这里应用有很多大型站点经常采用jboss或者weblogic做web服务器。出于安全原因,他们都提供把数据源连接密码以及web服务器后台密码加密的功能,jboss用的是blowfish,weblogic旧版的加密算法一般为3DES,新版的则都是AES。

这几种加密算法都是可逆的,因为在web服务器连接到数据库的时候还是要把密码解密成明文之后发过去或者和challenge运算的,所以我们有了两个突破口,第一个就是,解密后的明文密码必然保留在内存中,如果把web服务器的内存空间dump下来分析是肯定可以找到明文密码的,这个方法在前段时间hip发的memory forensic文章里有涉及到。第二个方法就是,调用服务器程序自身的解密函数,让它把明文echo出来。

0x01 JBoss解密

jboss的数据库连接密码一般存在

%JBOSS_HOME%\server\%appname%\deploy

下面的各种xml里面,比如oracle的是oracle-ds.xml,mysql是mysql-ds.xml…… 在没有加密的情况下,密码是这么保存的:

<jndi-name>OracleDS</jndi-name>//jndi名字<use-java-context>false</use-java-context><connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>//URL地址<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>//驱动<user-name>root</user-name>//用户名<password>123456</password>//密码

在配置完密码加密后,这个文件里要么没有username和password,要么被comment掉了。下面多了个EncryptDBPassword
加密后的密码存在jboss目录的conf/login-config.xml文件里:

<application-policyname="EncryptDBPassword"><authentication><login-modulecode="org.jboss.resource.security.SecureIdentityLoginModule"flag="required"><module-optionname="username">admin</module-option><module-optionname="password">5dfc52b51bd35553df8592078de921bc</module-option><module-optionname="managedConnectionFactoryName">jboss.jca:name=PostgresDS,service=LocalTxCM</module-option></login-module></authentication></application-policy>

5dfc52b51bd35553df8592078de921bc就是加密后的密文了,有的时候前面还有个符号,也是密文的一部分。

jboss用来加密的key是明文硬编码在jboss源码里的,key是jaas is the way

解密过程:

阅读剩余部分...

MSN Editor 网页编辑器漏洞

作者:W.S.T 发布时间:July 23, 2010 分类:Hack

在拿站的过程中有时候会遇到这种编辑器,它相当的简陋,没有管理后台,没有数据库备份,也没有什么可以直接上传webshell的地方,简陋到只有一个editor的界面。如下图:

MSN Editor网页编辑器

相信这个编辑器大家都见过,我记得雷池新闻系统用的就是这个编辑器,呵呵。下面我们来看看利用方法:

点击图片上传后会出现上传页面,地址为

http://www.xxx.cn/admin/uploadPic.asp?language=&editImageNum=0&editRemNum=

用普通的图片上传后,地址为
http://www.xxx.cn/news/uppic/41513102009204012_1.gif

记住这时候的路径

在点击图片的上传,这时候地址就变成了
http://www.xxx.cn/news/admin/uploadPic.asp?language=&editImageNum=1&editRemNum=41513102009204012

很明显。图片的地址是根据RemNum后面的编号生成的。

利用很简单 配合IIS的解析漏洞,把RemNum后面的数据修改为1.asp;41513102009204012

变成下面这个地址

阅读剩余部分...

开启mysql外连 提权 语句

作者:W.S.T 发布时间:July 23, 2010 分类:Hack

提权的时候,如果遇到了服务器开启了3306 端口,但是不允许root外连的情况,
我们可以在shell里面执行如下的语句来开启root用户的外连,方便我们提权。

GRANT ALL PRIVILEGES ON *.* TO ‘root’@'%’ IDENTIFIED BY ‘rootpassword’ WITH GRANT OPTION;

ASP+Access网站安全解决方案汇总

作者:W.S.T 发布时间:July 15, 2010 分类:Hack

本文我将就以ASP+Access为基础构建的网站可能存在的各种安全问题进行汇总讲解,给大家一个宏观上的认识。

攻击方法
在黑客学习过程中,我们很容易发现,国内80%的网站几乎使用的都是ASP,而小站的数目远远多于大型网站。对于小站,若是动态网站,国内普遍采用ASP+Access结构,由于使用者数量众多,具有针对性,这里我们就来详细研究一下ASP+Access网站安全的解决方案。
要建设一个安全的站,我们不能不了解目前针对ASP+Access网站的主流攻击手段,时下的攻击方法有XSS跨站、SQL注入、Cookie欺骗、%5C暴库、上传漏洞等。下面我们就针对这些问题做出相应对策。
防范措施
1)上传漏洞
对于上传漏洞,一般的程序员都能做到在前台避免ASP、ASA、CER等类型的文件上传,所以对于前台的问题,这里不再赘述。
2)XSS跨站
针对XSS跨站,最大的作用就是HTML注入和获取Cookie。我想,更多的人是利用它来获取Cookie,取得Cookie后,目的只有一个,就是看网站是否有漏洞,得以让攻击方通过欺骗的方式进入后台。对于这种攻击方法,最好的防范措施就是把服务器端的验证改为Session。
3)%5C暴库
解决方案一:并不是所有的网站都存在%5C暴库的问题,对于这个问题,我们可以加入ON ERROR RESUME NEXT语句,让程序出错时仍继续向下执行,这样,数据库会相对安全。比如原来的conn.asp的文件内容如下:
Response.buffer=true
Const conndata=mydata/^%$!%25#%23&%78@data(+.asp
'设置数据库路径
Const backdata="mydata/#数据库备份#kycpanswpuzg1ok.asp"
'设置数据库备份路径
mydata="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(conndata)
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open mydata

为了防止暴库,我们改为如下的形式:

Response.buffer=true
Const conndata=mydata/^%$!%25#%23&%78@data(+.asp
'设置数据库路径
Const backdata="mydata/#数据库备份#kycpanswpuzg1ok.asp"
'设置数据库备份路径
On Error Resume Next
mydata="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(conndata)
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open mydata

经过这样的设置后,就可以有效防止这种方法的攻击。
我们再假设对方通过另外的途径获得了我们的数据库,想下载它,那我们怎么防止对方下载呢?
有些朋友可能会认为,把数据库改成一个复杂的名字,如^%$!%25#%23&%78@data(+.asp就可以防下载了。其实,这样跟本就做不到防下载的目的,假如你的网站网址http://321cc.cn/data/^%$!%25#%23&%78@data(+.asp,把此地址直接复制到浏览器上,的确不能下载,但是经过URL编码后呢?我们只要把^%$!%25#%23&%78@data(+.asp用URLENCODE转换一下,得到%5E%25%24%21%2525%23%2523%26%2578%40data%28%2B%2Easp,再把完整的URLhttp://321cc.cn/data/%5E%25%24%21%2525%23%2523%26%2578%40data%28%2B%2Easp复制到迅雷,即可下载成功。
如果再作点调整,将数据库加入防下载表,那么迅雷此时就无能为力了。我们首先建立一个表NotDown,设制类型为“备注”,然后在其中加入<% loop %>后,再将其类型设制为“OLE 对象”,如图1和图2所示。此时若在浏览器中下载数据库,将会出现如下所示的错误:





Microsoft VBScript 编译器错误 错误 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
Microsoft VBScript 编译器错误 错误 '800a040e'
'loop' 语句缺少 'do'
/data/^%$!%25#%23&%78@data(+.asp,行227
Loop

同样,在迅雷和其它软件中也无法下载,这就是解决方案一。
解决方案二:将数据库的地址设在非网站目录下,假如你网站的路径为“C:\Inetpub\wwwroot”,那么我们改数据库放于d:\data\^%$!%25#%23&%78@data(+.asp,conn.asp下,修改后的代码如下:

Response.buffer=true
Const conndata="d:\data\^%$!%25#%23&%78@data(+.asp"
'设置数据库路径
Const backdata="d:\data\#数据库备份#kycpanswpuzg1ok.asp"
'设置数据库备份路径
On Error Resume Next
mydata="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&conndata
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open mydata

这样相对于前面的方法而言,更为安全,因为数据库已不能通过HTTP下载了。

4)SQL注入
     现在SQL注入很厉害,一个大型网站,由于文件众多,出现SQL注入漏洞也是情有可原的。现在多数人想到的办法是过滤掉危险的字符,如“‘”、“()”、“<>”以及Select、Update等字符,但是由于代码太多,很有可能忽略掉其中某些未经处理的外部数据。对此,我们可以换个角度来考虑。
     我们可以想想,不管是SQL注入还是%5C暴库,其目的都是为了获取网站后台用户名和管理员密码。假如我们的密码是MD5加密的,那么对方将尝试进行暴力破解。如果把MD5加密算法作点修改,加密后,其密码散列将发生变化,使暴力破解失效。如果再用我们修改后的MD5加密算法对密匙进行二次MD5加密,安全性必将大大提高。
下面我们就一起来修改MD5加密算法,其方法很简单。一份原MD5加密49至53行(16位加密)的代码如下:
     RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)

     If (lValue And &H80000000) Then
         RShift = (RShift or (&H40000000 \ m_l2Power(iShiftBits - 1)))
     End If

注意RShift = (lValue And &H7FFFFFFE)这部分,我们只要将H7FFFFFFE稍微作点修改,暴力破解就失效了,比如我们修改为H7FB9DFAE。在作修改前,我们用原MD5算法加密“a”得到散列“c0f1b6a831c399e2”,http://www.cmd5.com网站上可以轻松破解,如图3所示。修改后,我们再次对“a”加密,得到散列“8016a044f35128b8”,现在我们再次


    
     由此我们可以看出,暴力破解“a”已经失效。这样操作后,一个字母a都破解不出来了,要是我们对a进行二次、三次MD5加密,想想结果会是什么?破解的人别想得到结果!不过前提是对方不知道你修改的MD5算法,否则根据你修改的算法再编写工具,暴力破解是完全可行的。所以,你要保证你的MD5.asp安全,千万不要在程序上出现一个像新云网站管理系统downfile.asp中的下载任意文件的漏洞,不然,就别想着安全了。
     对于上面的方法,在不过滤任何字符的情况下也可以算是安全的,让旁注者去破解吧。如果真要做得完全不过滤,还要注意一个地方,就是登录页login.asp。我们可以把用户名和密码都改为MD5的加密密码,然后把加密后的MD5和数据库中的MD5作比较。这样,绝对不可能直接利用’or’=’or’进行后台猜解的。比如我们原来的登录验证代码如下:
sql=”select user,pwd from admin where uname=’”&request(“user”)&”’ and pwd=’”&request(“pwd”)&”’”
conn.execute(sql)
if not rs.eof and not rs.bof then
response.redirect “manage.asp”
else
response.write “登陆失败”
end if

很明显,上面的代码存在注入。在不过滤的情况下,我们可以做如下的修改。

sql=”select user,pwd from admin where uname=’”&md5(request(“user”))&”’ and pwd=’”&md5(request(“pwd”))&”’”
conn.execute(sql)
if not rs.eof and not rs.bof then
response.redirect “manage.asp”
else
response.write “登陆失败”
end if

注意,原数据库中的用户名和密码都是经过MD5加密了的。现在就不存在注入了,因为’or’=’or’会被我们修改了的MD5加密,加密后已变成“4556995b8f421800”。
经过上面几种方法的防范之后,现在还有惟一的一个问题,就是防溯雪之类软件的暴力破解。虽然说一个字母a经过我们修改的MD5加密,让针对MD5密匙破解的程序已失效,但是如果你后台用户名和密码就用一个a,用溯雪几秒钟就能破解进入后台。
像溯雪这类POST和GET的攻击,我们可以这样修改代码,让Session来处理(这里不采用Cookie,因为Cookie很容易被伪造)。

dim t1
if session("times")>=3 then
response.write("<script>alert('登录次数超过限制,不允许再尝试暴力破解');this.location.href='index.asp';</script>")
Response.End
sql=”select user,pwd from admin where uname=’”&md5(request(“user”))&”’ and pwd=’”&md5(request(“pwd”))&”’”
conn.execute(sql)
if not rs.eof and not rs.bof then
response.redirect “manage.asp”
else
session("times")=session("times")+1
t1=3-session("times")
response.write ("<script>alert('登陆失败');</script>”)
response.write (”<script>alert('你还有"&t1&"次机会'); history.back();”)
end if

改为以上代码后,只要连续提交次数超过3次,系统将自动转到首页,这样就有效的防范了溯雪之类的软件攻击,当然,我们还可以编个稍微复杂点的,直接封锁攻击者的IP。需要注意的是,以上的方法只对ASP+Access网站有效。

总结
我们可以想象,攻击者不管是通过SQL注入、XSS跨站、%5C暴库,其直接目的就是为了得到管理员的用户名和密码进入后台,然后通过上传漏洞,或备份数据库之类的方法得到一个WebShell。如果我们的MD5是无法破解的,只要我们程序不存在Cookie之类的欺骗和下载任意文件的漏洞,攻击者前面作的很多事都将会是徒劳的。网站管理员千万要记住,密码是敏感的,可别被社会工程学给害了