Apr272018

如何在centos6安装yara

作者: 主机迷 分类: Linux技术

什么是Yara?Yara号称是识别恶意软件的瑞士军刀。Yara会根据我们自己编写的yara规则,来对可疑软件进行一个模式匹配,若可疑软件中的一些特征与我们的yara规则匹配上了,则可以初步认定可疑软件为恶意软件。这是一个Yara规则的例子:

rule silent_banker : banker
{
    meta:
        description = "This is just an example"
        threat_level = 3
        in_the_wild = true

    strings:
        $a = {6A 40 68 00 30 00 00 6A 14 8D 91}
        $b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
        $c = "UVODFRYSIHLNWPEJXQZAKCBGMT"

    condition:
        $a or $b or $c
}

在centos6安装Yara的步骤:

wget -c https://github.com/VirusTotal/yara/archive/v3.7.1.tar.gz
tar -zxvf v3.7.1.tar.gz
cd yara-3.7.1
./bootstrap.sh
./configure
make && make install
Sep232017

CentOS 系统安装 whois 和 nslookup 的命令

作者: 主机迷 分类: Linux技术

CentOS 安装 whois 的命令:

yum install jwhois 

CentOS 安装 nslookup 的命令:

yum install bind bind-utils 
Mar012017

在 CentOS 安装和配置 Subversion 1.8.17 的步骤

作者: 主机迷 分类: Linux技术

在 CentOS 执行yum install subversion默认安装的是 Subversion 1.6.11。如果要安装 Subversion 1.8,需要修改yum源。创建/etc/yum.repos.d/wandisco-svn.repo文件,在里面添加以下内容:

[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0

检查并删除低版本的SVN。

rpm -qa subversion
yum remove subversion*
yum clean all

执行以下命令安装 Subversion。

yum install subversion

验证安装的版本。

[root@localhost /]# svn --version
svn, version 1.8.17 (r1770682)
   compiled Dec  1 2016, 13:36:00 on i686-pc-linux-gnu

建立SVN库

mkdir -p /opt/svn/repos
svnadmin create /opt/svn/repos

进入上面生成的文件夹/opt/svn/repos/conf下,发现有passwdauthzsvnserve.conf等配置文件。
修改passwd

[users]
# harry = harryssecret
# sally = sallyssecret
liujie=123456

修改权限配置文件authz。设置[/]代表根目录下所有的资源。注意:如果不设置为[/]而是设置为[/opt/svn/repos][repository:/opt/svn/repos],客户端访问时都会报svn: Authorization failed的错误,原因不详。

[/]
liujie=rw

修改svnserve.conf配置文件,在[general]后面添加以下内容。

anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=/opt/svn/repos

修改 iptables 配置并重启,service iptables restart。Subversion 服务默认占用3690端口,这里改用3691端口。

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3691 -j ACCEPT

启动 Subversion 服务。如果要开机自启,将同样的启动命令复制到/etc/rc.d/rc.local

svnserve -d -r /opt/svn/repos --listen-port 3691

然后就可以使用客户端例如TortoiseSVN访问了,连接地址为: svn://yourip:3691

在SVN库里创建项目目录:

svn mkdir svn://127.0.0.1:3691/prj1   -m ''
svn mkdir svn://127.0.0.1:3691/prj1/trunk   -m ''
svn mkdir svn://127.0.0.1:3691/prj1/tags   -m ''
#注:在服务器中执行时也可使用file语法。例如:
svn mkdir file:///opt/svn/repos/prj2 -m ''

在SVN库里删除目录:

svn del svn://127.0.0.1:3691/prj1/branches   -m ''

注意:上面的做法多个项目共用同一个仓库,这样任何一个项目的一个提交都会导致整个仓库的版本号增加一个,而且多个账号不好做项目级别的权限控制。正规或团队项目还是建议每一个项目单独建一个仓库。

Nov212016

防止SSH遭到密码爆破的一键脚本

作者: 主机迷 分类: Linux技术

功能
1.自助修改SSH端口
2.自定义最高封禁IP的时间(以小时为单位)
3.自定义SSH尝试连接次数
4.一键完成SSH防止暴力破解

安装

wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh && bash fail2ban.sh 2>&1 | tee fail2ban.log

卸载

wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh && bash uninstall.sh

注意:修改SSH端口时先在iptables里把新端口打开,要是忘了,就等着看“No route to host”吧。

来源:http://www.gongyi.info/thread-1705-1-1.html

Oct102016

php一句话扫描脚本程序.php

作者: 主机迷 分类: Linux技术
<?php 
/**********************
作者 Spider
网上公布的各种PHP后门全军覆没
针对一些特殊变形的后门需要自己添加特征
误报率不到百分之一
**********************/
error_reporting(E_ERROR);
ini_set('max_execution_time',20000);
ini_set('memory_limit','512M');
header("content-Type: text/html; charset=gb2312");

$matches = array(
    '/function\_exists\s*\(\s*[\'|\"](popen|exec|proc\_open|system|passthru)+[\'|\"]\s*\)/i',
    '/(exec|shell\_exec|system|passthru)+\s*\(\s*\$\_(\w+)\[(.*)\]\s*\)/i',
    '/((udp|tcp)\:\/\/(.*)\;)+/i',
    '/preg\_replace\s*\((.*)\/e(.*)\,\s*\$\_(.*)\,(.*)\)/i',
    '/preg\_replace\s*\((.*)\(base64\_decode\(\$/i',
    '/(eval|assert|include|require|include\_once|require\_once)+\s*\(\s*(base64\_decode|str\_rot13|gz(\w+)|file\_(\w+)\_contents|(.*)php\:\/\/input)+/i',
    '/(eval|assert|include|require|include\_once|require\_once|array\_map|array\_walk)+\s*\(\s*\$\_(GET|POST|REQUEST|COOKIE|SERVER|SESSION)+\[(.*)\]\s*\)/i',
    '/eval\s*\(\s*\(\s*\$\$(\w+)/i',
    '/(include|require|include\_once|require\_once)+\s*\(\s*[\'|\"](\w+)\.(jpg|gif|ico|bmp|png|txt|zip|rar|htm|css|js)+[\'|\"]\s*\)/i',
    '/\$\_(\w+)(.*)(eval|assert|include|require|include\_once|require\_once)+\s*\(\s*\$(\w+)\s*\)/i',
    '/\(\s*\$\_FILES\[(.*)\]\[(.*)\]\s*\,\s*\$\_(GET|POST|REQUEST|FILES)+\[(.*)\]\[(.*)\]\s*\)/i',
    '/(fopen|fwrite|fputs|file\_put\_contents)+\s*\((.*)\$\_(GET|POST|REQUEST|COOKIE|SERVER)+\[(.*)\](.*)\)/i',
    '/echo\s*curl\_exec\s*\(\s*\$(\w+)\s*\)/i',
    '/new com\s*\(\s*[\'|\"]shell(.*)[\'|\"]\s*\)/i',
    '/\$(.*)\s*\((.*)\/e(.*)\,\s*\$\_(.*)\,(.*)\)/i',
    '/\$\_\=(.*)\$\_/i',
    '/\$\_(GET|POST|REQUEST|COOKIE|SERVER)+\[(.*)\]\(\s*\$(.*)\)/i',
    '/\$(\w+)\s*\(\s*\$\_(GET|POST|REQUEST|COOKIE|SERVER)+\[(.*)\]\s*\)/i',
    '/\$(\w+)\s*\(\s*\$\{(.*)\}/i',
    '/\$(\w+)\s*\(\s*chr\(\d+\)/i'
);

function antivirus($dir,$exs,$matches) {
    if(($handle = @opendir($dir)) == NULL) return false;
    while(false !== ($name = readdir($handle))) {
        if($name == '.' || $name == '..') continue;
        $path = $dir.$name;
        if(is_dir($path)) {
            //chmod($path,0777);/*主要针对一些0111的目录*/
            if(is_readable($path)) antivirus($path.'/',$exs,$matches);
        } elseif(strpos($name,';') > -1 || strpos($name,'%00') > -1 || strpos($name,'/') > -1) {
            echo '特征 <input type="text" style="width:218px;" value="解析漏洞"> '.$path.'<div></div>'; flush(); ob_flush();
        } else {
            if(!preg_match($exs,$name)) continue;
            if(filesize($path) > 10000000) continue;
            $fp = fopen($path,'r');
            $code = fread($fp,filesize($path));
            fclose($fp);
            if(empty($code)) continue;
            foreach($matches as $matche) {
                $array = array();
                preg_match($matche,$code,$array);
                if(!$array) continue;
                if(strpos($array[0],"\x24\x74\x68\x69\x73\x2d\x3e")) continue;
                $len = strlen($array[0]);
                if($len > 6 && $len < 200) {
                    echo '特征 <input type="text" style="width:218px;" value="'.htmlspecialchars($array[0]).'"> '.$path.'<div></div>';
                    flush(); ob_flush(); break;
                }
            }
            unset($code,$array);
        }
    }
    closedir($handle);
    return true;
}

function strdir($str) { return str_replace(array('\\','//','//'),array('/','/','/'),chop($str)); }

echo '<form method="POST">';
echo '路径: <input type="text" name="dir" value="'.($_POST['dir'] ? strdir($_POST['dir'].'/') : strdir($_SERVER['DOCUMENT_ROOT'].'/')).'" style="width:398px;"><div></div>';
echo '后缀: <input type="text" name="exs" value="'.($_POST['exs'] ? $_POST['exs'] : '.php|.inc|.phtml').'" style="width:398px;"><div></div>';
echo '操作: <input type="submit" style="width:80px;" value="scan"><div></div>';
echo '</form>';

if(file_exists($_POST['dir']) && $_POST['exs']) {
    $dir = strdir($_POST['dir'].'/');
    $exs = '/('.str_replace('.','\\.',$_POST['exs']).')/i';
    echo antivirus($dir,$exs,$matches) ? '<div></div>扫描完毕' : '<div></div>扫描中断';
}
?>

来源:https://raw.githubusercontent.com/tennc/webshell/master/php/pHp%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%89%AB%E6%8F%8F%E8%84%9A%E6%9C%AC%E7%A8%8B%E5%BA%8F.php

基于语法分析的PHP webshell扫描工具–Pecker Scanner


主机迷 is powered by Typecho