渗透环境:
攻击机Kali(Linux) IP:192.168.211.1
靶机:DC-1.ovk(Linux) IP:未知
首先导入DC-1靶机到VM中,并且开启靶机
将靶机与攻击机设置在同一网段下,这样靶机才能被攻击机扫描到,可以同时设置为桥接或者NAT模式。
一、检测同一网段下的IP
使用工具arp-scan
扫描当前网段所有IP:
arp-scan -l
可以看到扫出来三个,如果不确定靶机IP是哪一个可以看看它的MAC地址
由此可以确定靶机IP为:192.168.211.131
扫描IP也可以用其他的
使用工具Nmap扫描
Nmap命令:
nmap -sP 192.168.211.0/24
Netdiscover: 命令:Netdiscover
二、端口及服务扫描
确定IP之后就是扫描哪些端口开放了,确定其服务
Nmap端口扫描:
使用命令:nmap -sV -p- 192.168.211.131
也可以:nmap -sS 192.168.211.131
-sV 扫描目标主机端口上运行的软件信息
-p- 扫描全部端口0-65535
-sS 半扫描(建议):nmap -sS ip -p-
结果:
发现了22和80端口,80端口是http协议端口,可以被访问,22端口是ssh远程登录端口,只要知道账号和口令密码就能远程登录
现在我们去访问一下80端口
用Wappalyzer指纹识别,看看能不能找出来是什么CMS框架
也可以用kali自带的工具whatweb扫
whatweb扫描
也能扫出来
寻找CMS框架漏洞
找到CMS是drupal,版本是7,那么就可以用工具找这个框架的漏洞了
用metaspolit找这个CMS框架的漏洞
也可以用Searchsploit
用metaspolit找到漏洞如下
采用编号为1的漏洞,直接getshell
使用漏洞1,查看有哪些选项
在第三步位置上设置好目标机的IP
接下来就可以开始攻击了
看到这样的就是连接成功可以shell了
这样的页面有些不方便,使用python实现交互shell
语句:python -c 'import pty; pty.spawn("/bin/bash")'(需对方主机安装有python)
看看是在哪个用户下
不是root,但是先看看有哪些文件吧
Flag1文件提示我们注意配置文件,去网上搜索drupal的配置文件是在settings.php里面,查找这个文件
查找并打开命令:
cat `find / -name settings.php`
打开之后发现flag2在这个配置文件里面
也发现了关于数据库的配置
三、登入数据库
登录 mysql -udbuser -pR0ck3t 成功进入
使用数据库drupaldb,看看能不能找到账号密码,去登录之前使用80端口访问的页面
它的密码是经过加密了的
这个时候有两种办法,一是找到密码的加密规则,修改admin或Fred账户的密码,二是再增加一个admin用户。
修改密码
先找到drupal的加密文件
用这个加密文件搞一个密码出来,生成666666的加密形式
然后回到数据库修改admin的密码
可以看到已经更改成功了
网页登录
登录成功,找到flag3
提示passwd和shadow
/etc/passwd
该文件存储了系统用户的基本信息,所有用户都可以对其进行文件操作读
/etc/shadow
该文件存储了系统用户的密码等信息,只有root权限用户才能读取
现在我们的权限只能看/etc/passwd的。
命令:
cat /etc/passwd
有flag4用户
我们有两个方法拿到这个用户的密码,一个是爆破,另一个就是提权打开shadow文件查看密码
爆破:
通过前面的信息收集,知道了该靶机开启了22端口,也就是ssh可远程登录服务
关于ssh
安装ssh:
sudo apt-get install openssh-client
sudo apt-get install openssh-server
查看本机ssh服务情况:
dpkg -l | grep ssh
首先确认ssh-server是否已经启动了:
ps -e | grep ssh
开启ssh服务命令:
sudo /etc/init.d/ssh start
停止和重启ssh服务的命令如下:
sudo /etc/init.d/ssh stop #server停止ssh服务
sudo /etc/init.d/ssh restart #server重启ssh服务
登录:
ssh 客户端用户名@服务器ip地址 eg:
ssh ldz@192.168.0.1
ssh登录有两种方法,一种是通过账号和口令登录,还有一种是验证公钥
现在我们有了账号,只要爆破出密码,就能远程登录该账户
使用Kali工具Hydra爆破flag4的密码
命令:
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.211.131
密码是orange
现在账号密码都有了,开启ssh服务登录
首先确认ssh-server是否已经启动了:
ps -e | grep ssh
这个标志是已启动,如果没有就开启,开启命令:sudo /etc/init.d/ssh start
登录账户
Flag4提示root,看来还是要提权到root账户
四、提权
SUID提权
简述就是一些进程拥有root权限,在使用这些进程的时候是root用户的权限,据此用来提升权限。
利用find命令,找查具有SUID权限的可执行二进制文件
找到find命令拥有suid权限
然后使用这个命令提权,查找一个存在的文件,后面加上-exec "/bin/sh" \;
这个时候发现已经是root了
现在可以查看/etc/shadow文件了
哈哈哈哈哈它把密码加密了
ls找到最后一个flag
若有错处,欢迎指正